testcontainers-keycloak
Version:
A Testcontainers implementation for Keycloak
42 lines (41 loc) • 2.51 kB
TypeScript
import { GenericContainer, StartedTestContainer, AbstractStartedContainer } from 'testcontainers';
import { ClientSecret, KeycloakClient, KeycloakRealm, KeycloakUser } from './types';
export declare class KeycloakContainer extends GenericContainer {
private waitingLog;
private adminUsername;
private adminPassword;
constructor(image?: string);
withWaitingLog(log: string): void;
withAdminUsername(username: string): this;
withAdminPassword(password: string): this;
start(): Promise<StartedKeycloakContainer>;
}
export declare class StartedKeycloakContainer extends AbstractStartedContainer {
private readonly adminUsername;
private readonly adminPassword;
private KCADM;
private SERVER;
constructor(startedTestContainer: StartedTestContainer, adminUsername: string, adminPassword: string);
getAdminUsername(): string;
getAdminPassword(): string;
private runCmd;
/**
* Start an authenticated session on this keycloak server
* @params realmName th3 realm name you want to config
* @params user the user who starting this session, usually the username of admin
* @params user password, usually is the password of admin
*/
configCredentials(realmName: string, user: string, password: string): Promise<string>;
createRealm(realmName: string, enabled?: boolean): Promise<string>;
getRealm(realmName: string): Promise<KeycloakRealm>;
createUser(realmName: string, username: string, firstName: string, lastName: string, enabled?: boolean): Promise<string>;
getUserById(realmName: string, userId: string): Promise<KeycloakUser>;
getUserIdByUsername(realmName: string, username: string): Promise<string>;
setUserPassword(realmName: string, username: string, password: string): Promise<string>;
createClient(realmName: string, clientId: string, clientSecret: string, redirectUris?: Array<string>, webOrigins?: Array<string>, directAccessGrantsEnabled?: boolean, enabled?: boolean): Promise<string>;
getCidByClientId(realmName: string, clientId: string): Promise<string>;
getClientByCid(realmName: string, cid: string): Promise<KeycloakClient>;
getClientSecretByCid(realmName: string, cid: string): Promise<ClientSecret>;
getAccessToken(realmName: string, username: string, password: string, clientId: string, clientSecret: string): Promise<string>;
getIdToken(realmName: string, username: string, password: string, clientId: string, clientSecret: string): Promise<string>;
}