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

  • 404 environment/group not found
  • 409 operation blocked by current runtime state
  • 422 secrets 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.

Related Pages