rotate-token: accept a raw value format and a tailscale-status verify probe #53
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/nexus#53
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?
Let the rotation registry describe a tailscale auth key truthfully, so a per-machine tailnet credential can be registered as a
service: nonegroup without borrowing Forgejo labels for its value shape and its verify probe.Primary goals:
format: rawmeans the plaintext is the value itself and nothing else. It rotates exactly asraw-forgejo-tokendoes today, without a name that says Forgejo.verify.type: tailscale-statusprintstailscale status --peers=falsefor anixos-hosttarget andssh <system> 'tailscale status --peers=false'for every other kind, next to the three probes that exist.validate_group_metadata,prepare_item, the encryption switch andprint_group_verificationall accept both names, and the sabotage fixture still proves an unknown format or probe is refused.nonegroup whose credential usesrawandtailscale-status; a dry-run test asserts the printed verify line and a live rotation test asserts the decrypted plaintext is the new value, unchanged.Current state and specifics
scripts/rotate-tokenlimitsformattoraw-forgejo-token,credential-store-urlandrclone-remote-stanzainvalidate_group_metadata(line 225), inprepare_item(line 335) and in the encryption switch (line 460), and limitsverify.typetoforge-token-verify,git-ls-remoteandsite-checkin the validator (line 232) and inprint_group_verification(line 1078). Each site dies on anything else. The header comment (lines 11 to 27) lists the formats.allod secret createandallod secret rekey(allod/tools#182) read onlycredentialandsecret_pathfrom a registry group, so a tailscale key registered with made-up labels lands and rekeys fine; onlyrotate-token --grouprefuses it later, withunsupported metadata. The design comment on allod/tools#182 says the registry "stops being Forgejo-shaped" afterservicebecame an enum, but the format and verify vocabularies are still Forgejo and rclone only. This is the first credential that fits neither.The immediate consumer is a private deployment splitting its shared tailscale auth key into one reusable key per dev machine, each landed with
allod secret create; its tracking issue lives in that deployment's tracker.Scope
In: the two new names at every site that switches on them, the header comment, one sentence in
docs/credentials.mdnaming the vocabulary, and the tests above. Out: renaming the registry file and export (an allod/secrets issue, per allod/tools#197); the Go portallod secret rotate(allod/tools#197), which must carry the same two names when it lands; retiringrotate-token(allod/nexus#52), which this does not advance or delay.allod-agent referenced this issue2026-09-11 09:19:31 +01:00