feature/org-rbac-groups #6

Merged
mhahl merged 17 commits from feature/org-rbac-groups into main 2026-08-09 05:52:52 +00:00
Owner
No description provided.
Project default and per-secret overrides gate human reveals behind admin
approval (machine tokens/ESO stay exempt). UI uses oat dialog/dropdown,
Access tab/inbox, and human-readable grant expiry; PAT/CLI endpoints and
docs cover request, list, approve, and deny.
Improves contrast for pending counts in the project Access tab and
Administration sidebar link.
Uses flex layout on side nav links so the pending badge sits on the
trailing edge of the row.
Secrets can require writers, admins, team owners, or a custom user allow-list
instead of full project membership. Enforced via api.can_access_secret in RLS,
with UI controls on create/view and documentation.
Combines restricted secret access modes (writers/admins/owners/custom)
with the existing reveal-approval workflow. Resolve conflicts so both
acl_mode and requires_approval apply under project RBAC and RLS.
Team groups map to team roles, project roles, and secret ACL grants.
Directory login syncs group_members via external_key. Docs, seed_mock,
and unit tests updated.
CREATE OR REPLACE cannot change OUT columns; DROP first so ensure_schema
applies group-aware ACL row shape on existing volumes.
Earlier ensure_schema stmt still created the user-only OUT signature and
failed after groups migration. Drop + recreate with group columns first.
Add docs/rbac.md (roles, groups, LDAP/OIDC, project/secret grants, recipes)
and link from README, deploy, authentication, and api docs.
Secret full view uses Secret | Access tabs for project admins. ACL mode and
user/group grants live on Access; value save no longer resets acl_mode.
can_access_secret re-queried api.secrets, so the new row was invisible
during INSERT … RETURNING and RLS failed. Policies now use row columns
via can_access_secret_row; can_access_secret remains the app-facing API.
Access settings form now saves ACL mode and requires_approval together.
Secret value save no longer touches those fields.
- can_reveal_secret requires can_access_secret(reveal) before approval
- plain/bulk export only include secrets caller may reveal
- ESO/PAT distinguishes forbidden (ACL) vs approval_required
- secret Permissions tab rename; read-only ACL guidance; project.html fix
- tests for ACL modes, routes, export, ESO order
- ESO/PAT list-with-values requires can_access_secret(reveal)+can_reveal
- groups.team_role limited to admin/member/viewer (migrate owner→admin)
- Behavioral ACL matrix tests + bulk-export filter tests
- Inline create uses config ACL labels and project approval default state
- Machine tokens tab → Machine accounts; Permissions heading matches tab
- Access-request pending dialog: Request submitted / Done consistently
- owners label; restricted badge titles; delete confirm; Create button
- Global inbox note; secrets partial gets acl_mode_labels
mhahl merged commit 3d5d4e2179 into main 2026-08-09 05:52:52 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Sigaint/corvus!6
No description provided.