Part of Milestone B — V4 Operational Core. Ref: #27
Make deployment target a system_environment, not a project.
Alex tasks
New deployment routes
Legacy route preservation
Deploy service extraction
Extract from current deploy route into service:
Docker labels
Add to all containers:
Preview environment
Tests
Do not build yet
Custom domains, portfolio, Stripe, product-key generation.
Exit gate
- One test app can deploy through new systems route
- Legacy deploy still works
- Preview and production can coexist
- Rollback works
- Caddy routes still publish correctly
Rollback
Legacy deploy routes remain available. Disable ENABLE_V4_SYSTEM_DEPLOY.
Part of Milestone B — V4 Operational Core. Ref: #27
Make deployment target a
system_environment, not aproject.Alex tasks
New deployment routes
POST /api/systems/:systemId/environments/:environment/deployPOST /api/systems/:systemId/environments/:environment/redeployPOST /api/systems/:systemId/environments/:environment/rollbackGET /api/systems/:systemId/environments/:environment/logsGET /api/systems/:systemId/environments/:environment/statsLegacy route preservation
POST /api/deploy— calls new deployment service through mapping layerPOST /api/projects/:slug/redeploy— samePOST /api/projects/:slug/rollback— sameDeploy service extraction
Extract from current deploy route into service:
deployService.detect()deployService.extract()deployService.build()deployService.runContainer()deployService.verifyHealth()deployService.recordRelease()deployService.publishRoute()deployService.rollback()Docker labels
Add to all containers:
systems.organisation_idsystems.system_idsystems.environment_idsystems.release_idsystems.slugsystems.environmentPreview environment
productionandpreviewenvironmentsPOST /api/systems/:systemId/promotewith full flow:Tests
Do not build yet
Custom domains, portfolio, Stripe, product-key generation.
Exit gate
Rollback
Legacy deploy routes remain available. Disable
ENABLE_V4_SYSTEM_DEPLOY.