hub v0.7.4: ingest agent pbs_snapshots (slice 6 Phase B)
Accept + persist the now-populated host-report pbs_snapshots. hostPBSSnapshot mirror in hostReportPayload (persisted via report_json, no schema change); a FAILED PBS verify is logged prominently (loudest offsite-DR signal). Shared golden updated byte-identical with felhom-agent; TestHostPBSSnapshot_GoldenContract added. Build/deploy deferred (backward-compatible). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,35 +4,33 @@
|
||||
|
||||
---
|
||||
|
||||
# REPORT — Hub: ingest agent backups + restore_tests (v0.7.3) (2026-06-09)
|
||||
# REPORT — Hub: ingest agent pbs_snapshots (v0.7.4) (2026-06-09)
|
||||
|
||||
## Outcome
|
||||
|
||||
**Code committed + pushed (changelogged as `v0.7.3`); image build/deploy deferred to an
|
||||
operator decision.** The felhom-agent slice-6 Phase A work populates the host-report's
|
||||
`backups` + `restore_tests`. This change is the hub half: accept + persist them. Minimal —
|
||||
the authoritative backup policy is hub-owned (slice 10); this mirrors what the agent reports.
|
||||
**Code committed + pushed (changelogged as `v0.7.4`); image build/deploy deferred to an
|
||||
operator decision.** The felhom-agent slice-6 Phase B work populates the host-report's
|
||||
`pbs_snapshots` (PBS offsite inventory + per-snapshot verify-state). This is the hub half:
|
||||
accept + persist them. Minimal — the authoritative offsite policy is hub-owned (slice 10).
|
||||
|
||||
## What landed (`hub/internal/api/handler.go`, `host_test.go`, golden)
|
||||
|
||||
- `hostReportPayload` gains `hostBackup` / `hostRestoreTest` mirror structs matching the
|
||||
agent's `hub.Backup` / `hub.RestoreTest` field-for-field.
|
||||
- Persistence via the existing `report_json` column (no schema change). The handler logs a
|
||||
**FAILED restore-test prominently** (`[WARN]` — the loudest DR signal) and a failed backup;
|
||||
the host-report info line counts backups + restore-tests.
|
||||
- The shared `testdata/host-report.golden.json` now carries a populated `backups[0]` /
|
||||
`restore_tests[0]`, **byte-identical** with felhom-agent's copy.
|
||||
- `TestHostBackup_GoldenContract` / `TestHostRestoreTest_GoldenContract` are the hub half of
|
||||
the bidirectional key-set test. `go test ./internal/api/ ./internal/store/` is green.
|
||||
- `hostReportPayload` gains a `hostPBSSnapshot` mirror struct matching the agent's
|
||||
`hub.PBSSnapshot` field-for-field, persisted via the existing `report_json` column.
|
||||
- The handler logs a **FAILED PBS verify prominently** (`[WARN]` — the loudest offsite-DR
|
||||
signal); the host-report info line now counts pbs-snapshots too.
|
||||
- The shared `testdata/host-report.golden.json` carries a populated `pbs_snapshots[0]`,
|
||||
**byte-identical** with felhom-agent's copy; `TestHostPBSSnapshot_GoldenContract` is the
|
||||
hub half of the bidirectional key-set test. `go test ./internal/api/` is green.
|
||||
|
||||
## Backward compatibility
|
||||
|
||||
An agent that omits/empties `backups`/`restore_tests` is accepted unchanged. The legacy
|
||||
controller report path is untouched (frozen until the slice-10 cutover).
|
||||
An agent that omits/empties `pbs_snapshots` is accepted unchanged. The legacy controller
|
||||
report path is untouched (frozen until the slice-10 cutover).
|
||||
|
||||
## Deploy
|
||||
|
||||
> Per the GitOps flow (`CLAUDE.md`): build+push `gitea.dooplex.hu/admin/felhom-hub:v0.7.3`,
|
||||
> Per the GitOps flow (`CLAUDE.md`): build+push `gitea.dooplex.hu/admin/felhom-hub:v0.7.4`,
|
||||
> bump `manifests/hub.yaml`, commit, then sync the `felhom` ArgoCD app. **Deferred** at this
|
||||
> checkpoint — the change is backward-compatible, so the live hub (v0.7.2) keeps ingesting
|
||||
> checkpoint — the change is backward-compatible, so the live hub (v0.7.3) keeps ingesting
|
||||
> host-reports fine until then.
|
||||
|
||||
Reference in New Issue
Block a user