You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/design/api/authz.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ Permission is denied before any resource content is fetched. Enumeration oracles
27
27
28
28
| Principal | Identifier | Scope semantics |
29
29
|---|---|---|
30
-
|**user** (user token) |`user_id`|Resolved against `team_memberships` and project grants for the project the user lives in. |
30
+
|**user** (user token) |`user_id`|FGA membership checks use `authz_membership_edges` (dual-written from `team_memberships`); see D3 in [`permission-storage.md`](permission-storage.md). Roster/`team_memberships` stay lifecycle-adjacent only. |
|**`sk_proj_…`** (pre-claim) |`project_id`, `pre_claim: true`| Project-wide against an unclaimed project. |
33
33
|**`sk_proj_…`** (origin-scoped) |`project_id`, `origin_patterns`| Project-wide, gated on request `Origin` matching a pattern. |
@@ -73,8 +73,8 @@ marks that user as team-owned.
73
73
74
74
The decision engine answers `can principal P perform action A on resource R?` considering:
75
75
76
-
- Direct permission grants.
77
-
-Role assignments through team_memberships.
76
+
- Direct permission grants (`authz_assignments`).
77
+
-Team usersets via `authz_membership_edges` and relation closure (see [`permission-storage.md`](permission-storage.md)); `team_memberships` is roster/lifecycle only, not the check fact source.
0 commit comments