UNPKG

@enspirit/emb

Version:

A replacement for our Makefile-for-monorepos

53 lines (52 loc) 1.71 kB
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; }