@voidkey/broker-core
Version:
Core credential minting logic for the voidkey zero-trust credential broker
62 lines • 2.62 kB
TypeScript
import { KeyConfiguration } from './types';
import { IdpProvider } from './idp';
import { AccessProvider, CredentialResponse } from './providers';
import { BrokerAuthProvider } from './auth';
export { OidcClaims, IdpConfiguration, Identity, GeneralConfiguration, BrokerIdpConfiguration, ClientIdentity, KeyConfiguration, AccessProviderConfiguration } from './types';
export { IdpProvider } from './idp';
export { IdpConfigLoader, IdpConfigFile } from './config/idp-config';
export { AccessProvider, CredentialRequest, CredentialResponse, CredentialOutput, createProvider } from './providers';
export { BrokerAuthProvider, ClientCredentialsProvider, ClientCredentialsConfig } from './auth';
export declare class CredentialBroker {
private idpProviders;
private accessProviders;
private defaultIdpName?;
private clientIdentities;
private brokerToken?;
private brokerTokenExpiry?;
private brokerIdpConfig?;
private brokerAuthProvider?;
constructor(brokerAuthProvider?: BrokerAuthProvider);
private addBuiltInProviders;
/**
* Set the broker authentication provider
* This allows the broker-server to inject its own auth logic
*/
setBrokerAuthProvider(provider: BrokerAuthProvider): void;
addIdpProvider(provider: IdpProvider): void;
addAccessProvider(provider: AccessProvider): void;
getAccessProvider(name: string): AccessProvider;
listAccessProviders(): Array<{
name: string;
type: string;
}>;
loadIdpConfigFromFile(configPath: string): void;
loadIdpConfigFromString(yamlContent: string): void;
private loadIdpConfig;
setDefaultIdp(name: string): void;
listIdpProviders(): Array<{
name: string;
isDefault: boolean;
}>;
getAvailableKeys(subject: string): string[];
getKeyConfiguration(subject: string, keyName: string): KeyConfiguration | null;
getIdpProvider(name?: string): IdpProvider;
mintKey(oidcToken: string, keyName: string, idpName?: string, duration?: number): Promise<CredentialResponse>;
mintKeys(oidcToken: string, keyNames: string[], idpName?: string, duration?: number): Promise<{
[keyName: string]: CredentialResponse;
}>;
healthCheckIdpProvider(idpName?: string): Promise<{
provider: string;
healthy: boolean;
error?: string;
}>;
healthCheckAllProviders(): Promise<Array<{
provider: string;
healthy: boolean;
error?: string;
}>>;
private acquireBrokerToken;
private ensureValidBrokerToken;
getBrokerToken(): Promise<string>;
}
//# sourceMappingURL=index.d.ts.map