API Environments
Environment endpoints are primarily in Core/api_environments.py.
Environment Lifecycle
- GET /api/projects/:project_id/environments
- POST /api/projects/:project_id/environments
- GET /api/environments/:env_id
- PATCH /api/environments/:env_id
- DELETE /api/environments/:env_id
Runtime Operations
- POST /api/environments/:env_id/heartbeat
- POST /api/environments/:env_id/restart
- POST /api/environments/:env_id/stop
Secrets and Command Results
- POST /api/environments/:env_id/secrets/fetch
- POST /api/environments/:env_id/secrets/save
- POST /api/environments/:env_id/command-results
- GET /api/environments/:env_id/latest-result
Environment Groups
- GET /api/projects/:project_id/environment-groups
- POST /api/projects/:project_id/environment-groups
- GET /api/environment-groups/:group_id
- PATCH /api/environment-groups/:group_id
- DELETE /api/environment-groups/:group_id
- GET /api/environment-groups/:group_id/members
- POST /api/environment-groups/:group_id/members
- DELETE /api/environment-groups/:group_id/members/:env_id
Example: Heartbeat Update
POST /api/environments/:env_id/heartbeat
Content-Type: application/json
{
"status": "online",
"ts": "2026-03-24T09:32:00Z",
"metrics": {
"cpu": 0.41,
"memory": 0.63
}
}
Example: Save Environment Secrets
POST /api/environments/:env_id/secrets/save
Content-Type: application/json
{
"secrets": {
"MQTT_PASSWORD": "***",
"API_TOKEN": "***"
}
}
Common Errors
404environment/group not found409operation blocked by current runtime state422secrets payload validation failed
Operational notes:
- Expect brief state transition windows after restart/stop commands.
- Keep secrets updates idempotent and version tracked.
- Use heartbeat freshness checks before deployment operations.
