feat: carry the principal on S3 authorize and bucket info results - #69
Draft
pyropy wants to merge 1 commit into
Draft
feat: carry the principal on S3 authorize and bucket info results#69pyropy wants to merge 1 commit into
pyropy wants to merge 1 commit into
Conversation
pyropy
added this pull request to stack #71
September 10, 2026 16:10
Hilt binds an access key to a principal, and Ingot needs to know which principal a key belongs to so it can drop the caches it holds for that principal when a policy changes. Add an optional principal field to the results of /s3/request/authorize and /s3/bucket/info. A key that is not bound to a principal, such as a tenant-wide service credential, omits the field, so an absent field and an empty identifier stay distinguishable on the wire. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
pyropy
force-pushed
the
srdjan/feat/iam-principal-field
branch
from
September 11, 2026 09:03
4087054 to
e056eb8
Compare
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.
AuthorizeOKandInfoOKgain an optionalprincipalfield: the identifier of the principal an access key is bound to, absent for a service key, which carries its own permissions and buckets. Ingot indexes its per-key caches by tenant and principal so a principal invalidation can drop them, and this field is how it learns the pair. The change is additive: a nil pointer emits no key and existing decoders ignore unknown keys./s3/bucket/createreturns the sameAuthorizeOKtype, so it carries the field too; Hilt leaves it nil there. Part of the Forge S3 tenant IAM work (RFC).Principal *stringonAuthorizeOKandInfoOK, regenerated codecs馃 Generated with Claude Code