CUST-WP-0058-T07: delivery-lane conformance snapshot — 4 gaps, 1 HIGH
Lane already live (f95de14 @ vergabe-teilnahme.whywhynot.de). PASS: standalone shape, commit-SHA image, registry, TLS ingress, smoke. FAIL: tenant keying (§1.3), ops-hub registration (§4.1), cnpg backups (§4.2 — missing on ALL four prod DB clusters, railiance-apps alerted), fin-hub cost attribution (§5.1). Evidence bundle under docs/evidence/. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
c42f1e239f
commit
51e40f1b52
2 changed files with 60 additions and 7 deletions
52
docs/evidence/vergabe-teilnahme-delivery-lane-20260710.json
Normal file
52
docs/evidence/vergabe-teilnahme-delivery-lane-20260710.json
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
"evidence": "business delivery lane — vergabe-teilnahme conformance snapshot",
|
||||||
|
"workplan": "CUST-WP-0058-T07",
|
||||||
|
"contract": "canon/standards/business-app-service-contract_v0.1.md",
|
||||||
|
"captured_at": "2026-07-10",
|
||||||
|
"captured_by": "custodian (Claude Code session)",
|
||||||
|
"deployment": {
|
||||||
|
"source_repo": "vergabe-teilnahme",
|
||||||
|
"deployed_image": "gitea.coulomb.social/coulomb/vergabe-teilnahme:f95de14",
|
||||||
|
"image_tag_style": "immutable commit SHA",
|
||||||
|
"deployed_commit": "f95de14 (Fix CSRF 403 on all POSTs behind traefik)",
|
||||||
|
"repo_head": "1061f3e",
|
||||||
|
"drift_commits": 14,
|
||||||
|
"release_values": "railiance-apps/helm/vergabe-teilnahme-values.yaml",
|
||||||
|
"namespace": "vergabe-teilnahme",
|
||||||
|
"pod_age_days": 49,
|
||||||
|
"ingress": "vergabe-teilnahme.whywhynot.de (traefik, 92.205.130.254)",
|
||||||
|
"tls": "cert-manager certificate READY=True"
|
||||||
|
},
|
||||||
|
"smoke": {
|
||||||
|
"method": "curl HTTPS root",
|
||||||
|
"result": "302 -> /ausschreibungen/dashboard/ -> 200",
|
||||||
|
"latency_s": 0.15,
|
||||||
|
"automated": "Forgejo CI smoke workflow present in repo (2cb8885), runner execution not verified in this snapshot"
|
||||||
|
},
|
||||||
|
"database": {
|
||||||
|
"cluster": "apps-pg (cnpg, shared, 1 instance, healthy, 52d)",
|
||||||
|
"backup_spec": null,
|
||||||
|
"note": "NO cnpg backup configured — also true for gitea-db, net-kingdom-pg, state-hub-db"
|
||||||
|
},
|
||||||
|
"conformance": {
|
||||||
|
"s1_shape_standalone": "PASS",
|
||||||
|
"s1_tenancy_instance_per_client": "PASS (single pilot instance)",
|
||||||
|
"s1_3_consolidation_ready_tenant_keying": "FAIL — no tenant key in any Django app model",
|
||||||
|
"s2_app_local_identity": "PASS (Django accounts app)",
|
||||||
|
"s3_build_evidence_immutable_tags": "PASS",
|
||||||
|
"s3_registry": "PASS (gitea.coulomb.social/coulomb)",
|
||||||
|
"s4_1_ops_hub_registration": "FAIL — not in ops-hub service inventory",
|
||||||
|
"s4_2_backup_restore": "FAIL — no cnpg backup/scheduledbackup, no restore test evidence",
|
||||||
|
"s4_3_runbook": "GAP — no runbook found in app repo",
|
||||||
|
"s4_4_smoke": "PASS (manual); CI workflow present, runner evidence pending",
|
||||||
|
"s5_cost_attribution_key": "FAIL — no client x app x instance key in fin-hub (FIN-WP-0002 G1)",
|
||||||
|
"s6_data_protection_export_delete": "NOT ASSESSED (app-level feature review needed)"
|
||||||
|
},
|
||||||
|
"gap_owners": {
|
||||||
|
"tenant_keying": "vergabe-teilnahme repo",
|
||||||
|
"ops_hub_registration": "ops-hub repo",
|
||||||
|
"cnpg_backups": "railiance-apps repo (cluster-wide, all four DB clusters)",
|
||||||
|
"cost_attribution": "fin-hub repo (FIN-WP-0002)",
|
||||||
|
"runbook": "vergabe-teilnahme repo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -153,7 +153,7 @@ FIN-WP workplan skeleton posted to the fin-hub lane.
|
||||||
|
|
||||||
```task
|
```task
|
||||||
id: CUST-WP-0058-T07
|
id: CUST-WP-0058-T07
|
||||||
status: todo
|
status: done
|
||||||
priority: high
|
priority: high
|
||||||
state_hub_task_id: "d07443ab-76b1-4d66-981c-e83fcb915c0d"
|
state_hub_task_id: "d07443ab-76b1-4d66-981c-e83fcb915c0d"
|
||||||
```
|
```
|
||||||
|
|
@ -162,12 +162,13 @@ Coordinate one full pass of the business delivery lane with a real (or
|
||||||
pilot) client instance: vergabe-teilnahme build → immutable image in
|
pilot) client instance: vergabe-teilnahme build → immutable image in
|
||||||
`gitea.coulomb.social` registry → railiance-apps release values → deployed
|
`gitea.coulomb.social` registry → railiance-apps release values → deployed
|
||||||
instance → ops-hub evidence (endpoint, backup, smoke) → fin-hub cost
|
instance → ops-hub evidence (endpoint, backup, smoke) → fin-hub cost
|
||||||
attribution. Implementation tasks live in the owning repos; this task tracks
|
attribution. **Done 2026-07-10 as a conformance snapshot** — the lane was
|
||||||
sequencing and captures the evidence bundle under `docs/evidence/`.
|
already live (image `f95de14` at vergabe-teilnahme.whywhynot.de, 49d):
|
||||||
DR-2 is already resolved (B), so the pilot no longer feeds that decision —
|
build/registry/deploy/smoke PASS; four contract gaps found and handed to
|
||||||
it validates the standalone-app delivery lane that now has two consumers
|
owners (tenant keying → vergabe-teilnahme; ops-hub registration → ops-hub;
|
||||||
(vergabe-teilnahme and the coulomb.social rebuild). **Waits on:** T04
|
**cnpg backups missing on ALL four prod DB clusters** → railiance-apps,
|
||||||
contract draft (DR-1 resolved 2026-07-10).
|
HIGH, message `a1957cce…`; cost attribution → fin-hub FIN-WP-0002).
|
||||||
|
Evidence: `docs/evidence/vergabe-teilnahme-delivery-lane-20260710.json`.
|
||||||
|
|
||||||
### T08 — Closeout: decisions recorded, downstream workplans seeded
|
### T08 — Closeout: decisions recorded, downstream workplans seeded
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue