namespace GoodBooks.PAY.PAYBLL.Vault { /// /// KV v2 secret reader with in-process caching. /// Only VaultService calls HashiCorp Vault — no other class should. /// public interface IVaultService { /// /// Reads a secret from Vault KV v2. Cached for 5 minutes sliding TTL. /// /// is the mount-relative path stored in /// MPAYGATEWAYCONFIG (e.g. "pay/razorpay/api_key"). The mount point "secret" is /// assumed by the implementation. /// /// Task GetSecretAsync(string vaultKeyPath, CancellationToken ct = default); } }