Skip to main content
fi-fhir docs

Contents

Operations Guide

Documentation for deploying and operating fi-fhir in production environments.

Contents

TaskDocument
Secure a deploymentProduction Hardening
Troubleshoot issuesOperations Runbook
Review the 1.0 support targetSupported 1.0 Baseline
Configure authenticated previewOperations Runbook
Monitor performanceObservability
Configure health checksHealth Endpoints

Deployment Options

Docker Compose (Development)

export FI_FHIR_GRAPHQL_BEARER_TOKEN="$(openssl rand -hex 32)"
docker compose up -d
unset FI_FHIR_GRAPHQL_BEARER_TOKEN

Compose deliberately has no default preview bearer. Generate a fresh local value as above; never commit or print it. Production deployments should mount a managed secret file instead.

Kubernetes (Production)

# Using Kustomize
kubectl apply -k deploy/kubernetes/overlays/production/

# Using Helm
helm install fi-fhir deploy/helm/fi-fhir/ -f values-prod.yaml

fi-fhir serve requires a deployment tenant, principal, integration:preview role, exact HTTP(S) origins, one bearer source, and an immutable same-tenant integration registry. Missing or inconsistent values fail startup closed. See Production Hardening.

Observability

Metrics

Prometheus metrics are exposed at /metrics:

workflow_events_processed_total
workflow_action_duration_seconds
workflow_action_errors_total
workflow_dlq_size
workflow_circuit_breaker_state

Tracing

OpenTelemetry tracing is configured via environment:

FI_FHIR_TRACING_ENABLED=true
OTEL_EXPORTER_OTLP_ENDPOINT=http://jaeger:4318

Logging

Structured JSON logs with trace correlation:

{
  "level": "info",
  "msg": "event processed",
  "event_id": "evt_abc123",
  "trace_id": "abc123def456",
  "span_id": "span789"
}

Health Endpoints

EndpointPurposeResponse
/healthLiveness{"status": "ok"}
/readyReadinessChecks dependencies
/metricsPrometheusMetrics in text format

See Also