This commit is contained in:
75
docs/backend-platform/config-domain.md
Normal file
75
docs/backend-platform/config-domain.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# Config Domain
|
||||
|
||||
## 1. Purpose
|
||||
CONFIG DOMAIN provides runtime UI configuration for a tenant.
|
||||
It enables one frontend build to serve many tenants by changing configuration, not code.
|
||||
|
||||
Primary outputs:
|
||||
- `/bootstrap`
|
||||
- `/pages/:slug` (static content domain)
|
||||
|
||||
## 2. Ownership
|
||||
Config domain owns:
|
||||
- tenant public runtime metadata
|
||||
- theme and visual tokens
|
||||
- layout mode and page structure
|
||||
- widget registry metadata pointers
|
||||
- footer metadata and legal-page mapping
|
||||
- feature flags and localization mappings
|
||||
|
||||
Business domain owns:
|
||||
- items, categories, cart, orders, payments, auth
|
||||
|
||||
## 3. Layout Engine Responsibility
|
||||
Backend returns layout intent (e.g., `layout.type`) and page graph.
|
||||
Frontend layout engine composes UI from this graph.
|
||||
|
||||
Supported modes:
|
||||
- default
|
||||
- sidebar-left
|
||||
- carousel-home
|
||||
- minimal
|
||||
|
||||
No tenant-specific UI branching in component code.
|
||||
|
||||
## 4. Widget Registry Concept
|
||||
Backend provides `widgetRegistry.manifestUrl`.
|
||||
Frontend reads manifest and resolves approved widget keys.
|
||||
|
||||
Benefits:
|
||||
- controlled extensibility
|
||||
- unknown widget safe fallback
|
||||
- decoupled rollout of widget metadata
|
||||
|
||||
## 5. Footer + Static Page System
|
||||
Footer metadata includes:
|
||||
- columns and links
|
||||
- payment icons
|
||||
- legal page references
|
||||
- localized copyright
|
||||
|
||||
Static pages provide multilingual HTML per slug.
|
||||
Frontend renders through safe sanitization path.
|
||||
|
||||
## 6. Feature Flags
|
||||
Feature flags in bootstrap:
|
||||
- enable/disable capabilities at tenant scope
|
||||
- support gradual rollout
|
||||
- avoid deployment-based behavior switches
|
||||
|
||||
## 7. Config Data vs Business Data
|
||||
Config data:
|
||||
- shapes the interface
|
||||
- relatively low-frequency changes
|
||||
- public-safe payloads
|
||||
|
||||
Business data:
|
||||
- transactional/catalog state
|
||||
- high-frequency updates
|
||||
- operational integrity requirements
|
||||
|
||||
## 8. Why Separation Matters
|
||||
- scalability: independent lifecycle for UI config and business operations
|
||||
- safety: prevents leaking operational logic into UI composition
|
||||
- maintainability: clear boundaries and lower coupling
|
||||
- multi-tenant readiness: behavior changes per tenant without code fork
|
||||
Reference in New Issue
Block a user