Repository navigation
Conversation
- Require better-auth >=1.7.5 <1.8.0 - Replace the removed oidcProvider plugin: the Convex plugin now serves the same OpenID discovery document itself - Move joins handling to advanced.database.joins - Return null from updateOne when no row matches (new adapter contract) - Drop removed /sign-in/oauth2 and /oauth2/callback path matchers - Regenerate component schema and codegen - Update all dev dependencies, examples, e2e and docs site to latest (TypeScript 6, ESLint 10, Vitest 5, Vite 8, Convex 1.46) - Replace eslint-plugin-import with eslint-plugin-import-x for ESLint 10 - Add migrate-to-0-13 guide
…ample schemas The Better Auth 1.7 CLI passes an absolute output path to createSchema, which leaked into the generated file header. Show it relative to cwd. Regenerate the Local Install schemas in the next and tanstack examples.
|
@aussieljk is attempting to deploy a commit to the Convex Team on Vercel. A member of the Team first needs to authorize it. |
aussieljk
force-pushed
the
update-deps-latest
branch
from
October 1, 2026 05:43
587b0d1 to
c2064ff
Compare
onmax
added a commit
to onmax/nuxt-convex
that referenced
this pull request
Oct 22, 2026
…pports 1.7 @convex-dev/better-auth 0.12.5 imports better-auth/plugins/oidc-provider, which better-auth 1.7 removed, so `npx convex dev` could not bundle the playground. @nuxtjs/better-auth declares better-auth >=1.7 but its clientOnly mode works with 1.6, so its peer range is relaxed with peerDependencyRules. Renovate stays below 1.7, and the Better Auth guide documents the pin and the pnpm/npm overrides users need. Refs: convex/better-auth#444
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR updates the component to Better Auth 1.7 and updates all dependencies to their latest versions. It includes the root package, the three examples, e2e and the docs site. All versions are at least 7 days old, as
.npmrcrequires (min-release-age=7).Better Auth 1.7 has breaking changes, so this PR is a
0.13-level change. I added a draftmigrate-to-0-13guide. The maintainers must decide the release version.Better Auth 1.7 changes
better-authis now>=1.7.5 <1.8.0. Versions 1.7.0 to 1.7.2 added a requiredaccount.issuercolumn. Version 1.7.3 removed it again, so 1.7.5 is the lowest version that I tested.oidcProvideris removed upstream. The Convex plugin used it only to serve/convex/.well-known/openid-configuration. The plugin now serves the same document itself (same fields, sameissuerandjwks_uri). The oidcProvider after hook did nothing here, because the Convex plugin does not register the/oauth2/authorizeendpoint that sets its cookie. So I removed the hook. I added a test for the endpoint.oidcProvideris removed fromauth-options.ts. So theoauthApplication,oauthAccessTokenandoauthConsenttables are removed from the default schema. OIDC Provider is not on the supported plugins list. I did not add@better-auth/oauth-provider, becausesrc/component/adapter.tsloadsauth-options.tsat runtime, and it would become a new runtime dependency for all users. I did a test on a local backend: a deployment with documents inoauthApplicationdeploys the new schema without errors, and the documents stay.twoFactor.failedVerificationCount,twoFactor.lockedUntil,jwks.alg,jwks.crv.experimental.joinsmoved toadvanced.database.joins. The adapter still sets it tofalse.updatemust now returnnullwhen no row matches. Before,updateOnethrewFailed to update <model>. A new upstream adapter test checks this./sign-in/social,/callback/:id). I removed the old/sign-in/oauth2and/oauth2/callbackmatchers from the Convex and cross-domain plugins, and I updated the tests.AuthClienttype: in 1.7, the genericBetterAuthClientPluginin the plugins union madeuseSession().dataresolve tonever. The type now uses only the Convex and cross-domain client plugins. I did a check that clients with more plugins (organization, two factor, anonymous) can still be given toConvexBetterAuthProvider.--outputpath tocreateSchema, and this path went into the generated file header. The header now shows the path relative tocwd.Tooling majors
6.0.3. TypeScript 7 is not possible yet, becausetypescript-eslintsupports<6.1.0. TS 6 hastypes: []as the default and deprecatesbaseUrl. So I added"types": ["node"]to the example Convex tsconfigs, removedbaseUrl, and changed two imports that usedbaseUrlto relative imports.eslint-plugin-importdoes not support ESLint 10. I replaced it witheslint-plugin-import-x, which has the sameconsistent-type-specifier-stylerule. I did a check that the rule still reports inline type specifiers. I removedeslint-plugin-react, because it was not used and it blocked ESLint 10.@convex-dev/eslint-plugin5 has a new rule,no-duplicate-indexes. It reports errors on the generatedsrc/component/schema.ts, because the adapter queries by those index names. I turned the rule off for that one generated file.@types/nodestays on 24.x, because CI uses Node 24.Examples, e2e and docs
genericOAuthClient()is removed, andsignIn.oauth2is replaced withsignIn.social.twoFactor.enableresult is narrowed onmethod === "totp".@import 'tailwindcss'through PostCSS. I moved it to@tailwindcss/vite, which the React example already uses.better-auth@~1.7.5, and a newmigrate-to-0-13guide. The docs site dependencies are updated too (fumadocs-mdx15, TS 6).npm installinexamples/nextandexamples/reactcrashes npm (Cannot read properties of null (reading 'matches')). npm places theconvexpeer of@convex-dev/resendbefore thefile:link toconvex. I made the lockfiles in two steps (first thefile:links only, then the fullpackage.json).npm ciworks on all lockfiles.Test plan
npm run buildnpm run test: 185 passed, 31 skipped, no type errorsnpm run typecheck: root and all 6 example projectsnpm run lint: 0 errors (3 warnings, the same as onmain)npm run test:e2e: 4 passed against a local backendvite build), tanstack (vite build), next (next build --webpack), docs (next build)npm cion the root and all example lockfilesNotes for reviewers
Unreleasedentry toCHANGELOG.md. I did not changesrc/version.ts, because the release script updates it.next buildwith Turbopack cannot resolve thefile:links outside the example root. This also happens onmain. The dev script already uses--webpack.main, and CI does not check Prettier. I did not reformat those files, to keep this diff small.