26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
|
|
# Phase 3 Implementation: Server Plane
|
||
|
|
|
||
|
|
## Delivered in this phase
|
||
|
|
- Tenant-aware server registry controller behavior via request tenant context.
|
||
|
|
- Agent session heartbeat intake endpoint and session repository boundary.
|
||
|
|
- Job dispatch endpoint with command type allowlist and idempotent envelope fields.
|
||
|
|
- Redis Streams queue adapter for Go orchestration layer.
|
||
|
|
|
||
|
|
## Files added/updated
|
||
|
|
- `panel-api/app/Modules/Server/ServerRepository.php`
|
||
|
|
- `panel-api/app/Modules/Agents/AgentSessionRepository.php`
|
||
|
|
- `panel-api/app/Modules/Jobs/JobController.php`
|
||
|
|
- `panel-api/app/Modules/Jobs/CommandOrchestrator.php`
|
||
|
|
- `panel-api/app/Http/Middleware/ResolveTenantContext.php`
|
||
|
|
- `panel-api/routes/api_v1/servers.php`
|
||
|
|
- `panel-api/routes/api_v1/jobs.php`
|
||
|
|
- `control-plane-go/internal/orchestration/redis_stream_queue.go`
|
||
|
|
|
||
|
|
## API additions
|
||
|
|
- `POST /api/v1/servers/{server}/heartbeat`
|
||
|
|
- `POST /api/v1/jobs/dispatch`
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
- Persistence adapters remain intentionally thin to keep boundary clear for full Eloquent integration.
|
||
|
|
- Queue adapter is production-aligned with Redis Streams and can be swapped with NATS without controller changes.
|