Commit Graph
33 Commits
Author SHA1 Message Date
Joshen Lim 90d3b56db0 Joshen/fe 2621 show custom domain on dashboard and connect modal (#43233)
## Context

Main fix is to adjust the new home page + connect dialog (and connect
sheet) to render the project's custom domain if available

<img width="471" height="255" alt="image"
src="https://github.com/user-attachments/assets/3a208b2e-bdeb-43f5-a2e7-3495881dbaaa"
/>
<img width="1065" height="233" alt="image"
src="https://github.com/user-attachments/assets/2a7b8f81-8c0b-4803-bf0a-fc16a2f1e0e1"
/>

## Changes involved

- Created a `useProjectApiUrl` hook that will return the API URL
depending if custom domains is available, otherwise default to default
project API URL
- Refactored all the other places that were manually deriving the
project's endpoint
  - Storage Explorer -> copy URL
  - Edge Functions
  - Integrations -> Data API + API Docs
  - Auth Providers -> Callback URL
- Also updated the copy CTA for the addons page
  - Instead of just "Change xxx", make it a bit more actionable
  - For add ons with binary states (Custom domains, IPv4)
    - If not enabled yet, "Enable xxx", otherwise "Toggle xxx"
  - For PITR
- If not enabled yet, "Enable PITR", otherwise "Change recovery
duration"
  - Also added "Edit custom domain" CTA if enabled
<img width="1144" height="518" alt="image"
src="https://github.com/user-attachments/assets/4f152ea5-0cc7-412c-95e8-ad5bb37c19c3"
/>


## To test
- [ ] Verify that for a project with custom domain set up, all the
affected UI mentioned in the above section look correct
2026-03-03 11:37:08 +08:00
Saxon FletcherandJoshen Lim 0d761b0434 Connect sheet final content (#42374)
<img width="2892" height="2342" alt="image"
src="https://github.com/user-attachments/assets/7e08929d-abc3-4397-b89d-99cc52d8190e"
/>

This is the third and final PR to complete the new connect sheet. 

First: https://github.com/supabase/supabase/pull/42367

Second: https://github.com/supabase/supabase/pull/42373

This re-adds the Direct, ORM, MCP tabs and their content, including via
connect.schema.

To test:
- Flag will be enabled on all staging projects
- Click connect and notice new Sheet
- Click all tabs and ensure content is correct

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Multi-mode connection flow with mode selector and icons (framework,
direct DB, ORM, MCP)
* New framework/variant/library selector, richer connection guides and
install steps (Prisma, Drizzle, direct)
* MCP onboarding flows (Cursor, Codex, Claude Code) with server/auth
commands and configuration UIs

* **Refactor**
* Connect schema and state rebuilt to be mode-driven with improved step
resolution and cascading state updates

* **Tests**
* Expanded unit tests covering framework resolution, connect flows, and
mode behaviors

* **Chores**
  * ESLint ignores updated for content files
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-11 22:14:18 +08:00
Saxon FletcherandJoshen Lim 0e60c5f341 Chore/connect sheet/button (#42367)
This is the first smaller PR in the broader change of updating our
Connect dialog (see
[here](https://github.com/supabase/supabase/pull/42276)).

This PR focuses on decoupling the ConnectButton our of the Connect
dialog and into its own component . The button includes a flag to render
the new sheet. The new sheet is empty for the time being as the flag is
at 0%.

To test:
- Enable flag and click button, see new Sheet
- Disable and see old dialog
- Create a new project -> in getting started section see "connect to
app" step -> Click connect button and make sure it works


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  - Added a Connect button component and an alternative Connect sheet.
  - Added curl syntax highlighting for code blocks.

* **Changes**
- Connection dialog moved to a controlled open-state pattern; Connect
replaced legacy entry points across the UI and can be feature-flagged.
- Connection actions simplified and no longer depend on framework
selection.

* **Removals**
- Removed legacy framework selector, default framework constant, and
related tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-04 11:53:32 +11:00
Charis 842722def8 feat(studio): add api keys to connect modal (#42118)
Add a new tab to Connect Modal to display API URL and public
(publishable) API keys directly.
2026-01-23 13:25:41 -05:00
Copilotandivasilov e6290fc225 fix: Remove BASE_PATH prefix from Next.js Link in Connect dialog (#41639)
* Initial plan

* fix: Remove BASE_PATH prefix from Next.js Link component in Connect dialog

Next.js Link components automatically handle base paths, so the BASE_PATH prefix should not be manually included. The BASE_PATH prefix remains correctly in the Panel.Notice href prop which is not a Next.js Link component.

Co-authored-by: ivasilov <568291+ivasilov@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ivasilov <568291+ivasilov@users.noreply.github.com>
2025-12-29 17:53:26 +01:00
Jordi Enric a7db531514 update api keys section in connect dialog (#41638)
* update api keys section in connect dialog

* handle non platform

* fix links
2025-12-29 15:41:33 +01:00
Pamela Chia 076a2529eb feat(connect): add telemetry tracking and command menu actions (#40611) 2025-11-20 11:25:13 +08:00
Charis a5e2c62ef4 fix: check for api key permissions before requesting (#40452)
To prevent sending unnecessary requests for API keys when the user can't
view them (Read-Only Role), first check the permissions.
2025-11-14 09:43:34 -05:00
Francesco Sansalvadore 3bc91b2bcc connect dialog: add shared pooler to transaction pooler (#39981)
fix shared pooler in transaction pooler + add link to docs in connect dialog
2025-10-30 10:15:18 +01:00
Jordi EnricandAli Waseem aa30698cc2 feat: new getting started section to open correct presets in Connect dialog DESIGN-302 (#39731)
* fix framework dropdown opening and scrolling page up

* fix tab opening

* add infertab util

* add some tests

* update getting started section

* fix rounded

* smol explainer

* Update apps/studio/components/interfaces/Connect/Connect.tsx

Co-authored-by: Ali Waseem <waseema393@gmail.com>

* simplify confiitonal

* moar tests

---------

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2025-10-22 17:14:36 +02:00
Francesco SansalvadoreandJoshen Lim 5988f4ad47 change connection string via dropdown (#39354)
* change connection string via dropdown
* rearrange descriptive content and actions in connection string tab
* update connection string url state based on selected type and method
* reset query states when switching tabs
* fix steps layout in Connection String dialog tab
* rounded-lg on mobile
* update wording of step 3 on connection string tab
* improve map key naming

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-17 10:39:22 +02:00
84601211e6 feat: local/self-hosted support in MCP URL builder (#38981)
* feat: MCP URL builder

- Creates an MCP URL builder component that allows a user to choose options via a UI, then automatically builds the URL and config needed for various MCP clients
- Adds this component to studio Config modal and docs MCP page

* fix(mcp url builder): mcp-remote options

mcp-remote handles OAuth, so no need to pass personal access token

* fix(docs): mcp

We are pushing the remote MCP server rather than the local one, so removing
references to the local server from documentation.

* fix(mcp url builder): ui messages

- Clarify read-only mode
- Storage is not enabled in the defautl configuration

* fix: mcp url builder

- Refactor unnecessary hook into a utility function
- Fix background color in dark mode

* feat: update remote MCP base URL

* docs: update MCP getting started

- Restores relevant content from prod
- Adds callout about authentication
- Adds next steps to remote MCP installation section

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: click selected project to unselect

This follows the unselect pattern from shadcn combobox example

https://ui.shadcn.com/docs/components/combobox

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* fix: light mode connection icons

* chore: format `mcp.mdx`

* fix: VS Code URL handler "name"

Based on docs the field is "name" instead of "id":

- https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_commandline-configuration
- https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_url-handler

* refactor: `NEXT_PUBLIC_MCP_URL` environment variable

* feat: move client selector below options

* feat: "Add to" buttons left aligned about config file

* feat: actionable login hint

* feat: condition supported feature groups on platform

* feat: platform selector, mcp url for self-hosted

* feat: update copy for platform selection

* fix: base URL logic, copy

* fix: form MCP url from apiUrl in self-hosted studio

* chore: unused file

* fix: don't populate apiUrl for docs

* fix: omit `project_ref` for self-hosted

* docs: tweak copy for CLI platform

* chore: optional instead of nullable `apiUrl`

* chore: type sharing / inference for platform type

* feat: 'development' self-hosted feature group

* feat: omit read-only switch/param for local/self-hosted

* refactor: remove claude desktop client option

Replay of https://github.com/supabase/supabase/pull/36867/commits/59670f6771bca8e81fa62c0d3115288b82bfbb5d

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
2025-10-01 11:45:36 -04:00
3057faa4e2 feat: MCP URL builder (#36867)
* feat: MCP URL builder

- Creates an MCP URL builder component that allows a user to choose options via a UI, then automatically builds the URL and config needed for various MCP clients
- Adds this component to studio Config modal and docs MCP page

* fix(mcp url builder): mcp-remote options

mcp-remote handles OAuth, so no need to pass personal access token

* fix(docs): mcp

We are pushing the remote MCP server rather than the local one, so removing
references to the local server from documentation.

* fix(mcp url builder): ui messages

- Clarify read-only mode
- Storage is not enabled in the defautl configuration

* fix: mcp url builder

- Refactor unnecessary hook into a utility function
- Fix background color in dark mode

* feat: update remote MCP base URL

* docs: update MCP getting started

- Restores relevant content from prod
- Adds callout about authentication
- Adds next steps to remote MCP installation section

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: click selected project to unselect

This follows the unselect pattern from shadcn combobox example

https://ui.shadcn.com/docs/components/combobox

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* Update apps/docs/content/guides/getting-started/mcp.mdx

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* fix: light mode connection icons

* chore: format `mcp.mdx`

* fix: VS Code URL handler "name"

Based on docs the field is "name" instead of "id":

- https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_commandline-configuration
- https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_url-handler

* refactor: `NEXT_PUBLIC_MCP_URL` environment variable

* feat: move client selector below options

* feat: "Add to" buttons left aligned about config file

* feat: actionable login hint

* refactor: remote claude desktop client option

---------

Co-authored-by: Matt Rossman <22670878+mattrossman@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
2025-10-01 10:45:34 -04:00
Joshen Lim d46525eac1 Chore/swap use check permissions with use async check project permissions part 8 (Season Finale) (#38619)
* Update perms checking in audit logs

* Deprecate useCheckPermissions, useIsPermissionsLoaded and useCheckProjectPermissions as they're no longer used

* Rename useAsyncCheckProjectPermissions to useAsyncCheckPermissions

* Fix TS
2025-09-16 17:05:57 +08:00
Joshen Lim 84e3f5041e Fix missing app frameworks in connect modal (#38712)
* Fix missing app frameworks in connect modal

* Clean up

* More clena up

* Deprecate ConnectTabCustomContent
2025-09-15 15:14:11 +00:00
Terry Sutton e4e65b9979 Fix frameworks error (#38710) 2025-09-15 11:46:02 -02:30
hallidayo 22e09b81d0 feat: studio connect framework state (#38637)
* connect using framework state

* initial opening remove params
2025-09-15 11:01:28 -02:30
Alaister YoungandJoshen Lim 62ac8d9eb0 chore: move connect modal custom content to enabled features (#38695)
* chore: move connect modal custom content to enabled features

* smol

* Smol nit

* Flip back flags

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-15 16:59:38 +08:00
hallidayo bc845c26a9 feat: studio connect url tab state (#38596)
Update Connect.tsx
2025-09-10 10:04:14 -02:30
Joshen LimandJordi Enric f9027a29cd Chore/custom content connect UI frameworks (#38090)
* Init custom content hook

* Implement useCustomContent hook similarly to useIsFeatureEnabled, and implement extension of organization documents

* Attempt to type things nicely

* Add support for custom content example projects

* Add support for custom content logs explorer default query

* nit

* Add support for custom content connect UI frameworks

* Reset custom-content.json

* Smol nit

* set custom-content to null

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2025-08-22 17:57:40 +08:00
Joshen Lim e320368dc7 Part 2 of swapping useCheckPermissions with useAsyncCheckProjectPermissions (#37860)
* Part 2 of swapping useCheckPermissions with useAsyncCheckProjectPermissions

* Fix TS

* Address feedback

* Fix
2025-08-12 17:34:53 +07:00
Joshen Lim cab0585533 Fe 1799/consolidate to useselectedprojectquery and (#37684)
* Replace all usage of useProjectContext with useSelectedProjectQuery

* Replace all usage of useSelectedProject with useSelectedProjectQuery

* Replace all usage of useProjectByRef with useProjectByRefQuery

* Replace all usage of useSelectedOrganization with useSelectedOrganizationQuery

* Deprecate useSelectedProject, useSelectedOrganization, and useProjectByRef hooks

* Deprecate ProjecContext
2025-08-06 10:53:10 +07:00
Joshen LimandIvan Vasilov 31b8fbe487 Deprecate getAPIKeys from project settings v2, use new api keys endpoint instead (#37300)
* Deprecate getAPIKeys from project settings v2, use new api keys endpoint instead

* use getPreferredKeys where appropriate

* Prevent usage of secret key for storage and realtime inspector

* Add dashboard API api-keys endpoint

* Simplify

* Disable edge functions test if legacy api keys are disabled

* Revert

* Fix graphiql

* Remove all usage of api keys from project settings, except DisplayApiSettings

* Update

* Fix

* Small fix for an undefined upload url.

* Fix the storage state initialization when the resumable url changes.

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-07-22 16:22:03 +08:00
Joshen Lim 34f764e543 Fix database selector not selectable in connect modal (#36723) 2025-06-27 20:15:43 +08:00
Stojan Dimitrovski a403f1ceca feat: add publishable key in connect dialog (#36638) 2025-06-26 09:11:08 +02:00
Joshen Lim fd98a08a4f Chore/default to new organization layout (#35515)
* Default to new organization layout + remove feature preview

* Remove feature preview

* Clean up LayoutUpdateBanner

* Clean up

* Fix

* Fixy fix

* Update comment

* Nit to fix layout shift
2025-05-13 11:25:35 +08:00
Kevin Grüneberg ab73c916c1 chore: only load data if needed (#34624)
Builds on top of #34617 (can be merged independently)
2025-04-02 09:23:58 +08:00
Francesco Sansalvadore ecd181bcd9 studio mobile v2 (#32630)
* improve some studio mobile layouts

* improve some studio mobile layouts

* improve settings

* assistant mobile

* assistant mobile

* assistant mobile

* responsive formlayout and new project layout

* improve dashboard pages headers

* improve dashboard auth pages

* mobile org settings

* mobile billing fixes

* adjust paused project container height

* remove comments

* triggers

* leftovers

* ai assistant

* fix errors

* remove 16px input size

* fix test

* merge access tokens settings page conflicsts

* smol integrations here and there
2025-01-17 19:07:35 +01:00
Joshen Lim 2781fb9285 Only show Connect UI in layout header if project is active healthy (#32698)
* Only show Connect UI and branching UI in layout header if project is active healthy

* Only hide connect UI

* Opt for disabled state with tooltip instead
2025-01-10 16:28:26 +08:00
Joshen Lim 1331cc8b63 Remove connectDialogUpdate flag and clean up old connection string components (#32613)
* Remove connectDialogUpdate flag and clean up old connection string components

* Fix
2025-01-07 15:19:39 +07:00
Joshen Lim 29b70f6084 Smol update to api keys notice (#31298) 2024-12-23 14:04:00 +08:00
Joshen LimandIvan Vasilov e648966131 Add URL param support to toggle connect UI (#31241)
* Add URL param support to toggle connect UI

* Fix leaving team redirects to landing page

* Fix leaving team redirects to landing page

* Fix grammar

* Add autocomplete off to team settings search + delete project input modal

* Shift logic to Connect, and clean up param when close

* Use nuqs to manage Connect state instead of valtio

* Fix a failing test.

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2024-12-19 09:34:28 +00:00
f650b5ae67 Feat/connection string revamp (#30572)
* add new page

* moar

* moar

* added icons

* improve icons

* moved connect dialog to main header

* update text

* smaller screen support

* moar

* add python and sqlalchemyString

* moar

* add IPv4 warning

* moar

* Delete pooler-icons-v2.tsx

* tidy

* Delete DatabaseSettings.tsx

* tidy

* tidy

* moar. Session pooler is de-prioritized

* Update DatabaseConnectionString.tsx

* type issue

* moar

* Update DatabaseConnectionString.tsx

* Spelling

* Clean up LayoutHeader

* Clean up ConnectionPanel

* Clean up ConnectionParameters

* Last batch of clean up

* Fix loading state padding

* Shift old Connect files to new Connect folder outside of Home

* Final clean up

* Smol fix

* FIX

* Fix button link

* Fixes

* Lint

---------

Co-authored-by: Terry Sutton <saltcod@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2024-12-05 17:23:14 +08:00