Files
story/migrations/000023_provider_dependency_health.up.sql
T

20 lines
738 B
SQL

CREATE TABLE provider_dependency_state (
tenant_id UUID NOT NULL REFERENCES tenant(id) ON DELETE CASCADE,
provider VARCHAR(64) NOT NULL,
status VARCHAR(16) NOT NULL DEFAULT 'AVAILABLE'
CHECK (status IN ('AVAILABLE', 'UNAVAILABLE')),
consecutive_failures INTEGER NOT NULL DEFAULT 0 CHECK (consecutive_failures >= 0),
open_until TIMESTAMPTZ,
last_error_code VARCHAR(64),
last_failure_at TIMESTAMPTZ,
last_success_at TIMESTAMPTZ,
row_version BIGINT NOT NULL DEFAULT 1,
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
PRIMARY KEY (tenant_id, provider)
);
CREATE INDEX idx_provider_dependency_unavailable
ON provider_dependency_state (updated_at DESC)
WHERE status = 'UNAVAILABLE';