Clerk Changelog

Changelog Apr 15, 2022

Category
Company
Published

This week we launched alpha support for authenticating Gatsby SSR, webhooks and metadata for Clerk-managed organizations, and improved observability.

It's been a very wide-ranging week at Clerk, as we've added and improved features across many different parts of the product.

Gatsby SSR Alpha

Hot off the press! Today we launched an alpha version of SSR support for Gatsby. It's been a real treat putting this together so quickly after receiving the request through Github just last week.

The new version is tagged 3.0.0-alpha.2, and available as gatsby-plugin-clerk on npm.

The usage is not documented yet, but it's really simple. Just use our withServerAuth wrapper, and pull the authentication context from props:

import { withServerAuth } from 'gatsby-plugin-clerk/ssr'

export const getServerData = withServerAuth(async (props) => {
  const { userId, sessionId, getToken } = props.auth
  return { props: { message: '' } }
})

Note: this release does not support authentication in Gatsby Functions yet. Support will be added for version 3 reaches general availability.

Thanks to the contributors: Nikos Douvlis, Peter Perlepes

Organization improvements

The reception of our new Organization object has been incredible - with a few developers already using the functionality in production.

This week we launched two new features associated with organizations:

Webhooks

The Svix webhook integration in Clerk's dashboard now has events for:

  • organization.created
  • organization.updated
  • organizationInvitation.created
  • organizationInvitation.revoked
  • organizationMembership.deleted
  • organizationMembership.updated

Metadata

Developers can now attach public and private metadata to the Organization object, just like they can for the User object.

Thanks to the contributors: Giannis Katsanos, Alex Ntousias, Nikos Petridis

Improved observability

Observability has become a focal point for our SDKs. We're working to improve our errors so they guide developers to the right solution.

This week we added observability of the "authentication result" to two more contexts:

  1. Next.js edge middleware
  2. Remix loaders and actions

More to come soon!

Thanks to the contributors: Nikos Douvlis, Peter Perlepes

Contributor
Colin Sidoti

Changelog Apr 8, 2022

Category
Company
Published

OAuth after Sign Up, mergeable custom metadata, improved observability, and optional usernames - plus, try our Clerk x RedwoodJS authentication integration!

OAuth after Sign Up

OAuth connections can now be be added after a user has signed up.

This can be accomplish through the <UserProfile/> component, or through the useUser() hook and the user.createExternalAccount() function.

Thanks to the contributors: Agis Anastasopoulos, Haris Chaniotakis

Mergeable custom metadata

Metadata fields can now be updated via deep-merge in addition to complete replacement. This functionality was added to the Backend API to start.

Thanks to the contributors: Giannis Katsanos

Improved observability

We updated our Next.js and Node SDKs to add a Auth-Result header when the authentication state is unknown or signed out.

This will help us debug situations where your backend thinks the user is signed out, but the frontend knows they are signed in. Usually the reason for this is quite benign, but it can be tricky to debug.

Thanks to the contributors: Peter Perlepes

Optional usernames

Usernames can now be optional, instead of only Required or completely Off.

You can make the change from the "Email, Phone, Username" settings page in your dashboard:

Thanks to the contributors: Alex Ntousias

Community Spotlight: RedwoodJS

We'd like to wish a hearty congratulations to RedwoodJS on their v1 launch.

We've had a shared Slack with the Redwood team for a few months now as we collaborated to build the Clerk integration. The folks there are incredibly kind, patient, and innovative and we can't wait to see how the framework evolves.

Learn more about our RedwoodJS authentication integration.

Contributor
Colin Sidoti

Changelog Apr 1, 2022

Category
Company
Published

Instant Component previews, in-house docs, email deliverability improvements, plus Supabase Launch Week!

Instant Component previews

Sign-up, sign-in, and user profile components can now be previewed instantly after an application is created in Clerk - no code required! Just click the preview buttons on thie sidebar.

Thanks to the contributors: Marcel Cruz

In-house docs

Piece-by-piece, we're moving our documentation in-house! Our previous vendor was great for written documentation, but we constantly found ourselves wanting to add dynamic and interactive elements to our documentation.

With our new solution, built on Sanity and Next.js, we can more easily develop custom elements in our documentation. Stay tuned as our onboarding gets even easier in the months ahead.

The new documentation is available on clerk.dev/docs.

Thanks to the contributors: Charles Wefso, Ian McPhail

Email deliverability improvements

We noticed a small subset of customers we're having a few email deliverability issues. In particular, the customers who launched a brand new application on Clerk and have never sent emails from their domain before. These developers had zero "domain reputation" and gmail was delaying the delivery of magic links and sms codes.

This week, we made three small adjustments that seem to have resolved the issue:

  1. Improved the formatting of the plaintext "part" of our emails
  2. Removed unnecessary query string variables and & with just &
  3. Removed the application name from the email subject

We will continue to monitor deliverability and make adjustments as needed.

Thanks to the contributors: Agis Anastasopoulos, Haris Chaniotakis

Community spotlight: Supabase Launch Week!

Congratulations to Supabase on their tremendous launch week!

