You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(console): user-import wizard defaults to the auto password policy (tracks framework#3236) (#2701)
The "Sign-in setup for imported users" selector in the identity import wizard
gains an "Automatic (recommended)" option, now the default (was "No password").
`auto` lets the server decide per row — reachable users get an invitation
(email/SMS), unreachable ones get a one-time password shown once — so the wizard
works with or without an email/SMS service, and the one-time-password reveal
surfaces only the rows that actually fell back (not the whole batch, as under
`temporary`).
- `IdentityPasswordPolicy` gains `'auto'`; the wizard's default state and the
send-time policy ref default to `'auto'`.
- POLICY_FALLBACKS + en/zh i18n gain `auto` label/hint; `none` drops its
"(recommended)" marker and is relabeled "No password (identity only)".
- The batch adapter (splitting, merge, one-time-password reveal) is
policy-agnostic, so no adapter changes were needed — `auto` fallback rows
carry `temporaryPassword` exactly like `temporary` rows.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
**Console user-import wizard defaults to the `auto` password policy (tracks framework#3236).** The "Sign-in setup for imported users" selector gains an **Automatic (recommended)** option and it is now the default (was "No password"). `auto` decides per row on the server: reachable users get an invitation (email / SMS), anyone who can't be reached gets a one-time password shown once on the result screen — so it works with or without an email/SMS service, and the one-time-password reveal now surfaces only the rows that actually fell back (instead of the whole batch under `temporary`).
7
+
8
+
The other three policies are unchanged and still selectable: `invite` (force invitations, unreachable rows fail), `temporary` (force one-time passwords for every row), `none` (identity only). New `console.identityImport.policy.auto` / `policyHint.auto` strings added for `en` and `zh`; the `none` label drops its "(recommended)" marker.
hint: 'Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.',
23
+
auto: {
24
+
label: 'Automatic (recommended)',
25
+
hint: 'Reachable users get an invitation (email or SMS); anyone we can\'t reach gets a one-time password, shown ONCE on the result screen. Works with or without an email/SMS service.',
26
26
},
27
27
invite: {
28
28
label: 'Send invitations',
29
-
hint: 'Each created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service.',
29
+
hint: 'Every created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service — unreachable rows fail.',
30
30
},
31
31
temporary: {
32
32
label: 'Temporary passwords',
33
-
hint: 'For deployments without email/SMS: each created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.',
33
+
hint: 'For deployments without email/SMS: every created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.',
34
+
},
35
+
none: {
36
+
label: 'No password (identity only)',
37
+
hint: 'Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.',
Copy file name to clipboardExpand all lines: packages/i18n/src/locales/en.ts
+5-3Lines changed: 5 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1420,14 +1420,16 @@ const en = {
1420
1420
identityImport: {
1421
1421
policyTitle: 'Sign-in setup for imported users',
1422
1422
policy: {
1423
-
none: 'No password (recommended)',
1423
+
auto: 'Automatic (recommended)',
1424
1424
invite: 'Send invitations',
1425
1425
temporary: 'Temporary passwords',
1426
+
none: 'No password (identity only)',
1426
1427
},
1427
1428
policyHint: {
1429
+
auto: 'Reachable users get an invitation (email or SMS); anyone we can\'t reach gets a one-time password, shown ONCE on the result screen. Works with or without an email/SMS service.',
1430
+
invite: 'Every created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service — unreachable rows fail.',
1431
+
temporary: 'For deployments without email/SMS: every created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.',
1428
1432
none: 'Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.',
1429
-
invite: 'Each created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service.',
1430
-
temporary: 'For deployments without email/SMS: each created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.',
1431
1433
},
1432
1434
passwordsNote: 'Temporary passwords — shown once, never stored. Save them now; each user must change theirs at first sign-in.',
1433
1435
passwordsMore: 'More entries omitted — use the download.',
0 commit comments