Register all active platform services and base features in core DB so admin can manage them, add delivery/hospitality/sports-center backend phases, update apps catalog and production deploy tooling. Co-authored-by: Cursor <cursoragent@cursor.com>
111 lines
4.2 KiB
Markdown
111 lines
4.2 KiB
Markdown
# Phase Handover — 10.0 Delivery Platform Foundation
|
|
|
|
## Metadata
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Phase ID | `delivery-10.0` |
|
|
| Title | Delivery Platform Foundation |
|
|
| Status | Complete |
|
|
| Service(s) | `delivery` |
|
|
| Version | 0.10.0.0 |
|
|
| Date | 2026-07-25 |
|
|
| ADR(s) | [ADR-015](../architecture/adr/ADR-015.md) |
|
|
|
|
## Reusable Components
|
|
|
|
| Component | Location | Reuse notes |
|
|
| --- | --- | --- |
|
|
| TenantBaseRepository | `app/repositories/base.py` | All later Delivery repos |
|
|
| InMemoryEventPublisher | `app/events/publisher.py` | Replace with outbox later |
|
|
| Provider Protocols | `app/providers/contracts.py` | RoutingEngine / Fleet adapters |
|
|
| Permission enforcement | `app/api/permissions.py` | Loyalty-style require_permissions |
|
|
|
|
## Public APIs
|
|
|
|
| Method | Path | Auth / Permission | Notes |
|
|
| --- | --- | --- | --- |
|
|
| GET | `/health` | Public | Liveness |
|
|
| GET | `/capabilities` | Public | Feature discovery |
|
|
| GET | `/metrics` | Public | Metrics discovery shell |
|
|
| * | `/api/v1/organizations` | JWT + `delivery.organizations.*` | CRUD + soft delete |
|
|
| * | `/api/v1/hubs` | JWT + `delivery.hubs.*` | CRUD + soft delete |
|
|
| * | `/api/v1/external-providers` | JWT + `delivery.external_providers.*` | Registration shells |
|
|
| * | `/api/v1/routing-engines` | JWT + `delivery.routing_engines.*` | Future engines ready |
|
|
| * | `/api/v1/configurations` | JWT + `delivery.configurations.*` | Policy shells |
|
|
| PUT/GET | `/api/v1/settings` | JWT + `delivery.settings.*` | Upsert/list |
|
|
| GET | `/api/v1/audit` | JWT + `delivery.audit.view` | Entity timeline |
|
|
|
|
## Events
|
|
|
|
| Event type | Domain / Integration | Payload summary | Version |
|
|
| --- | --- | --- | --- |
|
|
| `delivery.organization.created` | Delivery | code, name | 0.10.0.0 |
|
|
| `delivery.organization.updated` | Delivery | code | 0.10.0.0 |
|
|
| `delivery.hub.created` / `updated` | Delivery | code, organization_id | 0.10.0.0 |
|
|
| `delivery.external_provider.registered` / `updated` | Delivery | code, adapter_key | 0.10.0.0 |
|
|
| `delivery.routing_engine.registered` / `updated` | Delivery | code, adapter_key | 0.10.0.0 |
|
|
| `delivery.configuration.created` / `updated` | Delivery | code | 0.10.0.0 |
|
|
| `delivery.setting.upserted` | Delivery | key | 0.10.0.0 |
|
|
|
|
## Extension Points
|
|
|
|
| Extension point | How to extend | Forbidden uses |
|
|
| --- | --- | --- |
|
|
| RoutingEngineProvider | Adapter implementing Protocol | Verticals calling routers directly |
|
|
| FleetProvider | Adapter implementing Protocol | Credentials outside Delivery |
|
|
| ExternalProviderConfig | Register adapter_key + credentials_ref | Embedding vendor SDKs in services layer |
|
|
| Capability flags | Expand `/capabilities` per phase | Claiming engines before implemented |
|
|
|
|
## Known Limitations
|
|
|
|
- No driver / fleet / dispatch / routing / tracking engines
|
|
- Event publisher is in-memory (no durable outbox drain yet)
|
|
- Metrics are discovery shells, not live counters
|
|
- Driver App / Dispatcher Panel UI deferred to frontend
|
|
- Compose health depends on postgres being available
|
|
|
|
## Migration Notes
|
|
|
|
| Item | Detail |
|
|
| --- | --- |
|
|
| Alembic revision(s) | `0001_initial` |
|
|
| Upgrade steps | `python scripts/ensure_db.py && alembic upgrade head` |
|
|
| Downgrade support | `metadata.drop_all` |
|
|
| Data backfill | None |
|
|
| Breaking changes | None (new service) |
|
|
|
|
## Dependencies
|
|
|
|
| Dependency | Type | Required for |
|
|
| --- | --- | --- |
|
|
| ADR-015 / DP-Reg handover | Docs | Boundaries |
|
|
| Core Platform | Service | Entitlement (runtime) |
|
|
| shared-lib | Library | JWT, events, exceptions |
|
|
| Postgres | Infra | `delivery_db` |
|
|
|
|
## Next Phase Entry
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Recommended next phase | `delivery-10.1` Driver Management |
|
|
| Blockers for next phase | None |
|
|
| Entry checklist | Read this handover + [delivery-phase-10-0.md](../delivery-phase-10-0.md) + ADR-015; implement drivers only — no dispatch yet |
|
|
|
|
## Completion Sign-Off
|
|
|
|
- [x] Quality gates passed
|
|
- [x] Tests green
|
|
- [x] Documentation updated
|
|
- [x] Progress / next-steps / registries updated
|
|
- [x] No unfinished claimed deliverables
|
|
- [x] Self audit completed
|
|
|
|
## Related Documents
|
|
|
|
- [Delivery Phase 10.0](../delivery-phase-10-0.md)
|
|
- [Delivery Roadmap](../delivery-roadmap.md)
|
|
- [ADR-015](../architecture/adr/ADR-015.md)
|
|
- [Phase Manifest](../ai-framework/phase-manifest.yaml)
|
|
- [Service Manifest](../ai-framework/service-manifest.yaml)
|