4691aa1a35
Phase A passed every gate on a fresh box built from the PUBLISHED ISO 1.26.1: install, claim, two drives enrolled through the real endpoints with the backup target healthy, four apps spanning both sides of D5's secret split, and a working discriminator across all four. Isolation gate: both denials captured, each with a positive control. The PBS control FAILED first — four clean-looking 403s were worthless because the token was denied on its own datastore too (PBS token privilege separation). Fixed and re-run; the denials stand. R-156 (new, register grepped): papra's data is neither persisted nor backed up, and it reports healthy. The template mounts papra_data:/app/data; the app writes /app/app-data/db/db.sqlite. Volume empty and root-owned against a -rootless image, real DB in the container writable layer, healthcheck only probes the HTTP port. Its Tier-1/2 backup is real, verifiable and contains nothing. Not fixed. Tier 3 could not be isolated so it was not run: offsite hard-requires the DR tier (configs.go:1300) and the DR tier only provisions on ep0 (per-endpoint allocation deferred, hub/README.md:260). Both are recorded deliberate positions, so no R-n minted. The campaign touched neither ep0 nor the Storage Box. Phase B did not start. Phase A was budgeted at ~1h and took ~5.5h (1.26.1 is a public release image with no auto-install path, so the install was a blind screendump+sendkey walk). That left the runner — which judges eleven invariants and fires destructive atoms unattended — to be written at 04:00 with ~3h of night left. Stopped on the brief's own fence: a rig producing false negatives is worse than no rig. The rig is built and idle; teardown is OWED and itemised, including hub customer c10-soak (disposition: DELETE).
26 lines
975 B
Plaintext
26 lines
975 B
Plaintext
# PBS isolation proof — token c10@pbs!box (secret redacted, never echoed)
|
|
# DooPlex PBS https://localhost:8007 2026-07-31T20:14:40Z
|
|
# ACL: c10@pbs and c10@pbs!box hold DatastoreBackup on /datastore/felhom-c10 ONLY.
|
|
# felhom-spike (production, demo-felhom's backups) carries NO grant for this auth-id.
|
|
|
|
## POSITIVE CONTROL — same token, its OWN datastore (must SUCCEED, else the 403s below prove nothing)
|
|
$ GET /api2/json/admin/datastore/felhom-c10/snapshots
|
|
{"data":[]}
|
|
HTTP 200
|
|
|
|
## DENIAL 1 — list snapshots of PRODUCTION datastore felhom-spike
|
|
permission check failed - missing Datastore.Audit|Datastore.Backup on /datastore/felhom-spike
|
|
HTTP 403
|
|
|
|
## DENIAL 2 — list NAMESPACES of felhom-spike
|
|
permission check failed
|
|
HTTP 403
|
|
|
|
## DENIAL 3 — DELETE namespace demo-felhom in felhom-spike (destructive)
|
|
permission check failed - missing Datastore.Modify on /datastore/felhom-spike
|
|
HTTP 403
|
|
|
|
## DENIAL 4 — status of felhom-spike
|
|
permission check failed
|
|
HTTP 403
|