TorbatYar/docs/commercial-source-of-truth-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

48 lines
2.0 KiB
Markdown

# Commercial Source Of Truth Report
> **Date:** 2026-07-28
> **Contract family:** `commercial.v1.2`
> **ADR:** ADR-023 · ADR-022 (ownership boundaries)
---
## Sole SoT
| Concern | Owner | API |
| --- | --- | --- |
| Products | Commercial Runtime | `/api/v1/commercial/products` |
| Bundles | Commercial Runtime | `/api/v1/commercial/bundles` |
| Pricing | Commercial Runtime | `/api/v1/commercial/pricing` |
| Plans / trials | Commercial Runtime | `/api/v1/commercial/plans`, `/trials` |
| Capabilities | Commercial Runtime | `/api/v1/commercial/capabilities` |
| Policies / assets / extensions / automation | Commercial Runtime | matching registry paths |
| Business types / recommendations / assessment | Commercial Runtime | engines + registries |
| Notifications templates | Commercial Runtime | `/api/v1/commercial/notifications` |
| Tenant subscriptions / licenses / entitlements | Commercial Runtime | `/subscriptions`, `/licenses`, `/entitlements/check` |
| Discovery | Commercial Runtime | `GET /api/v1/commercial/catalog` |
| Admin editing | Admin Commercial Portal | `/admin/commercial/*` |
Docs YAML under `docs/reference/*` are **seed/input catalogs**, not a second runtime.
---
## Explicitly NOT commercial SoT
| Concern | Owner |
| --- | --- |
| Payment L2 PSP/merchant packs | Payment service |
| Experience L2 page/form packs | Experience service |
| Hospitality L2 digital_menu/pos packs | Hospitality service |
| Delivery fee/capability ops | Delivery service |
| Money ledgers / invoices | Payment |
| Vertical operational data | Vertical services |
L2 packs are **referenced** by commercial capability codes; they are not duplicated commercial catalogs.
---
## Expansion rule
New commercial object = **publish registry row** (or register new kind via `POST /admin/kinds`).
**Zero** frontend and **zero** Commercial Runtime code changes for new products/bundles/pricing/capabilities/business types/automation/assets/extensions.