{ "realm": "openshell", "enabled": true, "sslRequired": "none", "registrationAllowed": false, "loginWithEmailAllowed": true, "duplicateEmailsAllowed": false, "resetPasswordAllowed": false, "editUsernameAllowed": false, "bruteForceProtected": false, "accessTokenLifespan": 300, "ssoSessionIdleTimeout": 1800, "ssoSessionMaxLifespan": 36000, "offlineSessionIdleTimeout": 2592000, "roles": { "realm": [ { "name": "openshell-admin", "description": "Full administrative access to OpenShell" }, { "name": "openshell-user", "description": "Standard user access to OpenShell" } ] }, "defaultRoles": ["openshell-user"], "clientScopes": [ { "name": "openid", "description": "OpenID Connect scope", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true" }, "protocolMappers": [ { "name": "sub", "protocol": "openid-connect", "protocolMapper": "oidc-sub-mapper", "consentRequired": false, "config": { "introspection.token.claim": "true", "access.token.claim": "true" } } ] }, { "name": "profile", "description": "OpenID Connect built-in scope: profile", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true" }, "protocolMappers": [ { "name": "preferred_username", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "user.attribute": "username", "claim.name": "preferred_username", "jsonType.label": "String", "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } }, { "name": "given name", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "user.attribute": "firstName", "claim.name": "given_name", "jsonType.label": "String", "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } }, { "name": "family name", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "user.attribute": "lastName", "claim.name": "family_name", "jsonType.label": "String", "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } }, { "name": "full name", "protocol": "openid-connect", "protocolMapper": "oidc-full-name-mapper", "consentRequired": false, "config": { "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } } ] }, { "name": "email", "description": "OpenID Connect built-in scope: email", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true" }, "protocolMappers": [ { "name": "email", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "user.attribute": "email", "claim.name": "email", "jsonType.label": "String", "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } }, { "name": "email verified", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-attribute-mapper", "consentRequired": false, "config": { "user.attribute": "emailVerified", "claim.name": "email_verified", "jsonType.label": "boolean", "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } } ] }, { "name": "roles", "description": "OpenID Connect scope for roles", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "false" }, "protocolMappers": [ { "name": "realm roles", "protocol": "openid-connect", "protocolMapper": "oidc-usermodel-realm-role-mapper", "consentRequired": false, "config": { "multivalued": "true", "claim.name": "realm_access.roles", "jsonType.label": "String", "id.token.claim": "true", "access.token.claim": "true", "userinfo.token.claim": "true" } } ] }, { "name": "web-origins", "description": "OpenID Connect scope for allowed web origins", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "false" }, "protocolMappers": [ { "name": "allowed web origins", "protocol": "openid-connect", "protocolMapper": "oidc-allowed-origins-mapper", "consentRequired": false, "config": {} } ] }, { "name": "acr", "description": "OpenID Connect scope for ACR", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "false" } }, { "name": "sandbox:read", "description": "Read sandbox resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "sandbox:write", "description": "Write sandbox resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "provider:read", "description": "Read provider resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "provider:write", "description": "Write provider resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "config:read", "description": "Read configuration resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "config:write", "description": "Write configuration resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "inference:read", "description": "Read inference resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "inference:write", "description": "Write inference resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } }, { "name": "openshell:all", "description": "Full access to all OpenShell resources", "protocol": "openid-connect", "attributes": { "include.in.token.scope": "true", "display.on.consent.screen": "true" } } ], "clients": [ { "clientId": "openshell-cli", "name": "OpenShell CLI", "description": "Public client for interactive CLI login (Authorization Code + PKCE)", "enabled": true, "publicClient": true, "standardFlowEnabled": true, "directAccessGrantsEnabled": true, "serviceAccountsEnabled": false, "redirectUris": ["http://127.0.0.1:*", "http://localhost:*"], "webOrigins": ["http://127.0.0.1:*", "http://localhost:*"], "attributes": { "pkce.code.challenge.method": "S256" }, "protocol": "openid-connect", "fullScopeAllowed": true, "defaultClientScopes": ["openid", "profile", "email", "roles", "web-origins", "acr"], "optionalClientScopes": ["sandbox:read", "sandbox:write", "provider:read", "provider:write", "config:read", "config:write", "inference:read", "inference:write", "openshell:all"] }, { "clientId": "openshell-ci", "name": "OpenShell CI", "description": "Confidential client for CI/automation (Client Credentials grant)", "enabled": true, "publicClient": false, "secret": "ci-test-secret", "standardFlowEnabled": false, "directAccessGrantsEnabled": false, "serviceAccountsEnabled": true, "protocol": "openid-connect", "fullScopeAllowed": true, "defaultClientScopes": ["openid", "profile", "email", "roles", "web-origins", "acr", "openshell:all"] } ], "users": [ { "username": "admin@test", "email": "admin@test", "emailVerified": true, "enabled": true, "firstName": "Admin", "lastName": "User", "credentials": [ { "type": "password", "value": "admin", "temporary": false } ], "realmRoles": ["openshell-admin", "openshell-user"] }, { "username": "user@test", "email": "user@test", "emailVerified": true, "enabled": true, "firstName": "Regular", "lastName": "User", "credentials": [ { "type": "password", "value": "user", "temporary": false } ], "realmRoles": ["openshell-user"] } ] }