Skip to content

Commit 8584741

Browse files
committed
refactor(ui): scope ConfigureSSO Configure locales by provider and adopt inline rich-text markup
Restructures localization keys under configureSSO.configureStep so future SAML providers (Custom SAML) and OIDC can drop in alongside Okta without duplicating shared copy: - spFields and attributeMapping live at the top level since their labels, table content, badges, and the "These are the defaults..." paragraph read the same regardless of provider. - samlOkta now owns provider-specific copy: title, subtitle, createApp walkthrough, serviceProvider narrative, completeSamlIntegration steps, configureAttributes pairs, metadataUrl. When Custom SAML lands, a sibling samlCustom namespace mirrors this shape. Replaces the InstructionStep and InstructionStepWithCode helpers (which required 3 or 5 separate keys per sentence) with a single RichText component that parses inline <strong>...</strong> and <code>...</code> markup in a localized string. One key per sentence, translators see the whole context, emphasis stays themable through Text spans. ConfigureAttributesSubStep redesigned to match Figma 8032:14794: - Claim names in the attribute mapping table are now user.email, user.firstName, user.lastName (corrects user.profile.email). - The verify-mappings list collapses from 9 separate numbered steps to 2, with a nested bulleted sub-list of the name/expression pairs the user enters in Okta. - Table rows render from an ATTRIBUTE_ROWS constant so the row markup isn't duplicated three times. - Verify-mappings pairs render from an ATTRIBUTE_PAIRS constant for the same reason. Sweeps remaining sx={{ color: $colorMutedForeground }} call sites in the Configure sub-steps over to Text colorScheme='secondary' to match the pattern used elsewhere in the file.
1 parent 1b49000 commit 8584741

3 files changed

Lines changed: 346 additions & 568 deletions

File tree

packages/localizations/src/en-US.ts

