<img width="1196" height="427" alt="image"
src="https://github.com/user-attachments/assets/6784b5e9-99c8-4fc9-b9f5-49672ba6e768"
/>
This reworks the security section within our project creation form to
expose two options.
1/ Enable or disable Data API which is essentially the same as we had
previously, just reframed
2/ Enable auto RLS which creates an event trigger that enables RLS on
all tables created via public schema. This is the same as what we do via
the RLS banner in authentication pages.
Note that this also removes the option to disable Data API on public
schema and move to dedicated schema. The user can still do this post
project creation . Assumption is this is rarely changed on project
creation and adds complexity.
To test:
1. Create a new project
2. Enable Data API and enable RLS setting
3. After project creation, go to triggers -> event tab -> notice enable
rls trigger
4. Create project and disable Data API
5. After project creation , go to settings/api and make sure data api is
disabled
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added an optional automatic Row-Level Security (RLS) event trigger
option in project creation (toggleable via experiment).
* **Improvements**
* Security panel simplified to checkbox-based controls for Data API and
RLS.
* Project creation form now includes the enableRlsEventTrigger flag and
applies related setup when enabled.
* Telemetry records RLS experiment exposure, variant, and whether the
RLS trigger was enabled.
* Free-project messaging updated to consider user limits.
<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Sean Oliver <882952+seanoliver@users.noreply.github.com>
* Update support form status page button to use incident query + make maintenance banner dismissible
* Clean up
* Nit
* Attempt to fix tests
* Fix tests
* feat(telemetry): add security settings to project creation event
Add dataApiEnabled, useApiSchema, and useOrioleDb properties to
project_creation_simple_version_submitted event to track user
security and configuration choices during project creation.
* feat(studio): track security settings on project creation
Include dataApiEnabled, useApiSchema, and useOrioleDb in the
project_creation_simple_version_submitted telemetry event to capture
user's security and configuration choices.
* feat(telemetry): add security settings to confirm modal event
Include dataApiEnabled, useApiSchema, and useOrioleDb in the
project_creation_simple_version_confirm_modal_opened event for
consistency with the submitted event.
* refactor(telemetry): remove extra properties from confirm modal event
Remove dataApiEnabled, useApiSchema, and useOrioleDb from
project_creation_simple_version_confirm_modal_opened as these
are not needed for this event.
* feat: add telemetry event for dashboard error
* feat: add tracking event to alert error component
* fix: remove warning type
* feat: add error tracker for toasts too
* fix: remove message prop from event
* chore: remove unused dep in useeffect
* chore: further tidy up
* fix: useeffect separate component
* fix: use pams suggested verb
* add initial installation flow of stripe sync engine
* update docs link
* Add supabase_vault extension dep
* Add stripe logo to sync engine integration
* Move overview content to bottom of integration pages
* Add sync state to stripe sync page
* only check sync state if stripe integration is installed
* Use proper stripe-sync package and setup flows
* Improve sync engine installation ux
* Remove unused hardcoded dep
* Add alpha status to stripe sync engine integration
* fix typo
* run format
* fix types
* Rename the stripe-sync path to remove the 'integration". The path needs to have BASE_PATH to work on prod.
* Design tidy up (#41337)
UI tidy up
* update to latest sync engine package
* Add stripe key verification
* Remove noop try/catch
* Add integration isntallation telelemtry
* Add basic settings page
* Address coderabbit comments
* remove unused dep
* Remove state setting on render
* s/description/comment
* Cleanup settings screen UI
* Improve settings screen design
* update schema test snapshot
* Use latest stripe-sync-engine package
* Update repo url to new official location
* revert marketing change
* Update stripe sync engine package
* Add link to table from overview page
* Add feature flag and improve telemetry
* Fix missing useMemo dep
* add uninstall telemetry note
---------
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com>
* feature: add explain with AI in query performance
* updated comment
* updated to send message right away
* updated prompt
* added event tracking for button
* updated prompt
* updated to use track
* updated event name
* added flag for explain with AI
* updated to remove optional
* admonition
* clean up
* clean up
* plan info improvements
* fix wonky text area
* improve form
* submit button
* success state
* hide callouts on success
* fixes
* fixes
* nit
* rabbit
* deprecate InformationBox in favour of Admonition
* fix tests
* fix
* rabbit
* rabbit
* rabbit
* lint
* US English
* feat: more generic observability banner on db report
* feat: try popup in corner
* feat: tidy up and fix up event as well
* feat: add event for dismiss as well
* feat: add supplementary link at bottom of reports
* fix: sizing of fonts
* feat: banner stack approach
* fix: isIndexAdvisorAvailable dep
* chore: remove unused import for old banner
* feat: remove unused isDismissed
* chore: remove unused cn
* chore: change prio on query perf page
* chore: remove unused sendEvent
* chore: better useEffect cleanup
* chore: remove unused index advisor notice
* fix: priority of banner stack
* fix: first time loader flickering
* chore: lowercase the word Free
* feat: add IS_PLATFORM to make sure metrics api banner is scoped to platform
* chore: another copy update for observability link
* fix: telemetry keys to match styleguide
* fix: use the correct way to apply events
* feat: add events for index advisor banner too
* chore: delete unused old banner
* fix: dismiss buttons not working
* feat: add extra event to enable index advisor
* feat: auth advanced page renamed to performance, support for percent db connections
* rename page and form
* make it compile
* fix types?
* one more update
* use master types
* restore from source
* fix prettier
* fix compilation
* minor adjustments
* wording
* change pro plan check
* fix prettier
* nit fixes
* Update next config
* update copy + align upgrade to pro language
* Update
* Clean up
* Nit improve loading time
* Update docs
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Gotrue already does the work of using the cached token if
possible/refreshing if about to expire (and uses a different expiry
period from what we have -- 90 seconds vs. 30 seconds). We can delegate
this work to Gotrue to avoid the expiry check mismatch
* feat: change the check to show index advisor tab at all times
* fix: hide add to log drains on export menu in query perf
* fix: small fallback for pathname check
* fix: query perf header block responsiveness
* feat: admonition for index advisor
* fix: add aria-describedby to query perf sheet
* feat: proper way to do sheet description
* chore: better title spacing in panel
* fix: indexes in use empty state
* fix: key in observability menu
* feat: better highlighting of index advisor issues
* feat: add docs button to empty indexes tab
* feat: remove unused code
* feat: use button tooltips for reset and refresh to gain space
* feat: add dismiss to index advisor banner
* feat: add warnings filter to query perf
* feat: filter all queries for warnings
* fix: selected state for warning rows
* fix: fallback for isLogs check
* fix: other instance of download button
---------
Co-authored-by: Ali Waseem <waseema393@gmail.com>
* Use version 2 organization roles endpoint and fix all affected files + unit tests
* Update API codegen
* Replace all usage of old useProjectsQuery with useOrgProjectsInfiniteQuery
* Swap access callout for project roles to use collapsible instead
* Deprecate useProjectsQuery and clean up
* Update apps/studio/components/interfaces/Organization/TeamSettings/UpdateRolesPanel/UpdateRolesPanel.tsx
Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
---------
Co-authored-by: Alaister Young <alaister@users.noreply.github.com>