Mihiru Kongahage
11/25/2025, 4:01 AM{
"user": {
"key": "user_id1"
},
"action": "create",
"resource": {
"type": "project",
"tenant": "default",
"key": "project_test10"
},
"context": {}
}
Is this RBAC + ReBAC design and resource-instance model valid for Permit.io for this use case? Any other design options/candidates that you'd recommend?
In the first iteration, we'd like to use the cloud PDP exclusively without a local PDP setup. Is there a another approach where this kind of permission model can be supported by exclusively using cloud PDP?Ask Inkeep
11/25/2025, 4:01 AMpermit support automation2
11/25/2025, 4:01 AMAsk Inkeep
11/25/2025, 4:01 AMproject#project_admin and project#project_member, which are ReBAC patterns, you'll need to deploy a local PDP container to support this design (4) (5) .
Your Design Validation
Your approach using resource roles is exactly how ReBAC should be implemented in Permit.io . Resource roles are formatted as Resource#Role, which matches your project#project_admin and project#project_member pattern .
For the automatic role assignment when a member creates a project, you can use role derivations to automatically grant the creator project#project_admin permissions (5) .
Alternative for Cloud PDP Only
If you must use Cloud PDP exclusively in your first iteration, you'd need to simplify to pure RBAC without the resource-specific roles. This would mean using flat roles like admin and member at the organization level only, which significantly limits your granular project-level permissions.
Recommended Approach
Deploy the local PDP container - it's straightforward to set up (2) (3) :
docker run -it -p 7766:7000 --env PDP_DEBUG=True --env PDP_API_KEY=<YOUR_API_KEY> permitio/pdp-v2:latest
Then initialize your SDK to use the local PDP (2) :
const permit = new Permit({
pdp: "<http://localhost:7766>",
token: "[YOUR_API_KEY]",
}) ;
This enables your full RBAC + ReBAC model with project-level roles and relationship-based permissions.Ask Inkeep
11/25/2025, 4:02 AMAlon Boshi
11/25/2025, 8:13 AM