Authenticate cluster identities and authorize operations from applied policy - #691
Draft
aaltshuler wants to merge 8 commits into
Draft
Authenticate cluster identities and authorize operations from applied policy#691aaltshuler wants to merge 8 commits into
aaltshuler wants to merge 8 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
graphs list --discoveryopts explicit server connections into the new minimal catalog.config_manageon the cluster resource. Existing cluster policies need explicit migration before activating identity-authorized execution.ConfigManage/Clusterarms. 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.