Skip to content

feat: carry the principal on S3 authorize and bucket info results - #69

Draft
pyropy wants to merge 1 commit into
mainfrom
srdjan/feat/iam-principal-field
Draft

feat: carry the principal on S3 authorize and bucket info results#69
pyropy wants to merge 1 commit into
mainfrom
srdjan/feat/iam-principal-field

Conversation

@pyropy

@pyropy pyropy commented Sep 10, 2026

Copy link
Copy Markdown

AuthorizeOK and InfoOK gain an optional principal field: 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/create returns the same AuthorizeOK type, so it carries the field too; Hilt leaves it nil there. Part of the Forge S3 tenant IAM work (RFC).

  • Principal *string on AuthorizeOK and InfoOK, regenerated codecs
  • Tests: nil omits the key, set value survives both codecs, empty string stays distinct from absent

馃 Generated with Claude Code

@pyropy
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
pyropy force-pushed the srdjan/feat/iam-principal-field branch from 4087054 to e056eb8 Compare September 11, 2026 09:03
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