Files
Stéphane Tailland 62d0b371f6 Add the restocker role, assigned to Supply's service account
Copies the shape of read_only rather than inventing the schema. Supply keeps
read_only for its existing read tools and gains restocker for the one
patch-product tool it now needs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 16:18:23 +02:00

12 lines
168 KiB
YAML

{
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "keycloak-realm-classic-models",
"namespace": "keycloak"
},
"data": {
"classic-models-realm.json": "{\n \"id\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"realm\": \"classic-models\",\n \"displayName\": \"Classic Models\",\n \"notBefore\": 0,\n \"defaultSignatureAlgorithm\": \"RS256\",\n \"revokeRefreshToken\": false,\n \"refreshTokenMaxReuse\": 0,\n \"accessTokenLifespan\": 300,\n \"accessTokenLifespanForImplicitFlow\": 900,\n \"ssoSessionIdleTimeout\": 1800,\n \"ssoSessionMaxLifespan\": 36000,\n \"ssoSessionIdleTimeoutRememberMe\": 0,\n \"ssoSessionMaxLifespanRememberMe\": 0,\n \"offlineSessionIdleTimeout\": 2592000,\n \"offlineSessionMaxLifespanEnabled\": false,\n \"offlineSessionMaxLifespan\": 5184000,\n \"clientSessionIdleTimeout\": 0,\n \"clientSessionMaxLifespan\": 0,\n \"clientOfflineSessionIdleTimeout\": 0,\n \"clientOfflineSessionMaxLifespan\": 0,\n \"accessCodeLifespan\": 60,\n \"accessCodeLifespanUserAction\": 300,\n \"accessCodeLifespanLogin\": 1800,\n \"actionTokenGeneratedByAdminLifespan\": 43200,\n \"actionTokenGeneratedByUserLifespan\": 300,\n \"oauth2DeviceCodeLifespan\": 600,\n \"oauth2DevicePollingInterval\": 5,\n \"enabled\": true,\n \"sslRequired\": \"external\",\n \"registrationAllowed\": false,\n \"registrationEmailAsUsername\": false,\n \"rememberMe\": false,\n \"verifyEmail\": false,\n \"loginWithEmailAllowed\": true,\n \"duplicateEmailsAllowed\": false,\n \"resetPasswordAllowed\": true,\n \"editUsernameAllowed\": false,\n \"bruteForceProtected\": true,\n \"permanentLockout\": false,\n \"maxTemporaryLockouts\": 0,\n \"bruteForceStrategy\": \"MULTIPLE\",\n \"maxFailureWaitSeconds\": 900,\n \"minimumQuickLoginWaitSeconds\": 60,\n \"waitIncrementSeconds\": 60,\n \"quickLoginCheckMilliSeconds\": 1000,\n \"maxDeltaTimeSeconds\": 43200,\n \"failureFactor\": 30,\n \"maxSecondaryAuthFailures\": 0,\n \"roles\": {\n \"realm\": [\n {\n \"id\": \"c9a8df02-15e2-4a8a-84b8-ac626c3fd397\",\n \"name\": \"read_only\",\n \"description\": \"Read-only access to every domain\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"aebb3264-6b74-4a16-acbe-2bcb42ddc982\",\n \"name\": \"offline_access\",\n \"description\": \"${role_offline-access}\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"898ef96e-31a3-42f3-bec3-70b95e565c30\",\n \"name\": \"product_manager\",\n \"description\": \"Read access to every domain, write access to catalog only\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"bb99b98e-f679-4bea-bca4-026e2678f223\",\n \"name\": \"admin\",\n \"description\": \"Full read/write access to every domain\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"6e56c825-12e2-4f1d-8757-a071d0896728\",\n \"name\": \"support\",\n \"description\": \"Read access to every domain, plus order-status-only write on sales\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"d0859f5c-2930-4132-8616-64b8a2893638\",\n \"name\": \"uma_authorization\",\n \"description\": \"${role_uma_authorization}\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"ef4b44c5-9c5a-4bef-9c66-84892a1dca3b\",\n \"name\": \"customer\",\n \"description\": \"Read/write access restricted to the caller's own customer, sales and payments records; no workforce access\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"id\": \"a8f62523-078c-487b-9287-4bd3be698e87\",\n \"name\": \"default-roles-classic-models\",\n \"description\": \"${role_default-roles}\",\n \"composite\": true,\n \"composites\": {\n \"realm\": [\n \"offline_access\",\n \"uma_authorization\"\n ],\n \"client\": {\n \"account\": [\n \"view-profile\",\n \"manage-account\"\n ]\n }\n },\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n },\n {\n \"name\": \"restocker\",\n \"description\": \"A fulfilment identity: may PATCH a product's stock, nothing else.\",\n \"composite\": false,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\",\n \"attributes\": {}\n }\n ],\n \"client\": {\n \"account\": [\n {\n \"id\": \"70963207-d019-49c7-9a1a-1f36bc90c3a4\",\n \"name\": \"manage-account\",\n \"description\": \"${role_manage-account}\",\n \"composite\": true,\n \"composites\": {\n \"client\": {\n \"account\": [\n \"manage-account-links\"\n ]\n }\n },\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"b2cfcad1-035c-40c4-844f-283e93ae09f1\",\n \"name\": \"manage-consent\",\n \"description\": \"${role_manage-consent}\",\n \"composite\": true,\n \"composites\": {\n \"client\": {\n \"account\": [\n \"view-consent\"\n ]\n }\n },\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"d639c5fc-dd49-47a4-9089-d268012cc7eb\",\n \"name\": \"view-profile\",\n \"description\": \"${role_view-profile}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"f3d7f619-b2a0-43d2-a1de-033b0f20becc\",\n \"name\": \"delete-account\",\n \"description\": \"${role_delete-account}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"c6e2a7ec-07c8-46ee-9eb4-8da50e91aaf6\",\n \"name\": \"view-groups\",\n \"description\": \"${role_view-groups}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"c67822d9-cf1c-45d4-a063-df904664db08\",\n \"name\": \"manage-account-links\",\n \"description\": \"${role_manage-account-links}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"f54f462e-a84b-4744-86c5-1592bc2ddf19\",\n \"name\": \"view-applications\",\n \"description\": \"${role_view-applications}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n },\n {\n \"id\": \"011a9f99-7495-4d1e-9f1e-71554efc0ea8\",\n \"name\": \"view-consent\",\n \"description\": \"${role_view-consent}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"attributes\": {}\n }\n ],\n \"account-console\": [],\n \"admin-cli\": [],\n \"admin-permissions\": [],\n \"broker\": [\n {\n \"id\": \"ed29d84a-07e7-400a-83cc-1b3cb353a430\",\n \"name\": \"read-token\",\n \"description\": \"${role_read-token}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"e60abf89-0cd1-4843-8611-7e502f4e37ec\",\n \"attributes\": {}\n }\n ],\n \"catalog-api\": [],\n \"classic-models-api\": [],\n \"librechat\": [],\n \"mcp-catalog\": [],\n \"realm-management\": [\n {\n \"id\": \"e622e32e-128a-45e3-bee0-9dbda78d9325\",\n \"name\": \"manage-identity-providers\",\n \"description\": \"${role_manage-identity-providers}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"bb53b06d-1b9c-4de1-8e96-f69e6ed4d89b\",\n \"name\": \"view-realm\",\n \"description\": \"${role_view-realm}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"db91066c-3f34-41dd-a477-9fd88f6a4446\",\n \"name\": \"view-identity-providers\",\n \"description\": \"${role_view-identity-providers}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"b40a39a6-034a-46e7-b3c5-8df931037453\",\n \"name\": \"create-client\",\n \"description\": \"${role_create-client}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"609f3ba6-a2ab-4076-be37-0e49e61b0094\",\n \"name\": \"query-users\",\n \"description\": \"${role_query-users}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"a56618a8-6ce4-4960-87b7-d032c483066d\",\n \"name\": \"query-clients\",\n \"description\": \"${role_query-clients}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"78c6e817-cf26-457a-a641-83644d1b1057\",\n \"name\": \"view-users\",\n \"description\": \"${role_view-users}\",\n \"composite\": true,\n \"composites\": {\n \"client\": {\n \"realm-management\": [\n \"query-groups\",\n \"query-users\"\n ]\n }\n },\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"1fad870a-e5a0-49cd-a664-2f639acacd4a\",\n \"name\": \"impersonation\",\n \"description\": \"${role_impersonation}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"97bd5f8a-864b-43f7-aa0e-b0c0e8936943\",\n \"name\": \"realm-admin\",\n \"description\": \"${role_realm-admin}\",\n \"composite\": true,\n \"composites\": {\n \"client\": {\n \"realm-management\": [\n \"manage-identity-providers\",\n \"view-realm\",\n \"view-identity-providers\",\n \"create-client\",\n \"query-users\",\n \"view-users\",\n \"query-clients\",\n \"view-authorization\",\n \"impersonation\",\n \"view-events\",\n \"manage-authorization\",\n \"manage-events\",\n \"view-clients\",\n \"manage-realm\",\n \"query-groups\",\n \"query-realms\",\n \"manage-users\",\n \"manage-clients\"\n ]\n }\n },\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"4553a382-1264-4506-9501-a1edc9318463\",\n \"name\": \"view-authorization\",\n \"description\": \"${role_view-authorization}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"3e80c33a-cb05-4806-ad2d-0a686a4f009c\",\n \"name\": \"view-events\",\n \"description\": \"${role_view-events}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"990c0b20-be26-4868-ab00-996c14d09432\",\n \"name\": \"manage-authorization\",\n \"description\": \"${role_manage-authorization}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"171fd798-164e-4e49-b19b-05035768234f\",\n \"name\": \"manage-events\",\n \"description\": \"${role_manage-events}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"a54eb966-b2c0-44ee-a883-413f5bd29a67\",\n \"name\": \"view-clients\",\n \"description\": \"${role_view-clients}\",\n \"composite\": true,\n \"composites\": {\n \"client\": {\n \"realm-management\": [\n \"query-clients\"\n ]\n }\n },\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"ebaf5f47-5273-4648-88ba-6f544923b840\",\n \"name\": \"manage-realm\",\n \"description\": \"${role_manage-realm}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"75f73a7b-6f12-4d55-bfad-42d0330965b1\",\n \"name\": \"query-groups\",\n \"description\": \"${role_query-groups}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"157ef0d8-6948-4253-8ca9-7bd79aa329d2\",\n \"name\": \"query-realms\",\n \"description\": \"${role_query-realms}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"c75a0f6b-50db-4462-8820-c00eb28b9046\",\n \"name\": \"manage-clients\",\n \"description\": \"${role_manage-clients}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n },\n {\n \"id\": \"6eb1cb28-5569-47d1-9554-e5b7b116d3bf\",\n \"name\": \"manage-users\",\n \"description\": \"${role_manage-users}\",\n \"composite\": false,\n \"clientRole\": true,\n \"containerId\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"attributes\": {}\n }\n ],\n \"security-admin-console\": [],\n \"token-exchange-broker\": []\n }\n },\n \"groups\": [],\n \"defaultRole\": {\n \"id\": \"a8f62523-078c-487b-9287-4bd3be698e87\",\n \"name\": \"default-roles-classic-models\",\n \"description\": \"${role_default-roles}\",\n \"composite\": true,\n \"clientRole\": false,\n \"containerId\": \"bbfd2543-16d5-4eaf-9ff8-3417e8c50bd9\"\n },\n \"adminPermissionsClient\": {\n \"id\": \"ff8c6a3f-9c57-4f45-99ed-3428056a6c4c\",\n \"clientId\": \"admin-permissions\"\n },\n \"requiredCredentials\": [\n \"password\"\n ],\n \"otpPolicyType\": \"totp\",\n \"otpPolicyAlgorithm\": \"HmacSHA1\",\n \"otpPolicyInitialCounter\": 0,\n \"otpPolicyDigits\": 6,\n \"otpPolicyLookAheadWindow\": 1,\n \"otpPolicyPeriod\": 30,\n \"otpPolicyCodeReusable\": false,\n \"otpSupportedApplications\": [\n \"totpAppFreeOTPName\",\n \"totpAppGoogleName\",\n \"totpAppMicrosoftAuthenticatorName\"\n ],\n \"localizationTexts\": {},\n \"webAuthnPolicyRpEntityName\": \"keycloak\",\n \"webAuthnPolicySignatureAlgorithms\": [\n \"ES256\",\n \"RS256\"\n ],\n \"webAuthnPolicyRpId\": \"\",\n \"webAuthnPolicyAttestationConveyancePreference\": \"not specified\",\n \"webAuthnPolicyAuthenticatorAttachment\": \"not specified\",\n \"webAuthnPolicyRequireResidentKey\": \"not specified\",\n \"webAuthnPolicyUserVerificationRequirement\": \"not specified\",\n \"webAuthnPolicyCreateTimeout\": 0,\n \"webAuthnPolicyAvoidSameAuthenticatorRegister\": false,\n \"webAuthnPolicyAcceptableAaguids\": [],\n \"webAuthnPolicyExtraOrigins\": [],\n \"webAuthnPolicyPasswordlessRpEntityName\": \"keycloak\",\n \"webAuthnPolicyPasswordlessSignatureAlgorithms\": [\n \"ES256\",\n \"RS256\"\n ],\n \"webAuthnPolicyPasswordlessRpId\": \"\",\n \"webAuthnPolicyPasswordlessAttestationConveyancePreference\": \"not specified\",\n \"webAuthnPolicyPasswordlessAuthenticatorAttachment\": \"not specified\",\n \"webAuthnPolicyPasswordlessRequireResidentKey\": \"Yes\",\n \"webAuthnPolicyPasswordlessUserVerificationRequirement\": \"required\",\n \"webAuthnPolicyPasswordlessCreateTimeout\": 0,\n \"webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister\": false,\n \"webAuthnPolicyPasswordlessAcceptableAaguids\": [],\n \"webAuthnPolicyPasswordlessExtraOrigins\": [],\n \"users\": [\n {\n \"id\": \"5a8779b4-5724-486b-b3eb-8c1d2894a398\",\n \"username\": \"admin-user\",\n \"firstName\": \"Admin\",\n \"lastName\": \"ClassicModels\",\n \"email\": \"admin-user@sttlab.eu\",\n \"emailVerified\": true,\n \"userProfileMetadata\": {\n \"attributes\": [\n {\n \"name\": \"username\",\n \"displayName\": \"${username}\",\n \"required\": true,\n \"readOnly\": true,\n \"validators\": {\n \"username-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true,\n \"min\": 3\n },\n \"up-username-not-idn-homograph\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"email\",\n \"displayName\": \"${email}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n },\n \"email\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"firstName\",\n \"displayName\": \"${firstName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"lastName\",\n \"displayName\": \"${lastName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n }\n ],\n \"groups\": [\n {\n \"name\": \"user-metadata\",\n \"displayHeader\": \"User metadata\",\n \"displayDescription\": \"Attributes, which refer to user metadata\"\n }\n ]\n },\n \"enabled\": true,\n \"createdTimestamp\": 1787294648956,\n \"totp\": false,\n \"disableableCredentialTypes\": [],\n \"requiredActions\": [],\n \"notBefore\": 0,\n \"access\": {\n \"manage\": true\n },\n \"credentials\": [\n {\n \"type\": \"password\",\n \"value\": \"${KC_USER_ADMIN_USER}\",\n \"temporary\": false\n }\n ],\n \"realmRoles\": [\n \"admin\",\n \"default-roles-classic-models\"\n ]\n },\n {\n \"id\": \"54255c3c-0464-423f-8424-b6c2623faf73\",\n \"username\": \"customer-user\",\n \"firstName\": \"Customer\",\n \"lastName\": \"ClassicModels\",\n \"email\": \"customer-user@sttlab.eu\",\n \"emailVerified\": true,\n \"userProfileMetadata\": {\n \"attributes\": [\n {\n \"name\": \"username\",\n \"displayName\": \"${username}\",\n \"required\": true,\n \"readOnly\": true,\n \"validators\": {\n \"username-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true,\n \"min\": 3\n },\n \"up-username-not-idn-homograph\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"email\",\n \"displayName\": \"${email}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n },\n \"email\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"firstName\",\n \"displayName\": \"${firstName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"lastName\",\n \"displayName\": \"${lastName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n }\n ],\n \"groups\": [\n {\n \"name\": \"user-metadata\",\n \"displayHeader\": \"User metadata\",\n \"displayDescription\": \"Attributes, which refer to user metadata\"\n }\n ]\n },\n \"enabled\": true,\n \"createdTimestamp\": 1787294651356,\n \"totp\": false,\n \"disableableCredentialTypes\": [],\n \"requiredActions\": [],\n \"notBefore\": 0,\n \"access\": {\n \"manage\": true\n },\n \"credentials\": [\n {\n \"type\": \"password\",\n \"value\": \"${KC_USER_CUSTOMER_USER}\",\n \"temporary\": false\n }\n ],\n \"realmRoles\": [\n \"customer\",\n \"default-roles-classic-models\"\n ]\n },\n {\n \"id\": \"df177d5d-73f4-4e30-8540-9a83c6a994a4\",\n \"username\": \"pm-user\",\n \"firstName\": \"ProductManager\",\n \"lastName\": \"ClassicModels\",\n \"email\": \"pm-user@sttlab.eu\",\n \"emailVerified\": true,\n \"userProfileMetadata\": {\n \"attributes\": [\n {\n \"name\": \"username\",\n \"displayName\": \"${username}\",\n \"required\": true,\n \"readOnly\": true,\n \"validators\": {\n \"username-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true,\n \"min\": 3\n },\n \"up-username-not-idn-homograph\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"email\",\n \"displayName\": \"${email}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n },\n \"email\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"firstName\",\n \"displayName\": \"${firstName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"lastName\",\n \"displayName\": \"${lastName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n }\n ],\n \"groups\": [\n {\n \"name\": \"user-metadata\",\n \"displayHeader\": \"User metadata\",\n \"displayDescription\": \"Attributes, which refer to user metadata\"\n }\n ]\n },\n \"enabled\": true,\n \"createdTimestamp\": 1787294650708,\n \"totp\": false,\n \"disableableCredentialTypes\": [],\n \"requiredActions\": [],\n \"notBefore\": 0,\n \"access\": {\n \"manage\": true\n },\n \"credentials\": [\n {\n \"type\": \"password\",\n \"value\": \"${KC_USER_PM_USER}\",\n \"temporary\": false\n }\n ],\n \"realmRoles\": [\n \"product_manager\",\n \"default-roles-classic-models\"\n ]\n },\n {\n \"id\": \"c90c2901-30f1-4d79-b7d0-43e59b1eedce\",\n \"username\": \"ro-user\",\n \"firstName\": \"ReadOnly\",\n \"lastName\": \"ClassicModels\",\n \"email\": \"ro-user@sttlab.eu\",\n \"emailVerified\": true,\n \"userProfileMetadata\": {\n \"attributes\": [\n {\n \"name\": \"username\",\n \"displayName\": \"${username}\",\n \"required\": true,\n \"readOnly\": true,\n \"validators\": {\n \"username-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true,\n \"min\": 3\n },\n \"up-username-not-idn-homograph\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"email\",\n \"displayName\": \"${email}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n },\n \"email\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"firstName\",\n \"displayName\": \"${firstName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"lastName\",\n \"displayName\": \"${lastName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n }\n ],\n \"groups\": [\n {\n \"name\": \"user-metadata\",\n \"displayHeader\": \"User metadata\",\n \"displayDescription\": \"Attributes, which refer to user metadata\"\n }\n ]\n },\n \"enabled\": true,\n \"createdTimestamp\": 1787294649935,\n \"totp\": false,\n \"disableableCredentialTypes\": [],\n \"requiredActions\": [],\n \"notBefore\": 0,\n \"access\": {\n \"manage\": true\n },\n \"credentials\": [\n {\n \"type\": \"password\",\n \"value\": \"${KC_USER_RO_USER}\",\n \"temporary\": false\n }\n ],\n \"realmRoles\": [\n \"read_only\",\n \"default-roles-classic-models\"\n ]\n },\n {\n \"id\": \"05743c89-6791-49aa-a691-450e5b4f5f50\",\n \"username\": \"support-user\",\n \"firstName\": \"Support\",\n \"lastName\": \"ClassicModels\",\n \"email\": \"support-user@sttlab.eu\",\n \"emailVerified\": true,\n \"userProfileMetadata\": {\n \"attributes\": [\n {\n \"name\": \"username\",\n \"displayName\": \"${username}\",\n \"required\": true,\n \"readOnly\": true,\n \"validators\": {\n \"username-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true,\n \"min\": 3\n },\n \"up-username-not-idn-homograph\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"email\",\n \"displayName\": \"${email}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n },\n \"email\": {\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"firstName\",\n \"displayName\": \"${firstName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n },\n {\n \"name\": \"lastName\",\n \"displayName\": \"${lastName}\",\n \"required\": false,\n \"readOnly\": false,\n \"validators\": {\n \"person-name-prohibited-characters\": {\n \"ignore.empty.value\": true\n },\n \"multivalued\": {\n \"max\": \"1\"\n },\n \"length\": {\n \"max\": 255,\n \"ignore.empty.value\": true\n }\n },\n \"multivalued\": false\n }\n ],\n \"groups\": [\n {\n \"name\": \"user-metadata\",\n \"displayHeader\": \"User metadata\",\n \"displayDescription\": \"Attributes, which refer to user metadata\"\n }\n ]\n },\n \"enabled\": true,\n \"createdTimestamp\": 1787294652049,\n \"totp\": false,\n \"disableableCredentialTypes\": [],\n \"requiredActions\": [],\n \"notBefore\": 0,\n \"access\": {\n \"manage\": true\n },\n \"credentials\": [\n {\n \"type\": \"password\",\n \"value\": \"${KC_USER_SUPPORT_USER}\",\n \"temporary\": false\n }\n ],\n \"realmRoles\": [\n \"support\",\n \"default-roles-classic-models\"\n ]\n },\n {\n \"username\": \"service-account-classic-models-agent-supply\",\n \"enabled\": true,\n \"serviceAccountClientId\": \"classic-models-agent-supply\",\n \"realmRoles\": [\n \"read_only\",\n \"default-roles-classic-models\",\n \"restocker\"\n ]\n }\n ],\n \"scopeMappings\": [\n {\n \"clientScope\": \"offline_access\",\n \"roles\": [\n \"offline_access\"\n ]\n }\n ],\n \"clientScopeMappings\": {\n \"account\": [\n {\n \"client\": \"account-console\",\n \"roles\": [\n \"manage-account\",\n \"view-groups\"\n ]\n }\n ]\n },\n \"clients\": [\n {\n \"id\": \"e76478d3-9eb5-4b79-86da-de12decddf89\",\n \"clientId\": \"account\",\n \"name\": \"${client_account}\",\n \"rootUrl\": \"${authBaseUrl}\",\n \"baseUrl\": \"/realms/classic-models/account/\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"redirectUris\": [\n \"/realms/classic-models/account/*\"\n ],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": false,\n \"publicClient\": true,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"post.logout.redirect.uris\": \"+\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": false,\n \"nodeReRegistrationTimeout\": 0,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"81e07b10-76c9-4266-b13f-db418ddb870e\",\n \"clientId\": \"account-console\",\n \"name\": \"${client_account-console}\",\n \"rootUrl\": \"${authBaseUrl}\",\n \"baseUrl\": \"/realms/classic-models/account/\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"redirectUris\": [\n \"/realms/classic-models/account/*\"\n ],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": false,\n \"publicClient\": true,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"post.logout.redirect.uris\": \"+\",\n \"pkce.code.challenge.method\": \"S256\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": false,\n \"nodeReRegistrationTimeout\": 0,\n \"protocolMappers\": [\n {\n \"id\": \"224548f1-53b0-4cac-8def-c3b229300039\",\n \"name\": \"audience resolve\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-resolve-mapper\",\n \"consentRequired\": false,\n \"config\": {}\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"4eed5181-d0c5-4029-aaa5-74258470152f\",\n \"clientId\": \"admin-cli\",\n \"name\": \"${client_admin-cli}\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": true,\n \"serviceAccountsEnabled\": false,\n \"publicClient\": true,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"client.use.lightweight.access.token.enabled\": \"true\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": 0,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"ff8c6a3f-9c57-4f45-99ed-3428056a6c4c\",\n \"clientId\": \"admin-permissions\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"authorizationServicesEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": false,\n \"nodeReRegistrationTimeout\": 0,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [],\n \"authorizationSettings\": {\n \"allowRemoteResourceManagement\": true,\n \"policyEnforcementMode\": \"ENFORCING\",\n \"resources\": [\n {\n \"name\": \"Groups\",\n \"type\": \"Groups\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"manage-members\"\n },\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"manage-membership\"\n },\n {\n \"name\": \"view-members\"\n },\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"impersonate-members\"\n }\n ]\n },\n {\n \"name\": \"Roles\",\n \"type\": \"Roles\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"map-role-composite\"\n },\n {\n \"name\": \"map-role-client-scope\"\n },\n {\n \"name\": \"map-role\"\n }\n ]\n },\n {\n \"name\": \"Clients\",\n \"type\": \"Clients\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"map-roles-client-scope\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"map-roles-composite\"\n }\n ]\n },\n {\n \"name\": \"Users\",\n \"type\": \"Users\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"manage-group-membership\"\n },\n {\n \"name\": \"impersonate\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"reset-password\"\n },\n {\n \"name\": \"manage\"\n }\n ]\n }\n ],\n \"policies\": [],\n \"scopes\": [\n {\n \"name\": \"manage-group-membership\"\n },\n {\n \"name\": \"map-roles-client-scope\"\n },\n {\n \"name\": \"view-members\"\n },\n {\n \"name\": \"map-role\"\n },\n {\n \"name\": \"reset-password\"\n },\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"impersonate-members\"\n },\n {\n \"name\": \"manage-members\"\n },\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"manage-membership\"\n },\n {\n \"name\": \"impersonate\"\n },\n {\n \"name\": \"map-role-composite\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"map-role-client-scope\"\n },\n {\n \"name\": \"map-roles-composite\"\n }\n ],\n \"decisionStrategy\": \"UNANIMOUS\"\n }\n },\n {\n \"id\": \"e60abf89-0cd1-4843-8611-7e502f4e37ec\",\n \"clientId\": \"broker\",\n \"name\": \"${client_broker}\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": true,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": false,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"true\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": false,\n \"nodeReRegistrationTimeout\": 0,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"clientId\": \"catalog-api\",\n \"name\": \"catalog-api\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_CATALOG_API}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"protocolMappers\": [\n {\n \"id\": \"0e40a62c-cede-412d-a5ec-e1c4bfc45f3b\",\n \"name\": \"catalog-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"catalog-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"clientId\": \"classic-models-api\",\n \"name\": \"classic-models-api\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_CLASSIC_MODELS_API}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"protocolMappers\": [\n {\n \"id\": \"a7a8c8a0-2465-46fb-8d57-9c8131b02eb2\",\n \"name\": \"classic-models-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"classic-models-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"e66836f5-fe4a-4a47-b0d4-1f4734e0cd79\",\n \"clientId\": \"librechat\",\n \"name\": \"LibreChat (classic-models)\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_LIBRECHAT}\",\n \"redirectUris\": [\n \"https://librechat.sttlab.local/login\",\n \"https://librechat.sttlab.local/api/mcp/payments-mcp/oauth/callback\",\n \"https://librechat.sttlab.local/api/mcp/workforce-mcp/oauth/callback\",\n \"https://librechat.sttlab.local/api/mcp/catalog-mcp/oauth/callback\",\n \"https://librechat.sttlab.local/api/mcp/sales-mcp/oauth/callback\",\n \"https://librechat.sttlab.local/oauth/openid/callback\",\n \"https://librechat.sttlab.local/api/mcp/customers-mcp/oauth/callback\"\n ],\n \"webOrigins\": [\n \"https://librechat.sttlab.local\"\n ],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": true,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"standard.token.exchange.enabled\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"catalog:read\",\n \"catalog:write\",\n \"classic-models-agent-supply-audience\",\n \"classic-models-agent-assistant-audience\",\n \"classic-models-agent-catalogue-audience\",\n \"customers:read\",\n \"customers:write\",\n \"librechat-audience\",\n \"mcp-catalog-audience\",\n \"mcp-customers-audience\",\n \"mcp-payments-audience\",\n \"mcp-sales-audience\",\n \"mcp-workforce-audience\",\n \"payments:read\",\n \"payments:write\",\n \"sales:read\",\n \"sales:write\",\n \"token-exchange-broker-audience\",\n \"workforce:read\",\n \"workforce:write\"\n ]\n },\n {\n \"id\": \"df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"clientId\": \"mcp-catalog\",\n \"name\": \"mcp-catalog\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_MCP_CATALOG}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"protocolMappers\": [\n {\n \"id\": \"058ed7df-1556-45ab-ab94-a9bef65de427\",\n \"name\": \"mcp-catalog-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"mcp-catalog\",\n \"access.token.claim\": \"true\"\n }\n },\n {\n \"name\": \"token-exchange-broker-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"token-exchange-broker\",\n \"access.token.claim\": \"true\"\n }\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"38e9470b-237c-4afe-bd50-87d23b20d265\",\n \"clientId\": \"realm-management\",\n \"name\": \"${client_realm-management}\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": true,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": false,\n \"authorizationServicesEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"true\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": false,\n \"nodeReRegistrationTimeout\": 0,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"authorizationSettings\": {\n \"allowRemoteResourceManagement\": false,\n \"policyEnforcementMode\": \"ENFORCING\",\n \"resources\": [\n {\n \"name\": \"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"Client\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"map-roles-client-scope\"\n },\n {\n \"name\": \"configure\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"token-exchange\"\n },\n {\n \"name\": \"map-roles-composite\"\n }\n ]\n },\n {\n \"name\": \"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"Client\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"map-roles-client-scope\"\n },\n {\n \"name\": \"configure\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"token-exchange\"\n },\n {\n \"name\": \"map-roles-composite\"\n }\n ]\n },\n {\n \"name\": \"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"Client\",\n \"ownerManagedAccess\": false,\n \"attributes\": {},\n \"uris\": [],\n \"scopes\": [\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"map-roles-client-scope\"\n },\n {\n \"name\": \"configure\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"token-exchange\"\n },\n {\n \"name\": \"map-roles-composite\"\n }\n ]\n }\n ],\n \"policies\": [\n {\n \"name\": \"allow-librechat-client\",\n \"type\": \"client\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"clients\": \"[\\\"librechat\\\"]\"\n }\n },\n {\n \"name\": \"allow-broker-client\",\n \"type\": \"client\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"clients\": \"[\\\"token-exchange-broker\\\"]\"\n }\n },\n {\n \"name\": \"manage.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"manage\\\"]\"\n }\n },\n {\n \"name\": \"configure.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"configure\\\"]\"\n }\n },\n {\n \"name\": \"view.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"view\\\"]\"\n }\n },\n {\n \"name\": \"map-roles.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"map-roles\\\"]\"\n }\n },\n {\n \"name\": \"map-roles-client-scope.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"map-roles-client-scope\\\"]\"\n }\n },\n {\n \"name\": \"map-roles-composite.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"map-roles-composite\\\"]\"\n }\n },\n {\n \"name\": \"token-exchange.permission.client.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.df5d3b6c-8dbd-429f-9e71-8dd1716f70a1\\\"]\",\n \"scopes\": \"[\\\"token-exchange\\\"]\",\n \"applyPolicies\": \"[\\\"allow-librechat-client\\\"]\"\n }\n },\n {\n \"name\": \"manage.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"manage\\\"]\"\n }\n },\n {\n \"name\": \"configure.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"configure\\\"]\"\n }\n },\n {\n \"name\": \"view.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"view\\\"]\"\n }\n },\n {\n \"name\": \"map-roles.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"map-roles\\\"]\"\n }\n },\n {\n \"name\": \"map-roles-client-scope.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"map-roles-client-scope\\\"]\"\n }\n },\n {\n \"name\": \"map-roles-composite.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"map-roles-composite\\\"]\"\n }\n },\n {\n \"name\": \"token-exchange.permission.client.bde3981e-d802-4235-8ce9-206d779b6a49\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.bde3981e-d802-4235-8ce9-206d779b6a49\\\"]\",\n \"scopes\": \"[\\\"token-exchange\\\"]\",\n \"applyPolicies\": \"[\\\"allow-broker-client\\\"]\"\n }\n },\n {\n \"name\": \"manage.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"manage\\\"]\"\n }\n },\n {\n \"name\": \"configure.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"configure\\\"]\"\n }\n },\n {\n \"name\": \"view.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"view\\\"]\"\n }\n },\n {\n \"name\": \"map-roles.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"map-roles\\\"]\"\n }\n },\n {\n \"name\": \"map-roles-client-scope.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"map-roles-client-scope\\\"]\"\n }\n },\n {\n \"name\": \"map-roles-composite.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"map-roles-composite\\\"]\"\n }\n },\n {\n \"name\": \"token-exchange.permission.client.98e88108-3ee0-474a-9c1d-c78989af7c5d\",\n \"type\": \"scope\",\n \"logic\": \"POSITIVE\",\n \"decisionStrategy\": \"UNANIMOUS\",\n \"config\": {\n \"resources\": \"[\\\"client.resource.98e88108-3ee0-474a-9c1d-c78989af7c5d\\\"]\",\n \"scopes\": \"[\\\"token-exchange\\\"]\",\n \"applyPolicies\": \"[\\\"allow-broker-client\\\"]\"\n }\n }\n ],\n \"scopes\": [\n {\n \"name\": \"manage\"\n },\n {\n \"name\": \"view\"\n },\n {\n \"name\": \"map-roles\"\n },\n {\n \"name\": \"map-roles-client-scope\"\n },\n {\n \"name\": \"map-roles-composite\"\n },\n {\n \"name\": \"configure\"\n },\n {\n \"name\": \"token-exchange\"\n }\n ],\n \"decisionStrategy\": \"UNANIMOUS\"\n }\n },\n {\n \"id\": \"e68274bd-96be-46c3-b74b-8705ab0fe815\",\n \"clientId\": \"security-admin-console\",\n \"name\": \"${client_security-admin-console}\",\n \"rootUrl\": \"${authAdminUrl}\",\n \"baseUrl\": \"/admin/classic-models/console/\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"redirectUris\": [\n \"/admin/classic-models/console/*\"\n ],\n \"webOrigins\": [\n \"+\"\n ],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": true,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": false,\n \"publicClient\": true,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"client.use.lightweight.access.token.enabled\": \"true\",\n \"post.logout.redirect.uris\": \"+\",\n \"pkce.code.challenge.method\": \"S256\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": 0,\n \"protocolMappers\": [\n {\n \"id\": \"1a000318-0118-4fbc-9184-408b45841f77\",\n \"name\": \"locale\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"locale\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"locale\",\n \"jsonType.label\": \"String\"\n }\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ]\n },\n {\n \"id\": \"ffb70f68-1a4e-41a8-b95e-d1d1be731b33\",\n \"clientId\": \"customers-api\",\n \"name\": \"customers-api\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_CUSTOMERS_API}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"protocolMappers\": [\n {\n \"id\": \"1720ccf1-9eeb-41ea-b3b0-3ab1bafbc0e0\",\n \"name\": \"customers-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"customers-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"66e50587-8898-4649-80b8-c71fb8f84a48\",\n \"clientId\": \"mcp-customers\",\n \"name\": \"mcp-customers\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_MCP_CUSTOMERS}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"38c194b4-7449-4fa7-9004-681a12a27431\",\n \"clientId\": \"payments-api\",\n \"name\": \"payments-api\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_PAYMENTS_API}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"protocolMappers\": [\n {\n \"id\": \"aab4989d-9ab2-4fd4-9416-61036d2b2476\",\n \"name\": \"payments-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"payments-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ],\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"4a1351ca-145a-485d-ad76-a89647e8ddb4\",\n \"clientId\": \"mcp-payments\",\n \"name\": \"mcp-payments\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_MCP_PAYMENTS}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"a67d49ac-9d8d-4d92-9116-bc807fd3f6d4\",\n \"clientId\": \"sales-api\",\n \"name\": \"sales-api\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_SALES_API}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"603f3cea-6479-4a5a-b448-b6ca274a62d0\",\n \"clientId\": \"mcp-sales\",\n \"name\": \"mcp-sales\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_MCP_SALES}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"ae815772-b286-41f7-a062-31bdd8c056ea\",\n \"clientId\": \"workforce-api\",\n \"name\": \"workforce-api\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_WORKFORCE_API}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"id\": \"9a50f829-a6ef-4729-ae47-61b5ac39125c\",\n \"clientId\": \"mcp-workforce\",\n \"name\": \"mcp-workforce\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_MCP_WORKFORCE}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"profile\",\n \"roles\",\n \"basic\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\"\n ],\n \"access\": {\n \"view\": true,\n \"configure\": true,\n \"manage\": true\n }\n },\n {\n \"clientId\": \"classic-models-agent-catalogue\",\n \"name\": \"Catalogue agent (classic-models)\",\n \"description\": \"Product management agent. Reaches the catalog and sales MCP servers by exchanging the end user's token; holds no standing access of its own.\",\n \"enabled\": true,\n \"protocol\": \"openid-connect\",\n \"publicClient\": false,\n \"serviceAccountsEnabled\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"secret\": \"${KC_SECRET_CLASSIC_MODELS_AGENT_CATALOGUE}\",\n \"attributes\": {\n \"standard.token.exchange.enabled\": \"true\",\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\"\n },\n \"defaultClientScopes\": [\n \"acr\",\n \"profile\",\n \"roles\",\n \"email\",\n \"web-origins\"\n ],\n \"optionalClientScopes\": [\n \"catalog-api-audience\",\n \"classic-models-agent-supply-audience\",\n \"llm-proxy-audience\",\n \"mcp-catalog-audience\",\n \"mcp-sales-audience\",\n \"sales-api-audience\",\n \"token-exchange-broker-audience\"\n ]\n },\n {\n \"clientId\": \"llm-proxy\",\n \"name\": \"Kong AI gateway (llm-proxy)\",\n \"description\": \"Audience target only. The AI gateway validates `aud` on the caller's token; nothing ever authenticates AS this client, hence bearer-only and no secret.\",\n \"enabled\": true,\n \"protocol\": \"openid-connect\",\n \"bearerOnly\": true,\n \"publicClient\": false,\n \"serviceAccountsEnabled\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"attributes\": {\n \"realm_client\": \"false\"\n }\n },\n {\n \"clientId\": \"token-exchange-broker\",\n \"name\": \"Token Exchange Broker\",\n \"surrogateAuthRequired\": false,\n \"enabled\": true,\n \"alwaysDisplayInConsole\": false,\n \"clientAuthenticatorType\": \"client-secret\",\n \"secret\": \"${KC_SECRET_TOKEN_EXCHANGE_BROKER}\",\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"notBefore\": 0,\n \"bearerOnly\": false,\n \"consentRequired\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"serviceAccountsEnabled\": true,\n \"publicClient\": false,\n \"frontchannelLogout\": false,\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\",\n \"standard.token.exchange.enabled\": \"true\",\n \"backchannel.logout.revoke.offline.tokens\": \"false\"\n },\n \"authenticationFlowBindingOverrides\": {},\n \"fullScopeAllowed\": true,\n \"nodeReRegistrationTimeout\": -1,\n \"defaultClientScopes\": [\n \"web-origins\",\n \"service_account\",\n \"acr\",\n \"classic-models-api-audience\",\n \"payments-api-audience\",\n \"catalog-api-audience\",\n \"workforce-api-audience\",\n \"profile\",\n \"roles\",\n \"customers-api-audience\",\n \"sales-api-audience\",\n \"email\"\n ],\n \"optionalClientScopes\": [\n \"address\",\n \"phone\",\n \"organization\",\n \"offline_access\",\n \"microprofile-jwt\",\n \"classic-models-agent-catalogue-audience\"\n ],\n \"description\": \"Performs the on-behalf-of exchange between an MCP endpoint and a domain API. Named for what it does, not for the middleware that calls it \\u2014 that middleware is replaceable and no caller should have to name it.\"\n },\n {\n \"clientId\": \"classic-models-agent-assistant\",\n \"name\": \"Assistant agent (classic-models)\",\n \"description\": \"Orchestrator. Sees raw user text, so it is the injection target: no domain scope and no MCP audience by design. It can mint tokens for other agents and nothing else.\",\n \"enabled\": true,\n \"protocol\": \"openid-connect\",\n \"publicClient\": false,\n \"serviceAccountsEnabled\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"secret\": \"${KC_SECRET_CLASSIC_MODELS_AGENT_ASSISTANT}\",\n \"attributes\": {\n \"standard.token.exchange.enabled\": \"true\",\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\"\n },\n \"defaultClientScopes\": [\n \"acr\",\n \"profile\",\n \"roles\",\n \"email\",\n \"web-origins\"\n ],\n \"optionalClientScopes\": [\n \"classic-models-agent-supply-audience\",\n \"classic-models-agent-catalogue-audience\",\n \"llm-proxy-audience\"\n ]\n },\n {\n \"clientId\": \"classic-models-agent-supply\",\n \"name\": \"Supply agent (classic-models)\",\n \"description\": \"Autonomous supply agent. Its periodic run acts under its own machine identity \\u2014 a service account holding read_only, the least privilege the job needs.\",\n \"enabled\": true,\n \"protocol\": \"openid-connect\",\n \"publicClient\": false,\n \"serviceAccountsEnabled\": true,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": false,\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"secret\": \"${KC_SECRET_CLASSIC_MODELS_AGENT_SUPPLY}\",\n \"attributes\": {\n \"standard.token.exchange.enabled\": \"true\",\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\"\n },\n \"defaultClientScopes\": [\n \"acr\",\n \"profile\",\n \"roles\",\n \"email\",\n \"web-origins\"\n ],\n \"optionalClientScopes\": [\n \"llm-proxy-audience\",\n \"mcp-catalog-audience\",\n \"mcp-sales-audience\",\n \"token-exchange-broker-audience\"\n ]\n },\n {\n \"clientId\": \"classic-models-mandate\",\n \"name\": \"Mandate holder\",\n \"description\": \"Holds the standing authority an autonomous agent acts under. Issues offline tokens for a user who mandates an agent; holds no domain audience itself.\",\n \"enabled\": true,\n \"protocol\": \"openid-connect\",\n \"publicClient\": false,\n \"serviceAccountsEnabled\": false,\n \"standardFlowEnabled\": false,\n \"implicitFlowEnabled\": false,\n \"directAccessGrantsEnabled\": true,\n \"redirectUris\": [],\n \"webOrigins\": [],\n \"secret\": \"${KC_SECRET_MANDATE}\",\n \"attributes\": {\n \"realm_client\": \"false\",\n \"backchannel.logout.session.required\": \"true\"\n },\n \"defaultClientScopes\": [\n \"acr\",\n \"profile\",\n \"roles\",\n \"email\",\n \"web-origins\"\n ],\n \"optionalClientScopes\": [\n \"classic-models-agent-supply-audience\",\n \"classic-models-agent-catalogue-audience\",\n \"offline_access\"\n ]\n }\n ],\n \"clientScopes\": [\n {\n \"id\": \"54400c77-0b93-4fa8-9b9a-2f065d5a484e\",\n \"name\": \"profile\",\n \"description\": \"OpenID Connect built-in scope: profile\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"consent.screen.text\": \"${profileScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"9b9b4287-c1b2-4b06-95c0-3d490748c7fc\",\n \"name\": \"profile\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"profile\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"profile\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"1c3854d4-67b4-48dd-8d05-779ff869fb7e\",\n \"name\": \"username\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"username\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"preferred_username\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"877faadc-dfe2-4a38-9483-545b6998c72f\",\n \"name\": \"gender\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"gender\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"gender\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"fd156afa-ac30-4cbf-85b5-7e99d9504355\",\n \"name\": \"middle name\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"middleName\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"middle_name\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"6ff6f00b-625e-4e05-ac0c-f1a881f50634\",\n \"name\": \"birthdate\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"birthdate\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"birthdate\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"b96e9619-9d10-49c1-9573-33868131fa55\",\n \"name\": \"zoneinfo\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"zoneinfo\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"zoneinfo\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"ecaf7209-a77d-46da-aeec-7549e85ac29b\",\n \"name\": \"updated at\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"updatedAt\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"updated_at\",\n \"jsonType.label\": \"long\"\n }\n },\n {\n \"id\": \"f9657fe7-87b3-45c7-9ba2-6fb6654c21b3\",\n \"name\": \"full name\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-full-name-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\"\n }\n },\n {\n \"id\": \"38fb8242-f987-468f-9c1a-cd02a02fecaa\",\n \"name\": \"nickname\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"nickname\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"nickname\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"f03c69a8-5ecb-44c4-876f-e373b23a56f6\",\n \"name\": \"family name\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"lastName\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"family_name\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"3aba4466-5dfc-4245-85a5-07fac5a134c4\",\n \"name\": \"given name\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"firstName\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"given_name\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"3194cf79-5076-490f-aceb-fa872de7e38b\",\n \"name\": \"picture\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"picture\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"picture\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"b6e98181-e5cf-4800-91de-6ef3b5bbd1fd\",\n \"name\": \"website\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"website\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"website\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"aa2e2c29-3f4d-4252-8f06-43c971c6f189\",\n \"name\": \"locale\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"locale\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"locale\",\n \"jsonType.label\": \"String\"\n }\n }\n ]\n },\n {\n \"id\": \"4e89072a-42aa-4ff2-b518-527bbaf59967\",\n \"name\": \"organization\",\n \"description\": \"Additional claims about the organization a subject belongs to\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"consent.screen.text\": \"${organizationScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"c8b382c1-9af7-423a-86d2-430fabe5331d\",\n \"name\": \"organization\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-organization-membership-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"organization\",\n \"jsonType.label\": \"String\",\n \"multivalued\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"6a9b6399-7a8a-4ebe-9384-d8053e299d96\",\n \"name\": \"payments:write\",\n \"description\": \"Write access to the payments domain\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"f8b98f88-976f-46d2-8de4-65f8c6d3e34b\",\n \"name\": \"acr\",\n \"description\": \"OpenID Connect scope for add acr (authentication context class reference) to the token\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"false\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"4b2408ea-28cd-4fcf-88be-6b1975619ec2\",\n \"name\": \"acr loa level\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-acr-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"e5f569aa-a7e2-4878-9d93-bc35dd0f224e\",\n \"name\": \"offline_access\",\n \"description\": \"OpenID Connect built-in scope: offline_access\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"consent.screen.text\": \"${offlineAccessScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n }\n },\n {\n \"id\": \"c7f35ca3-0a2d-46bf-b3ca-34a50d34f43f\",\n \"name\": \"customers:read\",\n \"description\": \"Read access to the customers domain (Customer)\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"419b36b7-db80-4951-b8e0-8175c819b1c7\",\n \"name\": \"mcp-catalog-audience\",\n \"description\": \"Grants the mcp-catalog audience \\u2014 optional scope, requested explicitly only for the catalog-mcp OAuth flow, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"5113be68-52ea-4c17-877b-c248b9c5afa7\",\n \"name\": \"mcp-catalog-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"mcp-catalog\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"e560583e-31b5-4c2d-916a-d6e17dfddc6c\",\n \"name\": \"microprofile-jwt\",\n \"description\": \"Microprofile - JWT built-in scope\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"2cb0b78e-d233-4e0b-b04c-1773abd766e0\",\n \"name\": \"groups\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-realm-role-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"multivalued\": \"true\",\n \"user.attribute\": \"foo\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"groups\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"6920dcc6-900d-47a7-9359-d723de10e3cd\",\n \"name\": \"upn\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"username\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"upn\",\n \"jsonType.label\": \"String\"\n }\n }\n ]\n },\n {\n \"id\": \"7fda133e-6948-413a-a0f8-be33c73abc48\",\n \"name\": \"sales:write\",\n \"description\": \"Write access to the sales domain\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"38bdbe0b-b17b-439b-9487-e6a1209dd7e6\",\n \"name\": \"workforce:read\",\n \"description\": \"Read access to the workforce domain (Office, Employee)\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"c5323299-618a-4c84-a851-834a99672343\",\n \"name\": \"catalog-api-audience\",\n \"description\": \"Grants the catalog-api audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"7413ed73-6952-4753-bff6-d24f09530923\",\n \"name\": \"catalog-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"catalog-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"9b9d7cef-5eef-44fc-8028-19a726d7aec9\",\n \"name\": \"role_list\",\n \"description\": \"SAML role list\",\n \"protocol\": \"saml\",\n \"attributes\": {\n \"consent.screen.text\": \"${samlRoleListScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"1a1c0b81-da94-4915-8b9b-20e7492f303e\",\n \"name\": \"role list\",\n \"protocol\": \"saml\",\n \"protocolMapper\": \"saml-role-list-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"single\": \"false\",\n \"attribute.nameformat\": \"Basic\",\n \"attribute.name\": \"Role\"\n }\n }\n ]\n },\n {\n \"id\": \"bab6c30d-5969-420d-88e9-70ac7eca7b4b\",\n \"name\": \"classic-models-api-audience\",\n \"description\": \"Grants the classic-models-api audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"f42d99e4-911c-4a46-8666-fb2ce2ba7551\",\n \"name\": \"classic-models-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"classic-models-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"91b72f6d-01b8-456d-909f-1d8b14f034eb\",\n \"name\": \"sales:read\",\n \"description\": \"Read access to the sales domain (Order, Orderdetail)\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"d57aa8e0-1a96-4f4c-87d7-b8c3fb325d58\",\n \"name\": \"librechat-audience\",\n \"description\": \"Grants the librechat audience \\u2014 optional scope, requested only for plain login, never for the catalog-mcp OAuth flow\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"0dbcdf8e-e841-4ff9-bd8e-e5e6bd01a66d\",\n \"name\": \"librechat-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"librechat\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"ea00d080-0ccb-4780-8175-eef8a14d92b0\",\n \"name\": \"phone\",\n \"description\": \"OpenID Connect built-in scope: phone\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"consent.screen.text\": \"${phoneScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"03c75855-ded4-4c27-b688-be9a11aa86ab\",\n \"name\": \"phone number verified\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"phoneNumberVerified\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"phone_number_verified\",\n \"jsonType.label\": \"boolean\"\n }\n },\n {\n \"id\": \"342fc4bd-ecc6-4d8c-bfc5-ea0b059469bc\",\n \"name\": \"phone number\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"phoneNumber\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"phone_number\",\n \"jsonType.label\": \"String\"\n }\n }\n ]\n },\n {\n \"id\": \"036fed2f-4c53-4cd3-8c03-90b344dfc09a\",\n \"name\": \"email\",\n \"description\": \"OpenID Connect built-in scope: email\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"consent.screen.text\": \"${emailScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"2398d8dd-a05a-4b7c-8f4c-4ef7cb84ab72\",\n \"name\": \"email\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-attribute-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"email\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"email\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"cacd4df9-ee5f-4bad-8cb9-1c34ab6df773\",\n \"name\": \"email verified\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-property-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute\": \"emailVerified\",\n \"id.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"email_verified\",\n \"jsonType.label\": \"boolean\"\n }\n }\n ]\n },\n {\n \"id\": \"a8da98e1-c81b-4597-b912-e99595c06ffd\",\n \"name\": \"address\",\n \"description\": \"OpenID Connect built-in scope: address\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"consent.screen.text\": \"${addressScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"a0904b8e-68db-44d0-b037-7ab534ffb451\",\n \"name\": \"address\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-address-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.attribute.formatted\": \"formatted\",\n \"user.attribute.country\": \"country\",\n \"introspection.token.claim\": \"true\",\n \"user.attribute.postal_code\": \"postal_code\",\n \"userinfo.token.claim\": \"true\",\n \"user.attribute.street\": \"street\",\n \"id.token.claim\": \"true\",\n \"user.attribute.region\": \"region\",\n \"access.token.claim\": \"true\",\n \"user.attribute.locality\": \"locality\"\n }\n }\n ]\n },\n {\n \"id\": \"1582519e-6047-4c7b-b538-5746064117a7\",\n \"name\": \"customers:write\",\n \"description\": \"Write access to the customers domain\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"5f121b28-a93b-46b4-a25b-4d9a116e7c35\",\n \"name\": \"roles\",\n \"description\": \"OpenID Connect scope for add user roles to the access token\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"false\",\n \"consent.screen.text\": \"${rolesScopeConsentText}\",\n \"display.on.consent.screen\": \"true\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"d4e20537-b17f-49ad-be00-83317380d012\",\n \"name\": \"realm roles\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-realm-role-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.attribute\": \"foo\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"realm_access.roles\",\n \"jsonType.label\": \"String\",\n \"multivalued\": \"true\"\n }\n },\n {\n \"id\": \"dfb24653-04e3-47a3-b3f5-962d15384308\",\n \"name\": \"client roles\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usermodel-client-role-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.attribute\": \"foo\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"resource_access.${client_id}.roles\",\n \"jsonType.label\": \"String\",\n \"multivalued\": \"true\"\n }\n },\n {\n \"id\": \"101e44b4-c4cc-4859-944f-663c6405add4\",\n \"name\": \"audience resolve\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-resolve-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"ce8fd7aa-acda-417e-88e7-ed0abbec523b\",\n \"name\": \"workforce:write\",\n \"description\": \"Write access to the workforce domain\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"79121969-41ce-4577-8dd2-758dc65e83d8\",\n \"name\": \"payments:read\",\n \"description\": \"Read access to the payments domain (Payment)\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"b05792b8-d3b0-4b83-b778-f1912d476d36\",\n \"name\": \"web-origins\",\n \"description\": \"OpenID Connect scope for add allowed web origins to the access token\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"false\",\n \"consent.screen.text\": \"\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"42eddf1a-ae07-492d-a298-bcda826afc72\",\n \"name\": \"allowed web origins\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-allowed-origins-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"1cfbd173-9cca-41a4-8651-ec34caf5462f\",\n \"name\": \"saml_organization\",\n \"description\": \"Organization Membership\",\n \"protocol\": \"saml\",\n \"attributes\": {\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"4bfddf7c-2e81-4cb7-9115-b4ac481ebf14\",\n \"name\": \"organization\",\n \"protocol\": \"saml\",\n \"protocolMapper\": \"saml-organization-membership-mapper\",\n \"consentRequired\": false,\n \"config\": {}\n }\n ]\n },\n {\n \"id\": \"5feedcb7-75b4-4533-8528-8457a05b5369\",\n \"name\": \"catalog:read\",\n \"description\": \"Read access to the catalog domain (ProductLine, Product)\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"7dbdfdec-d4a3-456e-8d99-722df7ccd5fb\",\n \"name\": \"basic\",\n \"description\": \"OpenID Connect scope for add all basic claims to the token\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"false\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"e786813d-477f-425e-bff5-7c02ddd20b60\",\n \"name\": \"sub\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-sub-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\"\n }\n },\n {\n \"id\": \"6c3c1940-ba21-4f5e-ac2d-f9945be46974\",\n \"name\": \"auth_time\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usersessionmodel-note-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.session.note\": \"AUTH_TIME\",\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"auth_time\",\n \"jsonType.label\": \"long\"\n }\n }\n ]\n },\n {\n \"id\": \"8495c04e-a999-43c5-a9fa-d9be1cf496a3\",\n \"name\": \"catalog:write\",\n \"description\": \"Write access to the catalog domain\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {}\n },\n {\n \"id\": \"941503ad-9a64-4115-849c-32f8d0255391\",\n \"name\": \"service_account\",\n \"description\": \"Specific scope for a client enabled for service accounts\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"false\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"id\": \"8bbd6d04-567f-4a7d-97b2-6895666f758d\",\n \"name\": \"Client IP Address\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usersessionmodel-note-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.session.note\": \"clientAddress\",\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"clientAddress\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"29f072fc-55d6-41b5-89ae-05186d06f52f\",\n \"name\": \"Client ID\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usersessionmodel-note-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.session.note\": \"client_id\",\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"client_id\",\n \"jsonType.label\": \"String\"\n }\n },\n {\n \"id\": \"63180eb7-7abb-4efa-9ebb-348eccc7b343\",\n \"name\": \"Client Host\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-usersessionmodel-note-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"user.session.note\": \"clientHost\",\n \"id.token.claim\": \"true\",\n \"introspection.token.claim\": \"true\",\n \"access.token.claim\": \"true\",\n \"claim.name\": \"clientHost\",\n \"jsonType.label\": \"String\"\n }\n }\n ]\n },\n {\n \"id\": \"a5cdeef7-d933-4354-9e3b-445e69727022\",\n \"name\": \"customers-api-audience\",\n \"description\": \"Grants the customers-api audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"87b83c07-3dca-4cd1-b683-b189004bf88b\",\n \"name\": \"customers-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"customers-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"de827fdb-70c5-4960-b3db-d6bf1c04bd65\",\n \"name\": \"mcp-customers-audience\",\n \"description\": \"Grants the mcp-customers audience \\u2014 optional scope, requested explicitly only for the customers-mcp OAuth flow, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"4e232da6-2d63-4add-8f35-2fa71f1feeca\",\n \"name\": \"mcp-customers-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"mcp-customers\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"172418c4-a62b-4c39-b6a1-14efb8ca0d83\",\n \"name\": \"payments-api-audience\",\n \"description\": \"Grants the payments-api audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"591975d6-7944-4319-90e2-061aca8fd105\",\n \"name\": \"payments-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"payments-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"2d99af34-41d6-4d8e-ac47-e92966cbbb61\",\n \"name\": \"mcp-payments-audience\",\n \"description\": \"Grants the mcp-payments audience \\u2014 optional scope, requested explicitly only for the payments-mcp OAuth flow, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"fe01238d-2f2c-42c9-be3c-102d27b914fb\",\n \"name\": \"mcp-payments-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"mcp-payments\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"795ad2c5-8892-481c-b9d1-531f28729cda\",\n \"name\": \"sales-api-audience\",\n \"description\": \"Grants the sales-api audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"ad057676-e2e4-43d9-88b3-3c4e39867083\",\n \"name\": \"sales-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"sales-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"6fd33aa3-d5fc-4970-9601-ead5776d3dd5\",\n \"name\": \"mcp-sales-audience\",\n \"description\": \"Grants the mcp-sales audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"d586778d-8ab6-4fc1-adb1-ec394c4be242\",\n \"name\": \"mcp-sales-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"mcp-sales\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"d9417c31-79f5-475d-9cf7-5edff1193c8e\",\n \"name\": \"workforce-api-audience\",\n \"description\": \"Grants the workforce-api audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"a32794c2-67e6-42e9-b6b4-9d20a900aded\",\n \"name\": \"workforce-api-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"workforce-api\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"id\": \"3f98e436-8f55-4045-8850-db797398544c\",\n \"name\": \"mcp-workforce-audience\",\n \"description\": \"Grants the mcp-workforce audience during token exchange\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"id\": \"ec074ca6-e5a2-4df3-88af-9f18db61b639\",\n \"name\": \"mcp-workforce-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"mcp-workforce\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"name\": \"classic-models-agent-catalogue-audience\",\n \"description\": \"Grants the Catalogue agent as an audience. Requested by whatever issues the end user's token, so the agent may exchange it.\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"name\": \"classic-models-agent-catalogue-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"classic-models-agent-catalogue\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"name\": \"llm-proxy-audience\",\n \"description\": \"Grants the llm-proxy audience \\u2014 optional scope, requested explicitly by an agent before calling the Kong AI gateway, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"name\": \"llm-proxy-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"llm-proxy\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"name\": \"token-exchange-broker-audience\",\n \"description\": \"Names the token-exchange broker in the token's audience, which is what lets it perform the second, on-behalf-of exchange. Optional scope, requested alongside an MCP server's own audience, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {},\n \"protocolMappers\": [\n {\n \"name\": \"token-exchange-broker-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"token-exchange-broker\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"name\": \"classic-models-agent-assistant-audience\",\n \"description\": \"Grants the classic-models-agent-assistant audience \\u2014 optional scope, requested by whatever front end mints the end user's token, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"name\": \"classic-models-agent-assistant-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"classic-models-agent-assistant\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n },\n {\n \"name\": \"classic-models-agent-supply-audience\",\n \"description\": \"Grants the classic-models-agent-supply audience \\u2014 optional scope, requested by an agent about to delegate to it, never for plain login\",\n \"protocol\": \"openid-connect\",\n \"attributes\": {\n \"include.in.token.scope\": \"true\",\n \"display.on.consent.screen\": \"false\"\n },\n \"protocolMappers\": [\n {\n \"name\": \"classic-models-agent-supply-audience\",\n \"protocol\": \"openid-connect\",\n \"protocolMapper\": \"oidc-audience-mapper\",\n \"consentRequired\": false,\n \"config\": {\n \"included.client.audience\": \"classic-models-agent-supply\",\n \"access.token.claim\": \"true\"\n }\n }\n ]\n }\n ],\n \"defaultDefaultClientScopes\": [\n \"role_list\",\n \"saml_organization\",\n \"profile\",\n \"email\",\n \"roles\",\n \"web-origins\",\n \"acr\",\n \"basic\"\n ],\n \"defaultOptionalClientScopes\": [\n \"offline_access\",\n \"address\",\n \"phone\",\n \"microprofile-jwt\",\n \"organization\"\n ],\n \"browserSecurityHeaders\": {\n \"contentSecurityPolicyReportOnly\": \"\",\n \"xContentTypeOptions\": \"nosniff\",\n \"referrerPolicy\": \"no-referrer\",\n \"xRobotsTag\": \"none\",\n \"xFrameOptions\": \"SAMEORIGIN\",\n \"contentSecurityPolicy\": \"frame-src 'self'; frame-ancestors 'self'; object-src 'none';\",\n \"strictTransportSecurity\": \"max-age=31536000; includeSubDomains\"\n },\n \"smtpServer\": {},\n \"eventsEnabled\": true,\n \"eventsListeners\": [\n \"jboss-logging\"\n ],\n \"enabledEventTypes\": [\n \"TOKEN_EXCHANGE\",\n \"CODE_TO_TOKEN_ERROR\",\n \"CLIENT_LOGIN_ERROR\",\n \"LOGIN_ERROR\",\n \"TOKEN_EXCHANGE_ERROR\",\n \"CLIENT_LOGIN\",\n \"LOGIN\",\n \"CODE_TO_TOKEN\"\n ],\n \"adminEventsEnabled\": false,\n \"adminEventsDetailsEnabled\": false,\n \"identityProviders\": [],\n \"identityProviderMappers\": [],\n \"components\": {\n \"org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy\": [\n {\n \"id\": \"6cea61ae-3e62-4a8e-aa57-71e508de8a55\",\n \"name\": \"Trusted Hosts\",\n \"providerId\": \"trusted-hosts\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {\n \"host-sending-registration-request-must-match\": [\n \"true\"\n ],\n \"client-uris-must-match\": [\n \"true\"\n ]\n }\n },\n {\n \"id\": \"71f506e4-c484-4997-9be7-5f5a3fb50c0b\",\n \"name\": \"Allowed Registration Web Origins\",\n \"providerId\": \"registration-web-origins\",\n \"subType\": \"authenticated\",\n \"subComponents\": {},\n \"config\": {}\n },\n {\n \"id\": \"be2ca3ca-d8fa-4a46-9b77-02c4714b22f4\",\n \"name\": \"Allowed Client Scopes\",\n \"providerId\": \"allowed-client-templates\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {\n \"allow-default-scopes\": [\n \"true\"\n ]\n }\n },\n {\n \"id\": \"def53d70-da8b-41c6-9b03-20c1f12bda39\",\n \"name\": \"Consent Required\",\n \"providerId\": \"consent-required\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {}\n },\n {\n \"id\": \"ac788c77-cac2-4beb-8ead-7d454195f284\",\n \"name\": \"Allowed Registration Web Origins\",\n \"providerId\": \"registration-web-origins\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {}\n },\n {\n \"id\": \"a68f32c7-0c3a-4991-bda7-262acf9e9ff8\",\n \"name\": \"Allowed Protocol Mapper Types\",\n \"providerId\": \"allowed-protocol-mappers\",\n \"subType\": \"authenticated\",\n \"subComponents\": {},\n \"config\": {\n \"allowed-protocol-mapper-types\": [\n \"saml-user-attribute-mapper\",\n \"oidc-sha256-pairwise-sub-mapper\",\n \"saml-role-list-mapper\",\n \"oidc-usermodel-attribute-mapper\",\n \"oidc-full-name-mapper\",\n \"oidc-usermodel-property-mapper\",\n \"saml-user-property-mapper\",\n \"oidc-address-mapper\"\n ]\n }\n },\n {\n \"id\": \"5f1776ac-8d9b-49fd-a073-89c4cc6bfdfd\",\n \"name\": \"Allowed Client Scopes\",\n \"providerId\": \"allowed-client-templates\",\n \"subType\": \"authenticated\",\n \"subComponents\": {},\n \"config\": {\n \"allow-default-scopes\": [\n \"true\"\n ]\n }\n },\n {\n \"id\": \"c0df4125-1c80-4640-8ef3-c8f7c83752ea\",\n \"name\": \"Allowed Protocol Mapper Types\",\n \"providerId\": \"allowed-protocol-mappers\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {\n \"allowed-protocol-mapper-types\": [\n \"oidc-usermodel-property-mapper\",\n \"saml-user-attribute-mapper\",\n \"oidc-address-mapper\",\n \"oidc-full-name-mapper\",\n \"oidc-usermodel-attribute-mapper\",\n \"saml-user-property-mapper\",\n \"saml-role-list-mapper\",\n \"oidc-sha256-pairwise-sub-mapper\"\n ]\n }\n },\n {\n \"id\": \"89c43689-3802-4711-852e-da40006cff55\",\n \"name\": \"Max Clients Limit\",\n \"providerId\": \"max-clients\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {\n \"max-clients\": [\n \"200\"\n ]\n }\n },\n {\n \"id\": \"2619c589-7725-4fe0-9184-c64af203f6e8\",\n \"name\": \"Full Scope Disabled\",\n \"providerId\": \"scope\",\n \"subType\": \"anonymous\",\n \"subComponents\": {},\n \"config\": {}\n }\n ],\n \"org.keycloak.keys.KeyProvider\": [\n {\n \"id\": \"7ab187a8-7074-482c-a48f-1ced31edb2d8\",\n \"name\": \"rsa-generated\",\n \"providerId\": \"rsa-generated\",\n \"subComponents\": {},\n \"config\": {\n \"priority\": [\n \"100\"\n ]\n }\n },\n {\n \"id\": \"f0d67cea-d0b8-49f3-acf9-58c85f4752b0\",\n \"name\": \"aes-generated\",\n \"providerId\": \"aes-generated\",\n \"subComponents\": {},\n \"config\": {\n \"priority\": [\n \"100\"\n ]\n }\n },\n {\n \"id\": \"85b68745-363c-4a28-b428-e32f85a88cb2\",\n \"name\": \"rsa-enc-generated\",\n \"providerId\": \"rsa-enc-generated\",\n \"subComponents\": {},\n \"config\": {\n \"priority\": [\n \"100\"\n ],\n \"algorithm\": [\n \"RSA-OAEP\"\n ]\n }\n },\n {\n \"id\": \"fc5aed30-294b-4389-8e0a-d7677a4d5ee8\",\n \"name\": \"hmac-generated-hs512\",\n \"providerId\": \"hmac-generated\",\n \"subComponents\": {},\n \"config\": {\n \"priority\": [\n \"100\"\n ],\n \"algorithm\": [\n \"HS512\"\n ]\n }\n }\n ]\n },\n \"internationalizationEnabled\": false,\n \"authenticationFlows\": [\n {\n \"id\": \"e2dcb5fc-e7c8-4d76-a7bf-8214d3413280\",\n \"alias\": \"Account verification options\",\n \"description\": \"Method with which to verify the existing account\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"idp-email-verification\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 20,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Verify Existing Account by Re-authentication\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"cf9b9a9d-6e65-4edf-a68f-783537daf647\",\n \"alias\": \"Browser - Conditional 2FA\",\n \"description\": \"Flow to determine if any 2FA is required for the authentication\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"conditional-user-configured\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorConfig\": \"browser-conditional-credential\",\n \"authenticator\": \"conditional-credential\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"auth-otp-form\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 30,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"webauthn-authenticator\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 40,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"auth-recovery-authn-code-form\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 50,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"5680cf3f-43cf-41eb-9bb1-06e71c9f7d8b\",\n \"alias\": \"Browser - Conditional Organization\",\n \"description\": \"Flow to determine if the organization identity-first login is to be used\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"conditional-user-configured\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"organization\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"5e856abf-dc15-4837-88b6-ca6e099cf480\",\n \"alias\": \"Direct Grant - Conditional OTP\",\n \"description\": \"Flow to determine if the OTP is required for the authentication\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"conditional-user-configured\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"direct-grant-validate-otp\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"590b1de1-9954-43e3-9402-92213137c226\",\n \"alias\": \"First Broker Login - Conditional Organization\",\n \"description\": \"Flow to determine if the authenticator that adds organization members is to be used\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"conditional-user-configured\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"idp-add-organization-member\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"0046bea2-0189-43aa-be82-9d02b454e74f\",\n \"alias\": \"First broker login - Conditional 2FA\",\n \"description\": \"Flow to determine if any 2FA is required for the authentication\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"conditional-user-configured\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorConfig\": \"first-broker-login-conditional-credential\",\n \"authenticator\": \"conditional-credential\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"auth-otp-form\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 30,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"webauthn-authenticator\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 40,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"auth-recovery-authn-code-form\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 50,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"e9974d17-e2a8-4665-85ec-de33f27a7079\",\n \"alias\": \"Handle Existing Account\",\n \"description\": \"Handle what to do if there is existing account with same email/username like authenticated identity provider\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"idp-confirm-link\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Account verification options\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"66634c6d-bfae-47dc-bf78-d595ac2d1ed0\",\n \"alias\": \"Organization\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"CONDITIONAL\",\n \"priority\": 10,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Browser - Conditional Organization\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"24f2fa8c-2dae-4431-a918-74bdf8df393f\",\n \"alias\": \"Reset - Conditional OTP\",\n \"description\": \"Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"conditional-user-configured\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"reset-otp\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"7de2a7ca-a1c7-4dec-894d-9785810c4193\",\n \"alias\": \"User creation or linking\",\n \"description\": \"Flow for the existing/non-existing user alternatives\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticatorConfig\": \"create unique user config\",\n \"authenticator\": \"idp-create-user-if-unique\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 20,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Handle Existing Account\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"9a6c5fb5-f780-46d7-8900-cf16d76fcea5\",\n \"alias\": \"Verify Existing Account by Re-authentication\",\n \"description\": \"Reauthentication of existing account\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"idp-username-password-form\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"CONDITIONAL\",\n \"priority\": 20,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"First broker login - Conditional 2FA\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"ae4dbb32-eff5-4317-b326-33e7228a6cd1\",\n \"alias\": \"browser\",\n \"description\": \"Browser based authentication\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"auth-cookie\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"auth-spnego\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"identity-provider-redirector\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 25,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 26,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Organization\",\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 30,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"forms\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"98e5da79-cafe-4709-bb50-9433ae99a090\",\n \"alias\": \"clients\",\n \"description\": \"Base authentication for clients\",\n \"providerId\": \"client-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"client-secret\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"client-jwt\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"client-secret-jwt\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 30,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"client-x509\",\n \"authenticatorFlow\": false,\n \"requirement\": \"ALTERNATIVE\",\n \"priority\": 40,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"93bee900-80e5-4fbc-bfdb-3aa423b45c7e\",\n \"alias\": \"direct grant\",\n \"description\": \"OpenID Connect Resource Owner Grant\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"direct-grant-validate-username\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"direct-grant-validate-password\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"CONDITIONAL\",\n \"priority\": 30,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Direct Grant - Conditional OTP\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"cd1904bf-b669-4194-af83-9708648d1f48\",\n \"alias\": \"docker auth\",\n \"description\": \"Used by Docker clients to authenticate against the IDP\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"docker-http-basic-authenticator\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"f0c65db8-5531-4b15-953f-a9d69319388a\",\n \"alias\": \"first broker login\",\n \"description\": \"Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticatorConfig\": \"review profile config\",\n \"authenticator\": \"idp-review-profile\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"User creation or linking\",\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"CONDITIONAL\",\n \"priority\": 60,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"First Broker Login - Conditional Organization\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"363273fa-5992-4585-b36a-b9e0089d34ac\",\n \"alias\": \"forms\",\n \"description\": \"Username, password, otp and other auth forms.\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"auth-username-password-form\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"CONDITIONAL\",\n \"priority\": 20,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Browser - Conditional 2FA\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"09b5d050-733e-4b1f-8178-88e073dadbe3\",\n \"alias\": \"registration\",\n \"description\": \"Registration flow\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"registration-page-form\",\n \"authenticatorFlow\": true,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"registration form\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"468b26ab-b0c5-4281-aeb6-2c12a4905fc4\",\n \"alias\": \"registration form\",\n \"description\": \"Registration form\",\n \"providerId\": \"form-flow\",\n \"topLevel\": false,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"registration-user-creation\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"registration-password-action\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 50,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"registration-recaptcha-action\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 60,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"registration-terms-and-conditions\",\n \"authenticatorFlow\": false,\n \"requirement\": \"DISABLED\",\n \"priority\": 70,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"d80569b8-5335-4037-9aa0-15c97728ee3c\",\n \"alias\": \"reset credentials\",\n \"description\": \"Reset credentials for a user if they forgot their password or something\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"reset-credentials-choose-user\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"reset-credential-email\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 20,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticator\": \"reset-password\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 30,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n },\n {\n \"authenticatorFlow\": true,\n \"requirement\": \"CONDITIONAL\",\n \"priority\": 40,\n \"autheticatorFlow\": true,\n \"flowAlias\": \"Reset - Conditional OTP\",\n \"userSetupAllowed\": false\n }\n ]\n },\n {\n \"id\": \"a5bceede-9278-4929-bca8-9a3b364bcf55\",\n \"alias\": \"saml ecp\",\n \"description\": \"SAML ECP Profile Authentication Flow\",\n \"providerId\": \"basic-flow\",\n \"topLevel\": true,\n \"builtIn\": true,\n \"authenticationExecutions\": [\n {\n \"authenticator\": \"http-basic-authenticator\",\n \"authenticatorFlow\": false,\n \"requirement\": \"REQUIRED\",\n \"priority\": 10,\n \"autheticatorFlow\": false,\n \"userSetupAllowed\": false\n }\n ]\n }\n ],\n \"authenticatorConfig\": [\n {\n \"id\": \"66d4b671-b70c-41a4-b30b-fc6321af4b0f\",\n \"alias\": \"browser-conditional-credential\",\n \"config\": {\n \"credentials\": \"webauthn-passwordless\"\n }\n },\n {\n \"id\": \"98750e92-1761-4da0-9eac-3a42eb483d41\",\n \"alias\": \"create unique user config\",\n \"config\": {\n \"require.password.update.after.registration\": \"false\"\n }\n },\n {\n \"id\": \"dadc4cee-926c-4505-aecf-45431aa08f68\",\n \"alias\": \"first-broker-login-conditional-credential\",\n \"config\": {\n \"credentials\": \"webauthn-passwordless\"\n }\n },\n {\n \"id\": \"bc7929ff-b347-499b-b311-246ae9ee8c28\",\n \"alias\": \"review profile config\",\n \"config\": {\n \"update.profile.on.first.login\": \"missing\"\n }\n }\n ],\n \"requiredActions\": [\n {\n \"alias\": \"CONFIGURE_TOTP\",\n \"name\": \"Configure OTP\",\n \"providerId\": \"CONFIGURE_TOTP\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 10,\n \"config\": {}\n },\n {\n \"alias\": \"TERMS_AND_CONDITIONS\",\n \"name\": \"Terms and Conditions\",\n \"providerId\": \"TERMS_AND_CONDITIONS\",\n \"enabled\": false,\n \"defaultAction\": false,\n \"priority\": 20,\n \"config\": {}\n },\n {\n \"alias\": \"UPDATE_PASSWORD\",\n \"name\": \"Update Password\",\n \"providerId\": \"UPDATE_PASSWORD\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 30,\n \"config\": {}\n },\n {\n \"alias\": \"UPDATE_PROFILE\",\n \"name\": \"Update Profile\",\n \"providerId\": \"UPDATE_PROFILE\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 40,\n \"config\": {}\n },\n {\n \"alias\": \"VERIFY_EMAIL\",\n \"name\": \"Verify Email\",\n \"providerId\": \"VERIFY_EMAIL\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 50,\n \"config\": {}\n },\n {\n \"alias\": \"delete_account\",\n \"name\": \"Delete Account\",\n \"providerId\": \"delete_account\",\n \"enabled\": false,\n \"defaultAction\": false,\n \"priority\": 60,\n \"config\": {}\n },\n {\n \"alias\": \"UPDATE_EMAIL\",\n \"name\": \"Update Email\",\n \"providerId\": \"UPDATE_EMAIL\",\n \"enabled\": false,\n \"defaultAction\": false,\n \"priority\": 70,\n \"config\": {}\n },\n {\n \"alias\": \"webauthn-register\",\n \"name\": \"Webauthn Register\",\n \"providerId\": \"webauthn-register\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 80,\n \"config\": {}\n },\n {\n \"alias\": \"webauthn-register-passwordless\",\n \"name\": \"Webauthn Register Passwordless\",\n \"providerId\": \"webauthn-register-passwordless\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 90,\n \"config\": {}\n },\n {\n \"alias\": \"VERIFY_PROFILE\",\n \"name\": \"Verify Profile\",\n \"providerId\": \"VERIFY_PROFILE\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 100,\n \"config\": {}\n },\n {\n \"alias\": \"delete_credential\",\n \"name\": \"Delete Credential\",\n \"providerId\": \"delete_credential\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 110,\n \"config\": {}\n },\n {\n \"alias\": \"idp_link\",\n \"name\": \"Linking Identity Provider\",\n \"providerId\": \"idp_link\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 120,\n \"config\": {}\n },\n {\n \"alias\": \"CONFIGURE_RECOVERY_AUTHN_CODES\",\n \"name\": \"Recovery Authentication Codes\",\n \"providerId\": \"CONFIGURE_RECOVERY_AUTHN_CODES\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 130,\n \"config\": {}\n },\n {\n \"alias\": \"update_user_locale\",\n \"name\": \"Update User Locale\",\n \"providerId\": \"update_user_locale\",\n \"enabled\": true,\n \"defaultAction\": false,\n \"priority\": 1000,\n \"config\": {}\n }\n ],\n \"browserFlow\": \"browser\",\n \"registrationFlow\": \"registration\",\n \"directGrantFlow\": \"direct grant\",\n \"resetCredentialsFlow\": \"reset credentials\",\n \"clientAuthenticationFlow\": \"clients\",\n \"dockerAuthenticationFlow\": \"docker auth\",\n \"firstBrokerLoginFlow\": \"first broker login\",\n \"attributes\": {\n \"cibaBackchannelTokenDeliveryMode\": \"poll\",\n \"cibaAuthRequestedUserHint\": \"login_hint\",\n \"oauth2DevicePollingInterval\": \"5\",\n \"clientOfflineSessionMaxLifespan\": \"0\",\n \"de.adorsys.keycloak.config.import-checksum-default\": \"f64eab231071ad9077bd3450b00c690413e4cc7b25003c3901668bebccc04dfd\",\n \"clientSessionIdleTimeout\": \"0\",\n \"clientOfflineSessionIdleTimeout\": \"0\",\n \"de.adorsys.keycloak.config.state-default-roles-realm-0\": \"[\\\"admin\\\",\\\"read_only\\\",\\\"product_manager\\\",\\\"customer\\\",\\\"support\\\"]\",\n \"cibaInterval\": \"5\",\n \"realmReusableOtpCode\": \"false\",\n \"cibaExpiresIn\": \"120\",\n \"oauth2DeviceCodeLifespan\": \"600\",\n \"parRequestUriLifespan\": \"60\",\n \"clientSessionMaxLifespan\": \"0\",\n \"de.adorsys.keycloak.config.state-default-clients-0\": \"[\\\"librechat\\\", \\\"mcp-catalog\\\", \\\"token-exchange-broker\\\", \\\"catalog-api\\\", \\\"classic-models-api\\\"]\"\n },\n \"keycloakVersion\": \"26.6.0\",\n \"userManagedAccessAllowed\": false,\n \"organizationsEnabled\": false,\n \"verifiableCredentialsEnabled\": false,\n \"adminPermissionsEnabled\": false,\n \"scimApiEnabled\": false,\n \"clientProfiles\": {\n \"profiles\": []\n },\n \"clientPolicies\": {\n \"policies\": []\n }\n}"
}
}