Never revoke the configured bootstrap API token - #467
Closed
timmarkhuff wants to merge 2 commits into
Closed
Conversation
This reverts commit 1b37595.
On first mint, leave previous empty so only manager-minted working tokens enter the two-token revoke cycle. Processes that share a configured seed can each maintain independent child chains without destroying the bootstrap credential. Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Summary
enable_token_rotation). That flag was added so Edge Endpoint's inbound request path would not mint/revoke against caller-owned tokens. The cross-revocation concern was driven by parking the configured token aspreviousand deleting it on the next refresh.TokenManagerso the configured bootstrap token is never written into the cache slot and never revoked. On first mint the slot is{ current: <new child>, previous: null }. Later refreshes only revoke manager-minted working tokens in the usual two-token cycle.Why this replaces
enable_token_rotation=FalseWith the old "park bootstrap as previous" policy, enabling rotation on a forwarded caller token could revoke that caller's seed. #466 avoided that by skipping
TokenManagerentirely for Edge inbound clients.Under this policy, rotation can stay on: Edge and the app may both mint children from the same seed, but neither revokes the seed or the other's children. That removes the main reason for the disable flag.
Follow-ups
enable_token_rotation=Falsefor inbound clients. After this lands (and is released), that call-site flag should be removed; inbound clients can rotate safely under the new bootstrap policy. Device-token sharing viaGROUNDLIGHT_TOKEN_DIRremains useful so containers share one working-token cache rather than minting parallel chains.0.31.0. Cut a follow-up release (0.31.1or0.32.0) accordingly.Test plan
poetry run pytest test/unit/test_token_manager.py test/unit/test_token_refresh_client.py(20 passed)previous: nulland first refresh does not call delete on the bootstrap token nameenable_token_rotation=Falseafter consuming this release