Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
6085de6
feat(ui): set up Google Workspace directories in the sync wizard
gabrielmeloc22 Sep 11, 2026
49837dc
fix(ui): submit the Google credential from the wizard footer
gabrielmeloc22 Sep 11, 2026
74c959d
fix(ui): generate the localization placeholders and report a failed k…
gabrielmeloc22 Sep 14, 2026
4762bd9
fix(ui): stop the Google credential step accepting or hiding bad input
gabrielmeloc22 Sep 14, 2026
586586c
chore(repo): describe the whole directory sync stack in one changeset
gabrielmeloc22 Sep 17, 2026
1ea0111
refactor(ui): name the credential submit behind the wizard Continue
gabrielmeloc22 Sep 17, 2026
b61631b
fix(shared): reject readJSONFile when the file is not JSON
gabrielmeloc22 Sep 17, 2026
e9b6b4e
refactor(ui): read the Google key file with the shared readJSONFile
gabrielmeloc22 Sep 17, 2026
1a2da0a
refactor(ui): share one isEmail check across the components
gabrielmeloc22 Sep 17, 2026
9b7cb22
chore(ui): drop a redundant comment on the credential submit
gabrielmeloc22 Sep 17, 2026
56193ea
fix(ui): pad the top of the directory sync instructions list
gabrielmeloc22 Sep 17, 2026
9e08a69
fix(ui): stop the test step waiting after a sync that provisioned nobody
gabrielmeloc22 Sep 21, 2026
f769f56
fix(ui): hold the test step until the list reflects the finished sync
gabrielmeloc22 Sep 21, 2026
ea08e5f
fix(ui): wait on the sync's own count instead of guessing
gabrielmeloc22 Sep 21, 2026
2a34416
chore(ui): raise the bundle budgets for the Google credential step
gabrielmeloc22 Sep 25, 2026
2e6c812
fix(localizations): address the admin directly in the inactive SSO wa…
gabrielmeloc22 Sep 25, 2026
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
8 changes: 8 additions & 0 deletions .changeset/dir-sync-google-wizard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
'@clerk/clerk-js': minor
'@clerk/shared': minor
'@clerk/ui': minor
'@clerk/localizations': minor
---

