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)