The Overview tab's data
One read for the Overview cockpit: the landscape's services with their status and URLs, the latest run of each stage, the synced and the selected profile. Everything comes from core's database, so it answers while the workspace sleeps and wakes nothing. The UI refetches it on `landscape.updated`, `stage.updated` and `workspace.updated`. Needs `workspace.view`.
openapi/harthelm.yaml at v1.5.0__Host-harthelm_session<token>Browser session of the UI (12 h idle, 7 days absolute). State-changing requests also need the header
Harthelm-CSRF: 1 and a matching Origin.
ws*integerNumeric resource id.
int641 <= valueThe overview.
application/json- response
The Overview tab.
workspace_id*IDNumeric resource id.
int641 <= valuelandscape_state*LandscapeState"empty""synced""torn-down"profile?ProfileNameThe profile of the last Sync.
^([a-z0-9]([-a-z0-9]{0,30}[a-z0-9])?)?$selected_profile?ProfileNameThe profile of the last Sync.
^([a-z0-9]([-a-z0-9]{0,30}[a-z0-9])?)?$synced_at?stringdate-timeoperation_id?stringThe landscape.sync or landscape.teardown in progress ("Syncing").
uuidservices*array<>stages*array<>prepare, test and run, each with its latest run's state.
curl -X GET 'https://console.example.com/api/v1/workspaces/1/overview'{ "workspace_id": 1, "landscape_state": "empty", "profile": "string", "selected_profile": "string", "synced_at": "2019-08-24T14:15:22Z", "operation_id": "cb4ede3c-a5d1-45e3-a9d2-fe83accbce52", "services": [ { "name": "string", "type": "steps", "status": "pending", "status_detail": "string", "ready_replicas": 0, "desired_replicas": 0, "asleep": true, "urls": [ "string" ] } ], "stages": [ { "stage": "prepare", "running": true, "run_id": 1, "state": "waiting", "started_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z" } ]}Run a command in the IDE pod
`bash -c <command>` in `/data/app` in the IDE pod with the workspace env vars and the caller's Git identity (`GIT_AUTHOR_*`, `GIT_COMMITTER_*`, as in a terminal: the name, and the email only when the identity provider verified it; an env var of the same name wins); `hart exec` uses it. 5 s unless `timeout_seconds` asks for up to 300 (since 0.8.1), and 1 MiB of output per stream; on timeout the process group is killed and `timed_out` is set. Needs `workspace.exec`; 409 when the IDE does not run, or when its agent predates 0.8.1 and allows at most 5 s (a restart of the workspace updates it).
Get a workspace
Soft-deleted workspaces stay readable until they are purged.