Dataset isolation
- Each dataset maintains separate storage namespaces.
- Search queries only return results from datasets the user has access to.
- Scoped search (single dataset) and combined search (across accessible datasets) are both supported.
Tenant management
Tenants group users and resources. Each Cognee Cloud workspace operates as a tenant. Platform API (api.aws.cognee.ai):
| Endpoint | Description |
|---|---|
POST /api/v1/tenants | Create a new tenant |
DELETE /api/v1/tenants | Remove a tenant |
GET /api/v1/tenants/current | Get current tenant details |
GET /api/v1/tenants/current/service-url | Get the service URL for the tenant |
POST /api/v1/tenants/users | Assign a user to a tenant |
DELETE /api/v1/tenants/users | Remove a user from a tenant |
Tenant selection and membership
| Endpoint | Description |
|---|---|
POST /api/v1/permissions/tenants/select | Set the active tenant |
GET /api/v1/permissions/tenants/me | List tenants the authenticated user belongs to |
GET /api/v1/permissions/tenants/{tenant_id}/users | List users in a tenant |
Roles
Roles define what actions a user can perform within a tenant.| Endpoint | Description |
|---|---|
POST /api/v1/permissions/roles | Create a new role |
POST /api/v1/permissions/users/{user_id}/roles | Assign a role to a user |
GET /api/v1/permissions/tenants/{tenant_id}/roles | List roles in a tenant |
GET /api/v1/permissions/tenants/{tenant_id}/roles/{role_id}/users | List users with a specific role |
GET /api/v1/permissions/tenants/{tenant_id}/roles/users/{user_id} | Get roles for a specific user |
Dataset permissions
Grant access to datasets for specific users or agents.POST /api/v1/permissions/datasets/{principal_id} — Grant dataset permissions to a principal.
The principal_id is the UUID of any entity that can hold permissions — this includes both users and agents. The same endpoint is used regardless of whether you are granting access to a human user or to an agent service account.
The permission_name query parameter controls the access level: read, write, or delete.
Roles vs. direct permissions
Roles and direct dataset permissions work together:- Roles define a reusable set of capabilities within a tenant (e.g., “viewer”, “editor”). Assign a role to a user via
POST /api/v1/permissions/users/{user_id}/roles, and that user inherits the role’s permissions across the tenant. - Direct dataset permissions grant access to specific datasets for a specific principal. Use the
datasets/{principal_id}endpoint above to give a user or agent access to individual datasets, independent of their role.
For a complete walkthrough of permission patterns, see Permission Snippets and the Cognee Permissions System.