Add the experience service with sites through analytics/AI hooks, migrations through 0011, and phase docs/manifests marking the track complete. Co-authored-by: Cursor <cursoragent@cursor.com>
84 lines
3.1 KiB
Markdown
84 lines
3.1 KiB
Markdown
# Phase: Experience Platform Foundation (11.0)
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Identifier | `experience-11.0` |
|
|
| Status | Complete |
|
|
| Owner | Platform |
|
|
| Module(s) | Experience foundation shells |
|
|
| Service(s) | `experience` (Torbat Pages) |
|
|
| Depends On | `experience-reg` |
|
|
| ADR(s) | [ADR-016](architecture/adr/ADR-016.md) |
|
|
| Manifest | [phase-manifest.yaml](ai-framework/phase-manifest.yaml) |
|
|
|
|
## Objective
|
|
|
|
Scaffold the independent Experience Platform service (`experience_db`, port 8008) with health/capabilities/metrics, tenant-aware foundation aggregates, permissions, publish-only events, audit/config shells, and provider contracts — without page/theme/template engines.
|
|
|
|
## Scope
|
|
|
|
### In Scope
|
|
|
|
- FastAPI service under `backend/services/experience`
|
|
- Alembic `0001_initial` for foundation tables
|
|
- `GET /health`, `/capabilities`, `/metrics`
|
|
- Workspaces, locale profiles, external providers, render-engine registrations, configurations, settings, audit
|
|
- Permissions `experience.*`; events `experience.*`
|
|
- Compose / `.env.example` / `init-dbs.sql` wiring
|
|
- Architecture, tenant isolation, security, migration, docs tests
|
|
|
|
### Models
|
|
|
|
| Entity | Soft delete | Audit | Tenant |
|
|
| --- | --- | --- | --- |
|
|
| ExperienceWorkspace | Yes | Yes | Yes |
|
|
| ExperienceLocaleProfile | Yes | Yes | Yes |
|
|
| ExperienceRole / Permission | Yes | Yes | Yes |
|
|
| ExternalProviderConfig | Yes | Yes | Yes |
|
|
| RenderEngineRegistration | Yes | Yes | Yes |
|
|
| ExperienceConfiguration | Yes | Yes | Yes |
|
|
| ExperienceSetting | Yes | Yes | Yes |
|
|
| ExperienceAuditLog | No | Append-only | Yes |
|
|
|
|
### Permissions
|
|
|
|
`experience.view|manage`, `experience.workspaces.*`, `experience.locale_profiles.*`, `experience.external_providers.*`, `experience.render_engines.*`, `experience.configurations.*`, `experience.settings.*`, `experience.audit.view`, plus planned `sites|pages|components|themes|templates|forms` trees.
|
|
|
|
### Events
|
|
|
|
`experience.workspace.*`, `experience.locale_profile.*`, `experience.external_provider.*`, `experience.render_engine.*`, `experience.configuration.*`, `experience.setting.upserted`
|
|
|
|
### APIs
|
|
|
|
| Method | Path |
|
|
| --- | --- |
|
|
| GET | `/health`, `/capabilities`, `/metrics` |
|
|
| CRUD shells | `/api/v1/workspaces`, `/locale-profiles`, `/external-providers`, `/render-engines`, `/configurations`, `/settings`, `/audit` |
|
|
|
|
### Tests
|
|
|
|
- [x] Unit / architecture / dependency / permissions
|
|
- [x] Integration / API + tenant isolation
|
|
- [x] Migration / security / documentation
|
|
|
|
## Out of Scope
|
|
|
|
- Sites / pages / page builder / themes / templates / CMS / forms engines
|
|
- Bundle licensing deep engine (shell readiness only via capabilities)
|
|
- Frontend builder UI
|
|
- Cross-DB access
|
|
|
|
## Completion Criteria
|
|
|
|
- [x] Scaffold + migration + health/capabilities/metrics
|
|
- [x] Tenant isolation + architecture + docs tests green
|
|
- [x] No page/theme/template engines beyond foundation shells
|
|
- [x] Docs / manifests / handover updated
|
|
|
|
## Related Documents
|
|
|
|
- [Experience Roadmap](experience-roadmap.md)
|
|
- [Handover](phase-handover/phase-11-0.md)
|
|
- [ADR-016](architecture/adr/ADR-016.md)
|
|
- [XP-Reg Handover](phase-handover/phase-xp-reg.md)
|