Add or duplicate a profile
Creates `harthelm.<name>.yml` (*Add profile* with `content`, *Duplicate* with `from`, exactly one of the two; 422 otherwise). The write is the agent's create (`If-None-Match: *`), so an existing file is 409 `name-taken`. It does not select the profile. Needs `workspace.code`; audited as `landscape.config_write`.
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 <= valueIdempotency-Key?stringClient-chosen key (at most 255 characters); a repeated key returns the first result for 24 h.
1 <= length <= 255application/json- body
name*stringThe new profile; the file is harthelm.<name>.yml.
^[a-z0-9]([-a-z0-9]{0,30}[a-z0-9])?$from?ProfileNameDuplicate this profile's file ("" for harthelm.yml).
^([a-z0-9]([-a-z0-9]{0,30}[a-z0-9])?)?$content?stringThe new file's content (UTF-8, at most 1 MiB), for Add profile.
length <= 1048576The new profile's file.
application/json- response
A profile's harthelm.yml as the IDE agent read or wrote it.
path*stringRelative to /data/app: harthelm.yml or harthelm.<profile>.yml.
content*stringThe file as UTF-8.
sha256*stringLower-case hex SHA-256 of the bytes on disk; the editor's version (send it quoted as If-Match).
commit?stringHEAD of /data/app; absent outside a repository or before the first commit.
profiles*array<string>The profiles whose files exist, "" for harthelm.yml, sorted.
curl -X POST 'https://console.example.com/api/v1/workspaces/1/landscape/profiles' \ -H 'Content-Type: application/json' \ -d '{ "name": "string"}'{ "path": "string", "content": "string", "sha256": "string", "commit": "string", "profiles": [ "string" ]}Revoke an invitation
`org.members` or `team.members` on the invitation's target. The link stops working at once. 409 `invite-invalid` when it was accepted, revoked or has expired.
Read harthelm.yml
The profile's file (`harthelm.yml`, or `harthelm.<profile>.yml`) from `/data/app`, read through the IDE agent, with its SHA-256 (also the `ETag`), the HEAD commit and the profiles that exist. 404 when the profile's file does not exist (the editor starts from a template); 409 "The workspace is not running." without an IDE pod (an asleep IDE is woken first, as for a Plan); 413 above 1 MiB; 422 when the file is not UTF-8. Needs `workspace.view`.