Drop an explicit workspace role
Workspace admins (`workspace.members`). The inherited role stays. 404 when the user has no explicit role.
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 <= valueuser*integerA user's id.
int641 <= valueRemoved.
curl -X DELETE 'https://console.example.com/api/v1/workspaces/1/members/1'Remove a member from a team, or leave it
Team admins (`team.members`) remove anyone; every member may remove themselves (leave). The user loses their workspace roles in the team, and the team's workspaces they own wait for a new owner. 409 `last-admin`.
Transfer a workspace's ownership
Workspace admins (`workspace.members`). The owner's Git provider token is what the git proxy injects. A workspace whose owner left the team has `owner_id` absent and `needs_owner` set; the git proxy refuses it until it has a new owner. Making **someone else** the owner needs their consent: the answer is 202 with a pending `OwnerTransfer` that they accept or decline (`POST /owner-transfers/{transfer}/accept|decline`); until then the old owner stays the owner and the git proxy keeps using the old owner's token. A new offer replaces a pending one to another user (that one is cancelled); offering it again to the same user returns the pending one. The user must be a member of the workspace's team (409 `not-team-member`) and hold at least Editor (409 `owner-ineligible`); accepting checks that again together with their connection to the provider of the origin repository. Taking ownership oneself (`user_id` is the caller) and naming the current owner change it at once and answer 200 with the workspace; taking it cancels a pending transfer. With `promote_to` (decision 63) a Viewer or a team member without a workspace role is promoted to Editor or Admin and offered the ownership in one step.