2026-07-10 00:29:59 +02:00
|
|
|
---
|
|
|
|
|
id: CUST-WP-0058
|
|
|
|
|
type: workplan
|
|
|
|
|
title: "Business platform enablement — decisions, service contract, client plane"
|
|
|
|
|
domain: infotech
|
|
|
|
|
repo: the-custodian
|
2026-07-11 01:26:53 +02:00
|
|
|
status: finished
|
2026-07-10 00:29:59 +02:00
|
|
|
owner: codex
|
|
|
|
|
topic_slug: custodian
|
|
|
|
|
created: "2026-07-10"
|
|
|
|
|
updated: "2026-07-10"
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_workstream_id: "13a991a3-6d98-4749-9639-dd4687cce55e"
|
2026-07-10 00:29:59 +02:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# 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
|
2026-07-10 01:11:04 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: high
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "b7130553-a3d9-4dfd-91d7-6edb503bab58"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
2026-07-10 01:11:04 +02:00
|
|
|
**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).
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
### T02 — Facilitate and record DR-2: coulomb.social architecture
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
id: CUST-WP-0058-T02
|
2026-07-10 01:11:04 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: medium
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "ec09753e-ecef-4368-af5d-5e295cdbda1e"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
2026-07-10 01:11:04 +02:00
|
|
|
**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.
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
### T03 — Facilitate and record DR-3: external identity path
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
id: CUST-WP-0058-T03
|
2026-07-10 01:11:04 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: high
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "ffead70c-2179-46ba-a70a-cf13be87eef8"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
2026-07-10 01:11:04 +02:00
|
|
|
**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.
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
### T04 — Author business-app service contract (canon standard)
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
id: CUST-WP-0058-T04
|
2026-07-10 01:28:57 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: high
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "a3cec70c-04a1-42a9-a6b0-3d2943b73968"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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
|
2026-07-10 01:11:04 +02:00
|
|
|
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.
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
### T05 — Scope client-hub (client/commercial plane)
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
id: CUST-WP-0058-T05
|
2026-07-10 01:28:57 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: medium
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "442b7f81-44c7-4301-9466-c99c240c4e49"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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
|
2026-07-10 01:11:04 +02:00
|
|
|
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.
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
### T06 — fin-hub client-billing gap assessment
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
id: CUST-WP-0058-T06
|
2026-07-10 01:28:57 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: medium
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "3a63f122-2398-4149-8458-eb5a3a54627c"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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
|
2026-07-10 09:28:41 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: high
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "d07443ab-76b1-4d66-981c-e83fcb915c0d"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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
|
2026-07-10 09:28:41 +02:00
|
|
|
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`.
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
### T08 — Closeout: decisions recorded, downstream workplans seeded
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
id: CUST-WP-0058-T08
|
2026-07-11 01:26:53 +02:00
|
|
|
status: done
|
2026-07-10 00:29:59 +02:00
|
|
|
priority: low
|
2026-07-10 00:32:18 +02:00
|
|
|
state_hub_task_id: "203f7afa-0162-4906-a4f2-c4789cd127bc"
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
2026-07-11 01:26:53 +02:00
|
|
|
**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.
|
2026-07-10 00:29:59 +02:00
|
|
|
|
|
|
|
|
## Sequencing
|
|
|
|
|
|
|
|
|
|
```text
|
2026-07-10 01:11:04 +02:00
|
|
|
[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
|
2026-07-10 00:29:59 +02:00
|
|
|
T06 (fin-hub gap) — independent, anytime
|
2026-07-10 01:11:04 +02:00
|
|
|
T08 (closeout: seed coulomb.social rebuild + bubble.io migration skeletons) — last
|
2026-07-10 00:29:59 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 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)
|