Skip to content

Commit e34d3d5

Browse files
Merge pull request #601 from IABTechLab/ans-UID2-dyanmically-load-keycloak
dyanmic imports of keycloak variables
2 parents b2053fd + 594a06a commit e34d3d5

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

src/api/keycloakAdminClient.ts

+15-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
1-
import KcAdminClient from '@keycloak/keycloak-admin-client';
2-
31
import { SSP_KK_AUDIENCE, SSP_KK_AUTH_SERVER_URL, SSP_KK_REALM, SSP_KK_SECRET } from './envars';
42

5-
const kcAdminClient = new KcAdminClient({
6-
baseUrl: SSP_KK_AUTH_SERVER_URL,
7-
realmName: SSP_KK_REALM,
8-
});
3+
// dynamic import of KcAdminClient required by keycloak-admin-client version 26.1.3
4+
let KcAdminClient;
5+
6+
const loadKcAdminClient = async () => {
7+
KcAdminClient = (await import('@keycloak/keycloak-admin-client')).default;
8+
9+
const kcAdminClient = new KcAdminClient({
10+
baseUrl: SSP_KK_AUTH_SERVER_URL,
11+
realmName: SSP_KK_REALM,
12+
});
13+
14+
return kcAdminClient;
15+
};
16+
917
export const getKcAdminClient = async () => {
18+
const kcAdminClient = await loadKcAdminClient();
1019
await kcAdminClient.auth({
1120
grantType: 'client_credentials',
1221
clientId: SSP_KK_AUDIENCE,

src/api/services/kcUsersService.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,22 @@
11
import KeycloakAdminClient from '@keycloak/keycloak-admin-client';
2-
import { RequiredActionAlias } from '@keycloak/keycloak-admin-client/lib/defs/requiredActionProviderRepresentation';
32
import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';
43

54
import { SSP_KK_API_CLIENT_ID, SSP_KK_SSL_RESOURCE, SSP_WEB_BASE_URL } from '../envars';
65

6+
// dyanmic import of RequiredActionAlias required by keycloak-admin-client version 26.1.3
7+
let RequiredActionAlias: typeof import('@keycloak/keycloak-admin-client/lib/defs/requiredActionProviderRepresentation').RequiredActionAlias;
8+
9+
async function loadKeycloakRequiredActionAlias() {
10+
const module = await import(
11+
'@keycloak/keycloak-admin-client/lib/defs/requiredActionProviderRepresentation'
12+
);
13+
RequiredActionAlias = module.RequiredActionAlias;
14+
}
15+
16+
loadKeycloakRequiredActionAlias()
17+
.then(() => {})
18+
.catch(() => {});
19+
720
export const API_PARTICIPANT_MEMBER_ROLE_NAME = 'api-participant-member';
821

922
export const queryUsersByEmail = async (kcAdminClient: KeycloakAdminClient, email: string) => {

0 commit comments

Comments
 (0)