Files
headquarter/openspec/changes/archive/2026-05-14-codeserver-spawn/tasks.md
T
alex 78aaddb2b5
CI / Web CI (push) Failing after 12s
CI / API CI (push) Failing after 1m1s
docs(openspec): add OpenSpec changes for FN-005, FN-006, FN-008, FN-009, FN-010
- 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
2026-05-14 17:35:20 +02:00

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