Lines changed: 56 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -224,157 +224,80 @@ export const enUS: LocalizationResource = {
224224
warning: 'Once a provider is selected you cannot change again until the configuration is over',
225225
},
226226
configureStep: {
227-
title: 'Configure Okta Workforce',
228-
subtitle: 'Create a new enterprise application in your Okta Dashboard',
229-
createApp: {
230-
createApp: {
231-
title: 'Create a new enterprise application in Okta',
232-
step1: {
233-
prefix: 'Sign in to Okta and go to ',
234-
bold: 'Admin → Applications',
235-
suffix: '.',
236-
},
237-
step2: {
238-
prefix: 'Click ',
239-
bold: 'Create App Integration',
240-
suffix: '.',
241-
},
242-
step3: {
243-
prefix: 'Select ',
244-
bold: 'SAML 2.0',
245-
suffix: '.',
227+
spFields: {
228+
acsUrl: {
229+
label: 'Single sign-on URL',
230+
},
231+
spEntityId: {
232+
label: 'Audience URI',
233+
},
234+
},
235+
attributeMapping: {
236+
title: 'We expect your SAML responses to have the following specific attributes:',
237+
paragraph:
238+
"These are the defaults and probably won't need you to change them. However, many SAML configuration errors are due to incorrect attribute mappings, so it's worth double-checking. Here's how:",
239+
columns: {
240+
attribute: 'Attribute',
241+
claimName: 'Claim Name',
242+
},
243+
badges: {
244+
required: 'Required',
245+
optional: 'Optional',
246+
},
247+
rows: {
248+
email: {
249+
attribute: 'Email address',
250+
claim: 'user.email',
246251
},
247-
step4: {
248-
prefix: 'Fill in the ',
249-
bold: 'General Settings',
250-
suffix: ' (App name is required).',
252+
firstName: {
253+
attribute: 'First Name',
254+
claim: 'user.firstName',
251255
},
252-
step5: {
253-
prefix: 'Click ',
254-
bold: 'Next',
255-
suffix: ' to complete creating the application.',
256+
lastName: {
257+
attribute: 'Last Name',
258+
claim: 'user.lastName',
256259
},
257260
},
261+
},
262+
samlOkta: {
263+
title: 'Configure Okta Workforce',
264+
subtitle: 'Create a new enterprise application in your Okta Dashboard',
265+
createApp: {
266+
title: 'Create a new enterprise application in Okta',
267+
step1: 'Sign in to Okta and go to <strong>Admin → Applications</strong>.',
268+
step2: 'Click <strong>Create App Integration</strong>.',
269+
step3: 'Select <strong>SAML 2.0</strong>.',
270+
step4: 'Fill in the <strong>General Settings</strong> (App name is required).',
271+
step5: 'Click <strong>Next</strong> to complete creating the application.',
272+
},
258273
serviceProvider: {
259274
title: 'Configure service provider',
260275
paragraph1:
261276
'Once you have moved forward from the General Settings instructions, you will be presented with the Configure SAML page.',
262277
paragraph2:
263278
'To configure your service provider (Clerk), you must add these two fields to your Okta application:',
264-
acsUrl: {
265-
label: 'Single sign-on URL',
266-
},
267-
spEntityId: {
268-
label: 'Audience URI',
269-
},
270279
},
271280
completeSamlIntegration: {
272281
title: 'Complete SAML integration',
273-
step1: {
274-
prefix: 'Select ',
275-
bold: 'This is an internal app that we have created',
276-
suffix: ' from the options menu.',
277-
},
278-
step2: {
279-
prefix: 'Complete the form with any comments and select ',
280-
bold: '"Finish"',
281-
suffix: '.',
282-
},
282+
step1: 'Select <strong>This is an internal app that we have created</strong> from the options menu.',
283+
step2: 'Complete the form with any comments and select <strong>"Finish"</strong>.',
283284
},
284-
},
285-
configureAttributes: {
286-
attributeMapping: {
287-
title: 'We expect your SAML responses to have the following specific attributes:',
288-
columns: {
289-
attribute: 'Attribute',
290-
claimName: 'Claim Name',
291-
},
292-
badges: {
293-
required: 'Required',
294-
optional: 'Optional',
295-
},
296-
rows: {
297-
email: {
298-
attribute: 'Email address',
299-
claim: 'user.profile.email',
300-
},
301-
firstName: {
302-
attribute: 'First Name',
303-
claim: 'user.firstName',
304-
},
305-
lastName: {
306-
attribute: 'Last Name',
307-
claim: 'user.lastName',
308-
},
285+
configureAttributes: {
286+
step1: 'In the Okta dashboard, find the <strong>Attribute Statements</strong> section.',
287+
step2:
288+
'Select <strong>Add Expression</strong> for each attribute, and enter the following name and expression pairs:',
289+
pairs: {
290+
email: '<code>mail</code> and <code>user.profile.mail</code>',
291+
firstName: '<code>firstName</code> and <code>user.profile.firstName</code>',
292+
lastName: '<code>lastName</code> and <code>user.profile.lastName</code>',
309293
},
310294
},
311-
verifyMappings: {
312-
paragraph:
313-
"These are the defaults and probably won't need you to change them. However, many SAML configuration errors are due to incorrect attribute mappings, so it's worth double-checking. Here's how:",
314-
step1: {
315-
prefix: 'In the Okta dashboard, find the ',
316-
bold: 'Attribute Statements',
317-
suffix: ' section.',
318-
},
319-
step2: {
320-
prefix: 'For the ',
321-
bold: 'Name',
322-
middle: ' field, enter ',
323-
code: 'mail',
324-
suffix: '',
325-
},
326-
step3: {
327-
prefix: 'For the ',
328-
bold: 'Value',
329-
middle: ' field, choose ',
330-
code: 'user.profile.mail',
331-
suffix: ' from the dropdown.',
332-
},
333-
step4: {
334-
prefix: 'Select the ',
335-
bold: 'Add Another',
336-
suffix: ' button to add another attribute.',
337-
},
338-
step5: {
339-
prefix: 'For the ',
340-
bold: 'Name',
341-
middle: ' field, enter ',
342-
code: 'firstName',
343-
suffix: '',
344-
},
345-
step6: {
346-
prefix: 'For the ',
347-
bold: 'Value',
348-
middle: ' field, choose ',
349-
code: 'user.firstName',
350-
suffix: ' from the dropdown.',
351-
},
352-
step7: {
353-
prefix: 'Select the ',
354-
bold: 'Add Another',
355-
suffix: ' button to add another attribute.',
356-
},
357-
step8: {
358-
prefix: 'For the ',
359-
bold: 'Name',
360-
middle: ' field, enter ',
361-
code: 'lastName',
362-
suffix: '',
363-
},
364-
step9: {
365-
prefix: 'For the ',
366-
bold: 'Value',
367-
middle: ' field, choose ',
368-
code: 'user.lastName',
369-
suffix: ' from the dropdown.',
370-
},
295+
metadataUrl: {
296+
label: 'Metadata URL',
297+
placeholder: 'Paste URL here...',
298+
description: 'In your Okta SAML app, go to the Sign On tab and retrieve the metadata URL. Paste it below.',
371299
},
372300
},
373-
metadataUrl: {
374-
label: 'Metadata URL',
375-
placeholder: 'Paste URL here...',
376-
description: 'In your Okta SAML app, go to the Sign On tab and retrieve the metadata URL. Paste it below.',
377-
},
378301
},
379302
},
380303
createOrganization: {

0 commit comments

Comments
 (0)