@enspirit/emb
Version:
A replacement for our Makefile-for-monorepos
53 lines (52 loc) • 1.71 kB
TypeScript
import { AbstractSecretProvider, SecretReference } from './SecretProvider.js';
/**
* Type for async source functions compatible with TemplateExpander.
*/
export type AsyncSecretSource = (key: string) => Promise<unknown>;
/**
* Manages secret providers and creates template sources for them.
*/
export declare class SecretManager {
private providers;
/**
* Register a secret provider.
* @param name Provider name (e.g., 'vault', 'op')
* @param provider The provider instance
*/
register(name: string, provider: AbstractSecretProvider): void;
/**
* Get a registered provider by name.
* @param name Provider name
* @returns The provider instance or undefined if not found
*/
get(name: string): AbstractSecretProvider | undefined;
/**
* Check if a provider is registered.
* @param name Provider name
*/
has(name: string): boolean;
/**
* Get all registered provider names.
*/
getProviderNames(): string[];
/**
* Connect all registered providers.
*/
connectAll(): Promise<void>;
/**
* Disconnect all registered providers.
*/
disconnectAll(): Promise<void>;
/**
* Parse a secret reference string into a SecretReference object.
* Format: "path/to/secret#key" or "path/to/secret"
* @param refString The reference string to parse
*/
parseReference(refString: string): SecretReference;
/**
* Create an async source function for use with TemplateExpander.
* @param providerName The name of the provider to use
* @returns An async function that resolves secrets
*/
createSource(providerName: string): AsyncSecretSource;
}