Repository navigation
feat: add offline managed data credentials and CLI access - #633
Merged
Merged
Conversation
This was referenced Sep 6, 2026
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.
Managed clusters need data access that continues during a control API outage without sending control-plane credentials to a graph server. This implements RFC 0053: the server verifies scoped ES256 data credentials against locally enrolled trust, and the CLI caches that separate credential for direct graph requests.
The verifier binds signed authority to the cluster identity, incarnation, storage root, audience, graph, action, and expiry. Signed grants narrow the graph's current Cedar policy. Trust is validated before writable graph startup, and data requests require no control-plane network call. The server resolves the actor from verified claims, preserving one principal across credentials.
cluster token --graph ID --actions read,change --ttl 1hstores data authority in a separate OS-keychain entry and prints metadata only. Managedqueryandmutateuse the cached endpoint and require an explicit graph. Missing or expired credentials, conflicting addressing, and unsupported verbs refuse without legacy fallback; global--directexplicitly retains legacy behavior. HTTP requests refuse redirects, have a 10-second deadline and an 8 MiB response bound, and redact credentials from errors.cluster token --clearforgets the local entry without claiming server revocation.Validation at integration head
f9a77b82, including current main02d182b6:Earlier live qualification passed on an existing disposable managed cluster:
data_credential_expiredat the credential's 60-second expiry. The API was restored afterward.The live proof used server commit
463290a9and CLI binary SHA-256 prefixcb464cb7, with one adopted cluster and one human principal. The full Linux image and separatejust e2e-clikind regression also passed at that snapshot. See the generated sanitized qualification report. Later CLI error-key redaction was reproduced failing and verified by the seven managed-data regression cases and both strict CLI lint configurations; it changes no successful data operation or server behavior.