Supabase is an incredible product and we share many customers through our Supabase integration.

We're proud to have launched our integration in their new Partner Gallery this week, but also just really excited to try their new functions.

Contributor
Colin Sidoti

Changelog Mar 25, 2022

Category
Company
Published

Bring-your-own IdP with Sign in Tokens, new allowlist for sign ups, Sign in with Apple, and a user.organizations shortcode for custom JWT templates.

Bring-your-own IdP with Sign in Tokens

Clerk now be configured to work with external identity providers (IdPs)!

Sign in Tokens are a low-level abstraction that offers developers complete flexibility when signing in users. It allows you to handle user authentication on your own and then delegate session management to Clerk.

The primary use case for tokens is keeping authentication with a Customer Identity vendor like Auth0, but taking advantage of Clerk's SDKs for easier integration with the Jamstack ecosystem of frameworks, databases, and other tools.

Sign in Tokens can be generated securely with Clerk's backend API.

Thanks to the contributors: Alex Ntousias, Giannis Katsanos

Allowlist for sign ups

We've added a Sign-up restrictions tab to the dashboard where you can restrict sign ups to your application by email domain, email address, or phone number.

The allowlist restrictions can also be enabled by API to produce a programmatic invite-only flow.

Thanks to the contributors: Giannis Katsanos, Nikos Petridis

Sign in with Apple

We've added Sign in with Apple to our growing list of social login providers!

Thanks to the contributors: Agis Anastasopoulos, Haris Chaniotakis

Organization roles in custom JWTs

A new shortcode has been added to JWT templates for developers participating in our Organization Management early access.

The token is called {{user.organizations}} and it returns a dictionary of the user's organization IDs mapped to their role in that organization. This is particularly helpful when performing authorization checks within database vendors like Supabase, Hasura, Firebase, or Fauna.

Thanks to the contributors: Haris Chaniotakis

Contributor
Colin Sidoti

Changelog Mar 18, 2022

Category
Company
Published

Server-side JWTs for Supabase and custom integrations, Firebase Authentication password migrations, toggleable hosted components, and a community spotlight!

Server-side JWTs for Supabase and custom integrations

Since we launched SSR, a frequent request has been to add support for retrieving Supabase tokens during SSR. Today, we launched the capability for Supabase and more!

Support for every JWT template has been added to our server-side Javascript packages for Next.js, Remix, and Express. Simply call getToken({template: "supabase"}) on the new server-side auth context.

Documentation has been added to our SSR beta documentation. You will need to upgrade to the latest version.

Thanks to the contributors: Nikos Douvlis, Peter Perlepes, Haris Chaniotakis, Agis Anastasopoulos

Firebase Authentication user and password migrations

Developers who currently use Firebase Authentication can now migrate users and their passwords to Clerk!

Our backend Create User endpoint has added support for Firebase's special flavor of scrypt so users can easily be migrated to Clerk.

Thanks to the contributors: Alex Ntousias

Toggleable hosted components

Any developer who wants to disable Clerk-hosted components on the accounts subdomain can now do so by contacting support. This option will be made available in our dashboard soon.

Thanks to the contributors: Sokratis Vidros

Community spotlight: Slapdash plugin

Many thanks to Anish De, who created a Slapdash commands plugin that brings Clerk's documentation right to your fingertips.

Thank you, Anish!

Contributor
Colin Sidoti

Changelog Mar 11, 2022

Category
Company
Published

Try our new and improved Remix integration! Plus, we refactored our authentication settings, and moved JWT templates into general availability.

Remix Relaunch

Today we relaunched our @clerk/remix package. This includes two key improvements since the initial launch:

  1. Applications can now require authentication on a route-by-route basis, instead of requiring authentication for the entire application
  2. In development, environment variables can now be set more easily in the Remix-native .env file.

Our documentation has been updated to reflect the improvements. Thank you to our early beta testers who helped test and ideate!

Thanks to the contributors: Nikos Douvlis

Authentication settings refactor

We rolled out a multi-month refactor of our authentication settings to support a new wave of features. It will enable:

  • Custom fields
  • Profile data collection with web3 auth
  • Guaranteed email collection for Twitter OAuth
  • A universal auth endpoint (sign up OR sign in)

In the past, our "sign up" simply ensured the user will be able to sign in again. Now, we will be able to add app-specific requirements to sign up, so if your application needs an email address and it turns out a Twitter user is missing theirs, we'll be able to collect it during sign up.

These features aren't available yet, but this infrastructure change will enable us to add them much more quickly.

Thanks to the contributors: Giannis Katsanos, Nikos Petridis, Alex Ntousias, Sokratis Vidros

JWT Templates Launch (GA)

After a few months of testing, we pulled the "beta" label off our JWT templates feature and released to general availability.

We've now generated millions of JWTs and are confident our infrastructure is secure, fast, and robust.

You are free to design custom JWTs for your own application, or leverage our prebuilt templates for common integrations.

Thanks to the contributors: Mark Pitsilos, Agis Anastasopoulos, Haris Chaniotakis

Contributor
Colin Sidoti