- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains - Omit embedded publish git dirs and empty placeholders from index Made-with: Cursor
2.3 KiB
ADR: Sankofa IT control-plane API placement
Status: Accepted (2026-04-09)
Context: SANKOFA_IT_OPERATIONS_CONTROLLER_SPEC.md
Decision: Where the IT BFF / read API lives relative to dbis_core and deployment topology.
Decision
-
Phase 0–1 (current): The read-only HTTP surface stays in this proxmox repo as
services/sankofa-it-read-api/server.py, deployed to a seed Proxmox node under/opt/proxmox(seebootstrap-sankofa-it-read-api-lan.sh). It serves LAN/VLAN 11 only (plus optional NPM internal host). No coupling todbis_coreruntime. -
Phase 2+ (full BFF): Add a dedicated small service (same repo or new
sankofa-it-apirepo) on a dedicated CT with Postgres for snapshots, drift history, port-map CRUD, and audit log. Still not embedded in thedbis_coremonolith, to avoid shipping Proxmox/UniFi secrets with the app server and to allow independent deploy/rollback. -
Marketplace / billing linkage: Native infra SKUs and Stripe (or other) subscriptions are linked from the IT DB to
dbis_corecatalog rows viaexternal_sku_id/ subscription id (seeconfig/it-operations/entitlements-schema.sql).dbis_coreremains the commerce/API source for partner IRU patterns; the IT controller stores entitlements and metering, not a second unrelated product catalog.
Consequences
- Operators clone proxmox for IT scripts, workflows, and read API; portal (
Sankofa/portal) callsIT_READ_API_URLon LAN. - Future OIDC validation and Postgres move replace or front the read API without changing portal route contracts (
/v1/inventory/*,/v1/summary). dbis_corePRs do not need to land for every IT collector change.
Alternatives considered
| Option | Rejected because |
|---|---|
| BFF inside dbis_core | Couples infra secrets and deploy cadence to Phoenix/API releases; larger blast radius. |
| Only markdown/git as UI | Violates live-first rule; no collected_at or drift alerts. |
| Public BFF without auth | Violates spec; Proxmox data must not be world-readable. |