Skip to content

Workspace organization and access API

Private native-backend pilot, reviewed 21 September 2026. Not a stable public SDK or an OSDU partition API. These browser endpoints require a session, CSRF proof, trusted Origin/Host and a bounded JSON request.

POST route Fields Permission and behavior
/api/workspace/list None Signed-in caller’s visible organizations and native projects
/api/workspace/create id, name Provisioned global creator creates an organization
/api/workspace/detail organization_id Member reads organization metadata
/api/workspace/member organization_id, user_id, role or remove Owner manages membership; last-owner protection; members may leave
/api/workspace/project-create organization_id, id, name Owner atomically creates and associates a project with their initial admin/publish/compute grant; no global promotion
/api/workspace/bind organization_id, project_id Organization owner and project admin associate an existing project; no silent transfer
/api/access/effective project_id Effective project admin sees grants, blocks and effective permissions
/api/access/block project_id, user_id, blocked Project admin blocks/unblocks one account; last effective enabled admin protected
/api/workspace/access-preview organization_id, user_id Owner previews grants in inspectable projects; unknown scopes remain explicit
/api/workspace/offboard organization_id, user_id, confirm:true Owner with every project-admin scope atomically removes membership and blocks access to all currently associated projects

Project creation accepts an ASCII letter/digit/hyphen/underscore identifier of 1–128 characters and a nonempty name of at most 120 characters/160 UTF-8 bytes. Retry the same project ID/name as the same owner after a lost response. Conflicting reuse fails. The operation does not set the user’s global creation capability.

Blocking deletes direct/admin grants and suppresses inherited team grants inside the native authority. Re-granting direct membership cannot override a block. Unblocking restores eligibility for existing team grants, not deleted direct grants. Offboarding is bounded to 256 projects and fails atomically if any permission or last-administrator check fails. It does not revoke global sessions, change team rosters, remove access elsewhere or recall exported copies. Newly associated projects need another review. Self-offboarding requires another owner.

Organization membership alone still grants no scientific access. Membership-only removal remains distinct from offboarding. Archive/restore controls listing rather than data retention or permissions. Deletion/transfer are not implemented here.

See the user workflow, invitation and foundation scope and scientific description API.