Skip to main content
Metabind provides several common role templates that you can use as starting points when creating custom roles.

Owner Role

Full organization control with all permissions enabled.
{
  "name": "owner",
  "description": "Full organization control",
  "permissions": {
    "organizations": { "read": true, "update": true, "delete": true },
    "projects": { "create": true, "read": true, "update": true, "delete": true },
    "users": { "create": true, "read": true, "update": true, "delete": true },
    "roles": { "create": true, "read": true, "update": true, "delete": true },
    "apiKeys": { "create": true, "read": true, "update": true, "delete": true },
    "components": { "create": true, "read": true, "update": true, "delete": true },
    "packages": { "create": true, "read": true, "update": true, "delete": true },
    "contentTypes": { "create": true, "read": true, "update": true, "publish": true, "delete": true },
    "content": { "create": true, "read": true, "update": true, "publish": true, "delete": true },
    "assets": { "create": true, "read": true, "update": true, "delete": true }
  }
}

Admin Role

Full administrative access without organization deletion.
{
  "name": "admin",
  "description": "Full administrative access",
  "permissions": {
    "organizations": { "read": true, "update": true, "delete": false },
    "projects": { "create": true, "read": true, "update": true, "delete": true },
    "users": { "create": true, "read": true, "update": true, "delete": true },
    "roles": { "create": true, "read": true, "update": true, "delete": true },
    "apiKeys": { "create": true, "read": true, "update": true, "delete": true },
    "components": { "create": true, "read": true, "update": true, "delete": true },
    "packages": { "create": true, "read": true, "update": true, "delete": true },
    "contentTypes": { "create": true, "read": true, "update": true, "publish": true, "delete": true },
    "content": { "create": true, "read": true, "update": true, "publish": true, "delete": true },
    "assets": { "create": true, "read": true, "update": true, "delete": true }
  }
}

Developer Role

Component and package development focus.
{
  "name": "developer",
  "description": "Component and package development",
  "permissions": {
    "organizations": { "read": true, "update": false, "delete": false },
    "projects": { "create": false, "read": true, "update": true, "delete": false },
    "users": { "create": false, "read": false, "update": false, "delete": false },
    "roles": { "create": false, "read": false, "update": false, "delete": false },
    "apiKeys": { "create": true, "read": true, "update": false, "delete": true },
    "components": { "create": true, "read": true, "update": true, "delete": true },
    "packages": { "create": true, "read": true, "update": true, "delete": false },
    "contentTypes": { "create": true, "read": true, "update": true, "publish": false, "delete": false },
    "content": { "create": false, "read": true, "update": false, "publish": false, "delete": false },
    "assets": { "create": false, "read": true, "update": false, "delete": false }
  }
}

Editor Role

Content management with publishing rights.
{
  "name": "editor",
  "description": "Content management with publishing rights",
  "permissions": {
    "organizations": { "read": true, "update": false, "delete": false },
    "projects": { "create": false, "read": true, "update": false, "delete": false },
    "users": { "create": false, "read": false, "update": false, "delete": false },
    "roles": { "create": false, "read": false, "update": false, "delete": false },
    "apiKeys": { "create": false, "read": false, "update": false, "delete": false },
    "components": { "create": false, "read": true, "update": false, "delete": false },
    "packages": { "create": false, "read": true, "update": false, "delete": false },
    "contentTypes": { "create": false, "read": true, "update": false, "publish": false, "delete": false },
    "content": { "create": true, "read": true, "update": true, "publish": true, "delete": true },
    "assets": { "create": true, "read": true, "update": true, "delete": true }
  }
}

Writer Role

Create and edit content drafts without publishing.
{
  "name": "writer",
  "description": "Create and edit content drafts without publishing",
  "permissions": {
    "organizations": { "read": true, "update": false, "delete": false },
    "projects": { "create": false, "read": true, "update": false, "delete": false },
    "users": { "create": false, "read": false, "update": false, "delete": false },
    "roles": { "create": false, "read": false, "update": false, "delete": false },
    "apiKeys": { "create": false, "read": false, "update": false, "delete": false },
    "components": { "create": false, "read": true, "update": false, "delete": false },
    "packages": { "create": false, "read": true, "update": false, "delete": false },
    "contentTypes": { "create": false, "read": true, "update": false, "publish": false, "delete": false },
    "content": { "create": true, "read": true, "update": true, "publish": false, "delete": false },
    "assets": { "create": true, "read": true, "update": true, "delete": false }
  }
}

Viewer Role

Read-only access to all resources.
{
  "name": "viewer",
  "description": "Read-only access",
  "permissions": {
    "organizations": { "read": true, "update": false, "delete": false },
    "projects": { "create": false, "read": true, "update": false, "delete": false },
    "users": { "create": false, "read": false, "update": false, "delete": false },
    "roles": { "create": false, "read": false, "update": false, "delete": false },
    "apiKeys": { "create": false, "read": false, "update": false, "delete": false },
    "components": { "create": false, "read": true, "update": false, "delete": false },
    "packages": { "create": false, "read": true, "update": false, "delete": false },
    "contentTypes": { "create": false, "read": true, "update": false, "publish": false, "delete": false },
    "content": { "create": false, "read": true, "update": false, "publish": false, "delete": false },
    "assets": { "create": false, "read": true, "update": false, "delete": false }
  }
}

Using Templates

To create a role based on a template, copy the JSON structure and modify it as needed:
// Create a custom role based on the editor template
const customRole = {
  name: 'senior-editor',
  description: 'Editor with content type management',
  permissions: {
    // Start with editor permissions
    ...editorPermissions,
    // Add content type update permission
    contentTypes: {
      create: false,
      read: true,
      update: true,  // Added
      publish: false,
      delete: false
    }
  }
};

const response = await fetch(
  'https://api.metabind.ai/v1/organizations/org123/roles',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(customRole)
  }
);