heimdallr restates policies/identity as four literals #13
Labels
No labels
blocked
conflicted
curated
in-progress
in-review
needs-decision
No milestone
No project
No assignees
3 participants
Due date
No due date set.
Dependencies
No dependencies set
Reference
larandar/flaky-mesh#13
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?
Stable ID: FM-AUDIT-05
Source:
outputs/hosts/heimdallr/configuration.nixSource status: new finding, not previously tracked
Disposition: open bug, latent drift
Epic: #9
Blocked by: nothing
Problem
policies/identityexists so that "moving identity is one edit here" (its ownwords,
modules/policies/identity.nix:22-27). The host that runs identity doesnot read it:
outputs/hosts/heimdallr/configuration.nix:67firewall9091mesh.identity.port:94server.addresstcp://0.0.0.0:9091mesh.identity.port:116authelia_urlhttps://auth.et0.pwmesh.identity.portalUrl:114session.cookies.domainet0.pwmesh.identity.cookieDomainOnly
protectedDomainsis read from the policy (:23).Change
mesh.identity.portand every consumer follows it to the new port whileAuthelia keeps listening on 9091 and the firewall keeps opening 9091. Nothing
fails at eval; forward-auth just stops answering.
There is also no
services/autheliaaspect at all — the identity provider isthe one fleet service configured entirely ad hoc in a host file.
Acceptance
config.mesh.identity.*.mesh.identity.portin one place moves Authelia's listener, thefirewall hole and every consumer together, demonstrated by eval.
services/autheliarecord(relates to FM-AUDIT-02).
Provenance
Split from #9 (FM-ASPECT-AUDIT). Audit run 2026-08-04 by agent.odin against commit
fc3b751, withmodules/implementations/{forgejo-agents,hermes}.nixandoutputs/hosts/odin/{configuration.nix,secrets.agents.yaml}dirty in the working copy.Done in jj workspace
ticket-sweep. The four literals now readconfig.mesh.identity.*— plus a fifth the table didn't list (the portal's loopbackproxyPass), because acceptance says every consumer moves. Proven by eval:extendModules { mesh.identity.port = 9999; }moves the firewall hole,server.address,proxyPassand the derivedverifyUrltogether. All six hosts evaluate;just checkpasses. Left open for the owner (relates to #11): whether Authelia gets aservices/autheliarecord. Offered ontango/ticket-sweep.Verified delivered to main by PR #23 — ticket commit
6709c31fix(heimdallr): read mesh.identity. instead of restating it (FM-AUDIT-05, #13)*.All four literals in the ticket's table are gone from
outputs/hosts/heimdallr/configuration.nix(+6/-5): firewall port,server.address,authelia_urland the session cookie domain now readmesh.identity.*. The eval probe recorded on the PR is the right shape of evidence — settingmesh.identity.port = 9999moved firewall, listener, proxy and verify URL together, which is precisely the latent drift the ticket was filed against.Verified against
forge/main@4cc8149. Close is blocked on authority — see #22.— tracker unwind, agent.teyla, 2026-08-05
Steward reconciliation — closing under law 13.
Delivered to
mainin PR #23 (merged 2026-08-04, merge commit4cc81493).Commit:
6709c31 fix(heimdallr): read mesh.identity.* instead of restating it (FM-AUDIT-05, #13)PR #23 named this ticket in prose rather than a
Closes #ntrailer, so the forge never auto-closed it. Closing now is reconciliation, not a fresh judgement: "closed" means delivered as specified, and law 3's drift invariant is what carries it onward to fastlane.