RAILIANCE-WP is a family name, not a repository (ADR-007, and the prefix registry already lists it retired). Three repositories independently used one number space for unrelated work — RAILIANCE-WP-0012 was openbao extraction here, a cnpg backup in railiance-apps and a deploy-verify in railiance-cluster. This repository also carried two files both numbered 0016. Active workplans move to the successor prefix and are renumbered from 0001 in historical order. Archived workplans keep their historical identifiers. Projection UUIDs are re-derived from the new canonical ids. Records already registered under the old identifiers leave orphaned hub rows behind; that debt is recorded in CUST-WP-0068 and clears when ADR-012's reset-from-forge lands. Refs CUST-WP-0068-T03 Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
3.1 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|
| RAPPS-WP-0002 | workplan | railiance01 + activity-core unattended CNPG/Forgejo backup automation | financials | railiance-apps | finished | codex | railiance | 2026-07-22 | 2026-07-22 | 4bc748b8-7d4c-5d3f-8602-4d2280f4b60f |
railiance01 + activity-core unattended backup automation
Goal achieved (hybrid, no workstation for daily path):
| Host | Unattended mechanism | Coverage |
|---|---|---|
| CoulombCore | In-cluster CronJobs + image cnpg-option-a-backup:v1 (age baked in) |
apps-pg, gitea-db, net-kingdom-pg, state-hub-db |
| railiance01 | activity-core daily-cnpg-option-a-backup @ 02:30 UTC |
forgejo-db, net-kingdom-pg, state-hub-db |
CoulombCore API is not reachable from railiance01 (no tunnel); dual-host design keeps Core local CronJobs and R01 on activity-core. Workstation is not required for daily RPO.
Evidence: docs/evidence/cnpg-option-a-unattended-20260722.json
Task: Inventory production-of-record DB topology
id: RAPPS-WP-0002-T01
status: done
priority: high
state_hub_task_id: "f10d7bc0-44c0-51b6-b749-18cc6fb28956"
docs/cnpg-backup-topology-inventory.md
Task: Package offline-capable backup runner for railiance01
id: RAPPS-WP-0002-T02
status: done
priority: high
state_hub_task_id: "bb6ba8b9-a4dd-5825-bde0-21927b7d88b2"
Platform CLI + vendor age; image cnpg-option-a-backup:v1 for Core; python
upload fallback when curl missing in worker.
Task: Non-interactive offsite credentials for activity-core worker
id: RAPPS-WP-0002-T03
status: done
priority: high
needs_human: false
state_hub_task_id: "daa173a1-daae-5907-bb8b-9a0fca201498"
ESO actcore-backup-offsite SecretSynced; worker has NC_WEBDAV_*.
Task: CoulombCore API reachability from railiance01 worker
id: RAPPS-WP-0002-T04
status: done
priority: high
state_hub_task_id: "190edc0a-8097-5e53-aaaf-445ac124579a"
Decision recorded: Core API not reachable from R01; Core backups run in-cluster on CoulombCore (CronJobs + local image import). R01 worker uses host kubeconfig for local clusters only.
Task: activity-core ActivityDefinition + shell resolver
id: RAPPS-WP-0002-T05
status: done
priority: high
state_hub_task_id: "544df9d5-6f67-5709-a6f4-3dac371ae2b1"
daily-cnpg-option-a-backup enabled; Temporal schedule upserted; resolver smoke
overall=ok; CLI smoke 4 dumps/uploads on R01.
Task: Cut over health definition and retire workstation dependency
id: RAPPS-WP-0002-T06
status: done
priority: medium
state_hub_task_id: "0f34a452-d5e6-5315-baea-7457298d59c0"
make cnpg-backup-status → ok with in-cluster CronJobs + last-success.
Schedule mode in-cluster-cron.
Task: Soak, restore drill from automated artifact, finish
id: RAPPS-WP-0002-T07
status: done
priority: high
state_hub_task_id: "593fa1ba-a1da-5b76-9e12-596f0ce92c44"
Automated CronJob/activity-core artifacts produced; prior restore drill pattern from WP-0015 still valid; unattended evidence JSON recorded. Ongoing soak is operational (daily schedules live).