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>
6.2 KiB
6.2 KiB
Phase Handover — 10.1 Driver Management
Metadata
| Field | Value |
|---|---|
| Phase ID | delivery-10.1 |
| Title | Driver Management |
| Status | Complete |
| Service(s) | delivery |
| Version | 0.10.1.0 |
| Date | 2026-07-25 |
| ADR(s) | ADR-015, ADR-001, ADR-003, ADR-006 |
Enterprise Phase Discovery Summary
| Item | Detail |
|---|---|
| Discovery Record location | delivery-phase-10-1.md |
| Gaps promoted & closed | Driver aggregate, lifecycle, credentials/documents, outbox, list UX, permission leaves |
| Exclusions (future / other service) | Fleet 10.2; availability 10.3; dispatch 10.5; Identity/CRM/Storage ownership |
| CRUD-only rejected | Yes |
Business Analysis Summary
| Item | Detail |
|---|---|
| Capabilities delivered | Driver profiles; status lifecycle; credential & document refs; audit; outbox events; permission catalog |
| Explicit non-goals honored | No fleet, dispatch, routing execution, tracking, settlement |
Reusable Components
| Component | Location | Reuse notes |
|---|---|---|
| DriverLifecyclePolicy | app/policies/drivers.py |
Later availability/dispatch readiness checks |
| DriverListSpec | app/specifications/drivers.py |
Pattern for fleet/vehicle lists |
| TransactionalEventPublisher | app/events/publisher.py |
Prefer for all new Delivery mutations |
| DriverCommands / DriverQueries | `app/commands | queries/drivers.py` |
| TenantBaseRepository | app/repositories/base.py |
Continued |
Public APIs
| Method | Path | Auth / Permission | Notes |
|---|---|---|---|
| GET | /health |
Public | Liveness |
| GET | /capabilities |
Public | phase: 10.1, drivers: true |
| GET | /metrics |
Public | Driver metric keys |
| * | /api/v1/drivers |
JWT + delivery.drivers.* |
CRUD + lifecycle + credentials/documents |
| GET | /api/v1/permissions/catalog |
JWT + delivery.view |
Static permission discovery |
| * | Foundation routes from 10.0 | Unchanged | Backward compatible |
Events
| Event type | Domain / Integration | Payload summary | Version |
|---|---|---|---|
delivery.driver.created |
Delivery | code, status, organization_id | 0.10.1.0 |
delivery.driver.updated |
Delivery | code | 0.10.1.0 |
delivery.driver.status_changed |
Delivery | action, from/to status | 0.10.1.0 |
delivery.driver.activated / suspended / resumed / deactivated / blocked / unblocked / archived |
Delivery | code, status | 0.10.1.0 |
delivery.driver.deleted |
Delivery | code | 0.10.1.0 |
delivery.driver.credential_added |
Delivery | driver_id, kind | 0.10.1.0 |
delivery.driver.document_attached |
Delivery | driver_id, kind | 0.10.1.0 |
Permissions
| Permission | Routes / actions |
|---|---|
delivery.drivers.view |
GET list/detail |
delivery.drivers.create |
POST create |
delivery.drivers.update |
PATCH profile |
delivery.drivers.delete |
POST soft delete |
delivery.drivers.activate|suspend|resume|deactivate|block|unblock|archive |
Lifecycle POSTs |
delivery.drivers.lifecycle.view |
GET lifecycle history |
delivery.drivers.credentials.* |
Credential POST/GET |
delivery.drivers.documents.* |
Document POST/GET |
delivery.drivers.manage |
Wildcard manage leaf |
Extension Points
| Extension point | How to extend | Forbidden uses |
|---|---|---|
| Driver.capability_tags | Later pricing/bundles (10.4) | Encoding vertical order rules |
| external_user_ref / CRM ref | Identity/CRM link only | Owning users/contacts in Delivery |
| Storage file refs | Attachments via Storage | Storing blobs in delivery_db |
| Outbox drain | Worker/publisher later | Sync cross-DB writes |
Known Limitations
- No availability/shift/zone readiness (10.3)
- No vehicle assignment (10.2)
- Outbox drain worker not yet implemented (rows persisted; mirror in tests)
- Metrics remain discovery-oriented (no live Prometheus scrape counters)
- Driver App UI remains frontend (API only)
Migration Notes
| Item | Detail |
|---|---|
| Alembic revision(s) | 0002_phase_101_drivers |
| Upgrade steps | alembic upgrade head |
| Downgrade support | Drops additive driver/outbox tables |
| Data backfill / seeds | None |
| Breaking changes | None |
Dependencies
| Dependency | Type | Required for |
|---|---|---|
| Phase 10.0 foundation | Service | Org/hub validation |
| shared-lib | Library | JWT, events, exceptions |
| ADR-015 / ADR-006 | Docs | Boundaries / outbox |
Postgres delivery_db |
Infra | Persistence |
Boundary Compliance
- No foreign service ownership implemented
- No business logic duplication
- No cross-DB access
- Integrations only via API / Events / Providers
- No future-phase functionality pulled forward
Enterprise Completeness Sign-Off
- Business completeness
- Architectural completeness
- API completeness
- Permission completeness
- Capability completeness
- Event completeness
- Migration completeness
- Repository completeness
- Validation completeness
- Security completeness
- Performance completeness
- Documentation completeness
- Test completeness
- Operational readiness
- Developer experience
- Self audit
Next Phase Entry
| Field | Value |
|---|---|
| Recommended next phase | delivery-10.2 Fleet & Vehicle Types |
| Blockers for next phase | None |
| Entry checklist | Read this handover + delivery-phase-10-1.md + ADR-015; implement fleets/vehicle types/vehicles only — no dispatch yet |
Completion Sign-Off
- Quality gates passed
- Tests green
- Documentation updated
- Progress / next-steps / registries updated
- No unfinished claimed deliverables
- Self audit completed