File

src/auth/client/client.provider.ts

Index

Methods

Constructor

constructor(configImportOrchestrator: ConfigImportOrchestratorService)
Parameters :
Name Type Optional
configImportOrchestrator ConfigImportOrchestratorService No

Methods

Abstract addClient
addClient(tenantId: string, dto: CreateClientDto)
Parameters :
Name Type Optional
tenantId string No
dto CreateClientDto No
Abstract getClient
getClient(tenantId: string, clientId: string)
Parameters :
Name Type Optional
tenantId string No
clientId string No
Abstract getClients
getClients(tenantId: string)
Parameters :
Name Type Optional
tenantId string No
Abstract getClientSecret
getClientSecret(sub: string, id: string)
Parameters :
Name Type Optional
sub string No
id string No
Returns : Promise<string>
Abstract importForTenant
importForTenant(tenantId: string)
Parameters :
Name Type Optional
tenantId string No
Returns : Promise<void>
Abstract removeClient
removeClient(tenantId: string, clientId: string)
Parameters :
Name Type Optional
tenantId string No
clientId string No
Returns : Promise<void>
Abstract updateClient
updateClient(tenantId: string, clientId: string, updateClientDto: UpdateClientDto)
Parameters :
Name Type Optional
tenantId string No
clientId string No
updateClientDto UpdateClientDto No
Returns : unknown
Optional validateClientCredentials
validateClientCredentials(clientId: string, clientSecret: string)
Parameters :
Name Type Optional
clientId string No
clientSecret string No
import {
    ConfigImportOrchestratorService,
    ImportPhase,
} from "../../shared/utils/config-import/config-import-orchestrator.service";
import { CreateClientDto } from "./dto/create-client.dto";
import { UpdateClientDto } from "./dto/update-client.dto";
import { ClientEntity } from "./entities/client.entity";

export const CLIENTS_PROVIDER = "CLIENTS_PROVIDER";

export abstract class ClientsProvider {
    abstract updateClient(
        tenantId: string,
        clientId: string,
        updateClientDto: UpdateClientDto,
    ): unknown;
    abstract getClientSecret(sub: string, id: string): Promise<string>;
    abstract getClients(tenantId: string): Promise<ClientEntity[]>;
    abstract getClient(
        tenantId: string,
        clientId: string,
    ): Promise<ClientEntity>;
    abstract addClient(
        tenantId: string,
        dto: CreateClientDto,
    ): 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),
        );
    }
}

results matching ""

    No results matching ""