infrasynth-backend-kit/infrasynth/security
jcv-dev 21731b9887 feat(gates): composable per-endpoint gating extension API
Make access gating a first-class, pip-consumable extension point so a
consuming app can gate any of its own views behind 2FA / ALTCHA /
entitlement / feature flag / permission, or gate nothing, without editing
the kit.

- infrasynth.gates: Gate, GateResult, GatePermission, @gated and built-ins
  TwoFactorGate, AltchaGate, EntitlementGate, FeatureGate, PermissionGate;
  denials raise the correct namespaced error/status (per-endpoint, opt-in,
  default is no gating)
- mint a `2fa` JWT claim only after verification (preserved across workspace
  selection) so TwoFactorGate is meaningful for API/multi-workspace clients
- GatePermission added to DEFAULT_PERMISSION_CLASSES; HybridPermission
  evaluates declared gates so kit permissions gate automatically
- document the extension surface and stable import paths in README
2026-09-24 10:49:44 -05:00
..
altcha feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
auth feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
migrations feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
two_factor feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
__init__.py Lua update 2026-08-28 14:38:47 -05:00
apps.py Lua update 2026-08-28 14:38:47 -05:00
filters.py Lua update 2026-08-28 14:38:47 -05:00
models.py feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
password_validation.py feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
permissions.py feat(gates): composable per-endpoint gating extension API 2026-09-24 10:49:44 -05:00
serializers.py Lua update 2026-08-28 14:38:47 -05:00
services.py feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
signals.py Lua update 2026-08-28 14:38:47 -05:00
throttling.py feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
urls.py feat: production-hardening pass across the kit 2026-09-24 10:41:21 -05:00
views.py feat(gates): composable per-endpoint gating extension API 2026-09-24 10:49:44 -05:00