Commit Graph
6 Commits
Author SHA1 Message Date
evangelostsak e06a62e19b style(openbao): drop the narrative exception comments
Review had these removed across the role once already, and the 11 September
pass cleared every file that was flagged. The seal-key pin and the
recovery-key work then reintroduced the same pattern in nine new places.

Also removes two that predate the review and were never flagged: the
healthcheck note in meta/services.yml and the entrypoint note in
compose.yml.j2. Both are the same narrative-exception shape.

Param docs, file headers and the plain contract notes in the Playwright specs
stay: separate categories, none of them objected to. What the deleted
comments recorded lives in the role README.
2026-09-21 00:29:15 +02:00
evangelostsak f1c217b685 feat(openbao): keep the recovery key and fall back to it
bao operator init issued a recovery key on the first deploy and the play read
only root_token from the JSON, dropping it. That left the AppRole as the sole
administrative path, so losing both halves of it ended the deploy for good on
an instance whose data was still readable.

The key is now persisted at init and loaded before the logins that may need
it. When neither the inventory AppRole nor the recorded one is accepted, the
run rebuilds the AppRole from it instead of failing. The hard fail remains for
the case where there is no key either.

The three first-deploy tasks move into a block: a third sibling sharing the
same when is what test_no_repeated_when_runs rejects.
2026-09-20 01:22:46 +02:00
evangelostsak e6e27b2dac feat(openbao): let the AppRole login survive its own credentials rotating
A deploy is handed credentials the instance has not been told about yet, so the
inventory login is expected to fail on every rotation. Try it, fall back to what
the previous deploy recorded, and fail with a message naming the state file when
neither is accepted -- a bare 403 here reads like an unrelated defect.

Both logins are non-fatal so the guard is what reports the failure. Whichever
one succeeded also identifies the SecretID the instance actually holds, which is
the value the rotation has to destroy; taking it from the state file instead
would destroy the wrong one whenever the inventory credentials still worked.
2026-09-15 02:15:14 +02:00
evangelostsak cbda5724c8 style(web-app-openbao): drop the narrative comments from 01_init.yml 2026-09-11 18:36:50 +02:00
evangelostsak a18f8a24ee fix(web-app-openbao): stop reporting the token cleanup as a configuration change 2026-09-07 22:13:42 +02:00
evangelostsak 9c7979f0ec feat(web-app-openbao): initialise once and wait for the static seal to auto-unseal 2026-09-07 00:30:30 +02:00