Owner Role
Full organization control with all permissions enabled.Copy
{
"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.Copy
{
"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.Copy
{
"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.Copy
{
"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.Copy
{
"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.Copy
{
"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:Copy
// 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)
}
);
