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).
21 lines
952 B
Plaintext
21 lines
952 B
Plaintext
# R-156 evidence ��� papra persists OUTSIDE the volume the compose mounts
|
|
## 1. compose mounts papra_data at /app/data
|
|
volume papra_papra_data -> /app/data
|
|
|
|
## 2. the container runs as nonroot and CANNOT write there
|
|
uid=999(nonroot) gid=999(nonroot) groups=999(nonroot)
|
|
drwxr-xr-x 2 root root 4096 Jul 31 23:18 /app/data
|
|
touch: cannot touch '/app/data/.w': Permission denied
|
|
## 3. the volume is empty apart from the canary this campaign wrote AS ROOT
|
|
total 12
|
|
drwxr-xr-x 2 root root 4096 Jul 31 23:18 .
|
|
drwxr-xr-x 1 nonroot nonroot 4096 Jul 31 23:12 ..
|
|
-rw-r--r-- 1 root root 19 Jul 31 23:18 cc_proof.txt
|
|
## 4. the REAL database is in the container writable layer, not in any volume
|
|
total 472
|
|
drwxr-xr-x 1 nonroot nonroot 4096 Jul 31 23:12 .
|
|
drwxr-xr-x 1 nonroot nonroot 4096 Jul 4 22:19 ..
|
|
-rw-r--r-- 1 nonroot nonroot 475136 Jul 31 23:12 db.sqlite
|
|
## 5. healthcheck only probes the HTTP port, so this reads healthy
|
|
"healthy"
|