Tuấn Anh
06/04/2025, 3:36 AMSibin S
06/05/2025, 5:56 AMJon Erdman
06/09/2025, 2:00 PMSlackbot
06/09/2025, 3:14 PMLewis Youl
06/09/2025, 3:19 PM/user-permissions
endpoint on the PDP is there a maximum number of instances/records that can be returned? If not, how does it handle very large amounts of data? Your permit prisma plugin maps over the returned objects and essentially appends the ids to the where clause, scoping the request to only the instances that someone should be able to see. I would like to do take this approach in our application if possible but would like to get an idea of how this is likely to perform if there are very large amounts of data (tens to hundreds of thousands of records).Manish Kumar
06/10/2025, 4:54 AMHimanshu Gupta
06/10/2025, 7:10 AMManish Kumar
06/11/2025, 5:14 AMLech Twaróg
06/11/2025, 12:28 PMpath
attribute (e.g., /parent/child/...
).
• Modules & Resources: The app is composed of modules (e.g., m1
, m2
), each containing resources (e.g., r1
, r2
). Standard actions apply (e.g., read
, write
).
• Tenant-Specific Entitlements: A key requirement is that each tenant has a predefined set of entitlements—modules and resources available to them, typically determined by their subscription plan.
• Example:
◦ Tenant A is licensed for m1
(read/write) and m2
(read)
◦ Tenant B has access to all modules
Our Main Challenge
We want to enable Tenant Admins to manage permissions for users within their tenant, but only within the scope of their entitlements, which are defined by a Super Admin.
Example Scenario
• The system grants Tenant A access to modules m1
and m2
only.
• The Admin of Tenant A wants to:
◦ Grant a user read access to resources in m1
◦ Grant read/write access to resources in m2
• The Admin should not be able to:
◦ View or assign permissions related to m3
, since it’s outside Tenant A’s entitlements.
Our Questions
1. What’s the best practice for modeling a tenant’s entitlements in Permit?
2. How can we use these entitlements to constrain what a Tenant Admin can see and assign?
3. Specifically: how can we enforce that an Admin can only grant permissions on resources if their parent tenant is entitled to the resource’s module?
Any guidance, examples, or references would be greatly appreciated!
Thanks so much,Sibin S
06/12/2025, 5:23 AMHimanshu Gupta
06/12/2025, 3:47 PMYou did nothing wrong, but we could not finish your request due to a technical issue on our end. Please try again.
Ash
06/13/2025, 12:56 AMNeelesh Shastry
06/16/2025, 10:01 PMRodrigo Mayer
06/16/2025, 11:27 PMYilmaz Alizadeh
06/17/2025, 2:08 PMMaxime Leduc
06/17/2025, 4:57 PMManish Kumar
06/18/2025, 5:16 AMPedro Miguel Díaz Peña
06/18/2025, 7:11 AMPedro Miguel Díaz Peña
06/18/2025, 7:12 AMpedro@pedromigueldiaz.tech
in the security-context
Permit.io tenant who has the "tenant#admin" role for the resource tenant:0ef0e8ac-9068-4edd-a94b-b2b882f9d47b
. This same user also exists in the contoso
Permit.io tenant and is assigned "tenant#admin" for the resource e968e890-6bd8-4133-85e3-57d266ea3940
.
Furthermore, I have a project resource project:2726719d-93e6-4f34-8d8b-c92b2f361866
that has a relationship with tenant:e968e890-6bd8-4133-85e3-57d266ea3940
in the contoso
Permit.io tenant. I also have another project resource project:f733d978-0917-4beb-9016-2796daeb2c9f
that has a relationship with tenant:0ef0e8ac-9068-4edd-a94b-b2b882f9d47b
in the security-context
Permit.io tenant.
The Curious Observation:
What I'm observing is that when I make the following permit.check
call:
allowed = await permit.check(
user={
"key": "pedro@pedromigueldiaz.tech"
},
action="createfinding",
resource={
"type": "project",
"key": "f733d978-0917-4beb-9016-2796daeb2c9f",
"tenant": "e968e890-6bd8-4133-85e3-57d266ea3940"
},
context=context or {}
)
It returns allow
.
However, that project:f733d978-0917-4beb-9016-2796daeb2c9f
does not exist as a resource related to tenant:e968e890-6bd8-4133-85e3-57d266ea3940
in the contoso
tenant. What I see in the logs is that since tenant#admin:0ef0e8ac-9068-4edd-a94b-b2b882f9d47b
exists, and that resource has a relationship with project:f733d978-0917-4beb-9016-2796daeb2c9f
in the security-context
tenant, the allow
is granted based on that relationship.
It's as if the policy doesn't take into account the "tenant": "e968e890-6bd8-4133-85e3-57d266ea3940"
value within the resource object in permit.check()
.
My understanding is that this is how I should indicate that I want to check the policy for the user pedro@pedromigueldiaz.tech
but within the contoso
tenant.
I hope the problem is clear.
Thank you very much!Manuel Lara
06/20/2025, 11:34 PMTaiyan Hao
06/23/2025, 4:15 AMGET _list/entities
-style lists, with revocations visible in ≈ 1 s.
Could you clarify:
1. Partial-eval SQL status
◦ Planned GA date / version?
◦ Will the output SQL format be stable post-GA?
2. Best path today
◦ Stick with getUserPermissions
→ temp-table JOIN, or
◦ Use OPA /v1/compile
AST + our own AST→SQL until GA?
3. Freshness
◦ Does the PDP re-generate the SQL predicate every request, or is there a cache/TTL we should tune?
4. Reference code
◦ Any public Python example showing current partial eval → SQL?
5. Analytics / BI
◦ Recommended pattern for auth-aware long-running queries (materialized views, snapshots, etc.)?
Thanks!Manish Kumar
06/24/2025, 6:42 AMcheck()
method for authorization check by passing the user, action, and resource directly. Is there also a way to pass a JWT token that includes this information, so the PDP can extract it and return the appropriate response?Jack Muller
06/24/2025, 7:23 PMterraform apply
a few of the role_derivations inconsistently error out with no issues logged on the terraform side. When I run terraform plan
I can see that the failed role_derivations are slated to be created. When I run terraform apply
a second time it successfully creates the role_derivations that errored out initially.
I'm hoping there are some clearer errors in the permit log side of things. This is a blocker from going live with permit in production. Other than this terraform with permit has been fantastic.
Workspace: FabuBlox
Project: default
Environment: stagingJack Muller
06/24/2025, 8:28 PMOr Weis
06/25/2025, 12:57 PMManish Kumar
06/26/2025, 6:42 AMdocker run \
-e PDP_API_KEY=your_environment_key \
-e OPAL_SPLIT_ROOT_DATA=1 \
-p 7766:7000 \
-p 8181:8181 \
permitio/pdp-v2:latest
Is it possible to run the PDP using an organization key instead of the environment key? If so, how should the command be modified?Neelesh Shastry
06/26/2025, 4:49 PMChristie Molloy
06/30/2025, 4:28 PMmartink
07/01/2025, 11:50 PMmartink
07/02/2025, 2:10 AM