Rename the rotation registry: forgejo-token-groups.json and lib.forgejoTokenGroups no longer say what they hold #22
Labels
No labels
blocked
bug
decision
duplicate
enhancement
handoff
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/secrets#22
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Rename the rotation registry from
forgejo-token-groups.jsonandlib.forgejoTokenGroupsto a name that says what it holds now, sinceservicecan benoneand the last two credentials registered there are not Forgejo tokens at all.Primary goals:
rotation-registry.jsonandlib.rotationRegistryshape, or whatever the owner prefers, replaces both.allod/archetypesreads the export forcredentials[]andlocal_auth_refresh,allod/nexusrotate-tokenreads it for group selection and validation, andallod/toolsreads it inallod secret create,rekey,rotate, anddeclare; the rename lands as one ordered set of PRs with a compatibility window or a single flag day, decided here.allod/toolsdocs/allod-secret.mdname the file.Current state and specifics
allod/tools#182 generalized the registry in place (
servicebecameforgejoornone) and deferred the rename because it is cross-repo. allod/tools#197 moves value rotation intoallod secret rotateand, per its design decision, leaves the names unchanged so that PR stays single-repo; it reads the registry through the samenixEvalTokenGroupsseamcreateandrekeyuse, so the tools side of a rename is one attribute name and one file name.Scope
In: the file and export rename in this repository, the consumer updates in archetypes, nexus, and tools, and the landing order. Out: any change to the registry's shape or validation.
Decision for the rename, recorded here as the issue asks.
Names: the file becomes
rotation-registry.jsonand the flake export becomeslib.rotationRegistry. Human-facing text calls it the credential rotation registry.Compatibility window rather than a flag day for the export: the first secrets PR renames the file, exports
lib.rotationRegistry, and keepslib.forgejoTokenGroupsas a deprecated alias of the same validated value, so a deploy lock cascade that advances secrets before archetypes keeps evaluating. The file name is a flag day forallod secret declare, which opens the file by name, so tools lands right after secrets.Landing order:
lib.rotationRegistrywith no fallback to the old name. The archetypes PR bumps its secrets lock to the merged secrets commit before it merges. allod/memory'sage.mdfollows as a docs-only PR.A deployment's private fork of allod/secrets must merge the rename before the new nexus
refresh-local-author the newallod secretreads its checkout; both fail by name until then.Implementation PRs, in the landing order above:
lib.forgejoTokenGroupsas a deprecated alias (R3, reviewed).allod secretreadslib.rotationRegistryand writesrotation-registry.json(R3, reviewed). Land after 1.refresh-local-authevaluateslib.rotationRegistry(R3, reviewed). Land after 1.credential-profilesreadssecrets.lib.rotationRegistry(R3, reviewed). Needs aflake.lockbump to the merged secrets commit after 1 lands; until then its check fails by attribute name, as the PR body states.age.mdnames the new file (R0).Still to do after those merge: advance the deploy lock with secrets before archetypes, then a final secrets PR that removes the alias and closes this issue. The deployment's private fork of allod/secrets must merge the rename from PR 31 before the new nexus or tools reads its checkout.