63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
# Configuration Standards
|
|
|
|
Status: Mandatory
|
|
Date: 2026-07-03
|
|
|
|
## Source of Truth
|
|
|
|
- All runtime application configuration originates from bootstrap payload.
|
|
- ConfigService is the only component allowed to load configuration.
|
|
- No direct JSON loading outside ConfigService.
|
|
|
|
## Provider Abstraction
|
|
|
|
- Configuration provider must be swappable.
|
|
- Mock and API providers must return identical schema.
|
|
- Consumer code remains unchanged when provider changes.
|
|
|
|
## Bootstrap Contract Scope
|
|
|
|
Bootstrap includes at minimum:
|
|
|
|
- Tenant
|
|
- Branding
|
|
- Theme
|
|
- Company
|
|
- Feature flags
|
|
- Navigation
|
|
- Pages, sections, widgets
|
|
- Localization
|
|
- SEO
|
|
- Permissions and capability model
|
|
- Endpoint descriptors
|
|
|
|
## Backend Compatibility
|
|
|
|
- Frontend calls GET /bootstrap.
|
|
- Backend resolves tenant from Host.
|
|
- Frontend does not send tenant id/project key.
|
|
|
|
## Validation and Versioning
|
|
|
|
- Bootstrap payload must include schema version.
|
|
- Validate payload before applying to runtime.
|
|
- Invalid payload fails fast with controlled fallback.
|
|
|
|
## Mock Rules
|
|
|
|
- Mock payloads must match future API responses exactly.
|
|
- No mock-only fields.
|
|
- No mock-only nesting conventions.
|
|
|
|
## Sprint 11.5 Bootstrap Audit Addendum
|
|
|
|
- Every configurable website behavior must be representable in bootstrap contracts or widget metadata.
|
|
- Missing configuration must be documented before implementation work starts.
|
|
- Frontend teams must not implement backend contract changes in standardization sprints.
|
|
|
|
Current documented gaps:
|
|
|
|
- Widget role/permission enforcement requires richer auth session claims than currently available.
|
|
- Catalog popular-search defaults should move from facade constants into bootstrap `catalog` config.
|
|
- Optional override support for persistent-storage key prefixes is not yet represented in bootstrap schema.
|