Skip to content

Memberships

Project and component membership management


Add a user to a project or component

POST
/memberships

Creates a membership linking a user to a project or component with the specified role (viewer, author, reviewer, admin). Requires admin role on the target project. Duplicate memberships are rejected.

Authorizations

tokenAuth

Personal access token authentication. Send via Authorization header: Authorization: Token vulcan_xxx. Tokens are SHA-256 hashed server-side (never stored in plaintext). Scopes: read (GET), write (mutations), admin (everything). Create tokens via Settings → API Tokens in the web UI.

Type
HTTP (token)

Request Body

application/json
JSON
{
  
"membership": {
  
  
"user_id": 42,
  
  
"membership_id": 4,
  
  
"membership_type": "Project",
  
  
"role": "author"
  
}
}

Responses

Membership created

application/json
JSON
{
  
"toast": {
  
  
"title": "Member added.",
  
  
"message": [
  
  
  
"Jane Doe added as author."
  
  
],
  
  
"variant": "success"
  
}
}

Playground

Server
Authorization
Body

Samples


Full replacement of membership role

PUT
/memberships/{membershipId}

Full replacement — all fields required. Changes the role (viewer, author, reviewer, admin) for an existing membership. Requires admin role on the parent project. Cannot demote the last admin on a project.

Authorizations

tokenAuth

Personal access token authentication. Send via Authorization header: Authorization: Token vulcan_xxx. Tokens are SHA-256 hashed server-side (never stored in plaintext). Scopes: read (GET), write (mutations), admin (everything). Create tokens via Settings → API Tokens in the web UI.

Type
HTTP (token)

Request Body

application/json
JSON
{
  
"membership": {
  
  
"role": "reviewer"
  
}
}

Responses

Membership updated

application/json
JSON
{
  
"toast": {
  
  
"title": "Role updated.",
  
  
"message": [
  
  
  
"Jane Doe is now a reviewer."
  
  
],
  
  
"variant": "success"
  
}
}

Playground

Server
Authorization
Body

Samples


Remove a user from a project or component

DELETE
/memberships/{membershipId}

Deletes the membership, revoking the user's access. Requires admin role on the parent project. Removed users lose authority over all project-scoped resources including their own pending comments. The last admin of a project cannot be removed — transfer the admin role first.

Authorizations

tokenAuth

Personal access token authentication. Send via Authorization header: Authorization: Token vulcan_xxx. Tokens are SHA-256 hashed server-side (never stored in plaintext). Scopes: read (GET), write (mutations), admin (everything). Create tokens via Settings → API Tokens in the web UI.

Type
HTTP (token)

Responses

Membership removed

application/json
JSON
{
  
"toast": {
  
  
"title": "Member removed.",
  
  
"message": [
  
  
  
"Jane Doe removed from project."
  
  
],
  
  
"variant": "success"
  
}
}

Playground

Server
Authorization

Samples


Partial update of membership role

PATCH
/memberships/{membershipId}

Partial update — send only the fields to change. Changes the role (viewer, author, reviewer, admin) for an existing membership. Requires admin role on the parent project. Cannot demote the last admin on a project.

Authorizations

tokenAuth

Personal access token authentication. Send via Authorization header: Authorization: Token vulcan_xxx. Tokens are SHA-256 hashed server-side (never stored in plaintext). Scopes: read (GET), write (mutations), admin (everything). Create tokens via Settings → API Tokens in the web UI.

Type
HTTP (token)

Request Body

application/json
JSON
{
  
"membership": {
  
  
"role": "reviewer"
  
}
}

Responses

Membership updated

application/json
JSON
{
  
"toast": {
  
  
"title": "Role updated.",
  
  
"message": [
  
  
  
"Jane Doe is now a reviewer."
  
  
],
  
  
"variant": "success"
  
}
}

Playground

Server
Authorization
Body

Samples


Powered by VitePress OpenAPI

Part of the MITRE Security Automation Framework (SAF)