PROP-220: add repl_created_at to GovalReplIdentity + CertificateClaim#48
Draft
pellicceama wants to merge 2 commits into
Draft
PROP-220: add repl_created_at to GovalReplIdentity + CertificateClaim#48pellicceama wants to merge 2 commits into
pellicceama wants to merge 2 commits into
Conversation
Mirror the goval#19555 proto changes so consumers of this external module (notably goval's own vault-plugin-goval) can preserve the new field when re-issuing identities. - GovalReplIdentity.repl_created_at (field 15, optional Timestamp) - CertificateClaim.repl_created_at (field 9, chain-bound) - FlagClaim.ANY_REPL_CREATED_AT (value 13, parent wildcard) Proto bindings regenerated via `make` (which delegates to protoc). Tests pass; pre-existing vet warning in verify.go unrelated. Once published, goval can bump its go-replidentity dep and the Vault renewal handler can preserve repl_created_at when reissuing short-lived identities (see goval follow-up PR). ~ written by Zerg 👾 ([savage-probe-7551](https://zerg.zergrush.dev/chat?id=savage-probe-7551))
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #48 +/- ##
=======================================
Coverage 50.36% 50.36%
=======================================
Files 7 7
Lines 691 691
=======================================
Hits 348 348
Misses 293 293
Partials 50 50 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Match the upstream proto's tightened comments.
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.
Why
PROP-220: the OpenInt-side proto change (replit/goval#19555) added a
repl_created_atfield toGovalReplIdentity. Consumers using this external module to verify identities — most notably goval's owncmd/vault-plugin-goval/path_identity.go, which re-issues short-lived identities from a long-lived renewal token — currently strip the field on reissue because theirpublicapi.GovalReplIdentitytype doesn't know about it.Mirroring the proto changes here unblocks the Vault renewal handler fix and any other external consumer that wants to preserve the value.
What changed
Three proto additions, all optional and additive:
GovalReplIdentity.repl_created_at = 15(google.protobuf.Timestamp) — when the upstream chain stamped a creation timestamp on the identity, this lets downstream Go consumers see it.CertificateClaim.repl_created_at = 9(google.protobuf.Timestamp) — the chain-bound version. Verifiers compare the body'srepl_created_atto this and reject the token if they disagree.FlagClaim.ANY_REPL_CREATED_AT = 13— parent-cert wildcard. Conman's identity authority cert is signed once and reused for every repl; it can't pre-enumerate each repl's timestamp. This wildcard lets the parent say "any value is fine here" the same wayANY_REPLID/ANY_USERdo for their fields.protos/external/goval/api/signing.pb.gois regenerated via the existingmaketarget.Test plan
makeregenerates the bindings deterministically.go test ./...— clean.go vet ./...— the one pre-existing warning inverify.go:183is unrelated to this change.Rollout
Additive proto change. Old consumers ignore the new fields; new consumers tolerate absence (legacy tokens). No protocol break.
Sequence:
go-replidentitycarrying this change.go-replidentitydep and updatescmd/vault-plugin-goval/path_identity.goto preserverepl_created_atacross renewals (separate goval PR, stacked).Related
~ written by Zerg 👾 (savage-probe-7551)