78aaddb2b5
- Add frontend-foundation change (FN-005) with 46 tasks - Add deployment-config change (FN-006) with 27 tasks - Add runfusion-poc/opencode-poc change (FN-008) with 25 tasks - Add config-secrets change (FN-009) with 31 tasks - Add codeserver-spawn change (FN-010) with 38 tasks - Include project specsheet and configuration - Archive completed deployment-config change
2.3 KiB
2.3 KiB
1. Manifest Refinement
- 1.1 Update apps/api/app/tools/manifests/code-server.yml with complete runtime config
- 1.2 Add Docker image, ports, volumes, env vars to manifest
- 1.3 Validate manifest against ToolManifest schema
- 1.4 Test manifest loading at application startup
2. Spawn Service
- 2.1 Create apps/api/app/services/spawn.py with SpawnService class
- 2.2 Implement Docker Compose service generation from manifest
- 2.3 Implement container start/stop via Docker Compose API
- 2.4 Integrate Traefik label generation (FN-006)
- 2.5 Integrate config/secrets runtime injection (FN-009)
- 2.6 Implement workspace volume mounting
- 2.7 Implement SSH key mounting for Git access
- 2.8 Add container status polling
3. Backend API
- 3.1 Enhance POST /api/v1/tool-instances with spawn logic
- 3.2 Add DELETE /api/v1/tool-instances/:id/stop endpoint
- 3.3 Add POST /api/v1/tool-instances/:id/start endpoint
- 3.4 Add GET /api/v1/tool-instances/:id/status endpoint
- 3.5 Add validation for project ownership and tool existence
- 3.6 Prevent duplicate spawn of running instances
4. Frontend UI
- 4.1 Create ToolSpawn page at /tools/spawn
- 4.2 Implement tool selection dropdown from registry
- 4.3 Implement project selection dropdown
- 4.4 Add config override fields based on manifest
- 4.5 Create ToolInstanceDetail page at /tools/:id
- 4.6 Display instance status, subdomain URL, and controls (stop/start)
- 4.7 Add "Open Tool" button that opens subdomain in new tab
5. Auth Integration
- 5.1 Configure Traefik forwardAuth middleware for code-server
- 5.2 Implement auth validation endpoint for Traefik
- 5.3 Disable code-server built-in auth (PASSWORD: "")
- 5.4 Test that unauthenticated requests are blocked
6. Testing & Verification
- 6.1 Write backend tests for SpawnService
- 6.2 Write backend tests for tool instance lifecycle endpoints
- 6.3 Test container spawn in local Docker environment
- 6.4 Verify Traefik routing to spawned container
- 6.5 Run full test suite:
make test - 6.6 Run linters:
make lint
7. Documentation
- 7.1 Update docs/development.md with spawn workflow
- 7.2 Add code-server setup guide to docs/architecture.md
- 7.3 Document auth proxy configuration