39 lines
1.1 KiB
Markdown
39 lines
1.1 KiB
Markdown
|
|
# ADR-001: Platform Model and Tenancy Strategy
|
||
|
|
|
||
|
|
Status: Accepted
|
||
|
|
Date: 2026-07-03
|
||
|
|
|
||
|
|
## Context
|
||
|
|
|
||
|
|
The existing repository has evolved from marketplace website delivery.
|
||
|
|
The target product is Marketplace-as-a-Service with unlimited tenants on one runtime.
|
||
|
|
|
||
|
|
## Decision
|
||
|
|
|
||
|
|
Adopt a platform runtime model:
|
||
|
|
|
||
|
|
- One Angular application serves all tenants.
|
||
|
|
- Tenant identity is resolved by backend from request Host.
|
||
|
|
- Frontend does not pass tenant id or project key.
|
||
|
|
- Frontend starts by requesting GET /bootstrap.
|
||
|
|
- Tenant-specific website, builder, and backoffice behavior derives from bootstrap configuration.
|
||
|
|
|
||
|
|
## Consequences
|
||
|
|
|
||
|
|
Positive:
|
||
|
|
|
||
|
|
- Tenant onboarding becomes configuration-driven.
|
||
|
|
- Eliminates tenant forks and branch divergence.
|
||
|
|
- Strong separation of platform engine and tenant data.
|
||
|
|
|
||
|
|
Negative:
|
||
|
|
|
||
|
|
- Requires strict discipline against tenant conditionals in UI code.
|
||
|
|
- Requires robust bootstrap schema governance.
|
||
|
|
|
||
|
|
## Compliance Requirements
|
||
|
|
|
||
|
|
- No environment-based tenant branching in presentation logic.
|
||
|
|
- No tenant-specific routes hardcoded in feature components.
|
||
|
|
- Tenant behavior is represented in typed configuration contracts.
|