Files
felhom-controller/REPORT.md
T

27 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REPORT — v0.328.0: the catalog allow-list (R-971, operator decision D2 = A) (2026-10-17)
Written in ASD-STE100 Simplified Technical English. Session report: felhom.eu `REPORT-agent-allowlist-rotation-2026-10-17.md`.
Evidence: felhom.eu `documentation/audits/agent-allowlist-rotation-2026-10-17/P2/`, `P5/`.
- **What:** `internal/privpolicy` checks the RENDERED compose before every compose write and env decision (sync,
update/ladder step, install, two settings changes, two restores — before the stop) against `allowlist.json`
(go:embed; one entry: homepage's read-only socket, bound to its image, start and healthcheck). Refusal: nothing
written, operator event `app_definition_refused` (hub ≥ v0.157.0), app-page line, plain message. Sync never copies a
template named like an infra stack.
- **Tests:** `privpolicy_test.go` (every class, positive controls, the three review rounds, the live root finding),
`TestAllowList_IsWiredIntoEveryComposeWriter` (AST), `sync.TestR971_*`, `stacks.TestAllowList_*`,
`TestR971_AppPage_*`; full suite green on `99f9117`. Red-proofs in P2.
- **i18n:** new fixture `app_settings_definition_refused`; every other fixture byte-identical. Keys
`err.stacks.definition_refused`, `app_info.definition_refused` in both bundles.
- **Release:** rc.1–rc.5 on demo-hp 9201; 0.328.0 to Tester 1, demo-hp, demo-felhom by per-box floors (all three in
< 1 min), box walk green (0 refusals, all containers healthy, login and files 200), https-only green; global floor
0.328.0, MinAgent 0.158.1; per-box floors cleared; read back from the hub DB with its WAL.
- **9201 proof:** drill catalog with `privileged: true` on privatebin → refused; compose sha and container unchanged;
event at the hub + operator mail; page line on privatebin only; live catalog restored byte-identical.
## Observations
1. rc.4 refused every not-installed app on the box (placeholder roots do not exist there). NOT-A-FINDING: found by this session's own live proof and fixed in rc.5 before the release, red-proved.
2. One app can still bind another app's `appdata/<name>`. FILED: R-1142.
3. `build.sh` pushes `:latest` with every build, rc included. FILED: R-1143.