TorbatYar/docs/commercial-runtime-adoption-report.md
Mortezakoohjani 0d424c500a feat(platform): complete commercial runtime consolidation
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>
2026-07-29 11:11:53 +03:30

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+.