Commit Graph
310 Commits
Author SHA1 Message Date
Ivan Vasilov 29f5fde08c chore: Fix the loading state when updating roles twice in a row (#37438)
Fix the loading state when updating roles twice in a row.
2025-07-25 02:05:48 +08:00
Joshen Lim cfb22045d0 Add docs button to org teams page (#37425) 2025-07-24 18:16:33 +08:00
Kevin Grüneberg 740eeb8504 feat: mandatory address input for paying customers (#37337)
- Mandatory address input when adding a new payment method
- Removed the global HCaptcha store that wasn't used consistently and would sometimes block payment method changes
- Remove the custom billing address data & tax id form on org creation and plan upgrades in favour of Stripe's `AddressElement`
- Unify usage of the Stripe payment elements into a single component
- Customers can mark "Purchasing as a business" and will then be able to put down a tax id
- Adjusted billing address form to have better labels + tax id is filtered down to selected country
- Adjusted Stripe Elements styling to use floating labels (otherwise very hard to use with address element) + additional styling changes
- New flag to filter out payment methods that do not have an address for org upgrades and credit top ups, this will be enforced a few days after rolling this out
- Added Google Maps Places API integration for address auto-completion via Stripe AddressElement
- Upgraded Stripe dependencies
- Slight adjustments to styling of plan upgrade modal
2025-07-23 18:16:10 +08:00
Ivan VasilovandJoshen Lim 2bec311971 fix: Make the database.new redirect work (#37370)
* Add a special case for /new/last-visited-org

* Handle the case where last visited org is null. Don't show an admonition if the org slug is _.

* Smol fix to disable oauth apps request if slug is _, and also dont prematurely show no perms UI state

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-23 15:06:53 +08:00
Ignacio Dobronich 16bb5187c9 docs: credit top ups pay outstanding invoices (#37255) 2025-07-22 11:25:36 +00:00
Joshen LimandAlaister Young e70242f822 Chore/clean up assistant mcp feature flags (#36772)
* Clean up usage of newOrgAiOptIn and useBedrockAssistant feature flags

* Remove all OpenAI endpoints

* Fix for self-hosted

* Default isLimited to false

* Update PG meta tests

* Fix unit tests for model

* Revert pg meta tests

* Fix test

---------

Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
2025-07-22 16:05:16 +08:00
Kevin Grüneberg 78c4b8f238 feat: support new tax ids (#37284)
- Bahrain
- Ecuador
- Egypt
- Kazakhstan
- Nigeria
- New Zealand
- Oman
2025-07-18 11:32:46 +08:00
Kevin Grüneberg 009dabaf2b fix: plan redirect from pricing page (#37231) 2025-07-17 16:57:48 +08:00
Pamela Chia 8a6248a327 Feat/add mfa and wrapper tracking (#37126)
* add mfa enforcement tracking

* add wrapper created tracking
2025-07-15 15:27:18 +08:00
Kevin Grüneberg 985b530382 chore: hint for compute costs in upgrade screen (#37094) 2025-07-14 16:31:35 +08:00
Han QiaoandSaxon Fletcher 83b5664e6b fix: show run logs for gitless branches (#36949)
* fix: show run logs for gitless branches

* fix: show edit branch modal for production

* remove side panel github

---------

Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com>
2025-07-09 21:07:33 +10:00
Pamela Chia c0b3a86052 chore: add violation type to restriction banner (#36970) 2025-07-09 16:58:55 +12:00
Ignacio Dobronich 309088be96 feat: add billing information to the leave org modal (#36868) 2025-07-04 12:15:54 +00:00
ea38c6d153 Review and merge branch (#36795)
* allow creating branching without git

* update branching modals

* add account connections

* edit branch

* copy

* update copy

* enable branch modal changes

* add gitless branching flag

* update account connections

* merge page

* merge experiment

* update merge

* update pull requests empty state

* use diff query

* branch diffing

* diff query

* Clean up

* refinements to gitless branching

* branching merge and status

* link

* branch function diffing

* update styling

* refactor

* remove hook

* error handling

* move

* remove enable branching modal

* re-add github linker

* abstract away enable and disable

* toggle fixes

* update logic to lean on connection status

* update form logic

* sheet layout

* gitless flag

* style and workflow updates

* fix side panel size

* fix duplicate onerror

* copy changes

* refetch

* merge mutation copy

* remove import

* add cost

* allow connection details on create

* initial queries

* push button

* merge cleanup

* Fix TS issues

* Fix TS issues

* Couple of clean ups

* Revert hardcode in useFlag

* Fix TS

* layout issues and github check

* refactor

* refactor to use new field

* cleanup

* style

* failed merge

* error positioning

* refactoring merge

* workflow refactor

* hook move

* clarification with github integration

* replace branch dropdown button

* update repo picker

* updates

* remove modal

* fix small nits

* change defaults

* clean up

* disable if not gitless and no connection

* clean up

* always show workflow run id

* optimistic

* fix branch query

* fix issues

* fetch edge diff

* confirm merge

* update edge functions key

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Kevin Grüneberg <k.grueneberg1994@gmail.com>
Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-07-04 14:57:59 +10:00
3f3ed433fc Remove enable branching modal (#36458)
* remove enable branching modal

* re-add github linker

* abstract away enable and disable

* toggle fixes

* update logic to lean on connection status

* update form logic

* sheet layout

* gitless flag

* fix side panel size

* copy changes

* remove import

* add cost

* allow connection details on create

* Fix TS issues

* Fix TS issues

* Couple of clean ups

* Revert hardcode in useFlag

* Fix TS

* layout issues and github check

* refactor

* refactor to use new field

* cleanup

* style

* clarification with github integration

* replace branch dropdown button

* update repo picker

* remove modal

* change defaults

* disable if not gitless and no connection

* fixes

* prevent editing on child branch

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Kevin Grüneberg <k.grueneberg1994@gmail.com>
2025-07-02 21:58:45 +10:00
Kevin Grüneberg 4984392edd fix: prevent double submission of plan change (#36765)
When changing the plan while also creating a payment method in the same breath, some customers double-clicked the confirm button leading to a double-submission and possibly leading to a state where the customer gets charged, but the plan change is not going through.
2025-06-30 19:03:59 +08:00
6f5982d635 Chore/update churn survey (#36722)
* update cancellation reasons

* update texts

* randomise options and only single select reasons

* label overrides and reason readability

* minor fixes

* fix reasons sending

* Fixes

* Adjust tooltip side

* improve header description

* add a label for radio options

* wrap shuffledReasons in useState so it doesn't randomly shuffle

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-06-29 17:58:39 +08:00
Joshen LimandSaxon Fletcher 256dbb7f38 Feature flag MCP changes (#36689)
* Feature flag assistant endpoint + opt in UI

* Feature flag bedrock stuff for the other endpoints like title, cron, complete

* add edge function complete v2

* revert to old complete

* Revert hardcode

* fix chart colour

---------

Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com>
2025-06-26 18:41:31 +08:00
Kevin Grüneberg 2c6c5d11e4 chore: cleanup pending subscription flags (#36692) 2025-06-26 18:05:04 +08:00
Joshen Lim 63164fe165 Revert "Revert "Feature/assistant mcp"" (#36687)
* Revert "Revert "Feature/assistant mcp" (#36684)"

This reverts commit 2bff117cde.

* Attempt
2025-06-26 15:02:49 +08:00
Joshen Lim 2bff117cde Revert "Feature/assistant mcp" (#36684)
Revert "Feature/assistant mcp (#35318)"

This reverts commit 3a50dd1f72.
2025-06-26 13:06:50 +08:00
3a50dd1f72 Feature/assistant mcp (#35318)
* step 1

* use mcp

* system prompt

* clean up

* space

* clean up

* add three state opt in toggle

* clean up

* todo

* hooks

* refactor opt in form and modal

* refinements

* add bedrock

* remove console

* update mcp util

* use bedrock

* remove openai sdk package

* re-add tools

* update complete endpoints

* fix: ai assistant markdown formatting (#35541)

* fix: mcp types and project ref (#35540)

* feat: more flexible aws credential provider (#35538)

* feat: more flexible aws credential provider

* fix: add AWS_REGION to turbo env vars

* change to allowed

* update complete endpoints

* add an additional permission

* refinements

* use claud 4

* legal copy changes

* update other ai functions to use bedrock

* update generate v3 copy

* remove generate sql modal

* fixes for query block

* re-add dragging to reports

* clean up

* add open ai edge function example

* use handle error from fetchers

* remove schema and lean on tools

* copy

* Assistant MCP tests (#36049)

* feat: refactor and test mcp and model logic

* fix: remove get_project tool

* fix: remove additional get_project tool references

* update copy

* Clean up, fixes, refactors

* oops

* Float errors from AI endpoionts as toasts

* Use a env var AWS_BEDROCK_PROFILE for bedrock.

* Rename the env var for AWS bedrock profile.

* feat: support custom aws bedrock env vars

* chore: add comments explaining aws credential chain

* MCP Self Hosted Check (#36185)

support self hosted

* feat: bedrock auth via vercel oidc

* Fix broken unit test

* Feeeex

* Refactor useOrgOptedIntoAi

* Remove useDisallowHipaa hook

* small system prompt change

* readd vercel packages

* fix self hosted

* increase max duration

* try more direct prompt

* max duration 90

* reduce max steps and add loading

* mono font

* backwards compat styling

* Chore/limit number of messages sent to assistant (#36388)

* Limit number of historical messages that get sent to assistant

* Update max chat history to 5

* alignment

* bump mcp server version

* Add feature flag for opt in tags (#36466)

* Add feature flag for opt in tags

* Add one more check

* security section system prompt

* rely on default link and replace image markdown

* Add custom link component to assistant message block (#36527)

* Add custom link component to assistant message block

* Update based on feedback

* Render plain text if URL is deemed unsafe

* fix mcp tools and parse data (#36593)

* Update Admonition for AI Assistant for when opt in is re-enabled (#36663)

* Update Admonition for AI Assistant for when opt in is re-enabled

* Update

* Smol fix

* Fix TS

* Tiny

---------

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-06-26 12:13:27 +08:00
Kevin Grüneberg ae9ce3d010 fix: payment method selection (#36623) 2025-06-24 03:23:56 +00:00
Thomas 9f8cc1b438 Show credit balance also for partner billed organizations.
* When a Vercel customer downgrades in the middle of the billing cycle the get credits (no refund to card). To make that clearer, they need to be able to see their balance.
2025-06-24 14:24:44 +12:00
Kevin Grüneberg 680af04a06 fix: 3ds confirmation / downgrades (#36600)
- Remove captcha for downgrades to Free, it is not needed
- Properly handle 3DS if customer has multiple payment methods
- Move payment method invalidation to react-query
2025-06-23 19:03:27 +08:00
Stojan DimitrovskiandIvan Vasilov 4945ba1861 feat: add asymmetric JWT UI (#36519)
* original files from previous PR

* get rid of router in jwt-secrets to make it show up

* rename jwt-secrets page to jwt-signing-keys

* add jwt-signing-keys query

* add legacy jwt signing keys query

* wire-up JwtSecretKeysTable with queries

* add jwt signing keys page to settings menu

* deduplicate labels, descriptions, etc

* add create, update jwt-signing-key mutations

* update types

* remove unused components, to be refactored later

* make everything into a mostly working state

* legacy migration added

* put jwt keys page like api keys

* fully migrate legacy jwt secret page

* fix prettier

* fix typecheck ts-expect-error

* rm unneeded file

* Fix compile errors.

* Rename the files and move them to the same folder.

* Merge the two constant files.

* Fix the imports.

* Fix a bug in the API keys page when opening it in a new tab.

* Change the page to be at /signing-keys

* Fix some minor types.

* Break apart some of the components in the signing keys UI.

* Use a feature banner for the initial action.

* Make a create key dialog and move functionality there.

* Fix some cosmetic issues.

* Minor cosmetic fixes.

* Remove extra keys in RQ cache.

* Add a missing link

* Add a banner when the feature flag is false.

* Minor type fix.

* more tiny type fix

* fix error on create standby key

* add alert to prevent revoking legacy jwt secret without disabling legacy api keys first

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-06-23 09:36:07 +12:00
Ignacio Dobronich 692f0b2d94 fix: update Change Plan modal caption and fix broken Compute Confirmation link (#36539)
* Pro Plan heading caption

* Fixed Comput costs docs link

* Revert to premium support

* Email support

* Fixed typing error in PaymentMethodSelection
2025-06-20 13:25:24 -03:00
Terry Sutton bd95e9a1b9 Chore/link to usage (#36404)
* Add link to usage page

* Add usage button
2025-06-20 13:12:47 -02:30
Etienne StalmansandJoshen Lim aeaf831648 feat: add UI to show MFA enforcement on org (#36439)
Disables organization selection if the org requires MFA but the user
does not have MFA enabled.
Add badges / hints to show that user has access to an Organization but
access is disabled because of MFA access requirement

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-06-20 14:51:11 +02:00
Kevin Grüneberg 058b25d7c3 chore: show org error message for longer (#36526) 2025-06-19 03:34:52 +00:00
Kevin Grüneberg dff6074d30 feat: support pending changes for plan upgrades (#36430)
This PR implements the new flow to confirm subscription upgrades using Orb pending changes. This is backwards compatible and based on a flag exposed by the backend (`subscriptionPreview.pending_subscription_flow`).

Just like the organization creation, the entire flow is slightly different - instead of creating a payment method separately, the payment method is added inline while doing the upgrade and then attached to the customer. If payment fails, the upgrade will not go through. If payment requires additional action, the user needs to confirm the payment before allowing the upgrade.

For testing the new flow locally, toggle the flag in `flags.ts` on the backend.

Changes include
- No longer rely on the `changeType` from the plans endpoint as this is regularly out-of-sync and displays wrong up/downgrade info due to race conditions
- `readOnly` mode for Stripe elements if anything is loading/submitting
- Reduced prop drilling for some components
- Hide payment method and address selection on downgrade
2025-06-18 15:11:33 +08:00
Joshen Lim 8b4d781ab8 Fix leave team button visibility (#36480)
* Fix leave team button visibility

* Add button type
2025-06-17 21:10:02 +08:00
Joshen Lim 21e93fc649 Fix organization card link (#36473) 2025-06-17 18:25:29 +08:00
7c678b9db8 Update new project flow to add a warning before redirecting (#36349)
* Update new project flow to add a warning before redirecting

* Simplify the logic for picking an org.

* Small UI tweaks

* Readd the alert about a not found org.

* Link to all orgs if slug is undefined

* Nit

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-06-17 09:55:05 +02:00
Kevin Grüneberg 7e5850bc70 feat: prefill Stripe email + styling (#36457)
- Prefill email in Stripe form to set up Link faster or connect faster
- Overwrite a bit of styling so it looks less foreign
- Moved the Payment component from the NewOrgForm into it's own file and renamed it
2025-06-17 11:54:45 +08:00
Joshen Lim ddc2250e1f Shift positioning of "Leave team" button in Org Team Settings (#36386)
* Shift leave team button position, and fix sorting own user as first in list

* Nit
2025-06-16 14:00:38 +08:00
Kevin Grüneberg ff318d07f0 feat: support pending changes (#36333)
Adds support for the new Orb pending subscription change flow that has been added to the backend.

By default, the new feature is disabled (enabled after merge on staging). If disabled, this should work just like before with the regular `confirmPayment` function that triggers 3DS if needed and properly lets a user confirm their additional factor.

With the new flag, we only create a payment method, as we will do another payment intent that is set up for future usage and that may require 3DS - so we avoid the possible double confirmation (setup confirmation + payment intent). The organization creation endpoint can either return a full organization (i.e. on Free Plan or immediate payment success) or a payment_intent_secret. In case of the secret being returned, we need to confirm the secret with the Stripe SDK.

Moved the Stripe Elements further down to avoid the entire form reloading (especially billing address) in case of a payment failure.
2025-06-13 10:27:09 +08:00
Kevin Grüneberg 28ebb85c85 fix: redirect to Vercel marketplace for plan change (#36351) 2025-06-12 15:31:58 +08:00
Kevin Grüneberg e6c5d3cc11 fix: trim confirmation input and comparison (#36337)
We regularly have customer support tickets that cannot confirm because of a mismatching space at the end (and they cannot for the life of them figure this one out).

Trimming both input and comparison string will prevent unnecessary support tickets and still guarantees enough safety.
2025-06-12 11:28:48 +08:00
Ivan Vasilov 885df2ff62 fix: When claiming a project, first authorize the oAuth app (#36329)
When claiming a project, first authorize the oAuth app.
2025-06-11 15:46:32 +02:00
Joshen Lim 257e04d714 Manually updated org query data after creating a new org (#36301) 2025-06-10 19:05:18 +08:00
Ivan VasilovandJoshen Lim 586a829828 feat: Project claim (#35992)
* Add another page for claiming a project.

* Fix a misspell.

* Minor fixes.

* Comment some test code.

* Update the design on the confirm step.

* Reorganize the authorize page. Bunch of design fixes for the claim page.

* Fix

* Delete added files my mistake.

* Separate claim-project and authorize pages. Minor design fixes.

* Add more logs to the generate claim button.

* snapshot.

* Add more copy to the three steps.

* Make the claim URL button better.

* Add missing comma.

* Fix unneeded changes.

* Make the header full width.

* Fix all comments by Joshen.

* Clean up extra code.

* Forgotten some things to clean.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-06-10 11:49:23 +03:00
Samuel Bodin 07ec7704db chore: remove unnecessary $ in usage page (#36176)
Update Usage.tsx
2025-06-04 21:11:44 +00:00
Kevin Grüneberg 2cd0f3c84d fix: possibly undefined breakdown in plan update modal (#36155) 2025-06-04 23:37:49 +08:00
Pamela Chia e65655981c chore: handle fair use alerts when pro plan (#36123) 2025-06-03 17:39:30 +08:00
Terry SuttonandJoshen Lim eb7f5bc363 Use email instead of username in org member list (#36122)
* Use email instead of username in org member list

* Minor clean up

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-06-03 13:14:35 +08:00
Kevin Grüneberg 3b771c5533 fix: hide credit balance section if billed via partner (#35841) 2025-05-22 15:44:01 +02:00
Joshen Lim 9139418ef0 Chore/cleanup feature flags 130524 (#35648)
* Clean up reportsV2 feature flag

* Clean up edgeFunctionCreate feature flag

* Clean up creditTopUp feature flag

* Clean up allowOrioleDb feature flag
2025-05-14 16:56:27 +08: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
6d09404779 feat: add mfa enforcement toggle (#34307)
* feat: add mfa enforcement toggle

Allows toggling MFA enforcement on an organization level.

Depends on API change #22088

* fix: toggle and disable action for non-owner

* chore: disable for free plans

* chore: disable toggle for org MFA if current user doesn't have MFA enabled

* set initial state

* move org mfa to security page

* use zod resolver

* fix initial values

* useQueryClient in the organization-mfa-mutation

* chore: warn about losing access to mfa orgs

* Some refactors, fixes and improvements

* chore: feature flag mfa enforce page

* Tiny fix

* Leave comment

---------

Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-05-09 16:56:49 +02:00