Offboarding preflight for member removal
/member/{userId}/offboarding
What removing this member would break: their personal (user-scoped) connections and, per connection, the toolboxes that reference them (`needs_resolution: true` on a connection means at least one of those toolboxes is visible beyond this member — that connection MUST get a `connection_actions` entry on `DELETE /member/{userId}` or the call refuses). Separately, `delegated_entries` lists entries on OTHER members' toolboxes whose pin currently rides on THIS member's own `use` grant, not their ownership (docs/access-model.md §6) — non-blocking, member removal never refuses over it, but once the member is gone those entries go unmet until somebody with their own `use` on the connection re-pins them; there is no operation that does that automatically. Read-only — call it before `DELETE /member/{userId}` to collect the transfer-or-delete decisions that call requires. Requires `member:manage`.
Path Parameters
User id (usr_…) of an org member.
Response Body
Each entry pairs a personal connection with the toolboxes referencing it.
Non-blocking (§6): entries elsewhere in the org whose delegation chain depends on this member, independent of which connections they own.
curl -X GET 'https://api.elaichi.ai/member/<userId>/offboarding' \
-H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
-H 'Content-Type: application/json'const response = await fetch('https://api.elaichi.ai/member/<userId>/offboarding', {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
'Content-Type': 'application/json',
},
});
const data = await response.json();
console.log(data);import os
import requests
url = "https://api.elaichi.ai/member/<userId>/offboarding"
headers = {
"Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())