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",
"metrics": {
"cpu_percent": 41.0,
"ram_percent": 63.0
},
"metadata": {
"agentVersion": "1.2.3",
"hostName": "edge-box-01"
}
}
Example: Save Environment Secrets
POST /api/environments/:env_id/secrets/save
Content-Type: application/json
{
"attributes": {
"API_BASE_URL": "https://api.example.com",
"SITE_ID": "berlin-01"
},
"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.
