fix(ops-agent): perms-check en deploy-smoke waren allebei structureel vals-rood #144
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Ops-dashboard!144
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/agent-secret-perms-mask-and-smoke-retry"
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?
Twee losstaande, elk eenregelige defecten in de ops-agent — beide gemeten, niet afgeleid.
1. De perms-check verwerpt de modus die hij voorschrijft
ops-agent/src/auth.tsmaskerde met0o177. Die mask bevat de group-read-bit (0o040) — precies de bit die het voorgeschreven0640heeft, en die de agent nodig heeft: het secret isroot:ops-agent 0640en de agent draait als userops-agent, dus hij leest via de groep.0640 & 0o177 = 0o040 ≠ 0→ waarschuwing, altijd. Alleen0600/0400zweeg, en dat maakt het secret onleesbaar voor de agent. De waarschuwing was dus door geen enkele correcte configuratie te stillen.Nieuw masker
0o137:0600stil,0640stil,0644/0660/0666waarschuwen nog steeds. De guard blijft dus een world-readable secret vangen.Gemeten vóór de fix: srv 17× in 30 dagen, max2 8× — beide hosts, beide met een bestand dat exact
0640 root:ops-agentis.2.
curl_smoke_ops_dashboardverliest de startrace systematischUit het Caddy-access-log van de deploy van 2026-08-20:
StartedAt/login, duur 0,0008 s ← de smoke-stapReady in 0ms— pas nú luistert de appDe stap vuurt 0,23 s ná containerstart en 0,49 s vóórdat de app luistert. Caddy kan niet dialen → 502 →
curl -sfexit 22. De volgorde is machine-getimed, dus dit wordt structureel verloren; beide vastgelegde uitvoeringen (2026-08-02 en 2026-08-20) staan op exit 22.Fix:
--retry 5 --retry-delay 2 --retry-max-time 30; curl herprobeert 5xx vanzelf.--max-time 10blijft per poging gelden.Alle drie de repo-kopieën van de key gaan mee, zodat
deploy/ops-agent/baseline/commands.ymlbyte-identiek blijft aan de live whitelist encheck-ops-agent-drift.shniet vals rood slaat.Opgemerkt, bewust niet meegenomen
update_ops_dashboard-runs heeft er 1 een stap-8-rij, omdat de flow bijdocker_compose_upzijn eigenFlowStep-schrijver omlegt. De retry maakt de stap zinvol; het auditgat is een apart probleem.curl_smoke_ops_dashboardwijst naarhttps://ops.jp-visser.nl/login— dus naar de dashboard van srv, niet naar zijn eigen instance. Daar raakt deze race hem niet, maar het is wel een aparte bug.Verdict: APPROVED
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
Geen blokkerende of niet-blokkerende findings gevonden.
De wijziging houdt de deploy-command varianten consistent en corrigeert de permissiecheck zodat de gedocumenteerde/verwachte
0640-secret niet langer als te ruim wordt gemeld, terwijl owner-execute, group-write/execute en alle other-bits nog steeds worden afgekeurd.