"""M5 capability serving, gateway and GPU scheduling. Revision ID: 20260825_0008 Revises: 20260825_0007 """ import sqlalchemy as sa from alembic import op revision = "20260825_0008" down_revision = "20260825_0007" branch_labels = None depends_on = None def _identity_columns() -> list[sa.Column]: return [sa.Column("id", sa.Uuid(), primary_key=True)] def _timestamps() -> list[sa.Column]: return [ sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.func.now()), ] def upgrade() -> None: op.create_table( "production_execution_approvals", *_identity_columns(), sa.Column("deployment_candidate_id", sa.Uuid(), nullable=False), sa.Column("capability_contract_id", sa.Uuid(), nullable=False), sa.Column("artifact_set_id", sa.Uuid(), nullable=False), sa.Column("runtime_profile_id", sa.Uuid(), nullable=False), sa.Column("compute_node_id", sa.Uuid(), nullable=False), sa.Column("deployment_config", sa.JSON(), nullable=False), sa.Column("supply_chain_evidence", sa.JSON(), nullable=False), sa.Column("evidence_fingerprint", sa.String(64), nullable=False), sa.Column("status", sa.String(32), nullable=False, server_default="approved"), sa.Column("approved_by", sa.String(255), nullable=False), sa.Column("reason", sa.Text(), nullable=False), sa.Column("approved_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("immutable_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("revoked_at", sa.DateTime(timezone=True)), sa.ForeignKeyConstraint(["deployment_candidate_id"], ["deployment_candidates.id"]), sa.ForeignKeyConstraint(["capability_contract_id"], ["capability_contracts.id"]), sa.ForeignKeyConstraint(["artifact_set_id"], ["artifact_sets.id"]), sa.ForeignKeyConstraint(["runtime_profile_id"], ["runtime_profiles.id"]), sa.ForeignKeyConstraint(["compute_node_id"], ["compute_nodes.id"]), sa.UniqueConstraint("evidence_fingerprint", name="uq_production_approval_fingerprint"), ) for column in ( "deployment_candidate_id", "capability_contract_id", "artifact_set_id", "runtime_profile_id", "compute_node_id", "status", ): op.create_index( f"ix_production_execution_approvals_{column}", "production_execution_approvals", [column], ) op.create_table( "embedding_spaces", *_identity_columns(), sa.Column("capability_contract_id", sa.Uuid(), nullable=False), sa.Column("artifact_set_id", sa.Uuid(), nullable=False), sa.Column("runtime_profile_id", sa.Uuid(), nullable=False), sa.Column("identity_digest", sa.String(64), nullable=False), sa.Column("dimension", sa.Integer(), nullable=False), sa.Column("normalized", sa.Boolean(), nullable=False), sa.Column("migration_class", sa.String(32), nullable=False), sa.Column("identity_facts", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("immutable_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.ForeignKeyConstraint(["capability_contract_id"], ["capability_contracts.id"]), sa.ForeignKeyConstraint(["artifact_set_id"], ["artifact_sets.id"]), sa.ForeignKeyConstraint(["runtime_profile_id"], ["runtime_profiles.id"]), sa.UniqueConstraint("identity_digest", name="uq_embedding_space_digest"), ) for column in ("capability_contract_id", "artifact_set_id", "runtime_profile_id"): op.create_index(f"ix_embedding_spaces_{column}", "embedding_spaces", [column]) op.create_table( "capability_deployments", *_identity_columns(), *_timestamps(), sa.Column("capability_contract_id", sa.Uuid(), nullable=False), sa.Column("deployment_candidate_id", sa.Uuid(), nullable=False), sa.Column("production_approval_id", sa.Uuid(), nullable=False), sa.Column("embedding_space_id", sa.Uuid(), nullable=False), sa.Column("artifact_set_id", sa.Uuid(), nullable=False), sa.Column("runtime_profile_id", sa.Uuid(), nullable=False), sa.Column("compute_node_id", sa.Uuid(), nullable=False), sa.Column("accelerator_id", sa.Uuid(), nullable=False), sa.Column("channel", sa.String(32), nullable=False, server_default="stable"), sa.Column("status", sa.String(32), nullable=False, server_default="approved"), sa.Column("production", sa.Boolean(), nullable=False, server_default=sa.false()), sa.Column("health_status", sa.String(32), nullable=False, server_default="ready_on_demand"), sa.Column("routing_weight", sa.Integer(), nullable=False, server_default="100"), sa.Column("fallback_policy", sa.JSON(), nullable=False), sa.Column("residency_policy", sa.String(32), nullable=False), sa.Column("keep_warm_seconds", sa.Integer(), nullable=False), sa.Column("max_concurrency", sa.Integer(), nullable=False), sa.Column("max_queue_depth", sa.Integer(), nullable=False), sa.Column("config_fingerprint", sa.String(64), nullable=False), sa.Column("provenance", sa.JSON(), nullable=False), sa.Column("rollback_policy", sa.JSON(), nullable=False), sa.Column("promoted_at", sa.DateTime(timezone=True)), sa.Column("draining_at", sa.DateTime(timezone=True)), sa.Column("deprecated_at", sa.DateTime(timezone=True)), sa.ForeignKeyConstraint(["capability_contract_id"], ["capability_contracts.id"]), sa.ForeignKeyConstraint(["deployment_candidate_id"], ["deployment_candidates.id"]), sa.ForeignKeyConstraint(["production_approval_id"], ["production_execution_approvals.id"]), sa.ForeignKeyConstraint(["embedding_space_id"], ["embedding_spaces.id"]), sa.ForeignKeyConstraint(["artifact_set_id"], ["artifact_sets.id"]), sa.ForeignKeyConstraint(["runtime_profile_id"], ["runtime_profiles.id"]), sa.ForeignKeyConstraint(["compute_node_id"], ["compute_nodes.id"]), sa.ForeignKeyConstraint(["accelerator_id"], ["accelerators.id"]), sa.UniqueConstraint("config_fingerprint", name="uq_capability_deployment_fingerprint"), ) for column in ( "capability_contract_id", "deployment_candidate_id", "production_approval_id", "embedding_space_id", "artifact_set_id", "runtime_profile_id", "compute_node_id", "accelerator_id", "channel", "status", ): op.create_index(f"ix_capability_deployments_{column}", "capability_deployments", [column]) op.create_index( "ix_capability_deployments_contract_channel_status", "capability_deployments", ["capability_contract_id", "channel", "status"], ) op.create_table( "capability_resource_envelopes", *_identity_columns(), *_timestamps(), sa.Column("capability_deployment_id", sa.Uuid(), nullable=False), sa.Column("runtime_probe_id", sa.Uuid(), nullable=False), sa.Column("accelerator_kind", sa.String(255), nullable=False), sa.Column("accelerator_uuid", sa.String(255), nullable=False), sa.Column("environment_fingerprint", sa.String(64), nullable=False), sa.Column("concurrency", sa.Integer(), nullable=False), sa.Column("batch_size", sa.Integer(), nullable=False), sa.Column("max_sequence_length", sa.Integer(), nullable=False), sa.Column("baseline_vram_bytes", sa.BigInteger(), nullable=False), sa.Column("resident_vram_bytes", sa.BigInteger(), nullable=False), sa.Column("peak_vram_bytes", sa.BigInteger(), nullable=False), sa.Column("required_vram_bytes", sa.BigInteger(), nullable=False), sa.Column("cold_load_time_ms", sa.Float(), nullable=False), sa.Column("inference_latency_ms", sa.Float(), nullable=False), sa.Column("evidence", sa.JSON(), nullable=False), sa.Column("stale", sa.Boolean(), nullable=False, server_default=sa.false()), sa.Column("stale_reason", sa.Text()), sa.Column("immutable_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.ForeignKeyConstraint(["capability_deployment_id"], ["capability_deployments.id"]), sa.ForeignKeyConstraint(["runtime_probe_id"], ["runtime_probes.id"]), sa.UniqueConstraint("capability_deployment_id", name="uq_capability_resource_envelope"), ) op.create_index( "ix_capability_resource_envelopes_capability_deployment_id", "capability_resource_envelopes", ["capability_deployment_id"], ) op.create_index( "ix_capability_resource_envelopes_runtime_probe_id", "capability_resource_envelopes", ["runtime_probe_id"], ) op.create_index( "ix_capability_resource_envelopes_environment_fingerprint", "capability_resource_envelopes", ["environment_fingerprint"], ) op.create_table( "service_clients", *_identity_columns(), *_timestamps(), sa.Column("name", sa.String(255), nullable=False, unique=True), sa.Column("status", sa.String(32), nullable=False, server_default="active"), sa.Column("allowed_capabilities", sa.JSON(), nullable=False), sa.Column("requests_per_minute", sa.Integer(), nullable=False), sa.Column("max_concurrent_requests", sa.Integer(), nullable=False), sa.Column("last_used_at", sa.DateTime(timezone=True)), sa.Column("disabled_at", sa.DateTime(timezone=True)), ) op.create_index("ix_service_clients_status", "service_clients", ["status"]) op.create_table( "service_credentials", *_identity_columns(), sa.Column("service_client_id", sa.Uuid(), nullable=False), sa.Column("secret_hash", sa.String(64), nullable=False, unique=True), sa.Column("secret_prefix", sa.String(16), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("expires_at", sa.DateTime(timezone=True)), sa.Column("last_used_at", sa.DateTime(timezone=True)), sa.Column("revoked_at", sa.DateTime(timezone=True)), sa.ForeignKeyConstraint(["service_client_id"], ["service_clients.id"], ondelete="CASCADE"), ) op.create_index( "ix_service_credentials_service_client_id", "service_credentials", ["service_client_id"] ) op.create_index( "uq_active_service_client_credential", "service_credentials", ["service_client_id"], unique=True, postgresql_where=sa.text("revoked_at IS NULL"), ) op.create_table( "residency_allocations", *_identity_columns(), *_timestamps(), sa.Column("capability_deployment_id", sa.Uuid(), nullable=False), sa.Column("compute_node_id", sa.Uuid(), nullable=False), sa.Column("accelerator_id", sa.Uuid(), nullable=False), sa.Column("state", sa.String(32), nullable=False, server_default="cold"), sa.Column("worker_instance_id", sa.String(255)), sa.Column("load_count", sa.Integer(), nullable=False, server_default="0"), sa.Column("active_requests", sa.Integer(), nullable=False, server_default="0"), sa.Column( "measured_resident_vram_bytes", sa.BigInteger(), nullable=False, server_default="0" ), sa.Column( "external_baseline_vram_bytes", sa.BigInteger(), nullable=False, server_default="0" ), sa.Column("health", sa.JSON(), nullable=False), sa.Column("resident_since", sa.DateTime(timezone=True)), sa.Column("last_used_at", sa.DateTime(timezone=True)), sa.Column("transition_started_at", sa.DateTime(timezone=True)), sa.Column("failure_code", sa.String(64)), sa.Column("failure_message", sa.Text()), sa.ForeignKeyConstraint(["capability_deployment_id"], ["capability_deployments.id"]), sa.ForeignKeyConstraint(["compute_node_id"], ["compute_nodes.id"]), sa.ForeignKeyConstraint(["accelerator_id"], ["accelerators.id"]), sa.UniqueConstraint("capability_deployment_id", name="uq_residency_deployment"), ) for column in ("capability_deployment_id", "compute_node_id", "accelerator_id", "state"): op.create_index(f"ix_residency_allocations_{column}", "residency_allocations", [column]) op.create_table( "serving_gpu_leases", *_identity_columns(), sa.Column("accelerator_id", sa.Uuid(), nullable=False), sa.Column("capability_deployment_id", sa.Uuid(), nullable=False), sa.Column("request_id", sa.Uuid()), sa.Column("reserved_vram_bytes", sa.BigInteger(), nullable=False), sa.Column("priority", sa.String(32), nullable=False), sa.Column("state", sa.String(32), nullable=False, server_default="pending"), sa.Column("owner", sa.String(255), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("expires_at", sa.DateTime(timezone=True), nullable=False), sa.Column("acquired_at", sa.DateTime(timezone=True)), sa.Column("heartbeat_at", sa.DateTime(timezone=True)), sa.Column("released_at", sa.DateTime(timezone=True)), sa.Column("failure_code", sa.String(64)), sa.ForeignKeyConstraint(["accelerator_id"], ["accelerators.id"]), sa.ForeignKeyConstraint(["capability_deployment_id"], ["capability_deployments.id"]), ) for column in ( "accelerator_id", "capability_deployment_id", "request_id", "state", "expires_at", ): op.create_index(f"ix_serving_gpu_leases_{column}", "serving_gpu_leases", [column]) op.create_table( "gateway_requests", *_identity_columns(), sa.Column("request_id", sa.Uuid(), nullable=False, unique=True), sa.Column("service_client_id", sa.Uuid()), sa.Column("capability_key", sa.String(128), nullable=False), sa.Column("capability_version", sa.Integer(), nullable=False), sa.Column("capability_deployment_id", sa.Uuid()), sa.Column("compute_node_id", sa.Uuid()), sa.Column("status", sa.String(32), nullable=False), sa.Column("priority", sa.String(32), nullable=False), sa.Column("input_sha256", sa.String(64), nullable=False), sa.Column("input_count", sa.Integer(), nullable=False), sa.Column("cold", sa.Boolean()), sa.Column("queue_time_ms", sa.Float()), sa.Column("load_time_ms", sa.Float()), sa.Column("inference_time_ms", sa.Float()), sa.Column("total_latency_ms", sa.Float()), sa.Column("failure_code", sa.String(64)), sa.Column("decision_evidence", sa.JSON(), nullable=False), sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now()), sa.Column("finished_at", sa.DateTime(timezone=True)), sa.ForeignKeyConstraint(["service_client_id"], ["service_clients.id"], ondelete="SET NULL"), sa.ForeignKeyConstraint( ["capability_deployment_id"], ["capability_deployments.id"], ondelete="SET NULL" ), sa.ForeignKeyConstraint(["compute_node_id"], ["compute_nodes.id"], ondelete="SET NULL"), ) for column in ( "request_id", "service_client_id", "capability_key", "capability_deployment_id", "compute_node_id", "status", "created_at", ): op.create_index(f"ix_gateway_requests_{column}", "gateway_requests", [column]) op.create_index( "ix_gateway_requests_client_created", "gateway_requests", ["service_client_id", "created_at"], ) op.create_table( "serving_jobs", *_identity_columns(), *_timestamps(), sa.Column("capability_deployment_id", sa.Uuid(), nullable=False), sa.Column("compute_node_id", sa.Uuid(), nullable=False), sa.Column("gateway_request_id", sa.Uuid()), sa.Column("operation", sa.String(32), nullable=False), sa.Column("status", sa.String(32), nullable=False, server_default="queued"), sa.Column("priority", sa.String(32), nullable=False), sa.Column("idempotency_key", sa.String(64), nullable=False), sa.Column("payload_reference", sa.String(128)), sa.Column("attempt_count", sa.Integer(), nullable=False, server_default="0"), sa.Column("lease_token_hash", sa.String(64)), sa.Column("lease_expires_at", sa.DateTime(timezone=True)), sa.Column("result_reference", sa.String(128)), sa.Column("result_summary", sa.JSON(), nullable=False), sa.Column("failure_code", sa.String(64)), sa.Column("failure_message", sa.Text()), sa.Column("started_at", sa.DateTime(timezone=True)), sa.Column("finished_at", sa.DateTime(timezone=True)), sa.ForeignKeyConstraint(["capability_deployment_id"], ["capability_deployments.id"]), sa.ForeignKeyConstraint(["compute_node_id"], ["compute_nodes.id"]), sa.ForeignKeyConstraint( ["gateway_request_id"], ["gateway_requests.id"], ondelete="SET NULL" ), sa.UniqueConstraint("idempotency_key", name="uq_serving_job_idempotency"), ) for column in ( "capability_deployment_id", "compute_node_id", "gateway_request_id", "operation", "status", ): op.create_index(f"ix_serving_jobs_{column}", "serving_jobs", [column]) op.create_index( "ix_serving_jobs_node_status_priority", "serving_jobs", ["compute_node_id", "status", "priority"], ) def downgrade() -> None: for table in ( "serving_jobs", "gateway_requests", "serving_gpu_leases", "residency_allocations", "service_credentials", "service_clients", "capability_resource_envelopes", "capability_deployments", "embedding_spaces", "production_execution_approvals", ): op.drop_table(table)