Template sshHosts entries carry localForwards and extraOptions #33
No reviewers
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!33
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/ssh-hosts-forward-shapes"
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?
Two example entries in the template's SSH address book gain the two field shapes deployments' address books already carry:
example-offsite-consolegets twolocalForwards(one with a bind address, one without) andexample-provider-supportgets anextraOptionsentry. Nothing else changes: no name, address, port or key of any entry, and the nexus rotation scripts read onlyhostname,user,portandidentityFile, none of which move. On the running example hypervisor this adds twoLocalForwardlines to one host block and aServerAliveIntervalto another; no other machine receives the address book after the companion framework change, allod/archetypes#81. It exists so the framework's composed check sees every shape its field translation claims (allod/archetypes#54 validation), after a previous attempt passed on this template and broke every deployment machine whose entries carrylocalForwards. If it is wrong, revert this PR.What changes
identity.nix:sshHosts.example-offsite-console.localForwardswith a full bind/host pair and a pair whose bind address is omitted (the shape whose default the translation must reproduce);sshHosts.example-provider-support.extraOptions = { ServerAliveInterval = "30"; }. Both are the legacy Home ManagermatchBlocksshapes, which is what deployment data uses.Risk
R1: synthetic public template data, additive fields, rollback a revert. Consumers measured: the framework's hypervisor render (both the current legacy path and the new translation resolve every host identically with
ssh -G), theexternal-ssh-trust-targetscheck (passes), and the nexus rotation scripts (read four fields that do not change).Validation
Run by the integrator at
e21b088:nix flake checkin this repo passes (worker run).nix eval .#lib.identity.sshHosts.example-offsite-console.localForwards --jsonand...example-provider-support.extraOptions --jsonprint the new values.--override-input secrets <this branch>and archetypes at master:nexusrendersLocalForward [127.0.0.1]:8443 [192.0.2.31]:443,LocalForward [localhost]:5900 [192.0.2.31]:5900andServerAliveInterval 30;ssh -G -F <rendered config>resolves all six hosts, and resolves them identically with the allod/archetypes#81 branch substituted.Cold cross-family review:
gpt-5.6-solviacodex exec, reasoning effortxhigh, read this diff together with the allod/archetypes#81 and allod/profiles#10 diffs for allod/strategy#56 (Claude-family workers authored all three). No finding concerned this change; the reviewer traced the added addresses as RFC 5737 documentation values and confirmed the forward endpoint defaults match the pinned Home Manager rendering.Refs allod/archetypes#54
Refs allod/strategy#56