Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -387,12 +387,12 @@ The `metadata` frontmatter field can be used to define additional information ab

<details>
<summary>Define canonical or alternate URLs for your documentation page</summary>
<br />
<br />
<p><strong>This is set via the <code>alternates</code> field. It has the following subfields:</strong></p>
| Name | Type | Default | Description |
| ---------- | --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `canonical` | `string` | - | The canonical URL to avoid duplicate content across versions or domains. |

| Name | Type | Default | Description |
| ----------- | -------- | ------- | ------------------------------------------------------------------------ |
| `canonical` | `string` | - | The canonical URL to avoid duplicate content across versions or domains. |

```diff
---
Expand All @@ -409,7 +409,7 @@ The `metadata` frontmatter field can be used to define additional information ab

<details>
<summary>Configure Open Graph metadata for social media previews</summary>
<br />
<br />
<p><strong>This is set via the <code>openGraph</code> field. It has the following subfields:</strong></p>

| Name | Type | Default | Description |
Expand All @@ -425,7 +425,7 @@ The `metadata` frontmatter field can be used to define additional information ab
title: Example
+ metadata:
+ openGraph:
+ title: Clerk organizations - invite users
+ title: Clerk Organizations - invite users
+ description: Guide to sending and managing invitations within Clerk.
+ images:
+ - https://example.com/social-preview.png
Expand All @@ -436,7 +436,7 @@ The `metadata` frontmatter field can be used to define additional information ab

<details>
<summary>Define X Cards metadata for the page</summary>
<br />
<br />
<p><strong>This is set via the <code>twitter</code> field. It has the following subfields:</strong></p>

| Name | Type | Default | Description |
Expand All @@ -450,7 +450,7 @@ The `metadata` frontmatter field can be used to define additional information ab
title: Example
+ metadata:
+ twitter:
+ title: Clerk organizations - invite users
+ title: Clerk Organizations - invite users
+ description: Guide to sending and managing invitations within Clerk.
+ images:
+ - https://example.com/social-preview.png
Expand All @@ -461,7 +461,7 @@ The `metadata` frontmatter field can be used to define additional information ab

<details>
<summary>Control search engine indexing and crawler behavior.</summary>
<br />
<br />
<p><strong>This is set via the <code>robots</code> field. It has the following subfields:</strong></p>

| Name | Type | Default | Description |
Expand Down Expand Up @@ -942,7 +942,7 @@ Tooltips are defined in the `_tooltips` folder and written in MDX, but they do n
The tooltip syntax is similar to a link, but with a `!` prefix, as shown in the following example:

```mdx
The ID of the [active organization](!active-organization) that the user belongs to.
The ID of the [Active Organization](!active-organization) that the user belongs to.
```

Tooltips should follow the same styleguide as links - only add them on the first mention of a term and only in the highest heading section. So if a term is mentioned in an H2 section and again in its H3 section, it doesn't need to be added in the H3 section.
Expand Down
8 changes: 4 additions & 4 deletions docs/_partials/billing/enable-billing.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
## Enable billing
## Enable Billing

To enable billing for your application, navigate to the [**Billing Settings**](https://dashboard.clerk.com/~/billing/settings) page in the Clerk Dashboard. This page will guide you through enabling billing for your application.
To enable Billing for your application, navigate to the [**Billing Settings**](https://dashboard.clerk.com/~/billing/settings) page in the Clerk Dashboard. This page will guide you through enabling Billing for your application.

Clerk Billing costs the same as using Stripe Billing directly, just 0.7% per transaction, plus transaction fees which are paid directly to Stripe. Clerk Billing is **not** the same as Stripe Billing. Plans and pricing are managed directly through the Clerk Dashboard and won't sync with your existing Stripe products or plans. Clerk uses Stripe **only** for payment processing, so you don't need to set up Stripe Billing.

### Payment gateway

Once you have enabled billing, you will see the following **Payment gateway** options for collecting payments via Stripe:
Once you have enabled Billing, you will see the following **Payment gateway** options for collecting payments via Stripe:

- **Clerk development gateway**: A shared **test** Stripe account used for development instances. This allows developers to test and build billing flows **in development** without needing to create and configure a Stripe account.
- **Clerk development gateway**: A shared **test** Stripe account used for development instances. This allows developers to test and build Billing flows **in development** without needing to create and configure a Stripe account.
- **Stripe account**: Use your own Stripe account for production. **A Stripe account created for a development instance cannot be used for production**. You will need to create a separate Stripe account for your production environment.
2 changes: 1 addition & 1 deletion docs/_partials/clerk-middleware-options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ The `clerkMiddleware()` function accepts an optional object. The following optio
- `organizationSyncOptions?`
- <code>[OrganizationSyncOptions](#organization-sync-options) | undefined</code>

Used to activate a specific [organization](/docs/guides/organizations/overview) or [personal account](/docs/guides/dashboard/overview) based on URL path parameters. If there's a mismatch between the [active organization](!active-organization) in the session (e.g., as reported by [`auth()`](/docs/reference/nextjs/app-router/auth)) and the organization indicated by the URL, the middleware will attempt to activate the organization specified in the URL.
Used to activate a specific [Organization](/docs/guides/organizations/overview) or [Personal Account](/docs/guides/dashboard/overview) based on URL path parameters. If there's a mismatch between the [Active Organization](!active-organization) in the session (e.g., as reported by [`auth()`](/docs/reference/nextjs/app-router/auth)) and the Organization indicated by the URL, the middleware will attempt to activate the Organization specified in the URL.

---

Expand Down
2 changes: 1 addition & 1 deletion docs/_partials/clerk-options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,5 @@
- `taskUrls?`
- `Record<SessionTask['key'], string>`

The URL paths users are redirected to after sign-up or sign-in when specific session tasks need to be completed. For example, `{ 'choose-organization': '/onboarding/choose-organization' }` redirects users to `/onboarding/choose-organization` after sign-up if they need to choose an organization.
The URL paths users are redirected to after sign-up or sign-in when specific session tasks need to be completed. For example, `{ 'choose-organization': '/onboarding/choose-organization' }` redirects users to `/onboarding/choose-organization` after sign-up if they need to choose an Organization.
</Properties>
2 changes: 1 addition & 1 deletion docs/_partials/has-warning.mdx
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
> [!WARNING]
> Using `has()` **on the server-side** to check permissions works only with **custom permissions**, as [system permissions](/docs/guides/organizations/roles-and-permissions#system-permissions) aren't included in the session token claims. To check system permissions, verify the user's role instead.
> Using `has()` **on the server-side** to check Permissions works only with **Custom Permissions**, as [System Permissions](/docs/guides/organizations/roles-and-permissions#system-permissions) aren't included in the session token claims. To check System Permissions, verify the user's Role instead.
9 changes: 4 additions & 5 deletions docs/_partials/organization-sync-options.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@ object has the type `OrganizationSyncOptions`, which has the following propertie
- `organizationPatterns`
- <code>[Pattern](#pattern)\[]</code>

Specifies URL patterns that are organization-specific, containing an organization ID or slug as a path parameter. If a request
matches this path, the organization identifier will be used to set that org as active.
Specifies URL patterns that are Organization-specific, containing an Organization ID or slug as a path parameter. If a request matches this path, the Organization identifier will be used to set that Organization as active.

If the route also matches the `personalAccountPatterns` prop, this prop takes precedence.

Patterns must have a path parameter named either `:id` (to match a Clerk organization ID) or `:slug` (to match a Clerk organization slug).
Patterns must have a path parameter named either `:id` (to match a Clerk Organization ID) or `:slug` (to match a Clerk Organization slug).

> [!WARNING]
> If the organization can't be activated—either because it doesn't exist or the user lacks access—the previously [active organization](!active-organization) will remain unchanged. Components must detect this case and provide an appropriate error and/or resolution pathway, such as calling `notFound()` or displaying an [`<OrganizationSwitcher />`](/docs/reference/components/organization/organization-switcher).
> If the Organization can't be activated—either because it doesn't exist or the user lacks access—the previously [Active Organization](!active-organization) will remain unchanged. Components must detect this case and provide an appropriate error and/or resolution pathway, such as calling `notFound()` or displaying an [`<OrganizationSwitcher />`](/docs/reference/components/organization/organization-switcher).

Common examples:

Expand All @@ -26,7 +25,7 @@ object has the type `OrganizationSyncOptions`, which has the following propertie
- `personalAccountPatterns`
- <code>[Pattern](#pattern)\[]</code>

URL patterns for resources that exist within the context of a user's [personal account](/docs/guides/organizations/overview#allow-personal-accounts).
URL patterns for resources that exist within the context of a user's [Personal Account](/docs/guides/organizations/overview#allow-personal-accounts).

If the route also matches the `organizationPattern` prop, the `organizationPattern` prop takes precedence.

Expand Down
2 changes: 1 addition & 1 deletion docs/_tooltips/active-organization.mdx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
A user can be a member of multiple organizations, but only one can be active at a time. The **active organization** determines which organization-specific data the user can access and which role and related permissions they have within the organization.
A user can be a member of multiple Organizations, but only one can be active at a time. The **Active Organization** determines which Organization-specific data the user can access and which Role and related Permissions they have within the Organization.
2 changes: 1 addition & 1 deletion docs/_tooltips/session-tasks.mdx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
**Session tasks** are requirements that users must fulfill in order to complete the authentication process, such as choosing an organization.
**Session tasks** are requirements that users must fulfill in order to complete the authentication process, such as choosing an Organization.
8 changes: 4 additions & 4 deletions docs/getting-started/core-concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Clerk provides three ways to integrate authentication into your application, dep
1. **[Prebuilt components](/docs/reference/components/overview)**: All-in-one UI components that can be integrated into your application. They are fully customizable to match your application's branding and design. This is the recommended approach for most use cases.
1. **[Custom flows using the Clerk API](/docs/guides/development/custom-flows/overview)**: Build your own UI using the Clerk API. This option provides maximum flexibility and control over the user experience but requires more development effort.

Clerk offers a comprehensive suite of prebuilt components designed to seamlessly integrate authentication and multi-tenancy into your application. Components, like `<SignIn />`, `<UserButton />`, and `<OrganizationSwitcher />`, are all-in-one solutions that handle the full lifecycle of the user experience, from sign-up/sign-in to user profile and organization management.
Clerk offers a comprehensive suite of prebuilt components designed to seamlessly integrate authentication and multi-tenancy into your application. Components, like `<SignIn />`, `<UserButton />`, and `<OrganizationSwitcher />`, are all-in-one solutions that handle the full lifecycle of the user experience, from sign-up/sign-in to user profile and Organization management.

The Account Portal uses these components on dedicated pages that are hosted on Clerk servers. These pages cannot be customized beyond the options provided in the [Clerk Dashboard](https://dashboard.clerk.com/~/account-portal).

Expand All @@ -32,7 +32,7 @@ For example, you can:

- Enable phone number authentication or multi-factor authentication.
- Add social providers like Google.
- Delete users or create organizations.
- Delete users or create Organizations.
- Invite other users to your [workspace](/docs/guides/dashboard/overview#workspaces) to help configure and manage your application.

To get started, see the [configuration docs](/docs/guides/configure/auth-strategies/sign-up-sign-in-options), which include dedicated guides for specific configuration options.
Expand Down Expand Up @@ -67,9 +67,9 @@ The [`User`](/docs/reference/javascript/user) object represents the current user

#### Organization

Organizations are a flexible and scalable way to manage users and their access to resources within your Clerk application. With organizations, you can assign specific roles and permissions to users, making them useful for managing projects, coordinating teams, or facilitating partnerships.
Organizations are a flexible and scalable way to manage users and their access to resources within your Clerk application. With Organizations, you can assign specific Roles and Permissions to users, making them useful for managing projects, coordinating teams, or facilitating partnerships.

Users can belong to many organizations. One of them will be the [active organization](!active-organization) of the session. It is represented by the [`Organization`](/docs/reference/javascript/organization) object. To learn about organizations, see the [dedicated guide](/docs/guides/organizations/overview).
Users can belong to many Organizations. One of them will be the [Active Organization](!active-organization) of the session. It is represented by the [`Organization`](/docs/reference/javascript/organization) object. To learn about Organizations, see the [dedicated guide](/docs/guides/organizations/overview).

#### Sign in

Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started/quickstart.go.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,9 @@ The following example demonstrates how to use the Clerk Go SDK to execute [Clerk

By executing the code in the snippet below, you will:

- Create an organization and update its slug.
- Fetch all organization memberships and loop through them to get the first one.
- Get more details about the organization's user.
- Create an Organization and update its slug.
- Fetch all Organization memberships and loop through them to get the first one.
- Get more details about the Organization's user.

> [!NOTE]
> Your Clerk Secret Key is required. If you're signed into the Clerk Dashboard, your Secret Key should become visible by selecting the eye icon. Otherwise, you can retrieve your Clerk Secret Key on the [**API keys**](https://dashboard.clerk.com/~/api-keys) page in the Clerk Dashboard.
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/quickstart.js-backend.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ The following options are available:

## Get the `userId` and other properties

The [`Auth`](/docs/reference/backend/types/auth-object) object contains important information like the current user's session ID, user ID, and organization ID.
The [`Auth`](/docs/reference/backend/types/auth-object) object contains important information like the current user's session ID, user ID, and Organization ID.

<Include src="_partials/auth-object-table" />

Expand Down
Loading