src/auth/client/client.provider.ts
No results matching.
Methods |
|
constructor(configImportOrchestrator: ConfigImportOrchestratorService)
|
||||||
|
Defined in src/auth/client/client.provider.ts:53
|
||||||
|
Parameters :
|
| Abstract addClient | |||||||||
addClient(tenantId: string, dto: CreateClient)
|
|||||||||
|
Defined in src/auth/client/client.provider.ts:42
|
|||||||||
|
Parameters :
Returns :
Promise<ClientEntity>
|
| Abstract getClient |
getClient(tenantId: string, clientId: string)
|
|
Defined in src/auth/client/client.provider.ts:29
|
|
Returns :
Promise<ClientEntity>
|
| Abstract getClientById | ||||||||
getClientById(clientId: string)
|
||||||||
|
Defined in src/auth/client/client.provider.ts:40
|
||||||||
|
Get a client by its clientId only (without tenant context). Used for JWT validation where we need to fetch the client's restrictions.
Parameters :
Returns :
Promise<ClientEntity | null>
The client entity or null if not found |
| Abstract getClients | ||||||
getClients(tenantId: string)
|
||||||
|
Defined in src/auth/client/client.provider.ts:28
|
||||||
|
Parameters :
Returns :
Promise<ClientEntity[]>
|
| Abstract importForTenant | ||||||
importForTenant(tenantId: string)
|
||||||
|
Defined in src/auth/client/client.provider.ts:47
|
||||||
|
Parameters :
Returns :
Promise<void>
|
| Abstract removeClient |
removeClient(tenantId: string, clientId: string)
|
|
Defined in src/auth/client/client.provider.ts:46
|
|
Returns :
Promise<void>
|
| Abstract rotateClientSecret | ||||||||||||
rotateClientSecret(tenantId: string | null, clientId: string)
|
||||||||||||
|
Defined in src/auth/client/client.provider.ts:23
|
||||||||||||
|
Rotate (regenerate) a client's secret. Returns the new plain secret for one-time display.
Parameters :
Returns :
Promise<string>
|
| Abstract updateClient | ||||||||||||
updateClient(tenantId: string, clientId: string, updateClientDto: UpdateClient)
|
||||||||||||
|
Defined in src/auth/client/client.provider.ts:11
|
||||||||||||
|
Parameters :
Returns :
unknown
|
| Optional validateClientCredentials |
validateClientCredentials(clientId: string, clientSecret: string)
|
|
Defined in src/auth/client/client.provider.ts:50
|
|
Returns :
Promise<ClientEntity | null>
|
import {
ConfigImportOrchestratorService,
ImportPhase,
} from "../../platform/config-import/config-import-orchestrator.service";
import { ClientEntity } from "./entities/client.entity";
import type { CreateClient, UpdateClient } from "./schemas/client.schema";
export const CLIENTS_PROVIDER = "CLIENTS_PROVIDER";
export abstract class ClientsProvider {
abstract updateClient(
tenantId: string,
clientId: string,
updateClientDto: UpdateClient,
): unknown;
/**
* Rotate (regenerate) a client's secret.
* Returns the new plain secret for one-time display.
* @param tenantId - The tenant ID (optional for tenant managers who can rotate any client's secret)
* @param clientId - The client ID to rotate the secret for
*/
abstract rotateClientSecret(
tenantId: string | null,
clientId: string,
): Promise<string>;
abstract getClients(tenantId: string): Promise<ClientEntity[]>;
abstract getClient(
tenantId: string,
clientId: string,
): Promise<ClientEntity>;
/**
* Get a client by its clientId only (without tenant context).
* Used for JWT validation where we need to fetch the client's restrictions.
* @param clientId The client ID (may be namespaced with tenant prefix for Keycloak)
* @returns The client entity or null if not found
*/
abstract getClientById(clientId: string): Promise<ClientEntity | null>;
abstract addClient(
tenantId: string,
dto: CreateClient,
): Promise<ClientEntity>;
abstract removeClient(tenantId: string, clientId: string): Promise<void>;
abstract importForTenant(tenantId: string): Promise<void>;
// Only for internal backend (not used with KC; you’ll validate JWTs instead)
validateClientCredentials?(
clientId: string,
clientSecret: string,
): Promise<ClientEntity | null>;
constructor(configImportOrchestrator: ConfigImportOrchestratorService) {
configImportOrchestrator.register(
"clients",
ImportPhase.CORE,
(tenantId) => this.importForTenant(tenantId),
);
}
}