00afadc1fe
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
3.1 KiB
3.1 KiB
felhom.eu — task reports
Overwrite this file with a summary of the most recent task only (uniform with the other repos; not cumulative). The cumulative hub history lives in hub/CHANGELOG.md; the scripts history lives in scripts/CHANGELOG.md.
SPIKE — PBS DR tier auto-provisioning, SLICE 0: the three load-bearing mechanisms — 2026-07-10
No production code — findings record at
documentation/audits/SPIKE-pbs-tier-provisioning-2026-07-10.md. All three unproven mechanisms of the
"PBS DR tier" epic got empirical answers; every probe artifact was spike-*-named and torn down (asserted);
the demo's real felhom-offsite/felhom-pbs storages re-verified active afterwards. Viktor approved the
one 🛑 (the ep0 touch) mid-run.
- Probe 1 (demo host): path-scoped token create is IMPOSSIBLE.
POST/PUT/DELETE /storage*all 403 withPermission check failed (/storage, Datastore.Allocate)— the whole entry-lifecycle CRUD checks the/storageROOT;/storage/<id>ACLs govern usage only. Probe 1b settled the fallback: a pinned-id sudoers alias (pvesm add/set/remove <id>,pveum acl modify /storage/<id>) — full cycle green as thefelhom-agentuser viasudo -n, unpinned id denied. Gotcha: sudo logs argv → the token secret must go through a stdin-reading root wrapper, neversudo pvesm add --password …. - Probe 2 (ep0, 🛑): the tenancy op-set + secret transport PROVEN. Recon recorded the surface (one
restrict+forced-command key, one sudoers line; the peersync user can sudo nothing else — live-proven). Throwawayspike-tenanton the realfelhom-offsite: namespace + privsep token + dual-grant, the token secret returned over SSH stdout (36 bytes, never persisted on ep0, never displayed), S4 isolation asserts green incl. a real cross-tenant WRITE 403. Ordering gotchas recorded (token-before-ACL; delete-token purges its ACLs; no--output-formaton generate-token). Slice-1 recommendation: a second forced-command surface (felhom-tenantsync, own keypair + sudoers line), peersync untouched. - Probe 3 (demo host):
pvesm add pbs … --encryption-key autogenworks end-to-end. Entry active, K born at/etc/pve/priv/storage/<id>.enc(0600, =PBSEncKeyPathon demo), vzdump of a small guest lands as ciphertext PBS-side (crypt-mode: encrypt— the doc-06 property),escrow-createwould find K. ⚠pvesm removeDELETES the.enc(K!) +.pw→ the epic's re-apply must bepvesm set-only. - Flags surfaced (pre-existing): orphan
root@pam!spikeDatastoreAdmin on ep0/datastore/scratch; the demo host is missing the §4b step-3/storage/felhom-pbs|felhom-offsiteFelhomAgentStore grants (backups still green — needs a deliberate re-assert before slice 2 codifies the self-grant); 180'sfelhom@pbs!n100is datastore-wide DatastoreAdmin (dev-grade, don't copy). - Epic slice map (hub tenantsync + consume-once → agent apply-bridge with stdin-wrapper + set-only re-apply → DR schedule/monitoring → Peti ceremony one-liner) in the record §5.