{
  "realm": "workclub",
  "enabled": true,
  "displayName": "WorkClub Development Realm",
  "displayNameHtml": "<div class=\"kc-logo-text\"><span>WorkClub</span></div>",
  "accessTokenLifespan": 3600,
  "accessTokenLifespanForImplicitFlow": 900,
  "ssoSessionIdleTimeout": 1800,
  "ssoSessionMaxLifespan": 36000,
  "offlineSessionIdleTimeout": 2592000,
  "accessCodeLifespan": 60,
  "accessCodeLifespanUserAction": 300,
  "sslRequired": "none",
  "registrationAllowed": false,
  "loginWithEmailAllowed": true,
  "duplicateEmailsAllowed": false,
  "resetPasswordAllowed": true,
  "editUsernameAllowed": false,
  "bruteForceProtected": true,
  "permanentLockout": false,
  "maxFailureWaitSeconds": 900,
  "failureFactor": 10,
  "defaultSignatureAlgorithm": "RS256",
  "revokeRefreshToken": false,
  "refreshTokenMaxReuse": 0,
  "clients": [
    {
      "clientId": "workclub-api",
      "name": "WorkClub Backend API",
      "description": "Confidential client for backend service-to-service authentication",
      "enabled": true,
      "clientAuthenticatorType": "client-secret",
      "secret": "dev-secret-workclub-api-change-in-production",
      "publicClient": false,
      "standardFlowEnabled": false,
      "implicitFlowEnabled": false,
      "directAccessGrantsEnabled": false,
      "serviceAccountsEnabled": true,
      "authorizationServicesEnabled": false,
      "protocol": "openid-connect",
      "attributes": {
        "access.token.lifespan": "3600"
      },
      "protocolMappers": [
        {
          "name": "club-membership",
          "protocol": "openid-connect",
          "protocolMapper": "oidc-usermodel-attribute-mapper",
          "consentRequired": false,
          "config": {
            "user.attribute": "clubs",
            "claim.name": "clubs",
            "jsonType.label": "String",
            "id.token.claim": "true",
            "access.token.claim": "true",
            "userinfo.token.claim": "true",
            "multivalued": "false",
            "aggregate.attrs": "false"
          }
        }
      ],
      "defaultClientScopes": [
        "web-origins",
        "acr",
        "profile",
        "roles",
        "email"
      ],
      "optionalClientScopes": [
        "address",
        "phone",
        "offline_access",
        "microprofile-jwt"
      ]
    },
    {
      "clientId": "workclub-app",
      "name": "WorkClub Frontend",
      "description": "Public client for frontend SPA with PKCE",
      "enabled": true,
      "publicClient": true,
      "standardFlowEnabled": true,
      "implicitFlowEnabled": false,
      "directAccessGrantsEnabled": true,
      "serviceAccountsEnabled": false,
      "authorizationServicesEnabled": false,
      "protocol": "openid-connect",
      "redirectUris": [
        "http://localhost:3000/*"
      ],
      "webOrigins": [
        "http://localhost:3000"
      ],
      "attributes": {
        "pkce.code.challenge.method": "S256",
        "post.logout.redirect.uris": "http://localhost:3000/*",
        "access.token.lifespan": "3600"
      },
      "protocolMappers": [
        {
          "name": "club-membership",
          "protocol": "openid-connect",
          "protocolMapper": "oidc-usermodel-attribute-mapper",
          "consentRequired": false,
          "config": {
            "user.attribute": "clubs",
            "claim.name": "clubs",
            "jsonType.label": "String",
            "id.token.claim": "true",
            "access.token.claim": "true",
            "userinfo.token.claim": "true",
            "multivalued": "false",
            "aggregate.attrs": "false"
          }
        },
        {
          "name": "workclub-api-audience",
          "protocol": "openid-connect",
          "protocolMapper": "oidc-hardcoded-claim-mapper",
          "consentRequired": false,
          "config": {
            "claim.name": "aud",
            "claim.value": "workclub-api",
            "jsonType.label": "String",
            "access.token.claim": "true",
            "id.token.claim": "false",
            "userinfo.token.claim": "false"
          }
        },
        {
          "name": "sub-claim",
          "protocol": "openid-connect",
          "protocolMapper": "oidc-sub-mapper",
          "consentRequired": false,
          "config": {
            "access.token.claim": "true",
            "introspection.token.claim": "true"
          }
        }
      ],
      "defaultClientScopes": [
        "web-origins",
        "acr",
        "profile",
        "roles",
        "email"
      ],
      "optionalClientScopes": [
        "address",
        "phone",
        "offline_access",
        "microprofile-jwt"
      ]
    }
  ],
  "users": [
    {
      "username": "admin@test.com",
      "email": "admin@test.com",
      "emailVerified": true,
      "enabled": true,
      "firstName": "Admin",
      "lastName": "User",
      "attributes": {
        "clubs": ["64e05b5e-ef45-81d7-f2e8-3d14bd197383,3b4afcfa-1352-8fc7-b497-8ab52a0d5fda"]
      },
      "credentials": [
        {
          "type": "password",
          "value": "testpass123",
          "temporary": false
        }
      ],
      "requiredActions": []
    },
    {
      "username": "manager@test.com",
      "email": "manager@test.com",
      "emailVerified": true,
      "enabled": true,
      "firstName": "Manager",
      "lastName": "User",
      "attributes": {
        "clubs": ["64e05b5e-ef45-81d7-f2e8-3d14bd197383"]
      },
      "credentials": [
        {
          "type": "password",
          "value": "testpass123",
          "temporary": false
        }
      ],
      "requiredActions": []
    },
    {
      "username": "member1@test.com",
      "email": "member1@test.com",
      "emailVerified": true,
      "enabled": true,
      "firstName": "Member",
      "lastName": "One",
      "attributes": {
        "clubs": ["64e05b5e-ef45-81d7-f2e8-3d14bd197383,3b4afcfa-1352-8fc7-b497-8ab52a0d5fda"]
      },
      "credentials": [
        {
          "type": "password",
          "value": "testpass123",
          "temporary": false
        }
      ],
      "requiredActions": []
    },
    {
      "username": "member2@test.com",
      "email": "member2@test.com",
      "emailVerified": true,
      "enabled": true,
      "firstName": "Member",
      "lastName": "Two",
      "attributes": {
        "clubs": ["64e05b5e-ef45-81d7-f2e8-3d14bd197383"]
      },
      "credentials": [
        {
          "type": "password",
          "value": "testpass123",
          "temporary": false
        }
      ],
      "requiredActions": []
    },
    {
      "username": "viewer@test.com",
      "email": "viewer@test.com",
      "emailVerified": true,
      "enabled": true,
      "firstName": "Viewer",
      "lastName": "User",
      "attributes": {
        "clubs": ["64e05b5e-ef45-81d7-f2e8-3d14bd197383"]
      },
      "credentials": [
        {
          "type": "password",
          "value": "testpass123",
          "temporary": false
        }
      ],
      "requiredActions": []
    }
  ],
  "roles": {
    "realm": [],
    "client": {}
  },
  "groups": [],
  "defaultRole": {
    "name": "default-roles-workclub",
    "description": "${role_default-roles}",
    "composite": true,
    "clientRole": false,
    "containerId": "workclub"
  },
  "requiredCredentials": [
    "password"
  ],
  "otpPolicyType": "totp",
  "otpPolicyAlgorithm": "HmacSHA1",
  "otpPolicyInitialCounter": 0,
  "otpPolicyDigits": 6,
  "otpPolicyLookAheadWindow": 1,
  "otpPolicyPeriod": 30,
  "otpSupportedApplications": [
    "totpAppGoogleName",
    "totpAppMicrosoftAuthenticatorName"
  ],
  "webAuthnPolicyRpEntityName": "keycloak",
  "webAuthnPolicySignatureAlgorithms": [
    "ES256"
  ],
  "webAuthnPolicyRpId": "",
  "webAuthnPolicyAttestationConveyancePreference": "not specified",
  "webAuthnPolicyAuthenticatorAttachment": "not specified",
  "webAuthnPolicyRequireResidentKey": "not specified",
  "webAuthnPolicyUserVerificationRequirement": "not specified",
  "webAuthnPolicyCreateTimeout": 0,
  "webAuthnPolicyAvoidSameAuthenticatorRegister": false,
  "webAuthnPolicyAcceptableAaguids": [],
  "browserSecurityHeaders": {
    "contentSecurityPolicyReportOnly": "",
    "xContentTypeOptions": "nosniff",
    "referrerPolicy": "no-referrer",
    "xRobotsTag": "none",
    "xFrameOptions": "SAMEORIGIN",
    "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
    "xXSSProtection": "1; mode=block",
    "strictTransportSecurity": "max-age=31536000; includeSubDomains"
  },
  "smtpServer": {},
  "eventsEnabled": false,
  "eventsListeners": [
    "jboss-logging"
  ],
  "enabledEventTypes": [],
  "adminEventsEnabled": false,
  "adminEventsDetailsEnabled": false,
  "identityProviders": [],
  "identityProviderMappers": [],
  "components": {},
  "internationalizationEnabled": false,
  "supportedLocales": [],
  "authenticationFlows": [],
  "authenticatorConfig": [],
  "requiredActions": [],
  "browserFlow": "browser",
  "registrationFlow": "registration",
  "directGrantFlow": "direct grant",
  "resetCredentialsFlow": "reset credentials",
  "clientAuthenticationFlow": "clients",
  "dockerAuthenticationFlow": "docker auth",
  "attributes": {},
  "keycloakVersion": "26.0.0"
}
