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

  • 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