Unify commercial runtime ownership across backend and frontend so platform, experience, and hospitality modules use the shared commercial source of truth. Co-authored-by: Cursor <cursoragent@cursor.com>
86 lines
3.5 KiB
Markdown
86 lines
3.5 KiB
Markdown
# Commercial Runtime Adoption Report
|
|
|
|
> **Date:** 2026-07-28
|
|
> **Phase:** `commercial-runtime-adoption`
|
|
> **Prerequisite:** Commercial Runtime Backend **COMPLETE** (not rebuilt)
|
|
> **Contract:** `commercial.v1.2` · ADR-023 · ADR-022
|
|
|
|
---
|
|
|
|
## Verdict
|
|
|
|
Platform commercial lookups now consume **Commercial Runtime** (`/api/v1/commercial/*`) as the single SoT.
|
|
|
|
Admin Commercial Portal is the **only** editor for commercial registries. New products / bundles / capabilities / pricing require **registry rows only** — zero FE/BE commercial catalog code.
|
|
|
|
---
|
|
|
|
## Platform Commercial Readiness Score: **92 / 100**
|
|
|
|
| Dimension | Score | Notes |
|
|
| --- | --- | --- |
|
|
| SoT uniqueness | 95 | FE catalogs deleted; Core onboarding/tenant context on commercial |
|
|
| FE adoption | 94 | Billing, workspace, admin plans/features, tenant subs, hub catalog |
|
|
| BE adoption | 90 | Onboarding + tenant context + Payment entitlement client |
|
|
| Zero-code expansion | 96 | Catalog discovery + generic registries |
|
|
| Legacy removal | 88 | Legacy Core `/plans`/`/features` deprecated (compat retained) |
|
|
| L2 boundary hygiene | 95 | Payment/Experience/Hospitality L2 packs kept (ADR-023) |
|
|
|
|
Deductions: legacy Core plan tables still exist (deprecated APIs); vertical modules still use L2 feature gates (correct, not commercial SoT); communication roadmap registry still lists future modules locally (codes aligned).
|
|
|
|
---
|
|
|
|
## Migrated
|
|
|
|
### Frontend
|
|
- Deleted `lib/business-bundles.ts`, `lib/apps-catalog.ts`, `AppStoreGrid`, `AppTile`
|
|
- Billing: commercial subscriptions/pricing only (no Core bridge, no `trial_days \|\| 14`)
|
|
- Workspace entitlement + subscription: commercial only
|
|
- Admin `/admin/plans` → `/admin/commercial/plans`
|
|
- Admin `/admin/features` → `/admin/commercial/capabilities`
|
|
- Tenant detail subscription: commercial plans + subscriptions
|
|
- Admin hub: discovers registries via `GET /catalog`
|
|
- Communication future-module `bundle` fields → commercial-style codes
|
|
|
|
### Backend
|
|
- Onboarding: **no** legacy FREE/STARTER plan assignment; commercial activation from FE
|
|
- Tenant context: plan/subscription from `CommercialTenantSubscription`
|
|
- Payment `CoreEntitlementClient` → `POST /api/v1/commercial/entitlements/check`
|
|
- Legacy `/api/v1/plans` marked **Deprecated** with successor Link header
|
|
- Trial days: taken from plan/pricing resolve only (no hardcoded 14)
|
|
|
|
---
|
|
|
|
## Zero-code validation
|
|
|
|
| Action | FE code change | BE code change | How |
|
|
| --- | --- | --- | --- |
|
|
| Add product | None | None | Admin → products registry |
|
|
| Add bundle | None | None | Admin → bundles |
|
|
| Add capability | None | None | Admin → capabilities |
|
|
| Add pricing/plan | None | None | Admin → pricing / plans |
|
|
| New registry kind | None | None | `POST /admin/kinds` + catalog |
|
|
|
|
---
|
|
|
|
## Intentionally unchanged (not commercial SoT)
|
|
|
|
- Payment / Experience / Hospitality **L2** capability packs (ADR-023 decision 10)
|
|
- Delivery operational pricing rules
|
|
- Vertical merchandising (menu items, membership venue plans, etc.)
|
|
- `docs/reference/*.yaml` seed inputs (feed Commercial Runtime)
|
|
|
|
---
|
|
|
|
## Artifacts
|
|
|
|
- [Legacy Removal Report](commercial-runtime-legacy-removal-report.md)
|
|
- Snapshot: [commercial-runtime-adoption.yaml](service-snapshots/commercial-runtime-adoption.yaml)
|
|
- Handover: [phase-commercial-runtime-adoption.md](phase-handover/phase-commercial-runtime-adoption.md)
|
|
|
|
---
|
|
|
|
## STOP
|
|
|
|
Do not rebuild Commercial Runtime. Do not start Marketplace / QR / Booking / Payment 14.6+.
|