Come join us this Thursday for our first Redwood meetup of 2023 where I’ll go over the release notes for this major: https://lu.ma/redwood-townhall.
Changelog
Breaking
Decoupled auth
Note
It may seem like there are a lot of breaking changes, but there's not—the work was just done in many PRs. Most of them are very small fixes. To get a real sense of the breaking changes, see the upgrade guide. But this is more or less every PR that went into the decoupled auth project, ordered by when it was merged.
ℹ️ Click to see all decoupled auth PRs
- Decouple auth #5985 by @Tobbe
- chore: run lint fix post merge #5985 #6691 by @jtoar
- chore: remove private field on new packages package.json #6692 by @jtoar
- chore: make misc change to trigger canary publishing #6695 by @jtoar
- Netlify: Enable auth-providers-api and auth-providers-web installation #6697 by @Tobbe
- fix(dbAuth): add required packages to setup command #6698 by @jtoar
- Fix decouple auth related type errors #6709 by @Tobbe
- Update the Clerk setup script and templates #6710 by @Tobbe
- Auth: Update firebase setup script #6716 by @Tobbe
- Add auth decoder to clerk auth setup #6718 by @Tobbe
- Clerk: Simplify web implementation #6713 by @Tobbe
- supabase auth setup: Add missing rw packages #6743 by @Tobbe
- Missing packages for Ethereum auth setup #6740 by @Tobbe
- supertokens setup auth: Add missing RW packages #6744 by @Tobbe
- Add missing packages to magicLink setup #6741 by @Tobbe
- nhost auth setup: Add missing packages #6742 by @Tobbe
- Auth0 setup: Install correct packages #6734 by @Tobbe
- Setup auth: Update goTrue #6733 by @Tobbe
- Azure setup auth: Install and import all needed packages #6736 by @Tobbe
- Okta: Add packages to setup script #6732 by @Tobbe
- Update auth setup warning message #6746 by @Tobbe
- Fix auth0 decoder import #6764 by @Tobbe
- Fix dbAuth webAuthn template (redundant type import) #6769 by @Tobbe
- Custom auth: Fix comment in template #6804 by @Tobbe
- [Fix]: Add back webAuthn export path #6903 by @jtoar
- auth0 and netlify auth packages #6922 by @Tobbe
- azure auth package #6982 by @Tobbe
- Custom auth package #6984 by @Tobbe
- Remove api db auth global #6968 by @Tobbe
- Custom auth should not have api package #6986 by @Tobbe
- Use auth provider specific packages #6985 by @Tobbe
- fix(cli): Handle importing optional setup auth commands #6997 by @jtoar
- auth-firebase-* #6987 by @Tobbe
- chore(auth): move auth providers into separate packages #7019 by @jtoar
- fix: auth provider names in setup auth #7038 by @jtoar
- Fix typo in dbauth setup package name #7040 by @Tobbe
- Fix webAuthn import path in setup template #7041 by @Tobbe
- Setup auth: No return on missing modules #7049 by @Tobbe
- fix: dedupe redwoodjs packages #7050 by @jtoar
- Include dbAuth setup in test project fixture check #7036 by @Tobbe
- Use canary packages for auth in the test project #7052 by @Tobbe
- dbAuth: No more process.env.RWJS_API_DBAUTH_URL #7032 by @Tobbe
- fix: add missing deps to cli helpers #7117 by @jtoar
- dbAuthClient #7111 by @Tobbe
- Rebuild test-project fixture #7123 by @Tobbe
- Codemod to include full-name in test-project signup #7124 by @Tobbe
- Rename create auth functions #7137 by @jtoar
- chore: update test project fixture dbauth packages #7139 by @jtoar
- Remove deprecated auth providers #7138 by @jtoar
- fix(setup): list
@redwoodjs/cli-helpers
as dependency to@redwoodjs/cli
#7141 by @jtoar - Firebase Auth: Pin firebase-admin version in setup script #7122 by @Tobbe
- chore: remove unnecessary
@redwoodjs/api
dependencies #7153 by @jtoar - cli: Add missing dep crypto-js #7190 by @Tobbe
- fix: typo in clerk auth decoder import #7219 by @jtoar
- fix: update packages in supabase setup #7220 by @jtoar
- fix(smoke test): add babel resolution for storybook #7250 by @jtoar
- Decoupled auth setup: install handlers automatically #7146 by @jtoar
- Fix how the setup auth command checks for published versions #7256 by @jtoar
- chore: try reverting babel resolution for storybook in test project fixture #7257 by @jtoar
- Decoupling auth polishes #7258 by @jtoar
- chore: remove experimental warning in setup auth #7262 by @jtoar
- authTasks.ts: Extract addAuthDecoderToCreateGraphQLHandler #7268 by @Tobbe
- authTasks: Replace auth decoder import and argument #7273 by @Tobbe
- authTasks: Rename to addConfigToWebApp #7279 by @Tobbe
- setupHelpers.test.ts: Remove unused arg #7281 by @Tobbe
- More setup tasks for better progress reporting #7283 by @Tobbe
- authTasks: Sort imports #7284 by @Tobbe
- setupHelpers: Add 'verbose' Listr renderer support #7285 by @Tobbe
- Fix dbauth setup command in rebuild fixture #7292 by @dac09
- Fix premajor canary publishing when there's a major RC #7320 by @jtoar
- Allow passing an array of auth decoders to createGraphQLHandler #7349 by @Tobbe
- fix(setup-auth): Update setup process to make it behave consistently #6956 by @dac09
- Fix detection of legacy auth #7352 by @Tobbe
- Remove legacy auth import #7353 by @Tobbe
- Remove old AuthProvider when FORCE or REPLACE #7354 by @Tobbe
- Setup auth: Disable prompt #7356 by @Tobbe
- Setup auth: Handle skipping api lib auth.ts #7357 by @Tobbe
- CurrentUser: Let declaration merging add
roles
#7360 by @Tobbe - Make unit tests works with Auth0 #7375 by @simoncrypta
- Auth Netlify: Simplify hasRole implementation #7361 by @Tobbe
- router tests: Fix AuthContext type error #7383 by @Tobbe
- Azure: Only redirect in getToken on InteractionRequiredAuthError #7386 by @Tobbe
- fix: setup web/src/auth.js file in JS projects #7422 by @jtoar
- chore: Increase consistency of test-project rebuildFixture #6906 by @Josh-Walker-GM
- auth setup: auth.js for JS projects #6911 by @Tobbe
- authTasks: Improve tests to also cover tsx template #7425 by @Tobbe
- auth setup: Refactor "redirect" commands #7429 by @Tobbe
- [Fix]: Ensure client is defined using Clerk auth #6897 by @jtoar
- feat(auth): Update dependencies and support the new Clerk keys #7385 by @anagstef
- [Auth] Update setup notes and templates, and constrain versions #7452 by @jtoar
- fix: pin webAuthn, SuperTokens, comment out latter #7476 by @jtoar
- Fix setup help text typo #7484 by @Tobbe
- SuperTokens setup: Add to Routes.tsx #7483 by @Tobbe
- Make it easier to test auth setup with rwfw project:copy #7485 by @Tobbe
- Set up auth: Fix isInstalled logic #7492 by @Tobbe
- fix(CLI): try-catch
require.resolve
in setup auth #7494 by @jtoar - fix(CLI): use
require.resolve.paths
to avoidrequire.resolve
cache #7496 by @jtoar - fix(CRWA): import
hashPassword
from@redwoodjs/auth-dbauth-api
#7503 by @jtoar - fix(CLI): add env var to Supabase notes, Azure alias #7504 by @jtoar
Node.js 16 and 18
GraphQL Yoga v3 and GraphQL Armor
- Update to GraphQL Yoga v3 #6727 by @ardatan
- feature: Implement GraphQLArmor #7291 by @dthyresson
NavLink
-
NavLink not highlighting when on sub pages #6939 by @razzeee
The
<NavLink>
component takes a new prop,matchSubPaths
, that makes it apply the class in theactiveClassName
prop to matching sub-paths:<NavLink activeClassName="activeTest" matchSubPaths to="/users"> Users </NavLink>
For example, if you have a
NavLink
to/users
and setmatchSubPaths
, if the user navigates to/users/2
, theactiveClassName
still applies. TheuseMatch
hook takes the same parameter.The breaking part: the
matchPath
function, which is what this component uses under the hood, is no longer exported from@redwoodjs/router
. If you’re using it, we recommend you use theuseMatch
hook instead. IfuseMatch
doesn’t cover what you were usingmatchPath
for, please let us know.
Fix
- fix: Moves
fastify.addContentTypeParser(...)
aboveconfigureFastify(...)
#7178 by @CeleroChris - fix(prerender): Prerender pages sequentially #7321 by @dac09
- Test prerendering meta tags #7334 by @Tobbe
- fix: Corrects generated netlify.toml for setup deploy netlify command #6670 by @dthyresson
- fix(telemetry): Enable telemetry on windows #7389 by @Josh-Walker-GM
- fix(ts): Fix defineScenario type for scenario definition function form #6915 by @dac09
- fix: correct Cell prop types when used with
beforeQuery
#7063 by @tsugitta
Docs
- Update firebase auth docs #6717 by @Tobbe
- Update Clerk docs #6712 by @Tobbe
- Update Netlify auth docs #6748 by @Tobbe
- Explicitly reference dbAuth #7226 by @ajoslin103
- feat: update auth docs in preparation for v4 #7229 by @jtoar
- fix(docs): more explicit mentions of dbAuth #7231 by @ajoslin103
- Fix a typo in the docs #7351 by @calthejuggler
- docs: use correct argument for azure auth setup #7388 by @tilmann
- Adds note about how to view pm2 logs #7390 by @cannikin
- Docs: Fix missing groupId attribute in Tags tag. #7348 by @netmarkjp
- Docs: Fix caching code examples #7345 by @ched-dev
- Minor corrections to v4 GQL Armor and Auth docs #7401 by @talk2MeGooseman
- docs: How to configure Fastify for uploads #7001 by @dthyresson
- Update windows-development-setup.md #6890 by @ajitgoel
- Update sending-emails.md #6783 by @ajitgoel
- Update Azure docs for RW v4 auth #7387 by @Tobbe
- Custom auth docs: Mention repos for deprecated auth providers #7467 by @Tobbe
- fix(docs): update tutorial to v4 #7466 by @jtoar
- Fix 'excludes' validator to 'exclusion' #7480 by @taivo
Core dependencies
- fix(deps): update dependency fastify-raw-body to v4.2.0 #7188
- chore(deps): update yarn to v3.3.1 #7235
- fix(deps): update dependency react-hook-form to v7.42.1 #7364
- fix(deps): update prisma monorepo to v4.9.0 #7379
- fix(deps): update dependency fastify to v4.12.0 #7415
- fix(deps): update dependency @apollo/client to v3.7.5 #7446
- fix(deps): update storybook monorepo to v6.5.16 #7463
- fix(deps): update dependency @fastify/static to v6.8.0 #7502
Chore
- fix(CI): cancel previous
in_progress
orqueued
canaries #7323 by @jtoar - chore: fix lint warnings forms/internal #7325 by @jtoar
- Format playwright config file #7332 by @Tobbe
- chore(CI): remove unused workflows #7344 by @jtoar
- feat(CI): cancel in-progress runs #7367 by @jtoar
- chore(CI): use workflow token by default in
set-up-job
action #7376 by @jtoar - chore(CI): remove cherry pick workflow and jobs #7377 by @jtoar
- chore: Update fs mocking #7280 by @Josh-Walker-GM
- chore: remove typescript-transform-paths #7400 by @jtoar
- chore: Removes instructions to use Prisma's interactiveTransactions for service uniqueness validation #7023 by @dthyresson
- chore(router): remove unused
lodash.isequal
, listreact
,react-dom
in peerDependencies #7177 by @jtoar - chore: Smoke test improve output #6918 by @Josh-Walker-GM
- chore: E2E local process and files cleanup #6724 by @Josh-Walker-GM
- ci(replay): try re-enabling replay #6965 by @jtoar
- Switch to React's isValidElement #7423 by @Tobbe
- chore(deps): bump json5 from 2.2.1 to 2.2.3 in /docs #7289 by @dependabot
- chore(deps): bump loader-utils from 2.0.2 to 2.0.4 in /docs #6859 by @dependabot
- chore(test-project): Fix for timezones in consistent folder names #7427 by @Josh-Walker-GM
- chore(deps): bump terser from 5.12.0 to 5.16.1 in /docs #7428 by @dependabot
- fix(CRWA): remove
"packages/*"
from workspaces #7382 by @jtoar - chore(deps): bump ua-parser-js from 0.7.32 to 0.7.33 #7443 by @dependabot
- chore(deps): bump ua-parser-js from 0.7.31 to 0.7.33 in /docs #7442 by @dependabot
All Dependencies
Click to see all upgraded dependencies
- fix(deps): update dependency webpack-cli to v5 #7058
- chore(deps): update dependency @types/uuid to v9 #7089
- chore(deps): update dependency supertokens-node to v12.1.3 #7105
- chore(deps): update dependency @azure/msal-browser to v2.32.1 #7142
- chore(deps): update dependency @types/vscode to v1.74.0 #7149
- chore(deps): update dependency firebase to v9.15.0 #7152
- fix(deps): update dependency css-loader to v6.7.3 #7154
- chore(deps): update dependency typescript-transform-paths to v3.4.4 #7159
- chore(deps): update dependency esbuild to v0.16.4 #7099
- fix(deps): update dependency @reach/skip-nav to v0.18.0 #7164
- chore(deps): update dependency esbuild to v0.16.7 #7169
- fix(deps): update dependency pino to v8.8.0 #7173
- chore(deps): update dependency supertokens-auth-react to v0.28.1 #7158
- fix(deps): update dependency fastify-raw-body to v4.2.0 #7188
- fix(deps): update dependency @types/node to v16.18.10 #7198
- chore(deps): update dependency esbuild to v0.16.8 #7202
- Update dependency @playwright/test to v1.29.0 #7204
- Update dependency eslint to v8.30.0 #7206
- Update dependency lazy-get-decorator to v2.2.1 #7208
- fix(deps): update dependency react-hook-form to v7.41.0 #7199
- chore(deps): update dependency esbuild to v0.16.9 #7214
- fix(deps): update typescript-eslint monorepo to v5.47.0 #7223
- chore(deps): update dependency @types/prettier to v2.7.2 #7232
- chore(deps): update dependency esbuild to v0.16.10 #7230
- fix(deps): update dependency @apollo/client to v3.7.3 #7179
- fix(deps): update storybook monorepo to v6.5.15 #7237
- chore(deps): update yarn to v3.3.1 #7235
- fix(deps): update prisma monorepo to v4.8.0 #7242
- chore(deps): update dependency @playwright/test to v1.29.1 #7243
- chore(deps): update dependency jsonwebtoken to v9 [security] #7247
- chore(deps): update babel monorepo #7249
- fix(deps): update dependency systeminformation to v5.16.8 #7248
- fix(deps): update dependency @babel/traverse to v7.20.10 #7260
- chore(deps): update dependency @testing-library/dom to v8.19.1 #7261
- fix(deps): update dependency systeminformation to v5.16.9 #7264
- chore(deps): update dependency @types/jsonwebtoken to v9 #7245
- fix(deps): update dependency @types/node to v16.18.11 #7275
- chore(deps): update dependency lerna to v6.3.0 #7271
- fix(deps): update typescript-eslint monorepo to v5.47.1 #7270
- fix(deps): update dependency react-hook-form to v7.41.1 #7269
- chore(deps): update dependency supertokens-node to v12.1.4 #7274
- fix(deps): update dependency core-js to v3.27.1 #7272
- fix(deps): update dependency fastify to v4.11.0 #7308
- fix(deps): update prisma monorepo to v4.8.1 #7307
- fix(deps): update dependency react-hook-form to v7.41.5 #7305
- fix(deps): update dependency ci-info to v3.7.1 #7303
- fix(deps): update dependency babel-loader to v9.1.2 #7302
- chore(deps): update dependency @replayio/playwright to v0.3.12 #7298
- chore(deps): update dependency @playwright/test to v1.29.2 #7297
- chore(deps): update dependency esbuild to v0.16.16 #7300
- fix(deps): update dependency @types/jest to v29.2.5 #7310
- fix(deps): update dependency prettier to v2.8.2 #7304
- chore(deps): update dependency lerna to v6.4.0 #7313
- chore(deps): update mheap/github-action-required-labels action to v3 #7318
- chore(deps): update dependency @types/fs-extra to v11 #7317
- fix(deps): update typescript-eslint monorepo to v5.48.1 #7316
- fix(deps): update dependency systeminformation to v5.17.3 #7315
- chore(deps): update dependency @types/yargs to v17.0.19 #7299
- fix(deps): update dependency babel-plugin-module-resolver to v5 #7319
- fix(deps): update dependency eslint to v8.31.0 #7314
- chore(deps): update dependency nx to v15.4.8 #7254
- fix(deps): update dependency @fastify/static to v6.6.1 #7327
- chore(deps): update dependency esbuild to v0.16.17 #7326
- chore(deps): update babel monorepo to v7.20.12 #7296
- chore(deps): update dependency @auth0/auth0-spa-js to v1.22.6 #7328
- chore(deps): update dependency lerna to v6.4.1 #7330
- fix(deps): update dependency @graphql-tools/merge to v8.3.15 #7331
- fix(deps): update dependency @whatwg-node/fetch to v0.6.2 #7333
- fix(deps): update dependency eslint-config-prettier to v8.6.0 #7335
- fix(deps): update dependency eslint-plugin-react to v7.32.0 #7338
- fix(deps): update dependency eslint-plugin-jsx-a11y to v6.7.1 #7337
- chore(deps): update dependency @replayio/playwright to v0.3.13 #7329
- chore(deps): update dependency nx to v15.5.1 #7340
- fix(deps): update dependency @apollo/client to v3.7.4 #7343
- fix(deps): update dependency react-hook-form to v7.42.0 #7341
- fix(deps): update dependency eslint to v8.32.0 #7366
- chore(deps): update dependency esbuild to v0.17.1 #7365
- fix(deps): update dependency react-hook-form to v7.42.1 #7364
- fix(deps): update dependency prettier to v2.8.3 #7363
- fix(deps): update typescript-eslint monorepo to v5.48.2 #7371
- chore(deps): update replayio/action-upload action to v0.4.7 #7368
- chore(deps): update sergeysova/jq-action action to v2.3.0 #7373
- fix(deps): update dependency eslint-plugin-react to v7.32.1 #7370
- fix(deps): update dependency listr2 to v5.0.7 #7378
- chore(deps): update dependency nx to v15.5.2 #7381
- chore(deps): update dependency @testing-library/dom to v8.20.0 #7372
- fix(deps): update prisma monorepo to v4.9.0 #7379
- fix(deps): update dependency eslint-plugin-import to v2.27.5 #7336
- chore(deps): update dependency @types/react to v17.0.53 #7392
- chore(deps): update dependency @types/jsonwebtoken to v9.0.1 #7391
- chore(deps): update dependency octokit to v2.0.11 #7394
- fix(deps): update dependency msw to v0.49.3 #7398
- chore(deps): update dependency @types/babel__core to v7.20.0 #7399
- chore(deps): update dependency @types/yargs to v17.0.20 #7393
- fix(deps): update dependency @types/jest to v29.2.6 #7396
- chore(deps): update dependency esbuild to v0.17.3 #7380
- fix(deps): update dependency core-js to v3.27.2 #7397
- chore(deps): update dependency npm-packlist to v7 #6589
- fix(deps): update dependency eslint-import-resolver-babel-module to v5.3.2 #7369
- chore(deps): update dependency cypress to v12 #7048
- chore(deps): update dependency nx to v15.5.3 #7405
- chore(deps): update dependency @replayio/playwright to v0.3.15 #7404
- chore(deps): update dependency firebase to v9.16.0 #7407
- chore(deps): update dependency supertokens-node to v12.1.5 #7406
- chore(deps): update dependency @azure/msal-browser to v2.32.2 #7403
- fix(deps): update graphql-tools monorepo to v9 (major) #6312
- fix(deps): update graphqlcodegenerator monorepo #7312
- chore(deps): update dependency supertokens-auth-react to v0.30.2 #7408
- fix(deps): update babel monorepo to v7.20.13 #7414
- fix(deps): update dependency fastify to v4.12.0 #7415
- chore(deps): update dependency octokit to v2.0.13 #7418
- chore(deps): update dependency supertokens-node to v12.1.6 #7426
- chore(deps): update dependency esbuild to v0.17.4 #7424
- fix(deps): update dependency jwks-rsa to v3 #7186
- chore(deps): update dependency babel-plugin-tester to v11 #7416
- fix(deps): update typescript-eslint monorepo to v5.49.0 #7432
- chore(deps): update dependency babel-plugin-tester to v11.0.2 #7435
- chore(deps): update dependency octokit to v2.0.14 #7433
- chore(deps): update dependency nx to v15.6.0 #7437
- chore(deps): update dependency @replayio/playwright to v0.3.16 #7436
- fix(deps): update jest monorepo to v29.4.0 #7441
- chore(deps): update dependency nx to v15.6.1 #7440
- fix(deps): update dependency systeminformation to v5.17.4 #7439
- fix(deps): update dependency jest-watch-typeahead to v2.2.2 #7438
- chore(deps): update dependency nx to v15.6.2 #7445
- fix(deps): update dependency @apollo/client to v3.7.5 #7446
- chore(deps): update dependency babel-plugin-tester to v11.0.3 #7447
- chore(deps): update dependency cypress to v12.4.0 #7448
- chore(deps): update dependency @playwright/test to v1.30.0 #7449
- chore(deps): update dependency babel-plugin-tester to v11.0.4 #7451
- fix(deps): update dependency @types/jest to v29.4.0 #7453
- chore(deps): update dependency redis to v4.6.0 #7454
- chore(deps): update dependency @npmcli/arborist to v6.2.0 #7456
- chore(deps): update dependency redis to v4.6.1 #7457
- chore(deps): update dependency @clerk/clerk-react to v4.8.6 #7458
- fix(deps): update dependency @clerk/clerk-sdk-node to v4.6.5 #7459
- fix(deps): update graphql-tools monorepo #7461
- fix(deps): update storybook monorepo to v6.5.16 #7463
- fix(deps): update dependency @fastify/static to v6.7.0 #7462
- fix(deps): update jest monorepo to v29.4.1 #7464
- fix(deps): update dependency graphql-yoga to v3.4.0 #7465
- fix(deps): update dependency @types/aws-lambda to v8.10.110 #7468
- chore(deps): update dependency redis to v4.6.2 #7470
- chore(deps): update dependency cypress to v12.4.1 #7471
- chore(deps): update dependency esbuild to v0.17.5 #7472
- chore(deps): update dependency @clerk/clerk-react to v4.9.0 #7473
- chore(deps): update dependency @clerk/types to v3.25.0 #7474
- chore(deps): update dependency @babel/generator to v7.20.14 #7478
- chore(deps): update dependency nx to v15.6.3 #7479
- fix(deps): update dependency tasuku to v2.0.1 #7487
- chore(deps): update dependency redis to v4.6.3 #7486
- fix(deps): update dependency eslint to v8.33.0 #7488
- fix(deps): update dependency eslint-plugin-react to v7.32.2 #7489
- fix(deps): update dependency systeminformation to v5.17.7 #7493
- fix(deps): update dependency deepmerge to v4.3.0 #7495
- chore(deps): update dependency typescript to v4.9.4 #6315
- fix(deps): update dependency systeminformation to v5.17.8 #7500
- fix(deps): update dependency @fastify/static to v6.8.0 #7502
- fix(deps): update graphqlcodegenerator monorepo #7501
Upgrade Guide
Check out the upgrade guide over on the forums: https://community.redwoodjs.com/t/redwood-v4-0-0-upgrade-guide/4412