Environment-variable secret provider.
connect(): Promise<void>
Establishes any backing connection/client. No-op for stateless providers.
disconnect(): Promise<void>
Releases any backing connection/client. No-op for stateless providers.
get(name: string): Promise<string | null>
Reads the environment variable for a secret name.
isHealthy(): Promise<boolean>
Lifecycle truth (M90b): environment variables are process state, so the only honest reachability answer is readiness.
isReady(): boolean
Reports whether the provider is ready to serve reads.
set(_name: string,_value: string): Promise<void>
Always rejects — environment variables are immutable at runtime.
The rejection is branded with a 501 HTTP status hint (X20-2, M90f), so
an application running errorHandler answers the write attempt with
501 Not Implemented in its configured format rather than the masked
500 an unbranded rejection from this depth would produce. It
REJECTS — never throws synchronously — so a caller using .catch()
observes it either way.
SecretsService.rotate() reaches this same site by delegating to set,
which is what makes both public write operations answer identically.