Upsolve Row-Level Security - Data permissions your AI agent can't talk its way past

Row-level security enforced server side, before any query runs. Set rules from user and org properties, test them as any user, and deploy one agent to thousands of tenants. The agent never sees the rules, so it can't bypass them.

Add a comment

Replies

Best
Hey Product Hunt, Ka Ling from Upsolve AI. The first question every security team asks about a data agent is: what stops it from showing one customer another customer's data? If your answer is "the prompt", you don't have an answer. Upsolve Row-Level Security takes permissions out of the agent entirely. You register orgs and users with properties like country or tenant ID, then set global rules (column country = user.country) or write your own SQL rules per table. Every query, whether the agent or a person wrote it, gets pre-filtered on the server before it runs. The agent never even sees the rules. You can test any rule as any user before you ship. In the demo, Grace sees four APAC countries and Carlos sees only Brazil, from the same agent. This is what lets you put one agent in front of thousands of tenants. How are you handling permissions for AI features today?

Agree with "if your answer is the prompt, you don't have an answer". We run AI agents for many stores, and keeping one store's customers away from another store's agent is the one thing I would never leave to the model. One question: the rules are on tables and columns. What happens when the agent calls a tool or an API instead of writing SQL, say fetching an order from Shopify? Is that outside what this covers?

for APIs, if it is commonly seen SaaS API platform like Shopify, we have a dataplane feature that layers on top the API. So this RLS can be extended to the APIs we support, provided that the API does offer the information for RLS rules to be carried out

 Got it, thanks. So it works as long as the API response carries something to filter on, like a shop ID. With Shopify that part is simple since every store has its own access token anyway. Is the dataplane only for the SaaS APIs you support, or can it also sit in front of a team’s own internal APIs?

it can sit in front of a teams own internal APIs as well, but you would need to do small amount of work to translate the APIs to SQL through our Data Plane. It’s pretty straightforward.

 Makes sense!!

Ka Ling, testing a rule as a particular user before shipping it stood out to me. Much easier to check what a customer will actually see when the permissions are enforced before the query runs. Congrats on the launch!

thank you and it’s indeed a feature that our users found extremely useful for confidence in the agents built

Hey, congrats on the Upsolve Row-Level Security launch! We're sharing a launch day with Benson: . Would appreciate a comment or a little support if you have time today. Wishing you a great launch!

"If your answer is the prompt, you don't have an answer" is spot on. Same thing goes for quality: you enforce it in infrastructure, you don't ask for it in a CLAUDE.md. Do you log denied queries back to the agent so it learns the boundary, or does it stay invisible to it?

we log agent chat history for agent builder to review for agent improvement purpose. The agent does have access to the error log so it understands its boundaries, but it doesn’t know the exact values for example is used in the RLS rules for op sec purpose

Hi ! sharing live numbers with customers always gave me a small knot in my stomach, that worry someone catches a figure meant for another account. This is the kind of thing that'd let me relax about it.

great to know that’s how it would make you feel too!