diff --git a/packages/console/src/assets/icons/jwt-claims.svg b/packages/console/src/assets/icons/jwt-claims.svg new file mode 100644 index 00000000000..82fb6e07c37 --- /dev/null +++ b/packages/console/src/assets/icons/jwt-claims.svg @@ -0,0 +1,4 @@ + + + diff --git a/packages/console/src/containers/ConsoleContent/Sidebar/hook.tsx b/packages/console/src/containers/ConsoleContent/Sidebar/hook.tsx index 627521ccc4c..0c88efbbb3c 100644 --- a/packages/console/src/containers/ConsoleContent/Sidebar/hook.tsx +++ b/packages/console/src/containers/ConsoleContent/Sidebar/hook.tsx @@ -8,6 +8,7 @@ import Box from '@/assets/icons/box.svg'; import Connection from '@/assets/icons/connection.svg'; import Gear from '@/assets/icons/gear.svg'; import Hook from '@/assets/icons/hook.svg'; +import JwtClaims from '@/assets/icons/jwt-claims.svg'; import List from '@/assets/icons/list.svg'; import Organization from '@/assets/icons/organization.svg'; import UserProfile from '@/assets/icons/profile.svg'; @@ -16,7 +17,7 @@ import Role from '@/assets/icons/role.svg'; import SecurityLock from '@/assets/icons/security-lock.svg'; import EnterpriseSso from '@/assets/icons/single-sign-on.svg'; import Web from '@/assets/icons/web.svg'; -import { isCloud } from '@/consts/env'; +import { isDevFeaturesEnabled, isCloud } from '@/consts/env'; type SidebarItem = { Icon: FC; @@ -117,6 +118,11 @@ export const useSidebarMenuItems = (): { Icon: Hook, title: 'webhooks', }, + { + Icon: JwtClaims, + title: 'jwt_customizer', + isHidden: !isDevFeaturesEnabled, + }, ], }, { diff --git a/packages/console/src/pages/JwtClaims/MonacoCodeEditor/config.ts b/packages/console/src/pages/JwtClaims/MonacoCodeEditor/config.ts index 28dfc1c01dc..3906b9189e8 100644 --- a/packages/console/src/pages/JwtClaims/MonacoCodeEditor/config.ts +++ b/packages/console/src/pages/JwtClaims/MonacoCodeEditor/config.ts @@ -23,4 +23,5 @@ export const defaultOptions: EditorProps['options'] = { fontSize: 14, automaticLayout: true, tabSize: 2, + scrollBeyondLastLine: false, }; diff --git a/packages/console/src/pages/JwtClaims/MonacoCodeEditor/index.tsx b/packages/console/src/pages/JwtClaims/MonacoCodeEditor/index.tsx index 89210854773..27335451489 100644 --- a/packages/console/src/pages/JwtClaims/MonacoCodeEditor/index.tsx +++ b/packages/console/src/pages/JwtClaims/MonacoCodeEditor/index.tsx @@ -166,7 +166,10 @@ function MonacoCodeEditor({ language={activeModel.language} path={activeModel.name} theme="logto-dark" - options={defaultOptions} + options={{ + ...defaultOptions, + ...activeModel.options, + }} // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- empty string is falsy value={value || activeModel.defaultValue} beforeMount={handleEditorWillMount} diff --git a/packages/console/src/pages/JwtClaims/MonacoCodeEditor/type.ts b/packages/console/src/pages/JwtClaims/MonacoCodeEditor/type.ts index 7061080c327..fb3eef79d82 100644 --- a/packages/console/src/pages/JwtClaims/MonacoCodeEditor/type.ts +++ b/packages/console/src/pages/JwtClaims/MonacoCodeEditor/type.ts @@ -1,4 +1,4 @@ -import { type Monaco, type OnMount } from '@monaco-editor/react'; +import { type EditorProps, type Monaco, type OnMount } from '@monaco-editor/react'; export type IStandaloneThemeData = Parameters[1]; @@ -25,6 +25,7 @@ export type ModelSettings = { * We use this to load the global type declarations for the active model */ extraLibs?: ExtraLibrary[]; + options?: EditorProps['options']; }; export type ModelControl = { diff --git a/packages/console/src/pages/JwtClaims/SettingsSection/EnvironmentVariablesField.tsx b/packages/console/src/pages/JwtClaims/SettingsSection/EnvironmentVariablesField.tsx index c88058724b7..87c803c2fd8 100644 --- a/packages/console/src/pages/JwtClaims/SettingsSection/EnvironmentVariablesField.tsx +++ b/packages/console/src/pages/JwtClaims/SettingsSection/EnvironmentVariablesField.tsx @@ -11,7 +11,11 @@ const isValidKey = (key: string) => { return /^\w+$/.test(key); }; -function EnvironmentVariablesField() { +type Props = { + className?: string; +}; + +function EnvironmentVariablesField({ className }: Props) { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); const { @@ -98,7 +102,7 @@ function EnvironmentVariablesField() { ); return ( - + + +
+ {t('jwt_claims.environment_variables.sample_code')} +
+ ); diff --git a/packages/console/src/pages/JwtClaims/SettingsSection/TestTab.tsx b/packages/console/src/pages/JwtClaims/SettingsSection/TestTab.tsx index d91020b8296..9929483f88a 100644 --- a/packages/console/src/pages/JwtClaims/SettingsSection/TestTab.tsx +++ b/packages/console/src/pages/JwtClaims/SettingsSection/TestTab.tsx @@ -10,9 +10,9 @@ import Card from '@/ds-components/Card'; import MonacoCodeEditor, { type ModelControl } from '../MonacoCodeEditor/index.js'; import { type JwtClaimsFormType } from '../type.js'; import { - userTokenPayloadTestModel, - machineToMachineTokenPayloadTestModel, - userTokenContextTestModel, + accessTokenPayloadTestModel, + clientCredentialsPayloadTestModel, + userContextTestModel, } from '../utils/config.js'; import TestResult, { type TestResultData } from './TestResult.js'; @@ -22,8 +22,8 @@ type Props = { isActive: boolean; }; -const userTokenModelSettings = [userTokenPayloadTestModel, userTokenContextTestModel]; -const machineToMachineTokenModelSettings = [machineToMachineTokenPayloadTestModel]; +const userTokenModelSettings = [accessTokenPayloadTestModel, userContextTestModel]; +const machineToMachineTokenModelSettings = [clientCredentialsPayloadTestModel]; function TestTab({ isActive }: Props) { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console.jwt_claims' }); @@ -52,7 +52,7 @@ function TestTab({ isActive }: Props) { const getModelControllerProps = useCallback( ({ value, onChange }: ControllerRenderProps): ModelControl => { // User access token context test model (user data) - if (activeModelName === userTokenContextTestModel.name) { + if (activeModelName === userContextTestModel.name) { return { value: value?.contextSample, onChange: (newValue: string | undefined) => { diff --git a/packages/console/src/pages/JwtClaims/SettingsSection/index.module.scss b/packages/console/src/pages/JwtClaims/SettingsSection/index.module.scss index 5a72bbd6c7d..4210e813a5b 100644 --- a/packages/console/src/pages/JwtClaims/SettingsSection/index.module.scss +++ b/packages/console/src/pages/JwtClaims/SettingsSection/index.module.scss @@ -79,6 +79,10 @@ > *:first-child { margin-top: _.unit(6); } + + > *:not(:last-child) { + margin-bottom: _.unit(4); + } } .expandButton { @@ -124,8 +128,6 @@ } .sampleCode { - margin-top: _.unit(4); - :global { /* stylelint-disable-next-line selector-class-pattern */ .monaco-editor { @@ -144,6 +146,10 @@ } } +.envVariablesField { + margin-bottom: _.unit(4); +} + .testResult { margin-top: _.unit(3); height: calc(50% - _.unit(3)); diff --git a/packages/console/src/pages/JwtClaims/utils/config.tsx b/packages/console/src/pages/JwtClaims/utils/config.tsx index 9aea5bbf4bd..5942f58022b 100644 --- a/packages/console/src/pages/JwtClaims/utils/config.tsx +++ b/packages/console/src/pages/JwtClaims/utils/config.tsx @@ -1,3 +1,4 @@ +import { type AccessTokenPayload, type ClientCredentialsPayload } from '@logto/schemas'; import { type EditorProps } from '@monaco-editor/react'; import TokenFileIcon from '@/assets/icons/token-file-icon.svg'; @@ -131,7 +132,6 @@ export const clientCredentialsModel: ModelSettings = { /** * JWT claims guide card configs */ - export const sampleCodeEditorOptions: EditorProps['options'] = { readOnly: true, wordWrap: 'on', @@ -142,14 +142,13 @@ export const sampleCodeEditorOptions: EditorProps['options'] = { overviewRulerBorder: false, overviewRulerLanes: 0, lineNumbers: 'off', - scrollbar: { vertical: 'hidden', horizontal: 'hidden', handleMouseWheel: false }, folding: false, tabSize: 2, + scrollBeyondLastLine: false, }; export const typeDefinitionCodeEditorOptions: EditorProps['options'] = { ...sampleCodeEditorOptions, - scrollbar: { vertical: 'auto', horizontal: 'auto' }, folding: true, }; @@ -165,24 +164,42 @@ return { externalData: data, };`; +export const environmentVariablesCodeExample = `exports.getCustomJwtClaims = async (token, data, envVariables) => { + const { apiKey } = envVariables; + + const response = await fetch('https://api.example.com/data', { + headers: { + Authorization: apiKey, + } + }); + + const data = await response.json(); + + return { + externalData: data, + }; +};`; + /** * Tester Code Editor configs */ const standardTokenPayloadData = { - jti: '1234567890', - iat: 1_516_239_022, - exp: 1_516_239_022, + jti: 'f1d3d2d1-1f2d-3d4e-5d6f-7d8a9d0e1d2', + iat: 1_516_235_022, + exp: 1_516_235_022 + 3600, client_id: 'my_app', scope: 'read write', - aud: 'http://localhost:3000/api', + aud: 'http://localhost:3000/api/test', }; -const defaultUserTokenPayloadData = { +const defaultAccessTokenPayload: AccessTokenPayload = { ...standardTokenPayloadData, + grantId: 'grant_123', + accountId: 'uid_123', kind: 'AccessToken', }; -const defaultMachineToMachineTokenPayloadData = { +const defaultClientCredentialsPayload: ClientCredentialsPayload = { ...standardTokenPayloadData, kind: 'ClientCredentials', }; @@ -200,23 +217,23 @@ const defaultUserTokenContextData = { }, }; -export const userTokenPayloadTestModel: ModelSettings = { +export const accessTokenPayloadTestModel: ModelSettings = { language: 'json', icon: , name: 'user-token-payload.json', title: 'Token', - defaultValue: JSON.stringify(defaultUserTokenPayloadData, null, '\t'), + defaultValue: JSON.stringify(defaultAccessTokenPayload, null, '\t'), }; -export const machineToMachineTokenPayloadTestModel: ModelSettings = { +export const clientCredentialsPayloadTestModel: ModelSettings = { language: 'json', icon: , name: 'machine-to-machine-token-payload.json', title: 'Token', - defaultValue: JSON.stringify(defaultMachineToMachineTokenPayloadData, null, '\t'), + defaultValue: JSON.stringify(defaultClientCredentialsPayload, null, '\t'), }; -export const userTokenContextTestModel: ModelSettings = { +export const userContextTestModel: ModelSettings = { language: 'json', icon: , name: 'user-token-context.json', diff --git a/packages/phrases/src/locales/de/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/de/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/de/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/de/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/de/translation/admin-console/tabs.ts b/packages/phrases/src/locales/de/translation/admin-console/tabs.ts index d350a5fcaaf..533341504ad 100644 --- a/packages/phrases/src/locales/de/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/de/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Dokumentation', tenant_settings: 'Einstellungen', mfa: 'Multi-Faktor-Authentifizierung', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/en/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/en/translation/admin-console/jwt-claims.ts index f26da5cdf1f..bfc7ee4cc15 100644 --- a/packages/phrases/src/locales/en/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/en/translation/admin-console/jwt-claims.ts @@ -36,6 +36,7 @@ const jwt_claims = { subtitle: 'Use environment variables to store sensitive information and access them in your custom claims handler.', input_field_title: 'Add environment variables', + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, jwt_claims_hint: 'Limit custom claims to under 50KB. Default JWT claims are automatically included in the token and can not be overridden.', diff --git a/packages/phrases/src/locales/en/translation/admin-console/tabs.ts b/packages/phrases/src/locales/en/translation/admin-console/tabs.ts index 81806f70d45..4915876f584 100644 --- a/packages/phrases/src/locales/en/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/en/translation/admin-console/tabs.ts @@ -14,6 +14,7 @@ const tabs = { docs: 'Docs', tenant_settings: 'Settings', mfa: 'Multi-factor auth', + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/es/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/es/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/es/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/es/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/es/translation/admin-console/tabs.ts b/packages/phrases/src/locales/es/translation/admin-console/tabs.ts index f828d521739..60ca65b8aa9 100644 --- a/packages/phrases/src/locales/es/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/es/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Documentos', tenant_settings: 'Configuraciones del inquilino', mfa: 'Autenticación multifactor', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/fr/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/fr/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/fr/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/fr/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/fr/translation/admin-console/tabs.ts b/packages/phrases/src/locales/fr/translation/admin-console/tabs.ts index 03aece5767a..323e29c17ef 100644 --- a/packages/phrases/src/locales/fr/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/fr/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Documentation', tenant_settings: 'Paramètres du locataire', mfa: 'Authentification multi-facteur', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/it/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/it/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/it/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/it/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/it/translation/admin-console/tabs.ts b/packages/phrases/src/locales/it/translation/admin-console/tabs.ts index dbbbcdae870..8817df79b65 100644 --- a/packages/phrases/src/locales/it/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/it/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Documenti', tenant_settings: 'Impostazioni', mfa: 'Autenticazione multi-fattore', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/ja/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/ja/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/ja/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/ja/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/ja/translation/admin-console/tabs.ts b/packages/phrases/src/locales/ja/translation/admin-console/tabs.ts index 65e74b7e822..d7dcf05bc3f 100644 --- a/packages/phrases/src/locales/ja/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/ja/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'ドキュメント', tenant_settings: '設定', mfa: 'Multi-factor auth', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/ko/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/ko/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/ko/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/ko/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/ko/translation/admin-console/tabs.ts b/packages/phrases/src/locales/ko/translation/admin-console/tabs.ts index ca8779aa7f5..9762805a41e 100644 --- a/packages/phrases/src/locales/ko/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/ko/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: '문서', tenant_settings: '테넌트 설정', mfa: '다중 요소 인증', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/pl-pl/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/pl-pl/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/pl-pl/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/pl-pl/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/pl-pl/translation/admin-console/tabs.ts b/packages/phrases/src/locales/pl-pl/translation/admin-console/tabs.ts index 8aecaac7652..a37ee04a201 100644 --- a/packages/phrases/src/locales/pl-pl/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/pl-pl/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Dokumentacja', tenant_settings: 'Ustawienia', mfa: 'Multi-factor auth', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/pt-br/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/pt-br/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/pt-br/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/pt-br/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/pt-br/translation/admin-console/tabs.ts b/packages/phrases/src/locales/pt-br/translation/admin-console/tabs.ts index ecc4893ea9f..800bd79aefa 100644 --- a/packages/phrases/src/locales/pt-br/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/pt-br/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Documentação', tenant_settings: 'Configurações', mfa: 'Autenticação de multi-fator', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/pt-pt/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/pt-pt/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/pt-pt/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/pt-pt/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/pt-pt/translation/admin-console/tabs.ts b/packages/phrases/src/locales/pt-pt/translation/admin-console/tabs.ts index 5a2ca047fc4..8c5a3b0c9cd 100644 --- a/packages/phrases/src/locales/pt-pt/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/pt-pt/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Documentação', tenant_settings: 'Definições do inquilino', mfa: 'Autenticação multi-fator', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/ru/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/ru/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/ru/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/ru/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/ru/translation/admin-console/tabs.ts b/packages/phrases/src/locales/ru/translation/admin-console/tabs.ts index 28b15b2d842..0d132df6567 100644 --- a/packages/phrases/src/locales/ru/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/ru/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Документация', tenant_settings: 'Настройки', mfa: 'Multi-factor auth', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/tr-tr/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/tr-tr/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/tr-tr/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/tr-tr/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/tr-tr/translation/admin-console/tabs.ts b/packages/phrases/src/locales/tr-tr/translation/admin-console/tabs.ts index e85cc228114..7a428b0404b 100644 --- a/packages/phrases/src/locales/tr-tr/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/tr-tr/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: 'Dökümanlar', tenant_settings: 'Ayarlar', mfa: 'Çoklu faktörlü kimlik doğrulama', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/zh-cn/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/zh-cn/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/zh-cn/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/zh-cn/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/zh-cn/translation/admin-console/tabs.ts b/packages/phrases/src/locales/zh-cn/translation/admin-console/tabs.ts index 888a61046d7..c5c46fcfb13 100644 --- a/packages/phrases/src/locales/zh-cn/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/zh-cn/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: '文档', tenant_settings: '租户设置', mfa: '多因素认证', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/zh-hk/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/zh-hk/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/zh-hk/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/zh-hk/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/zh-hk/translation/admin-console/tabs.ts b/packages/phrases/src/locales/zh-hk/translation/admin-console/tabs.ts index 714a75bf66e..c3e2b522ebc 100644 --- a/packages/phrases/src/locales/zh-hk/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/zh-hk/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: '文檔', tenant_settings: '租戶設置', mfa: '多重認證', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs); diff --git a/packages/phrases/src/locales/zh-tw/translation/admin-console/jwt-claims.ts b/packages/phrases/src/locales/zh-tw/translation/admin-console/jwt-claims.ts index 05f9c047d23..3b72de16ba2 100644 --- a/packages/phrases/src/locales/zh-tw/translation/admin-console/jwt-claims.ts +++ b/packages/phrases/src/locales/zh-tw/translation/admin-console/jwt-claims.ts @@ -60,6 +60,8 @@ const jwt_claims = { 'Use environment variables to store sensitive information and access them in your custom claims handler.', /** UNTRANSLATED */ input_field_title: 'Add environment variables', + /** UNTRANSLATED */ + sample_code: 'Accessing environment variables in your custom JWT claims handler. Example: ', }, /** UNTRANSLATED */ jwt_claims_hint: diff --git a/packages/phrases/src/locales/zh-tw/translation/admin-console/tabs.ts b/packages/phrases/src/locales/zh-tw/translation/admin-console/tabs.ts index 0e8f730ab76..4b2cd81139d 100644 --- a/packages/phrases/src/locales/zh-tw/translation/admin-console/tabs.ts +++ b/packages/phrases/src/locales/zh-tw/translation/admin-console/tabs.ts @@ -14,6 +14,8 @@ const tabs = { docs: '文件', tenant_settings: '租戶設定', mfa: '多重認證', + /** UNTRANSLATED */ + jwt_customizer: 'JWT Claims', }; export default Object.freeze(tabs);