Skip to content

Authenticate cluster identities and authorize operations from applied policy - #691

Draft
aaltshuler wants to merge 8 commits into
mainfrom
codex/identity-policy
Draft

Authenticate cluster identities and authorize operations from applied policy#691
aaltshuler wants to merge 8 commits into
mainfrom
codex/identity-policy

Conversation

@aaltshuler

@aaltshuler aaltshuler commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Normal signed credentials currently duplicate the graph/action permissions in policy configuration. This adds a distinct version 2 identity credential: the token authenticates the principal for one cluster, while the applied policy decides protected operations. Authenticated identities can discover every effective graph ID/name through a minimal endpoint without gaining data or schema access.

The shared cluster API now authorizes schema and configuration plans against the current applied policy. Execution checks the complete candidate before effects and again under the existing lock. Candidate self-grants, changed bases, and pending recovery refuse. Exact first initialization has a separate explicit bootstrap boundary. The CLI keeps versioned caches, uses normal identity issuance without action lists, and preserves explicit legacy restriction requests.

Compatibility:

  • Version 1 ceilings, filtered catalog, static authentication and storage-holder entry points retain their contracts.
  • graphs list --discovery opts explicit server connections into the new minimal catalog.
  • Policy changes use config_manage on the cluster resource. Existing cluster policies need explicit migration before activating identity-authorized execution.
  • Exhaustive matches on the public policy enums need new ConfigManage/Cluster arms. No stored graph format change is introduced by this PR.

RFC 0064 remains a draft accompanying this implementation for review.

Validation: CLI, policy, Core and server unit/integration suites, including verifier, HTTP authorization, boot, schema routes and OpenAPI. The final Core forwarding fix passes all 11 existing failpoint regressions and all 8 identity regressions on the normal stack, with no test or recovery-behavior changes. The real interrupted-write refusal regression, both engine recovery probes and all 29 engine schema-apply tests also pass. Formatting, documentation checks and targeted Clippy are checked separately; GitHub runs the broader workspace and storage matrix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant