Table of Contents

Namespace Virtufin.Api.HealthChecks

Classes

ApiAuthHealthCheck

Fails readiness when API-key auth is disabled (no keys configured) outside Development. ApiKeyAuthOptions.Enabled => Keys.Count > 0 is a deliberate zero-config local-dev default -- but the same empty-config state reached by accident in a real deployment (a typo in ApiAuth__Keys__<name>, a missing secret) would otherwise silently run the sole externally-exposed gateway with no authentication at all, with nothing surfacing it beyond a per-request log line. This turns that into a blocked rollout/failed readiness probe instead.

DaprHealthCheck
GatewayCircuitBreakerHealthCheck

Health check that reports the gateway circuit breaker's state.

GatewayResiliencePipeline

Retry + circuit breaker for the gateway's direct gRPC calls to backend services — i.e. Gateway.Invoke and Gateway.InvokeJson, which route through GrpcChannelPool and never touch a Dapr sidecar.

This was previously called DaprResiliencePipeline, with DAPR_* environment variables, which was actively misleading: it has never wrapped a Dapr SDK call. Both call sites wrap ExecuteCallAsync on the reflection service. An architecture review initially read the pair as duplicating Dapr's own resiliency building block; they are in fact disjoint.

Resilience for the sidecar's calls out to Dapr components (statestore, pubsub) is declared separately, as a Dapr Resiliency resource in helm/templates/resiliency.yaml. Keep the two sets of numbers in step so both paths degrade the same way.

Constants are configurable via GatewayResilienceOptions (env-var-driven).

GrpcChannelPoolHealthCheck