@voidkey/broker-core
Version:
Core credential minting logic for the voidkey zero-trust credential broker
49 lines • 1.34 kB
TypeScript
export interface CredentialOutput {
[envVarName: string]: string;
}
export interface KeyConfiguration {
provider: string;
duration?: number;
outputs: {
[envVarName: string]: string;
};
[key: string]: any;
}
export interface AccessProviderConfiguration {
name: string;
type: string;
endpoint: string;
defaultDuration?: number;
brokerAuth?: {
tokenSource: string;
[key: string]: any;
};
[key: string]: any;
}
export interface CredentialRequest {
subject: string;
keyName: string;
keyConfig: KeyConfiguration;
brokerToken?: string;
claims?: any;
}
export interface CredentialResponse {
credentials: CredentialOutput;
expiresAt: string;
metadata?: {
provider: string;
keyName: string;
[key: string]: any;
};
}
export declare abstract class AccessProvider {
protected config: AccessProviderConfiguration;
constructor(config: AccessProviderConfiguration);
abstract getName(): string;
abstract getType(): string;
abstract mintCredential(request: CredentialRequest): Promise<CredentialResponse>;
abstract healthCheck?(): Promise<boolean>;
protected getDefaultDuration(): number;
protected validateKeyConfig(keyConfig: KeyConfiguration): void;
}
//# sourceMappingURL=base.d.ts.map