# Orchestrator Roadmap This document tracks Orchestrator-specific work for the AI SysAdmin system. ## Completed Work ### Core Infrastructure - [x] Task model, statuses, DB tables - [x] Agent model + registration flow - [x] Task dispatching (`/tasks/next` polling) - [x] Heartbeat system - [x] Result ingestion - [x] Tenant validation, permission flow - [x] FastAPI app with complete routing structure - [x] Deployment on live server (nginx + SSL) ### API Routes - [x] `/api/v1/agents/*` - Agent registration, heartbeat - [x] `/api/v1/tasks/*` - Task creation, polling, results - [x] `/api/v1/tenants/*` - Tenant management - [x] `/api/v1/env/*` - ENV inspection and update - [x] `/api/v1/agents/{id}/files/inspect` - File inspection ### Playbooks - [x] Chatwoot playbook (`/api/v1/tenants/{id}/chatwoot/setup`) --- ## Remaining Work ### Phase 1: Tool-Specific Playbooks Create a playbook module for each tool in `app/playbooks/`: | Tool | Module | API Endpoint | Status | |------|--------|--------------|--------| | Chatwoot | `chatwoot.py` | `/tenants/{id}/chatwoot/setup` | ✅ Done | | NocoDB | `nocodb.py` | `/tenants/{id}/nocodb/setup` | ⬚ Todo | | Directus | `directus.py` | `/tenants/{id}/directus/setup` | ⬚ Todo | | Ghost CMS | `ghost.py` | `/tenants/{id}/ghost/setup` | ⬚ Todo | | MinIO | `minio.py` | `/tenants/{id}/minio/setup` | ⬚ Todo | | Keycloak | `keycloak.py` | `/tenants/{id}/keycloak/setup` | ⬚ Todo | | Nextcloud | `nextcloud.py` | `/tenants/{id}/nextcloud/setup` | ⬚ Todo | | Activepieces | `activepieces.py` | `/tenants/{id}/activepieces/setup` | ⬚ Todo | | Listmonk | `listmonk.py` | `/tenants/{id}/listmonk/setup` | ⬚ Todo | | Odoo | `odoo.py` | `/tenants/{id}/odoo/setup` | ⬚ Todo | | Mixpost | `mixpost.py` | `/tenants/{id}/mixpost/setup` | ⬚ Todo | **Each playbook creates a COMPOSITE task with:** 1. `ENV_INSPECT` - Read current configuration 2. `ENV_UPDATE` - Update URLs, domains, settings 3. `DOCKER_RELOAD` - Restart the stack **Each playbook module needs:** - Pydantic request/response schemas - Route handler in `app/routes/playbooks.py` - Tests in `tests/test_playbooks/` --- ### Phase 2: Introspection APIs - [ ] `/api/v1/servers/{id}/scan` - Discover all services and their state - [ ] `/api/v1/servers/{id}/diagnose` - Find configuration issues - [ ] `/api/v1/servers/{id}/health` - Aggregate health check --- ### Phase 3: New Task Types Support for new executor types from the agent: | Task Type | Purpose | Status | |-----------|---------|--------| | NGINX_RELOAD | Reload nginx after config changes | ⬚ Todo | | HEALTHCHECK | Check service status | ⬚ Todo | | STACK_HEALTH | Verify docker compose stack | ⬚ Todo | --- ### Phase 4: Autonomous Operations - [ ] LLM integration for natural language commands - [ ] Task chaining based on results - [ ] Automatic remediation workflows --- ### Phase 5: Dashboard & UI - [ ] Task history and logs viewer - [ ] Agent status dashboard - [ ] Playbook marketplace - [ ] RBAC and multi-tenant UI --- ## Next Steps 1. Create `app/playbooks/nocodb.py` 2. Add route: `POST /api/v1/tenants/{tenant_id}/nocodb/setup` 3. Create COMPOSITE task with ENV_INSPECT, ENV_UPDATE, DOCKER_RELOAD 4. Write tests in `tests/test_playbooks/test_nocodb.py`