UNCLASSIFIED - NO CUI

Skip to content

Fix Keycloak Environment Variable Loading

🐛 Issue

Environment variables aren't loaded at module initialization, causing Keycloak to use defaults (master realm, test client) instead of .env.local values.

🛠️ Solution

Convert envConfig to use dynamic getters instead of module-load initialization.

Before:

export const envConfig: EnvConfig = {
  keycloak: {
    realm: getEnv("NEXT_PUBLIC_KEYCLOAK_REALM", "master"), // Called at load
    clientId: getEnv("NEXT_PUBLIC_KEYCLOAK_CLIENT_ID", "test"),
  }
};

After:

export const envConfig = {
  get keycloak() {
    return {
      realm: process.env.NEXT_PUBLIC_KEYCLOAK_REALM!, // Called when accessed  
      clientId: process.env.NEXT_PUBLIC_KEYCLOAK_CLIENT_ID!,
    };
  }
};

Acceptance Criteria

  • Uses compliance realm instead of master
  • Uses compliance-dashboard client instead of test
  • Environment variables load dynamically
  • Works in both SSR and client contexts
Edited by Manuel Ucles