Kontent.ai (formerly Kentico Kontent) provides a role-based access control system with environment-level permissions and content type restrictions.
Built-in Roles
| Role | Manage Project | Manage Roles | Content Types | Create Content | Publish Content | Manage Assets |
|---|---|---|---|---|---|---|
| Project Manager | Yes | Yes | Yes | Yes | Yes | Yes |
| Content Manager | No | No | No | Yes | Yes | Yes |
| Content Creator | No | No | No | Yes | No | Yes |
| Reviewer | No | No | No | Read/Comment | No | Read |
Project Manager
Full administrative control including user management, content type modeling, environment configuration, and all content operations.
Content Manager
Can create, edit, publish, and unpublish content items. Can manage assets. Cannot modify content types or project settings.
Content Creator
Can create and edit content but cannot publish. Items go through workflow for review and publishing.
Reviewer
Read-only access with commenting capability. Cannot create, edit, or publish content.
Custom Roles
Create custom roles via Project Settings > Roles > Create New Role:
// Custom role definition (conceptual - configured via UI)
{
"name": "Analytics Editor",
"permissions": {
"content_types": {
"landing_page": ["view", "create", "update"],
"blog_post": ["view"],
"analytics_config": ["view", "update"]
},
"asset_management": "view_only",
"publishing": false,
"project_settings": false
}
}
API Key Types
# Delivery API (read-only, published content, safe for client-side)
curl "https://deliver.kontent.ai/v2/items" \
-H "Authorization: Bearer YOUR_DELIVERY_KEY"
# Preview API (read-only, draft content, server-side)
curl "https://preview-deliver.kontent.ai/v2/items" \
-H "Authorization: Bearer YOUR_PREVIEW_KEY"
# Management API (full CRUD, server-side only)
curl -X POST "https://manage.kontent.ai/v2/items" \
-H "Authorization: Bearer YOUR_MGMT_KEY" \
-H "Content-Type: application/json"
| Key Type | Read Published | Read Drafts | Write | Manage Settings |
|---|---|---|---|---|
| Delivery | Yes | No | No | No |
| Preview | Yes | Yes | No | No |
| Management | Yes | Yes | Yes | Yes |
Analytics Permissions
Since Kontent.ai is headless, analytics integration happens in your frontend. Use webhooks for content change notifications:
{
"webhook_url": "https://your-app.com/api/kontent-webhook",
"triggers": {
"delivery_api_content_changes": ["publish", "unpublish"]
}
}
Best Practices
- Use Content Creator role for writers and Content Manager for publishing authority
- Create custom roles to limit access to specific content types
- Use Delivery API keys on client-side, Management API keys only server-side
- Set up webhooks to trigger static site rebuilds and analytics updates on publish
- Leverage environment separation (Production, Preview, Development) for safe testing