Replies: 3 comments 15 replies
-
|
Hello, First, thank you for working on the security tightening. I have a few concerns:
Without such an option, introducing and enforcing a new policy like this with only about a month of lead time feels like a fairly radical change. Best, |
Beta Was this translation helpful? Give feedback.
-
|
@inian we run a service where users can connect their Supabase project (so we can read the OpenAPI spec + perform a GraphQL introspection query) in order to help them build up their API calls.
While I do understand some of the arguments for this change, it would be nice if there was a way for a user to expose their OpenAPI spec to an authenticated OAuth app. Without using service role keys, that does not seem to be possible atm though? |
Beta Was this translation helpful? Give feedback.
-
|
@inian The email to customers using the endpoint that went out today seems to include the link to the query without the trailing |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
What’s Changing?
The Data API returns the full OpenAPI spec for any schema exposed to the Data API at the root path:
https://[projectref].supabase.co/rest/v1/Starting March 11, we will begin deprecating support for accessing this endpoint via the
anonkey. You will get the following error message if this endpoint is accessed via theanonkeyThe endpoint remains accessible and the behaviour doesn't change if you are using the service role keys or the new secret API keys.
This does not affect normal Data API usage. Accessing data via
/rest/v1/your_tableor any client library will continue to work exactly as they do today.Why?
Today, the endpoint returns schema details (tables, columns, and types of an exposed schema) to anyone with the
anonkey. While this does not expose actual row data, it provides more information about your schema than most production applications need.As part of an ongoing effort to tighten default security across Supabase, we are removing this exposure. In practice, the schema spec is mostly useful during development, where you can use the
service_rolekey. There are few cases where you would need it client-side in production (less than 0.1% of our projects have made a request to this endpoint using theanonkey in the last 24 hours), and we do not think supporting those use cases is worth the security tradeoff.Am I Affected?
You are affected if your app currently uses the
anonkey to fetch the Swagger spec.You can check by reviewing requests to the
/rest/v1/endpoint via this log query.If you see requests:
anonrole.What Should I Do?
anonkey.service_roleor the new secret API keys.Rollout and Communications Timeline
anonkeyanonkeyWe may push these dates back based on customer feedback, but we will not move them forward.
What’s Next?
This is the first in a series of changes we are making to tighten default security settings across Supabase. Stay tuned for improvements to RLS usability, default table grants, and additional security features.
Update 23.03.2026
We now have a new Management API endpoint for the CLI and third party integration that only requires the "Read-only project database access" permission. Details are here.
Beta Was this translation helpful? Give feedback.
All reactions