@@ -0,0 +1,65 @@
|
||||
"""Add durable, encrypted Cloud LLM Provider profiles."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision = "0007_llm_provider_management"
|
||||
down_revision = "0006_host_planner_transport"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.create_table(
|
||||
"cloud_llm_provider_profiles",
|
||||
sa.Column("id", sa.String(), primary_key=True),
|
||||
sa.Column("name", sa.String(), nullable=False),
|
||||
sa.Column("name_normalized", sa.String(), nullable=False),
|
||||
sa.Column("provider_type", sa.String(), nullable=False),
|
||||
sa.Column("model", sa.String(), nullable=False),
|
||||
sa.Column("base_url", sa.String(), nullable=True),
|
||||
sa.Column("timeout_seconds", sa.Float(), nullable=False),
|
||||
sa.Column("api_key_ciphertext", sa.Text(), nullable=False),
|
||||
sa.Column("key_last_rotated_at", sa.String(), nullable=False),
|
||||
sa.Column("enabled", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("revision", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("created_at", sa.String(), nullable=False),
|
||||
sa.Column("updated_at", sa.String(), nullable=False),
|
||||
sa.UniqueConstraint(
|
||||
"name_normalized", name="uq_cloud_llm_provider_profiles_name_normalized"
|
||||
),
|
||||
)
|
||||
op.create_index(
|
||||
"ix_cloud_llm_provider_profiles_enabled",
|
||||
"cloud_llm_provider_profiles",
|
||||
["enabled"],
|
||||
)
|
||||
op.create_table(
|
||||
"cloud_llm_provider_settings",
|
||||
sa.Column("id", sa.String(), primary_key=True),
|
||||
sa.Column(
|
||||
"active_profile_id",
|
||||
sa.String(),
|
||||
sa.ForeignKey("cloud_llm_provider_profiles.id"),
|
||||
nullable=True,
|
||||
),
|
||||
sa.Column("revision", sa.Integer(), nullable=False, server_default="1"),
|
||||
sa.Column("updated_at", sa.String(), nullable=False),
|
||||
)
|
||||
op.execute(
|
||||
"insert into cloud_llm_provider_settings "
|
||||
"(id, active_profile_id, revision, updated_at) values "
|
||||
"('global', null, 0, '1970-01-01T00:00:00+00:00')"
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_table("cloud_llm_provider_settings")
|
||||
op.drop_index(
|
||||
"ix_cloud_llm_provider_profiles_enabled",
|
||||
table_name="cloud_llm_provider_profiles",
|
||||
)
|
||||
op.drop_table("cloud_llm_provider_profiles")
|
||||
Reference in New Issue
Block a user