30 lines
1.5 KiB
SQL
30 lines
1.5 KiB
SQL
-- Migration 000011: Provider configurations stored in database
|
|
-- Replaces environment-variable-only provider config with DB-driven CRUD.
|
|
-- API keys are stored encrypted (AES-256-GCM via crypto.Encryptor).
|
|
|
|
CREATE TABLE provider_configs (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
tenant_id TEXT NOT NULL,
|
|
provider TEXT NOT NULL
|
|
CHECK (provider IN ('openai','anthropic','azure','mistral','ollama')),
|
|
display_name TEXT NOT NULL DEFAULT '',
|
|
api_key_enc TEXT NOT NULL DEFAULT '', -- AES-256-GCM encrypted, empty for Ollama
|
|
base_url TEXT NOT NULL DEFAULT '',
|
|
resource_name TEXT NOT NULL DEFAULT '', -- Azure only
|
|
deployment_id TEXT NOT NULL DEFAULT '', -- Azure only
|
|
api_version TEXT NOT NULL DEFAULT '2024-02-01',
|
|
timeout_sec INT NOT NULL DEFAULT 30,
|
|
max_conns INT NOT NULL DEFAULT 100,
|
|
model_patterns TEXT[] NOT NULL DEFAULT '{}', -- extra model name prefixes routed here
|
|
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
UNIQUE (tenant_id, provider)
|
|
);
|
|
|
|
CREATE INDEX idx_provider_configs_tenant ON provider_configs(tenant_id, is_active);
|
|
|
|
CREATE TRIGGER provider_configs_updated_at
|
|
BEFORE UPDATE ON provider_configs
|
|
FOR EACH ROW EXECUTE FUNCTION set_updated_at();
|