Files
marketplaces/docs/backend-platform/config-domain.md
sdarbinyan 10251f2fc6
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
docs
2026-07-05 04:23:47 +04:00

76 lines
2.0 KiB
Markdown

# 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