UNPKG

@rytass/secret-adapter-vault

Version:

Rytass Secret Vault adapter

92 lines (91 loc) 2.74 kB
export interface VaultAuthMethodAccountPassword { account: string; password: string; } export type VaultAuthMethods = VaultAuthMethodAccountPassword; export interface VaultSecretOptions { host: string; auth: VaultAuthMethods; online?: boolean; tokenTTL?: number; onError?: (error: string) => void; onReady?: () => void; } export interface VaultSecretOnlineOptions { host: string; auth: VaultAuthMethods; online: true; tokenTTL?: number; onError?: (error: string) => void; onReady?: () => void; } export interface VaultSecretOfflineOptions { host: string; auth: VaultAuthMethods; online?: false; tokenTTL?: number; onError?: (error: string) => void; onReady?: () => void; } export type VaultGetType<O extends VaultSecretOptions, T> = O extends VaultSecretOnlineOptions ? Promise<T> : T; export type VaultSetType<O extends VaultSecretOptions> = O extends VaultSecretOnlineOptions ? Promise<void> : void; export type VaultDeleteType<O extends VaultSecretOptions> = O extends VaultSecretOnlineOptions ? Promise<void> : void; export declare enum VaultEvents { INITED = "INITED", READY = "READY", TOKEN_RENEWED = "TOKEN_RENEWED", TERMINATED = "TERMINATED", ERROR = "ERROR" } export declare enum VaultSecretState { INIT = "INIT", READY = "READY", TERMINATED = "TERMINATED" } declare enum VaultTokenType { SERVICE = "service", BATCH = "batch" } interface VaultAPIBaseInfo<T> { request_id: string; lease_id: string; renewable: boolean; lease_duration: number; data: T; wrap_info: null; warnings: string[] | null; } interface VaultTokenRetrieveAuthResponse { client_token: string; accessor: string; policies: string[]; token_policies: string[]; metadata: Record<string, string> | null; lease_duration: number; renewable: boolean; entity_id: string; token_type: VaultTokenType; orphan: boolean; mfa_requirement: null; num_uses: number; } export type VaultTokenRetrieveSuccessResponse = { auth: VaultTokenRetrieveAuthResponse; } & VaultAPIBaseInfo<null>; export interface VaultAPIFailedResponse { errors: string[]; } export type VaultTokenRetrieveResponse = VaultTokenRetrieveSuccessResponse | VaultAPIFailedResponse; interface VaultTokenGetSecretData { data: Record<string, unknown>; metadata: { created_time: string; custom_metadata: null; deletion_time: string; destroyed: boolean; version: number; }; } export type VaultGetSecretSuccessResponse = VaultAPIBaseInfo<VaultTokenGetSecretData>; export type VaultGetSecretResponse = VaultGetSecretSuccessResponse | VaultAPIFailedResponse; export {};