Support Google Workspace directories in Directory Sync. Organization admins can upload a service account key and delegated admin email from the setup flow, start a sync on demand, and see the result of the last one. `DirectorySync` gains `setCredentials()`, `sync()`, `getSyncStatus()`, and `credentialsConfigured`.
34 changes: 30 additions & 4 deletions packages/localizations/src/ar-SA.ts
Original file line number Diff line number Diff line change
Expand Up @@ -242,14 +242,23 @@ export const arSA: LocalizationResource = {
},
configureStep: {
actionLabel__generateToken: undefined,
actionLabel__replaceKey: undefined,
actionLabel__retry: undefined,
actionLabel__uploadKey: undefined,
badge__credentialsConfigured: undefined,
badge__credentialsMissing: undefined,
domainsLabel: undefined,
error__invalidKeyFile: undefined,
error__ssoRequired: {
subtitle: undefined,
title: undefined,
},
formFieldHint__subjectEmail: undefined,
formFieldInputPlaceholder__subjectEmail: undefined,
formFieldInputPlaceholder__token: undefined,
formFieldLabel__endpointUrl: undefined,
formFieldLabel__serviceAccountKey: undefined,
formFieldLabel__subjectEmail: undefined,
formFieldLabel__token: undefined,
instructions: {
actionLabel__toggle: undefined,
Expand All @@ -265,6 +274,13 @@ export const arSA: LocalizationResource = {
step3: undefined,
step4: undefined,
},
google: {
step1: undefined,
step2: undefined,
step3: undefined,
step4: undefined,
step5: undefined,
},
okta: {
step1: undefined,
step2: undefined,
Expand All @@ -275,10 +291,6 @@ export const arSA: LocalizationResource = {
notice__tokenShownOnce: undefined,
subtitle: undefined,
title: undefined,
warning__googleUnsupported: {
subtitle: undefined,
title: undefined,
},
warning__ssoInactive: undefined,
},
navbar: {
Expand All @@ -297,14 +309,28 @@ export const arSA: LocalizationResource = {
},
testStep: {
actionLabel__complete: undefined,
actionLabel__syncNow: undefined,
badge__active: undefined,
badge__deprovisioned: undefined,
description: undefined,
description__pull: undefined,
empty__noUsersProvisioned: undefined,
empty__waitingForFirstSync: undefined,
empty__waitingForFirstUser: undefined,
error__lastSyncFailed: undefined,
error__loadUsers: undefined,
error__syncFailed: undefined,
note: undefined,
noteLabel: undefined,
subtitle: undefined,
syncRow: {
neverSynced: undefined,
title: undefined,
},
syncStatus__cancelled: undefined,
syncStatus__failed: undefined,
syncStatus__running: undefined,
syncStatus__succeeded: undefined,
title: undefined,
},
},
Expand Down
34 changes: 30 additions & 4 deletions packages/localizations/src/be-BY.ts
Original file line number Diff line number Diff line change
Expand Up @@ -242,14 +242,23 @@ export const beBY: LocalizationResource = {
},
configureStep: {
actionLabel__generateToken: undefined,
actionLabel__replaceKey: undefined,
actionLabel__retry: undefined,
actionLabel__uploadKey: undefined,
badge__credentialsConfigured: undefined,
badge__credentialsMissing: undefined,
domainsLabel: undefined,
error__invalidKeyFile: undefined,
error__ssoRequired: {
subtitle: undefined,
title: undefined,
},
formFieldHint__subjectEmail: undefined,
formFieldInputPlaceholder__subjectEmail: undefined,
formFieldInputPlaceholder__token: undefined,
formFieldLabel__endpointUrl: undefined,
formFieldLabel__serviceAccountKey: undefined,
formFieldLabel__subjectEmail: undefined,
formFieldLabel__token: undefined,
instructions: {
actionLabel__toggle: undefined,
Expand All @@ -265,6 +274,13 @@ export const beBY: LocalizationResource = {
step3: undefined,
step4: undefined,
},
google: {
step1: undefined,
step2: undefined,
step3: undefined,
step4: undefined,
step5: undefined,
},
okta: {
step1: undefined,
step2: undefined,
Expand All @@ -275,10 +291,6 @@ export const beBY: LocalizationResource = {
notice__tokenShownOnce: undefined,
subtitle: undefined,
title: undefined,
warning__googleUnsupported: {
subtitle: undefined,
title: undefined,
},
warning__ssoInactive: undefined,
},
navbar: {
Expand All @@ -297,14 +309,28 @@ export const beBY: LocalizationResource = {
},
testStep: {
actionLabel__complete: undefined,
actionLabel__syncNow: undefined,
badge__active: undefined,
badge__deprovisioned: undefined,
description: undefined,
description__pull: undefined,
empty__noUsersProvisioned: undefined,
empty__waitingForFirstSync: undefined,
empty__waitingForFirstUser: undefined,
error__lastSyncFailed: undefined,
error__loadUsers: undefined,
error__syncFailed: undefined,
note: undefined,
noteLabel: undefined,
subtitle: undefined,
syncRow: {
neverSynced: undefined,
title: undefined,
},
syncStatus__cancelled: undefined,
syncStatus__failed: undefined,
syncStatus__running: undefined,
syncStatus__succeeded: undefined,
title: undefined,
},
},
Expand Down
34 changes: 30 additions & 4 deletions packages/localizations/src/bg-BG.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,14 +243,23 @@ export const bgBG: LocalizationResource = {
},
configureStep: {
actionLabel__generateToken: undefined,
actionLabel__replaceKey: undefined,
actionLabel__retry: undefined,
actionLabel__uploadKey: undefined,
badge__credentialsConfigured: undefined,
badge__credentialsMissing: undefined,
domainsLabel: undefined,
error__invalidKeyFile: undefined,
error__ssoRequired: {
subtitle: undefined,
title: undefined,
},
formFieldHint__subjectEmail: undefined,
formFieldInputPlaceholder__subjectEmail: undefined,
formFieldInputPlaceholder__token: undefined,
formFieldLabel__endpointUrl: undefined,
formFieldLabel__serviceAccountKey: undefined,
formFieldLabel__subjectEmail: undefined,
formFieldLabel__token: undefined,
instructions: {
actionLabel__toggle: undefined,
Expand All @@ -266,6 +275,13 @@ export const bgBG: LocalizationResource = {
step3: undefined,
step4: undefined,
},
google: {
step1: undefined,
step2: undefined,
step3: undefined,
step4: undefined,
step5: undefined,
},
okta: {
step1: undefined,
step2: undefined,
Expand All @@ -276,10 +292,6 @@ export const bgBG: LocalizationResource = {
notice__tokenShownOnce: undefined,
subtitle: undefined,
title: undefined,
warning__googleUnsupported: {
subtitle: undefined,
title: undefined,
},
warning__ssoInactive: undefined,
},
navbar: {
Expand All @@ -298,14 +310,28 @@ export const bgBG: LocalizationResource = {
},
testStep: {
actionLabel__complete: undefined,
actionLabel__syncNow: undefined,
badge__active: undefined,
badge__deprovisioned: undefined,
description: undefined,
description__pull: undefined,
empty__noUsersProvisioned: undefined,
empty__waitingForFirstSync: undefined,
empty__waitingForFirstUser: undefined,
error__lastSyncFailed: undefined,
error__loadUsers: undefined,
error__syncFailed: undefined,
note: undefined,
noteLabel: undefined,
subtitle: undefined,
syncRow: {
neverSynced: undefined,
title: undefined,
},
syncStatus__cancelled: undefined,
syncStatus__failed: undefined,
syncStatus__running: undefined,
syncStatus__succeeded: undefined,
title: undefined,
},
},
Expand Down
34 changes: 30 additions & 4 deletions packages/localizations/src/bn-IN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -248,14 +248,23 @@ export const bnIN: LocalizationResource = {
},
configureStep: {
actionLabel__generateToken: undefined,
actionLabel__replaceKey: undefined,
actionLabel__retry: undefined,
actionLabel__uploadKey: undefined,
badge__credentialsConfigured: undefined,
badge__credentialsMissing: undefined,
domainsLabel: undefined,
error__invalidKeyFile: undefined,
error__ssoRequired: {
subtitle: undefined,
title: undefined,
},
formFieldHint__subjectEmail: undefined,
formFieldInputPlaceholder__subjectEmail: undefined,
formFieldInputPlaceholder__token: undefined,
formFieldLabel__endpointUrl: undefined,
formFieldLabel__serviceAccountKey: undefined,
formFieldLabel__subjectEmail: undefined,
formFieldLabel__token: undefined,
instructions: {
actionLabel__toggle: undefined,
Expand All @@ -271,6 +280,13 @@ export const bnIN: LocalizationResource = {
step3: undefined,
step4: undefined,
},
google: {
step1: undefined,
step2: undefined,
step3: undefined,
step4: undefined,
step5: undefined,
},
okta: {
step1: undefined,
step2: undefined,
Expand All @@ -281,10 +297,6 @@ export const bnIN: LocalizationResource = {
notice__tokenShownOnce: undefined,
subtitle: undefined,
title: undefined,
warning__googleUnsupported: {
subtitle: undefined,
title: undefined,
},
warning__ssoInactive: undefined,
},
navbar: {
Expand All @@ -303,14 +315,28 @@ export const bnIN: LocalizationResource = {
},
testStep: {
actionLabel__complete: undefined,
actionLabel__syncNow: undefined,
badge__active: undefined,
badge__deprovisioned: undefined,
description: undefined,
description__pull: undefined,
empty__noUsersProvisioned: undefined,
empty__waitingForFirstSync: undefined,
empty__waitingForFirstUser: undefined,
error__lastSyncFailed: undefined,
error__loadUsers: undefined,
error__syncFailed: undefined,
note: undefined,
noteLabel: undefined,
subtitle: undefined,
syncRow: {
neverSynced: undefined,
title: undefined,
},
syncStatus__cancelled: undefined,
syncStatus__failed: undefined,
syncStatus__running: undefined,
syncStatus__succeeded: undefined,
title: undefined,
},
},
Expand Down
34 changes: 30 additions & 4 deletions packages/localizations/src/ca-ES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -249,14 +249,23 @@ export const caES: LocalizationResource = {
},
configureStep: {
actionLabel__generateToken: undefined,
actionLabel__replaceKey: undefined,
actionLabel__retry: undefined,
actionLabel__uploadKey: undefined,
badge__credentialsConfigured: undefined,
badge__credentialsMissing: undefined,
domainsLabel: undefined,
error__invalidKeyFile: undefined,
error__ssoRequired: {
subtitle: undefined,
title: undefined,
},
formFieldHint__subjectEmail: undefined,
formFieldInputPlaceholder__subjectEmail: undefined,
formFieldInputPlaceholder__token: undefined,
formFieldLabel__endpointUrl: undefined,
formFieldLabel__serviceAccountKey: undefined,
formFieldLabel__subjectEmail: undefined,
formFieldLabel__token: undefined,
instructions: {
actionLabel__toggle: undefined,
Expand All @@ -272,6 +281,13 @@ export const caES: LocalizationResource = {
step3: undefined,
step4: undefined,
},
google: {
step1: undefined,
step2: undefined,
step3: undefined,
step4: undefined,
step5: undefined,
},
okta: {
step1: undefined,
step2: undefined,
Expand All @@ -282,10 +298,6 @@ export const caES: LocalizationResource = {
notice__tokenShownOnce: undefined,
subtitle: undefined,
title: undefined,
warning__googleUnsupported: {
subtitle: undefined,
title: undefined,
},
warning__ssoInactive: undefined,
},
navbar: {
Expand All @@ -304,14 +316,28 @@ export const caES: LocalizationResource = {
},
testStep: {
actionLabel__complete: undefined,
actionLabel__syncNow: undefined,
badge__active: undefined,
badge__deprovisioned: undefined,
description: undefined,
description__pull: undefined,
empty__noUsersProvisioned: undefined,
empty__waitingForFirstSync: undefined,
empty__waitingForFirstUser: undefined,
error__lastSyncFailed: undefined,
error__loadUsers: undefined,
error__syncFailed: undefined,
note: undefined,
noteLabel: undefined,
subtitle: undefined,
syncRow: {
neverSynced: undefined,
title: undefined,
},
syncStatus__cancelled: undefined,
syncStatus__failed: undefined,
syncStatus__running: undefined,
syncStatus__succeeded: undefined,
title: undefined,
},
},
Expand Down
Loading
Loading