CREATE TABLE alembic_version ( version_num VARCHAR(32) NOT NULL, CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num) ) CREATE TABLE budget_policies ( budget_policy_id VARCHAR(36) NOT NULL, budget_unit VARCHAR(32) NOT NULL, budget_amount FLOAT NOT NULL, duration_unit VARCHAR(32) NOT NULL, duration_value INTEGER NOT NULL, target_scope VARCHAR(32) NOT NULL, budget_action VARCHAR(32) NOT NULL, created_by VARCHAR(255), created_at BIGINT NOT NULL, last_updated_by VARCHAR(255), last_updated_at BIGINT NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT budget_policies_pk PRIMARY KEY (budget_policy_id) ) CREATE TABLE entity_associations ( association_id VARCHAR(36) NOT NULL, source_type VARCHAR(36) NOT NULL, source_id VARCHAR(36) NOT NULL, destination_type VARCHAR(36) NOT NULL, destination_id VARCHAR(36) NOT NULL, created_time BIGINT, CONSTRAINT entity_associations_pk PRIMARY KEY (source_type, source_id, destination_type, destination_id) ) CREATE TABLE evaluation_datasets ( dataset_id VARCHAR(36) NOT NULL, name VARCHAR(255) NOT NULL, schema TEXT, profile TEXT, digest VARCHAR(64), created_time BIGINT, last_update_time BIGINT, created_by VARCHAR(255), last_updated_by VARCHAR(255), workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT evaluation_datasets_pk PRIMARY KEY (dataset_id) ) CREATE TABLE experiments ( experiment_id INTEGER NOT NULL, name VARCHAR(256) NOT NULL, artifact_location VARCHAR(256), lifecycle_stage VARCHAR(32), creation_time BIGINT, last_update_time BIGINT, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT experiment_pk PRIMARY KEY (experiment_id), CONSTRAINT uq_experiments_workspace_name UNIQUE (workspace, name), CONSTRAINT experiments_lifecycle_stage CHECK (lifecycle_stage IN ('active', 'deleted')) ) CREATE TABLE input_tags ( input_uuid VARCHAR(36) NOT NULL, name VARCHAR(255) NOT NULL, value VARCHAR(500) NOT NULL, CONSTRAINT input_tags_pk PRIMARY KEY (input_uuid, name) ) CREATE TABLE inputs ( input_uuid VARCHAR(36) NOT NULL, source_type VARCHAR(36) NOT NULL, source_id VARCHAR(36) NOT NULL, destination_type VARCHAR(36) NOT NULL, destination_id VARCHAR(36) NOT NULL, step BIGINT DEFAULT '0' NOT NULL, CONSTRAINT inputs_pk PRIMARY KEY (source_type, source_id, destination_type, destination_id) ) CREATE TABLE jobs ( id VARCHAR(36) NOT NULL, creation_time BIGINT NOT NULL, job_name VARCHAR(500) NOT NULL, params TEXT NOT NULL, timeout FLOAT, status INTEGER NOT NULL, result TEXT, retry_count INTEGER NOT NULL, last_update_time BIGINT NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, status_details JSON, CONSTRAINT jobs_pk PRIMARY KEY (id) ) CREATE TABLE registered_models ( name VARCHAR(256) NOT NULL, creation_time BIGINT, last_updated_time BIGINT, description VARCHAR(5000), workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT registered_model_pk PRIMARY KEY (workspace, name) ) CREATE TABLE secrets ( secret_id VARCHAR(36) NOT NULL, secret_name VARCHAR(255) NOT NULL, encrypted_value BLOB NOT NULL, wrapped_dek BLOB NOT NULL, kek_version INTEGER NOT NULL, masked_value VARCHAR(500) NOT NULL, provider VARCHAR(64), auth_config TEXT, description TEXT, created_by VARCHAR(255), created_at BIGINT NOT NULL, last_updated_by VARCHAR(255), last_updated_at BIGINT NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT secrets_pk PRIMARY KEY (secret_id), CONSTRAINT uq_secrets_workspace_secret_name UNIQUE (workspace, secret_name) ) CREATE TABLE webhooks ( webhook_id VARCHAR(256) NOT NULL, name VARCHAR(256) NOT NULL, description VARCHAR(1000), url VARCHAR(500) NOT NULL, status VARCHAR(20) DEFAULT 'ACTIVE' NOT NULL, secret VARCHAR(1000), creation_timestamp BIGINT, last_updated_timestamp BIGINT, deleted_timestamp BIGINT, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT webhook_pk PRIMARY KEY (webhook_id) ) CREATE TABLE workspaces ( name VARCHAR(63) NOT NULL, description TEXT, default_artifact_root TEXT, trace_archival_location TEXT, trace_archival_retention VARCHAR(32), CONSTRAINT workspaces_pk PRIMARY KEY (name) ) CREATE TABLE datasets ( dataset_uuid VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, name VARCHAR(500) NOT NULL, digest VARCHAR(36) NOT NULL, dataset_source_type VARCHAR(36) NOT NULL, dataset_source TEXT NOT NULL, dataset_schema TEXT, dataset_profile TEXT, CONSTRAINT dataset_pk PRIMARY KEY (experiment_id, name, digest), CONSTRAINT fk_datasets_experiment_id_experiments FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE ) CREATE TABLE endpoints ( endpoint_id VARCHAR(36) NOT NULL, name VARCHAR(255), created_by VARCHAR(255), created_at BIGINT NOT NULL, last_updated_by VARCHAR(255), last_updated_at BIGINT NOT NULL, routing_strategy VARCHAR(64), fallback_config_json TEXT, experiment_id INTEGER, usage_tracking BOOLEAN DEFAULT '0' NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT endpoints_pk PRIMARY KEY (endpoint_id), CONSTRAINT fk_endpoints_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE SET NULL, CONSTRAINT uq_endpoints_workspace_name UNIQUE (workspace, name) ) CREATE TABLE evaluation_dataset_records ( dataset_record_id VARCHAR(36) NOT NULL, dataset_id VARCHAR(36) NOT NULL, inputs JSON NOT NULL, expectations JSON, tags JSON, source JSON, source_id VARCHAR(36), source_type VARCHAR(255), created_time BIGINT, last_update_time BIGINT, created_by VARCHAR(255), last_updated_by VARCHAR(255), input_hash VARCHAR(64) NOT NULL, outputs JSON, CONSTRAINT evaluation_dataset_records_pk PRIMARY KEY (dataset_record_id), CONSTRAINT fk_evaluation_dataset_records_dataset_id FOREIGN KEY(dataset_id) REFERENCES evaluation_datasets (dataset_id) ON DELETE CASCADE, CONSTRAINT unique_dataset_input UNIQUE (dataset_id, input_hash) ) CREATE TABLE evaluation_dataset_tags ( dataset_id VARCHAR(36) NOT NULL, key VARCHAR(255) NOT NULL, value VARCHAR(5000), CONSTRAINT evaluation_dataset_tags_pk PRIMARY KEY (dataset_id, key), CONSTRAINT fk_evaluation_dataset_tags_dataset_id FOREIGN KEY(dataset_id) REFERENCES evaluation_datasets (dataset_id) ON DELETE CASCADE ) CREATE TABLE experiment_tags ( key VARCHAR(250) NOT NULL, value VARCHAR(5000), experiment_id INTEGER NOT NULL, CONSTRAINT experiment_tag_pk PRIMARY KEY (key, experiment_id), FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ) CREATE TABLE label_schemas ( schema_id VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, name VARCHAR(250) NOT NULL, type VARCHAR(16) NOT NULL, instruction TEXT, enable_comment BOOLEAN DEFAULT '0' NOT NULL, input_type VARCHAR(32) NOT NULL, input_config TEXT NOT NULL, created_by VARCHAR(255), created_time BIGINT NOT NULL, last_update_time BIGINT NOT NULL, is_default BOOLEAN DEFAULT 0 NOT NULL, CONSTRAINT label_schemas_pk PRIMARY KEY (schema_id), CONSTRAINT fk_label_schemas_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE, CONSTRAINT uq_label_schemas_exp_name UNIQUE (experiment_id, name) ) CREATE TABLE logged_models ( model_id VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, name VARCHAR(500) NOT NULL, artifact_location VARCHAR(1000) NOT NULL, creation_timestamp_ms BIGINT NOT NULL, last_updated_timestamp_ms BIGINT NOT NULL, status INTEGER NOT NULL, lifecycle_stage VARCHAR(32), model_type VARCHAR(500), source_run_id VARCHAR(32), status_message VARCHAR(1000), CONSTRAINT logged_models_pk PRIMARY KEY (model_id), CONSTRAINT fk_logged_models_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE, CONSTRAINT logged_models_lifecycle_stage_check CHECK (lifecycle_stage IN ('active', 'deleted')) ) CREATE TABLE model_definitions ( model_definition_id VARCHAR(36) NOT NULL, name VARCHAR(255) NOT NULL, secret_id VARCHAR(36), provider VARCHAR(64) NOT NULL, model_name VARCHAR(256) NOT NULL, created_by VARCHAR(255), created_at BIGINT NOT NULL, last_updated_by VARCHAR(255), last_updated_at BIGINT NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT model_definitions_pk PRIMARY KEY (model_definition_id), CONSTRAINT fk_model_definitions_secret_id FOREIGN KEY(secret_id) REFERENCES secrets (secret_id) ON DELETE SET NULL, CONSTRAINT uq_model_definitions_workspace_name UNIQUE (workspace, name) ) CREATE TABLE model_versions ( name VARCHAR(256) NOT NULL, version INTEGER NOT NULL, creation_time BIGINT, last_updated_time BIGINT, description VARCHAR(5000), user_id VARCHAR(256), current_stage VARCHAR(20), source VARCHAR(500), run_id VARCHAR(32), status VARCHAR(20), status_message VARCHAR(500), run_link VARCHAR(500), storage_location VARCHAR(500), workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT model_version_pk PRIMARY KEY (workspace, name, version), CONSTRAINT fk_model_versions_registered_models FOREIGN KEY(workspace, name) REFERENCES registered_models (workspace, name) ON UPDATE CASCADE ) CREATE TABLE registered_model_aliases ( alias VARCHAR(256) NOT NULL, version INTEGER NOT NULL, name VARCHAR(256) NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT registered_model_alias_pk PRIMARY KEY (workspace, name, alias), CONSTRAINT fk_registered_model_aliases_registered_models FOREIGN KEY(workspace, name) REFERENCES registered_models (workspace, name) ON DELETE CASCADE ON UPDATE CASCADE ) CREATE TABLE registered_model_tags ( key VARCHAR(250) NOT NULL, value VARCHAR(5000), name VARCHAR(256) NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT registered_model_tag_pk PRIMARY KEY (workspace, key, name), CONSTRAINT fk_registered_model_tags_registered_models FOREIGN KEY(workspace, name) REFERENCES registered_models (workspace, name) ON UPDATE CASCADE ) CREATE TABLE review_queues ( queue_id VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, name VARCHAR(250) NOT NULL, queue_type VARCHAR(16) NOT NULL, created_by VARCHAR(255), creation_time_ms BIGINT NOT NULL, last_update_time_ms BIGINT NOT NULL, name_key VARCHAR(250) NOT NULL, CONSTRAINT review_queues_pk PRIMARY KEY (queue_id), CONSTRAINT fk_review_queues_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE, CONSTRAINT uq_review_queues_experiment_name_key UNIQUE (experiment_id, name_key) ) CREATE TABLE runs ( run_uuid VARCHAR(32) NOT NULL, name VARCHAR(250), source_type VARCHAR(20), source_name VARCHAR(500), entry_point_name VARCHAR(50), user_id VARCHAR(256), status VARCHAR(9), start_time BIGINT, end_time BIGINT, source_version VARCHAR(50), lifecycle_stage VARCHAR(20), artifact_uri VARCHAR(200), experiment_id INTEGER, deleted_time BIGINT, CONSTRAINT run_pk PRIMARY KEY (run_uuid), FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), CONSTRAINT runs_lifecycle_stage CHECK (lifecycle_stage IN ('active', 'deleted')), CONSTRAINT source_type CHECK (source_type IN ('NOTEBOOK', 'JOB', 'LOCAL', 'UNKNOWN', 'PROJECT')), CHECK (status IN ('SCHEDULED', 'FAILED', 'FINISHED', 'RUNNING', 'KILLED')) ) CREATE TABLE scorers ( experiment_id INTEGER NOT NULL, scorer_name VARCHAR(256) NOT NULL, scorer_id VARCHAR(36) NOT NULL, CONSTRAINT scorer_pk PRIMARY KEY (scorer_id), CONSTRAINT fk_scorers_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE ) CREATE TABLE trace_info ( request_id VARCHAR(50) NOT NULL, experiment_id INTEGER NOT NULL, timestamp_ms BIGINT NOT NULL, execution_time_ms BIGINT, status VARCHAR(50) NOT NULL, client_request_id VARCHAR(50), request_preview VARCHAR(1000), response_preview VARCHAR(1000), db_payload_generation INTEGER DEFAULT '0' NOT NULL, CONSTRAINT trace_info_pk PRIMARY KEY (request_id), CONSTRAINT fk_trace_info_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ) CREATE TABLE webhook_events ( webhook_id VARCHAR(256) NOT NULL, entity VARCHAR(50) NOT NULL, action VARCHAR(50) NOT NULL, CONSTRAINT webhook_event_pk PRIMARY KEY (webhook_id, entity, action), FOREIGN KEY(webhook_id) REFERENCES webhooks (webhook_id) ON DELETE CASCADE ) CREATE TABLE assessments ( assessment_id VARCHAR(50) NOT NULL, trace_id VARCHAR(50) NOT NULL, name VARCHAR(250) NOT NULL, assessment_type VARCHAR(20) NOT NULL, value TEXT NOT NULL, error TEXT, created_timestamp BIGINT NOT NULL, last_updated_timestamp BIGINT NOT NULL, source_type VARCHAR(50) NOT NULL, source_id VARCHAR(250), run_id VARCHAR(32), span_id VARCHAR(50), rationale TEXT, overrides VARCHAR(50), valid BOOLEAN NOT NULL, assessment_metadata TEXT, CONSTRAINT assessments_pk PRIMARY KEY (assessment_id), CONSTRAINT fk_assessments_trace_id FOREIGN KEY(trace_id) REFERENCES trace_info (request_id) ON DELETE CASCADE ) CREATE TABLE endpoint_bindings ( endpoint_id VARCHAR(36) NOT NULL, resource_type VARCHAR(50) NOT NULL, resource_id VARCHAR(255) NOT NULL, created_at BIGINT NOT NULL, created_by VARCHAR(255), last_updated_at BIGINT NOT NULL, last_updated_by VARCHAR(255), display_name VARCHAR(255), CONSTRAINT endpoint_bindings_pk PRIMARY KEY (endpoint_id, resource_type, resource_id), CONSTRAINT fk_endpoint_bindings_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE ) CREATE TABLE endpoint_model_mappings ( mapping_id VARCHAR(36) NOT NULL, endpoint_id VARCHAR(36) NOT NULL, model_definition_id VARCHAR(36) NOT NULL, weight FLOAT NOT NULL, created_by VARCHAR(255), created_at BIGINT NOT NULL, linkage_type VARCHAR(64) DEFAULT 'PRIMARY' NOT NULL, fallback_order INTEGER, CONSTRAINT endpoint_model_mappings_pk PRIMARY KEY (mapping_id), CONSTRAINT fk_endpoint_model_mappings_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE, CONSTRAINT fk_endpoint_model_mappings_model_definition_id FOREIGN KEY(model_definition_id) REFERENCES model_definitions (model_definition_id) ) CREATE TABLE endpoint_tags ( key VARCHAR(250) NOT NULL, value VARCHAR(5000), endpoint_id VARCHAR(36) NOT NULL, CONSTRAINT endpoint_tag_pk PRIMARY KEY (key, endpoint_id), CONSTRAINT fk_endpoint_tags_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE ) CREATE TABLE issues ( issue_id VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, name VARCHAR(250) NOT NULL, description TEXT NOT NULL, status VARCHAR(50) NOT NULL, severity VARCHAR(50), root_causes TEXT, source_run_id VARCHAR(32), categories TEXT, created_timestamp BIGINT NOT NULL, last_updated_timestamp BIGINT NOT NULL, created_by VARCHAR(255), CONSTRAINT issues_pk PRIMARY KEY (issue_id), CONSTRAINT fk_issues_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE, CONSTRAINT fk_issues_source_run_id FOREIGN KEY(source_run_id) REFERENCES runs (run_uuid) ON DELETE SET NULL ) CREATE TABLE latest_metrics ( key VARCHAR(250) NOT NULL, value FLOAT NOT NULL, timestamp BIGINT, step BIGINT NOT NULL, is_nan BOOLEAN NOT NULL, run_uuid VARCHAR(32) NOT NULL, CONSTRAINT latest_metric_pk PRIMARY KEY (key, run_uuid), FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid), CHECK (is_nan IN (0, 1)) ) CREATE TABLE logged_model_metrics ( model_id VARCHAR(36) NOT NULL, metric_name VARCHAR(500) NOT NULL, metric_timestamp_ms BIGINT NOT NULL, metric_step BIGINT NOT NULL, metric_value FLOAT, experiment_id INTEGER NOT NULL, run_id VARCHAR(32) NOT NULL, dataset_uuid VARCHAR(36), dataset_name VARCHAR(500), dataset_digest VARCHAR(36), CONSTRAINT logged_model_metrics_pk PRIMARY KEY (model_id, metric_name, metric_timestamp_ms, metric_step, run_id), CONSTRAINT fk_logged_model_metrics_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), CONSTRAINT fk_logged_model_metrics_model_id FOREIGN KEY(model_id) REFERENCES logged_models (model_id) ON DELETE CASCADE, CONSTRAINT fk_logged_model_metrics_run_id FOREIGN KEY(run_id) REFERENCES runs (run_uuid) ON DELETE CASCADE ) CREATE TABLE logged_model_params ( model_id VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, param_key VARCHAR(255) NOT NULL, param_value TEXT NOT NULL, CONSTRAINT logged_model_params_pk PRIMARY KEY (model_id, param_key), CONSTRAINT fk_logged_model_params_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), CONSTRAINT fk_logged_model_params_model_id FOREIGN KEY(model_id) REFERENCES logged_models (model_id) ON DELETE CASCADE ) CREATE TABLE logged_model_tags ( model_id VARCHAR(36) NOT NULL, experiment_id INTEGER NOT NULL, tag_key VARCHAR(255) NOT NULL, tag_value TEXT NOT NULL, CONSTRAINT logged_model_tags_pk PRIMARY KEY (model_id, tag_key), CONSTRAINT fk_logged_model_tags_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), CONSTRAINT fk_logged_model_tags_model_id FOREIGN KEY(model_id) REFERENCES logged_models (model_id) ON DELETE CASCADE ) CREATE TABLE metrics ( key VARCHAR(250) NOT NULL, value FLOAT NOT NULL, timestamp BIGINT NOT NULL, run_uuid VARCHAR(32) NOT NULL, step BIGINT DEFAULT '0' NOT NULL, is_nan BOOLEAN DEFAULT '0' NOT NULL, CONSTRAINT metric_pk PRIMARY KEY (key, timestamp, step, run_uuid, value, is_nan), FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid), CHECK (is_nan IN (0, 1)) ) CREATE TABLE model_version_tags ( key VARCHAR(250) NOT NULL, value TEXT, name VARCHAR(256) NOT NULL, version INTEGER NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT model_version_tag_pk PRIMARY KEY (workspace, key, name, version), CONSTRAINT fk_model_version_tags_model_versions FOREIGN KEY(workspace, name, version) REFERENCES model_versions (workspace, name, version) ON UPDATE CASCADE ) CREATE TABLE online_scoring_configs ( online_scoring_config_id VARCHAR(36) NOT NULL, scorer_id VARCHAR(36) NOT NULL, sample_rate FLOAT NOT NULL, experiment_id INTEGER NOT NULL, filter_string TEXT, CONSTRAINT online_scoring_config_pk PRIMARY KEY (online_scoring_config_id), CONSTRAINT fk_online_scoring_configs_scorer_id FOREIGN KEY(scorer_id) REFERENCES scorers (scorer_id) ON DELETE CASCADE, CONSTRAINT fk_online_scoring_configs_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ) CREATE TABLE params ( key VARCHAR(250) NOT NULL, value VARCHAR(8000) NOT NULL, run_uuid VARCHAR(32) NOT NULL, CONSTRAINT param_pk PRIMARY KEY (key, run_uuid), FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid) ) CREATE TABLE review_queue_items ( queue_id VARCHAR(36) NOT NULL, item_type VARCHAR(16) NOT NULL, item_id VARCHAR(50) NOT NULL, status VARCHAR(16) NOT NULL, completed_by VARCHAR(250), completed_time_ms BIGINT, creation_time_ms BIGINT NOT NULL, last_update_time_ms BIGINT NOT NULL, CONSTRAINT review_queue_items_pk PRIMARY KEY (queue_id, item_id), CONSTRAINT fk_review_queue_items_queue_id FOREIGN KEY(queue_id) REFERENCES review_queues (queue_id) ON DELETE CASCADE ) CREATE TABLE review_queue_label_schemas ( queue_id VARCHAR(36) NOT NULL, schema_id VARCHAR(36) NOT NULL, CONSTRAINT review_queue_label_schemas_pk PRIMARY KEY (queue_id, schema_id), CONSTRAINT fk_review_queue_label_schemas_queue_id FOREIGN KEY(queue_id) REFERENCES review_queues (queue_id) ON DELETE CASCADE ) CREATE TABLE review_queue_users ( queue_id VARCHAR(36) NOT NULL, user_id VARCHAR(250) NOT NULL, CONSTRAINT review_queue_users_pk PRIMARY KEY (queue_id, user_id), CONSTRAINT fk_review_queue_users_queue_id FOREIGN KEY(queue_id) REFERENCES review_queues (queue_id) ON DELETE CASCADE ) CREATE TABLE scorer_versions ( scorer_id VARCHAR(36) NOT NULL, scorer_version INTEGER NOT NULL, serialized_scorer TEXT NOT NULL, creation_time BIGINT, CONSTRAINT scorer_version_pk PRIMARY KEY (scorer_id, scorer_version), CONSTRAINT fk_scorer_versions_scorer_id FOREIGN KEY(scorer_id) REFERENCES scorers (scorer_id) ON DELETE CASCADE ) CREATE TABLE spans ( trace_id VARCHAR(50) NOT NULL, experiment_id INTEGER NOT NULL, span_id VARCHAR(50) NOT NULL, parent_span_id VARCHAR(50), name TEXT, type VARCHAR(500), status VARCHAR(50) NOT NULL, start_time_unix_nano BIGINT NOT NULL, end_time_unix_nano BIGINT, duration_ns BIGINT GENERATED ALWAYS AS (end_time_unix_nano - start_time_unix_nano) STORED, content TEXT NOT NULL, dimension_attributes JSON, CONSTRAINT spans_pk PRIMARY KEY (trace_id, span_id), CONSTRAINT fk_spans_trace_id FOREIGN KEY(trace_id) REFERENCES trace_info (request_id) ON DELETE CASCADE, CONSTRAINT fk_spans_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ) CREATE TABLE tags ( key VARCHAR(250) NOT NULL, value VARCHAR(8000), run_uuid VARCHAR(32) NOT NULL, CONSTRAINT tag_pk PRIMARY KEY (key, run_uuid), FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid) ) CREATE TABLE trace_metrics ( request_id VARCHAR(50) NOT NULL, key VARCHAR(250) NOT NULL, value FLOAT, CONSTRAINT trace_metrics_pk PRIMARY KEY (request_id, key), CONSTRAINT fk_trace_metrics_request_id FOREIGN KEY(request_id) REFERENCES trace_info (request_id) ON DELETE CASCADE ) CREATE TABLE trace_request_metadata ( key VARCHAR(250) NOT NULL, value VARCHAR(8000), request_id VARCHAR(50) NOT NULL, CONSTRAINT trace_request_metadata_pk PRIMARY KEY (key, request_id), CONSTRAINT fk_trace_request_metadata_request_id FOREIGN KEY(request_id) REFERENCES trace_info (request_id) ON DELETE CASCADE ) CREATE TABLE trace_tags ( key VARCHAR(250) NOT NULL, value VARCHAR(8000), request_id VARCHAR(50) NOT NULL, CONSTRAINT trace_tag_pk PRIMARY KEY (key, request_id), CONSTRAINT fk_trace_tags_request_id FOREIGN KEY(request_id) REFERENCES trace_info (request_id) ON DELETE CASCADE ) CREATE TABLE guardrails ( guardrail_id VARCHAR(36) NOT NULL, name VARCHAR(255) NOT NULL, scorer_id VARCHAR(36) NOT NULL, scorer_version INTEGER NOT NULL, stage VARCHAR(32) NOT NULL, action VARCHAR(32) NOT NULL, action_endpoint_id VARCHAR(36), created_by VARCHAR(255), created_at BIGINT NOT NULL, last_updated_by VARCHAR(255), last_updated_at BIGINT NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT guardrails_pk PRIMARY KEY (guardrail_id), CONSTRAINT fk_guardrails_scorer_version FOREIGN KEY(scorer_id, scorer_version) REFERENCES scorer_versions (scorer_id, scorer_version), CONSTRAINT fk_guardrails_action_endpoint_id FOREIGN KEY(action_endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE SET NULL ) CREATE TABLE span_metrics ( trace_id VARCHAR(50) NOT NULL, span_id VARCHAR(50) NOT NULL, key VARCHAR(250) NOT NULL, value FLOAT, CONSTRAINT span_metrics_pk PRIMARY KEY (trace_id, span_id, key), CONSTRAINT fk_span_metrics_span FOREIGN KEY(trace_id, span_id) REFERENCES spans (trace_id, span_id) ON DELETE CASCADE ) CREATE TABLE guardrail_configs ( endpoint_id VARCHAR(36) NOT NULL, guardrail_id VARCHAR(36) NOT NULL, execution_order INTEGER, created_by VARCHAR(255), created_at BIGINT NOT NULL, workspace VARCHAR(63) DEFAULT 'default' NOT NULL, CONSTRAINT guardrail_configs_pk PRIMARY KEY (endpoint_id, guardrail_id), CONSTRAINT fk_guardrail_configs_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE, CONSTRAINT fk_guardrail_configs_guardrail_id FOREIGN KEY(guardrail_id) REFERENCES guardrails (guardrail_id) ON DELETE CASCADE )