Secret manager backed by a pluggable provider with a read-through cache.
The committed ISecretManager.get throws when a secret is absent; providers
signal absence with null, and this service performs the null → throw
conversion so the throw contract lives in one place.
SecretsService(provider: SecretProvider,options?: SecretsServiceOptions)
Parameters
optional
options: SecretsServiceOptions
Cache TTL and clock