- Archived CUST-WP-0054/0057/0058: replace stale state_hub IDs with the live hub records (matched by task title and status), clearing 13 C-03 failures. - CUST-WP-0054-T09/T10: record cancel in the file, matching the hub state at plan closeout. - Eleven finished workplans: non-canonical 'completed' -> 'finished'. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
208 lines
8.2 KiB
Markdown
208 lines
8.2 KiB
Markdown
---
|
|
id: CUST-WP-0058
|
|
type: workplan
|
|
title: "Business platform enablement — decisions, service contract, client plane"
|
|
domain: infotech
|
|
repo: the-custodian
|
|
status: finished
|
|
owner: codex
|
|
topic_slug: custodian
|
|
created: "2026-07-10"
|
|
updated: "2026-07-10"
|
|
state_hub_workstream_id: "e7c5e7c8-4a8e-5eff-906d-a968404719c2"
|
|
---
|
|
|
|
# CUST-WP-0058 — Business Platform Enablement
|
|
|
|
## Goal
|
|
|
|
Enable Binky Hedgehog GmbH commercial offerings on the coulomb/HelixForge
|
|
platform by (a) resolving the three gating platform decisions, (b) codifying
|
|
what every client-facing business application must provide, and (c) scoping
|
|
the missing client/commercial management plane — so that **vergabe-teilnahme**
|
|
(first business project) and the **coulomb.social rebuild** (second) land on
|
|
a governed, extensible path rather than ad hoc wiring.
|
|
|
|
This is a *coordination* workplan: implementation lands in the owning repos
|
|
(`vergabe-teilnahme`, `fin-hub`, `ops-hub`, `core-hub`, railiance repos).
|
|
The Custodian owns decisions, canon, and cross-repo sequencing per ADR-001.
|
|
|
|
## Background
|
|
|
|
- Hub-ecosystem review 2026-07-09: architecture sound (hub-core / state-hub /
|
|
core-hub compose-don't-merge, `CUST-WP-0057`); gaps are a missing
|
|
client/commercial plane and three unrecorded decisions.
|
|
- Decision framing: `docs/business-platform-decision-records.md` (DR-1
|
|
tenancy, DR-2 coulomb.social shape, DR-3 external identity).
|
|
- fin-hub MVP (cost tracking, runway, RaaS pricing MVP) shipped via
|
|
`FIN-WP-0000/0001`; **client-facing billing** remains open.
|
|
- Delivery lane pattern proven for Core Hub
|
|
(`docs/core-hub-helixforge-build-alignment.md`): commit-SHA images →
|
|
`gitea.coulomb.social` registry → railiance-apps release values →
|
|
evidence gates.
|
|
|
|
## Non-goals
|
|
|
|
- Implementing vergabe-teilnahme features (owned by that repo)
|
|
- Rebuilding coulomb.social (blocked on DR-2; owned by its future repo)
|
|
- Building client-hub (this plan only *scopes* it; implementation gets its
|
|
own workplan in the owning repo)
|
|
- Payment execution / invoicing mechanics (fin-hub scope decision)
|
|
|
|
## Tasks
|
|
|
|
### T01 — Facilitate and record DR-1: tenancy model
|
|
|
|
```task
|
|
id: CUST-WP-0058-T01
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "c63ce2e9-b035-588c-9fb0-c3c0311d17d8"
|
|
```
|
|
|
|
**Resolved 2026-07-10: Option C (hybrid)** — instance-per-client to start,
|
|
early cost-optimization move. Hub decision `d85cd185…`; doc updated with
|
|
consistency Refinement 1 (consolidation-ready data model required by the
|
|
service contract; consolidation is a DR-3 identity trigger). No
|
|
vergabe-teilnahme SCOPE change needed for v1 (stays single-tenant deployed).
|
|
|
|
### T02 — Facilitate and record DR-2: coulomb.social architecture
|
|
|
|
```task
|
|
id: CUST-WP-0058-T02
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "7256462f-7044-5f7e-898e-68caadf2d678"
|
|
```
|
|
|
|
**Resolved 2026-07-10: Option B (standalone application)** — hub decision
|
|
`1f8b109e…`. coulomb.social is its own app with a distinct ops model; Binky
|
|
Hedgehog GmbH acts as client #1 of its own platform, consuming the same
|
|
delivery lane and service contract as external-client apps. The bubble.io
|
|
data-migration assessment and rebuild workplan skeletons are seeded in T08.
|
|
|
|
### T03 — Facilitate and record DR-3: external identity path
|
|
|
|
```task
|
|
id: CUST-WP-0058-T03
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "c8513461-d507-5802-8428-1384062407e5"
|
|
```
|
|
|
|
**Resolved 2026-07-10: Option A (app-local accounts)** — hub decision
|
|
`ebcf0573…`, demand-gated Keycloak follow-up. Refinement 2 replaces the
|
|
"coulomb.social auto-trigger" with three demand triggers (client SSO/AD
|
|
request; instance consolidation; local-account toil across >2 apps).
|
|
NetKingdom lane notified 2026-07-10 (message `0d238b6e…`). Identity baseline
|
|
for T04: app-local accounts, consolidation-ready.
|
|
|
|
### T04 — Author business-app service contract (canon standard)
|
|
|
|
```task
|
|
id: CUST-WP-0058-T04
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "41cfcc77-286f-5ed2-bcbe-bad9d364f670"
|
|
```
|
|
|
|
Draft `canon/standards/business-app-service-contract_v0.1.md` (proposal →
|
|
human review, per canon gating): obligations every client-facing app must
|
|
meet — build evidence (commit-SHA images, registry), backup/restore hooks
|
|
into ops-hub, incident/runbook registration, cost attribution keys for
|
|
fin-hub, **app-local identity baseline (DR-3 A)**, data-protection baseline,
|
|
**instance-per-client provisioning/upgrade duties (DR-1 C)**, and
|
|
**consolidation-ready data model** (Refinement 1: tenant-keyed data even when
|
|
deployed single-tenant). Applies equally to client apps and Binky Hedgehog's
|
|
own apps (coulomb.social — DR-2 B "client #1" model). vergabe-teilnahme is
|
|
the reference implementation. Unblocked: DR-1/DR-3 resolved 2026-07-10.
|
|
|
|
### T05 — Scope client-hub (client/commercial plane)
|
|
|
|
```task
|
|
id: CUST-WP-0058-T05
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "38514d03-f88b-5c7b-9921-9d2d008cce86"
|
|
```
|
|
|
|
Write a scoping note (`docs/client-hub-scoping.md`) for the missing fourth
|
|
management plane: client registry, contracts/entitlements, client↔instance
|
|
mapping, support/SLA state. Default shape: **core-hub extension** (ops-hub
|
|
pattern) reusing hub-core primitives — justify any deviation. Per DR-1 C the
|
|
client↔instance model is 1..n instances per client, consolidation-aware;
|
|
Binky Hedgehog GmbH itself is client #1 (DR-2 B). Output is a draft workplan
|
|
skeleton for the owning repo, not implementation. Unblocked: DR-1 resolved.
|
|
|
|
### T06 — fin-hub client-billing gap assessment
|
|
|
|
```task
|
|
id: CUST-WP-0058-T06
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "867b80d6-4ab3-5251-bbff-03d369d29ecb"
|
|
```
|
|
|
|
Review `FIN-WP-0000/0001` outcomes against what commercial clients need:
|
|
per-client cost attribution, price-to-invoice data flow, and where the
|
|
fin-hub "no payment execution / no multi-tenant billing" boundary should
|
|
move (or which external system owns billing). Output: gap list + proposed
|
|
FIN-WP workplan skeleton posted to the fin-hub lane.
|
|
|
|
### T07 — Delivery-lane pilot: vergabe-teilnahme end-to-end
|
|
|
|
```task
|
|
id: CUST-WP-0058-T07
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "e46cbeb9-04d8-5bf7-af8a-9aabb845e487"
|
|
```
|
|
|
|
Coordinate one full pass of the business delivery lane with a real (or
|
|
pilot) client instance: vergabe-teilnahme build → immutable image in
|
|
`gitea.coulomb.social` registry → railiance-apps release values → deployed
|
|
instance → ops-hub evidence (endpoint, backup, smoke) → fin-hub cost
|
|
attribution. **Done 2026-07-10 as a conformance snapshot** — the lane was
|
|
already live (image `f95de14` at vergabe-teilnahme.whywhynot.de, 49d):
|
|
build/registry/deploy/smoke PASS; four contract gaps found and handed to
|
|
owners (tenant keying → vergabe-teilnahme; ops-hub registration → ops-hub;
|
|
**cnpg backups missing on ALL four prod DB clusters** → railiance-apps,
|
|
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
|
|
|
|
```task
|
|
id: CUST-WP-0058-T08
|
|
status: done
|
|
priority: low
|
|
state_hub_task_id: "0509870a-6a51-51e3-9a29-2aa3fc820f52"
|
|
```
|
|
|
|
**Done 2026-07-10.** DR-1/2/3 resolved; service contract accepted in canon.
|
|
Handoffs delivered: fin-hub FIN-WP-0002 (msg `9c8e8ed4…`), core-hub
|
|
CLNT-WP-0001 (msg `17f8c11b…`), vergabe-teilnahme gaps (msg `f49d2651…`),
|
|
ops-hub registration (msg `f0374952…`), railiance-apps backup HIGH
|
|
(msg `a1957cce…`), NetKingdom NK-WP-0011 triggers (msg `0d238b6e…`).
|
|
coulomb.social rebuild seeded in `docs/coulomb-social-rebuild-seed.md`
|
|
(no owning repo yet — created at project registration). SCOPE.md updated.
|
|
|
|
## Sequencing
|
|
|
|
```text
|
|
[DR-1 ✓, DR-2 ✓, DR-3 ✓ — resolved 2026-07-10]
|
|
|
|
T03 (NetKingdom trigger message) — small, immediate
|
|
T04 (contract) ──> T07 (delivery-lane pilot)
|
|
T05 (client-hub scope) — unblocked, parallel to T04
|
|
T06 (fin-hub gap) — independent, anytime
|
|
T08 (closeout: seed coulomb.social rebuild + bubble.io migration skeletons) — last
|
|
```
|
|
|
|
## References
|
|
|
|
- `docs/business-platform-decision-records.md` — DR-1/2/3 framing
|
|
- `docs/hub-ecosystem-architecture.md` — three-layer hub canon
|
|
- `docs/core-hub-helixforge-build-alignment.md` — delivery lane pattern
|
|
- `/home/worsch/vergabe-teilnahme/SCOPE.md` — first business app
|
|
- `/home/worsch/fin-hub/workplans/` — FIN-WP-0000/0001 (finished)
|