Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.truthlocks.com/llms.txt

Use this file to discover all available pages before exploring further.

Truthlocks implements role-based access control (RBAC) to manage who can perform which actions. This guide explains the permission model.

Permission Model

The Truthlocks permission model consists of three layers:
1

Permissions

Atomic actions like attestations:mint or users:read. These are the building blocks.
2

Roles

Collections of permissions grouped by function. Roles like admin, issuer, or viewer.
3

Assignments

Binding users or API keys to roles. A user can have multiple roles.

Available Permissions

Attestation Permissions

PermissionDescription
attestations:mintCreate new attestations
attestations:readView attestation details and download proof bundles
attestations:revokeRevoke existing attestations
attestations:*All attestation permissions

Issuer Permissions

PermissionDescription
issuers:readView issuer information and keys
issuers:writeCreate issuers, register keys
issuers:*All issuer permissions

User Management Permissions

PermissionDescription
users:readView users and role assignments
users:writeInvite users, assign roles, remove users
api-keys:readView API keys (without secrets)
api-keys:writeCreate and revoke API keys

Administrative Permissions

PermissionDescription
audit:readQuery audit logs
governance:approveApprove governance requests
governance:suspendSuspend active issuers
*Superadmin: all permissions

Webhook permissions

PermissionDescription
webhooks:readView webhook endpoints and delivery logs
webhooks:writeCreate, update, and delete endpoints
webhooks:*All webhook permissions

Governance permissions

PermissionDescription
governance:readView governance requests
governance:approveApprove governance requests
governance:suspendSuspend active issuers
governance:*All governance permissions

Settings permissions

PermissionDescription
settings:readView tenant and organization settings
settings:writeUpdate branding, domains, email, and other settings
settings:*All settings permissions

System roles

Truthlocks provisions a set of system roles automatically when your tenant is created. System roles cannot be edited or deleted.
RoleDescriptionKey permissions
Tenant AdminFull access to all resources within the tenant* (superadmin)
Org AdminManage a single organization’s issuers, users, and attestationsissuers:*, attestations:*, users:*, audit:read
Issuer AdminManage issuers and mint attestationsissuers:*, attestations:*
AuditorRead-only access for monitoring and complianceattestations:read, issuers:read, audit:read
You can view system roles from the Roles page in the console. Each role shows its name, description, and a System badge.

Custom roles

Create custom roles to define access permissions tailored to your team’s structure. Custom roles are available on all plans.

Creating a custom role in the console

1

Open the Roles page

Navigate to Roles in the console sidebar.
2

Click Create Custom Role

The Create Custom Role button opens a dialog where you provide:
  • Role Name — a descriptive name for the role (for example, Developer or Compliance Officer).
  • Description — a brief explanation of what the role is for.
3

Save the role

Click Create Role to save. The new role appears in the Custom Roles section of the Roles page.

Creating a custom role via the API

curl -X POST https://api.truthlocks.com/v1/roles \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "attestation_minter",
    "description": "Can only mint attestations for specific issuers",
    "permissions": ["attestations:mint", "attestations:read", "issuers:read"],
    "constraints": {
      "issuer_ids": ["issuer-uuid-1", "issuer-uuid-2"]
    }
  }'

Resource-level constraints

Custom roles support optional constraints that limit permissions to specific resources:
{
  "name": "regional_auditor",
  "description": "Audit access scoped to EU issuers only",
  "permissions": ["attestations:read", "issuers:read", "audit:read"],
  "constraints": {
    "issuer_ids": ["eu-issuer-uuid-1", "eu-issuer-uuid-2"]
  }
}
Resource-level constraints (such as limiting to specific issuers) are available on Enterprise plans.

API Key Scopes vs. User Roles

Both API keys and users have permissions, but they work differently:
AspectAPI Key ScopesUser Roles
AssignmentSet at key creation, immutableCan be changed anytime
Audit TrailActions logged as API key IDActions logged as user email
MultipleOne key = one set of scopesUser can have multiple roles
Use CaseServer-to-server integrationHuman users via UI/dashboard

Best Practices

  • Least Privilege: Grant only the permissions needed for each role
  • Separate Duty: Don’t give one role both attestations:mint and governance:approve
  • Regular Audits: Review role assignments quarterly
  • Use API Keys for Automation: Don’t share user credentials for scripts
  • Document Custom Roles: Keep a record of why custom roles were created

Next Steps

Audit Logs

Track all permission-related events.

Identity API

Manage users and roles programmatically.