latest_schema.sql
1 2 CREATE TABLE alembic_version ( 3 version_num VARCHAR(32) NOT NULL, 4 CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num) 5 ) 6 7 8 CREATE TABLE budget_policies ( 9 budget_policy_id VARCHAR(36) NOT NULL, 10 budget_unit VARCHAR(32) NOT NULL, 11 budget_amount FLOAT NOT NULL, 12 duration_unit VARCHAR(32) NOT NULL, 13 duration_value INTEGER NOT NULL, 14 target_scope VARCHAR(32) NOT NULL, 15 budget_action VARCHAR(32) NOT NULL, 16 created_by VARCHAR(255), 17 created_at BIGINT NOT NULL, 18 last_updated_by VARCHAR(255), 19 last_updated_at BIGINT NOT NULL, 20 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 21 CONSTRAINT budget_policies_pk PRIMARY KEY (budget_policy_id) 22 ) 23 24 25 CREATE TABLE entity_associations ( 26 association_id VARCHAR(36) NOT NULL, 27 source_type VARCHAR(36) NOT NULL, 28 source_id VARCHAR(36) NOT NULL, 29 destination_type VARCHAR(36) NOT NULL, 30 destination_id VARCHAR(36) NOT NULL, 31 created_time BIGINT, 32 CONSTRAINT entity_associations_pk PRIMARY KEY (source_type, source_id, destination_type, destination_id) 33 ) 34 35 36 CREATE TABLE evaluation_datasets ( 37 dataset_id VARCHAR(36) NOT NULL, 38 name VARCHAR(255) NOT NULL, 39 schema TEXT, 40 profile TEXT, 41 digest VARCHAR(64), 42 created_time BIGINT, 43 last_update_time BIGINT, 44 created_by VARCHAR(255), 45 last_updated_by VARCHAR(255), 46 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 47 CONSTRAINT evaluation_datasets_pk PRIMARY KEY (dataset_id) 48 ) 49 50 51 CREATE TABLE experiments ( 52 experiment_id INTEGER NOT NULL, 53 name VARCHAR(256) NOT NULL, 54 artifact_location VARCHAR(256), 55 lifecycle_stage VARCHAR(32), 56 creation_time BIGINT, 57 last_update_time BIGINT, 58 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 59 CONSTRAINT experiment_pk PRIMARY KEY (experiment_id), 60 CONSTRAINT uq_experiments_workspace_name UNIQUE (workspace, name), 61 CONSTRAINT experiments_lifecycle_stage CHECK (lifecycle_stage IN ('active', 'deleted')) 62 ) 63 64 65 CREATE TABLE input_tags ( 66 input_uuid VARCHAR(36) NOT NULL, 67 name VARCHAR(255) NOT NULL, 68 value VARCHAR(500) NOT NULL, 69 CONSTRAINT input_tags_pk PRIMARY KEY (input_uuid, name) 70 ) 71 72 73 CREATE TABLE inputs ( 74 input_uuid VARCHAR(36) NOT NULL, 75 source_type VARCHAR(36) NOT NULL, 76 source_id VARCHAR(36) NOT NULL, 77 destination_type VARCHAR(36) NOT NULL, 78 destination_id VARCHAR(36) NOT NULL, 79 step BIGINT DEFAULT '0' NOT NULL, 80 CONSTRAINT inputs_pk PRIMARY KEY (source_type, source_id, destination_type, destination_id) 81 ) 82 83 84 CREATE TABLE jobs ( 85 id VARCHAR(36) NOT NULL, 86 creation_time BIGINT NOT NULL, 87 job_name VARCHAR(500) NOT NULL, 88 params TEXT NOT NULL, 89 timeout FLOAT, 90 status INTEGER NOT NULL, 91 result TEXT, 92 retry_count INTEGER NOT NULL, 93 last_update_time BIGINT NOT NULL, 94 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 95 status_details JSON, 96 CONSTRAINT jobs_pk PRIMARY KEY (id) 97 ) 98 99 100 CREATE TABLE registered_models ( 101 name VARCHAR(256) NOT NULL, 102 creation_time BIGINT, 103 last_updated_time BIGINT, 104 description VARCHAR(5000), 105 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 106 CONSTRAINT registered_model_pk PRIMARY KEY (workspace, name) 107 ) 108 109 110 CREATE TABLE secrets ( 111 secret_id VARCHAR(36) NOT NULL, 112 secret_name VARCHAR(255) NOT NULL, 113 encrypted_value BLOB NOT NULL, 114 wrapped_dek BLOB NOT NULL, 115 kek_version INTEGER NOT NULL, 116 masked_value VARCHAR(500) NOT NULL, 117 provider VARCHAR(64), 118 auth_config TEXT, 119 description TEXT, 120 created_by VARCHAR(255), 121 created_at BIGINT NOT NULL, 122 last_updated_by VARCHAR(255), 123 last_updated_at BIGINT NOT NULL, 124 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 125 CONSTRAINT secrets_pk PRIMARY KEY (secret_id), 126 CONSTRAINT uq_secrets_workspace_secret_name UNIQUE (workspace, secret_name) 127 ) 128 129 130 CREATE TABLE webhooks ( 131 webhook_id VARCHAR(256) NOT NULL, 132 name VARCHAR(256) NOT NULL, 133 description VARCHAR(1000), 134 url VARCHAR(500) NOT NULL, 135 status VARCHAR(20) DEFAULT 'ACTIVE' NOT NULL, 136 secret VARCHAR(1000), 137 creation_timestamp BIGINT, 138 last_updated_timestamp BIGINT, 139 deleted_timestamp BIGINT, 140 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 141 CONSTRAINT webhook_pk PRIMARY KEY (webhook_id) 142 ) 143 144 145 CREATE TABLE workspaces ( 146 name VARCHAR(63) NOT NULL, 147 description TEXT, 148 default_artifact_root TEXT, 149 CONSTRAINT workspaces_pk PRIMARY KEY (name) 150 ) 151 152 153 CREATE TABLE datasets ( 154 dataset_uuid VARCHAR(36) NOT NULL, 155 experiment_id INTEGER NOT NULL, 156 name VARCHAR(500) NOT NULL, 157 digest VARCHAR(36) NOT NULL, 158 dataset_source_type VARCHAR(36) NOT NULL, 159 dataset_source TEXT NOT NULL, 160 dataset_schema TEXT, 161 dataset_profile TEXT, 162 CONSTRAINT dataset_pk PRIMARY KEY (experiment_id, name, digest), 163 CONSTRAINT fk_datasets_experiment_id_experiments FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE 164 ) 165 166 167 CREATE TABLE endpoints ( 168 endpoint_id VARCHAR(36) NOT NULL, 169 name VARCHAR(255), 170 created_by VARCHAR(255), 171 created_at BIGINT NOT NULL, 172 last_updated_by VARCHAR(255), 173 last_updated_at BIGINT NOT NULL, 174 routing_strategy VARCHAR(64), 175 fallback_config_json TEXT, 176 experiment_id INTEGER, 177 usage_tracking BOOLEAN DEFAULT '0' NOT NULL, 178 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 179 CONSTRAINT endpoints_pk PRIMARY KEY (endpoint_id), 180 CONSTRAINT fk_endpoints_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE SET NULL, 181 CONSTRAINT uq_endpoints_workspace_name UNIQUE (workspace, name) 182 ) 183 184 185 CREATE TABLE evaluation_dataset_records ( 186 dataset_record_id VARCHAR(36) NOT NULL, 187 dataset_id VARCHAR(36) NOT NULL, 188 inputs JSON NOT NULL, 189 expectations JSON, 190 tags JSON, 191 source JSON, 192 source_id VARCHAR(36), 193 source_type VARCHAR(255), 194 created_time BIGINT, 195 last_update_time BIGINT, 196 created_by VARCHAR(255), 197 last_updated_by VARCHAR(255), 198 input_hash VARCHAR(64) NOT NULL, 199 outputs JSON, 200 CONSTRAINT evaluation_dataset_records_pk PRIMARY KEY (dataset_record_id), 201 CONSTRAINT fk_evaluation_dataset_records_dataset_id FOREIGN KEY(dataset_id) REFERENCES evaluation_datasets (dataset_id) ON DELETE CASCADE, 202 CONSTRAINT unique_dataset_input UNIQUE (dataset_id, input_hash) 203 ) 204 205 206 CREATE TABLE evaluation_dataset_tags ( 207 dataset_id VARCHAR(36) NOT NULL, 208 key VARCHAR(255) NOT NULL, 209 value VARCHAR(5000), 210 CONSTRAINT evaluation_dataset_tags_pk PRIMARY KEY (dataset_id, key), 211 CONSTRAINT fk_evaluation_dataset_tags_dataset_id FOREIGN KEY(dataset_id) REFERENCES evaluation_datasets (dataset_id) ON DELETE CASCADE 212 ) 213 214 215 CREATE TABLE experiment_tags ( 216 key VARCHAR(250) NOT NULL, 217 value VARCHAR(5000), 218 experiment_id INTEGER NOT NULL, 219 CONSTRAINT experiment_tag_pk PRIMARY KEY (key, experiment_id), 220 FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) 221 ) 222 223 224 CREATE TABLE logged_models ( 225 model_id VARCHAR(36) NOT NULL, 226 experiment_id INTEGER NOT NULL, 227 name VARCHAR(500) NOT NULL, 228 artifact_location VARCHAR(1000) NOT NULL, 229 creation_timestamp_ms BIGINT NOT NULL, 230 last_updated_timestamp_ms BIGINT NOT NULL, 231 status INTEGER NOT NULL, 232 lifecycle_stage VARCHAR(32), 233 model_type VARCHAR(500), 234 source_run_id VARCHAR(32), 235 status_message VARCHAR(1000), 236 CONSTRAINT logged_models_pk PRIMARY KEY (model_id), 237 CONSTRAINT fk_logged_models_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE, 238 CONSTRAINT logged_models_lifecycle_stage_check CHECK (lifecycle_stage IN ('active', 'deleted')) 239 ) 240 241 242 CREATE TABLE model_definitions ( 243 model_definition_id VARCHAR(36) NOT NULL, 244 name VARCHAR(255) NOT NULL, 245 secret_id VARCHAR(36), 246 provider VARCHAR(64) NOT NULL, 247 model_name VARCHAR(256) NOT NULL, 248 created_by VARCHAR(255), 249 created_at BIGINT NOT NULL, 250 last_updated_by VARCHAR(255), 251 last_updated_at BIGINT NOT NULL, 252 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 253 CONSTRAINT model_definitions_pk PRIMARY KEY (model_definition_id), 254 CONSTRAINT fk_model_definitions_secret_id FOREIGN KEY(secret_id) REFERENCES secrets (secret_id) ON DELETE SET NULL, 255 CONSTRAINT uq_model_definitions_workspace_name UNIQUE (workspace, name) 256 ) 257 258 259 CREATE TABLE model_versions ( 260 name VARCHAR(256) NOT NULL, 261 version INTEGER NOT NULL, 262 creation_time BIGINT, 263 last_updated_time BIGINT, 264 description VARCHAR(5000), 265 user_id VARCHAR(256), 266 current_stage VARCHAR(20), 267 source VARCHAR(500), 268 run_id VARCHAR(32), 269 status VARCHAR(20), 270 status_message VARCHAR(500), 271 run_link VARCHAR(500), 272 storage_location VARCHAR(500), 273 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 274 CONSTRAINT model_version_pk PRIMARY KEY (workspace, name, version), 275 CONSTRAINT fk_model_versions_registered_models FOREIGN KEY(workspace, name) REFERENCES registered_models (workspace, name) ON UPDATE CASCADE 276 ) 277 278 279 CREATE TABLE registered_model_aliases ( 280 alias VARCHAR(256) NOT NULL, 281 version INTEGER NOT NULL, 282 name VARCHAR(256) NOT NULL, 283 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 284 CONSTRAINT registered_model_alias_pk PRIMARY KEY (workspace, name, alias), 285 CONSTRAINT fk_registered_model_aliases_registered_models FOREIGN KEY(workspace, name) REFERENCES registered_models (workspace, name) ON DELETE CASCADE ON UPDATE CASCADE 286 ) 287 288 289 CREATE TABLE registered_model_tags ( 290 key VARCHAR(250) NOT NULL, 291 value VARCHAR(5000), 292 name VARCHAR(256) NOT NULL, 293 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 294 CONSTRAINT registered_model_tag_pk PRIMARY KEY (workspace, key, name), 295 CONSTRAINT fk_registered_model_tags_registered_models FOREIGN KEY(workspace, name) REFERENCES registered_models (workspace, name) ON UPDATE CASCADE 296 ) 297 298 299 CREATE TABLE runs ( 300 run_uuid VARCHAR(32) NOT NULL, 301 name VARCHAR(250), 302 source_type VARCHAR(20), 303 source_name VARCHAR(500), 304 entry_point_name VARCHAR(50), 305 user_id VARCHAR(256), 306 status VARCHAR(9), 307 start_time BIGINT, 308 end_time BIGINT, 309 source_version VARCHAR(50), 310 lifecycle_stage VARCHAR(20), 311 artifact_uri VARCHAR(200), 312 experiment_id INTEGER, 313 deleted_time BIGINT, 314 CONSTRAINT run_pk PRIMARY KEY (run_uuid), 315 FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), 316 CONSTRAINT runs_lifecycle_stage CHECK (lifecycle_stage IN ('active', 'deleted')), 317 CONSTRAINT source_type CHECK (source_type IN ('NOTEBOOK', 'JOB', 'LOCAL', 'UNKNOWN', 'PROJECT')), 318 CHECK (status IN ('SCHEDULED', 'FAILED', 'FINISHED', 'RUNNING', 'KILLED')) 319 ) 320 321 322 CREATE TABLE scorers ( 323 experiment_id INTEGER NOT NULL, 324 scorer_name VARCHAR(256) NOT NULL, 325 scorer_id VARCHAR(36) NOT NULL, 326 CONSTRAINT scorer_pk PRIMARY KEY (scorer_id), 327 CONSTRAINT fk_scorers_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE 328 ) 329 330 331 CREATE TABLE trace_info ( 332 request_id VARCHAR(50) NOT NULL, 333 experiment_id INTEGER NOT NULL, 334 timestamp_ms BIGINT NOT NULL, 335 execution_time_ms BIGINT, 336 status VARCHAR(50) NOT NULL, 337 client_request_id VARCHAR(50), 338 request_preview VARCHAR(1000), 339 response_preview VARCHAR(1000), 340 CONSTRAINT trace_info_pk PRIMARY KEY (request_id), 341 CONSTRAINT fk_trace_info_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) 342 ) 343 344 345 CREATE TABLE webhook_events ( 346 webhook_id VARCHAR(256) NOT NULL, 347 entity VARCHAR(50) NOT NULL, 348 action VARCHAR(50) NOT NULL, 349 CONSTRAINT webhook_event_pk PRIMARY KEY (webhook_id, entity, action), 350 FOREIGN KEY(webhook_id) REFERENCES webhooks (webhook_id) ON DELETE CASCADE 351 ) 352 353 354 CREATE TABLE assessments ( 355 assessment_id VARCHAR(50) NOT NULL, 356 trace_id VARCHAR(50) NOT NULL, 357 name VARCHAR(250) NOT NULL, 358 assessment_type VARCHAR(20) NOT NULL, 359 value TEXT NOT NULL, 360 error TEXT, 361 created_timestamp BIGINT NOT NULL, 362 last_updated_timestamp BIGINT NOT NULL, 363 source_type VARCHAR(50) NOT NULL, 364 source_id VARCHAR(250), 365 run_id VARCHAR(32), 366 span_id VARCHAR(50), 367 rationale TEXT, 368 overrides VARCHAR(50), 369 valid BOOLEAN NOT NULL, 370 assessment_metadata TEXT, 371 CONSTRAINT assessments_pk PRIMARY KEY (assessment_id), 372 CONSTRAINT fk_assessments_trace_id FOREIGN KEY(trace_id) REFERENCES trace_info (request_id) ON DELETE CASCADE 373 ) 374 375 376 CREATE TABLE endpoint_bindings ( 377 endpoint_id VARCHAR(36) NOT NULL, 378 resource_type VARCHAR(50) NOT NULL, 379 resource_id VARCHAR(255) NOT NULL, 380 created_at BIGINT NOT NULL, 381 created_by VARCHAR(255), 382 last_updated_at BIGINT NOT NULL, 383 last_updated_by VARCHAR(255), 384 display_name VARCHAR(255), 385 CONSTRAINT endpoint_bindings_pk PRIMARY KEY (endpoint_id, resource_type, resource_id), 386 CONSTRAINT fk_endpoint_bindings_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE 387 ) 388 389 390 CREATE TABLE endpoint_model_mappings ( 391 mapping_id VARCHAR(36) NOT NULL, 392 endpoint_id VARCHAR(36) NOT NULL, 393 model_definition_id VARCHAR(36) NOT NULL, 394 weight FLOAT NOT NULL, 395 created_by VARCHAR(255), 396 created_at BIGINT NOT NULL, 397 linkage_type VARCHAR(64) DEFAULT 'PRIMARY' NOT NULL, 398 fallback_order INTEGER, 399 CONSTRAINT endpoint_model_mappings_pk PRIMARY KEY (mapping_id), 400 CONSTRAINT fk_endpoint_model_mappings_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE, 401 CONSTRAINT fk_endpoint_model_mappings_model_definition_id FOREIGN KEY(model_definition_id) REFERENCES model_definitions (model_definition_id) 402 ) 403 404 405 CREATE TABLE endpoint_tags ( 406 key VARCHAR(250) NOT NULL, 407 value VARCHAR(5000), 408 endpoint_id VARCHAR(36) NOT NULL, 409 CONSTRAINT endpoint_tag_pk PRIMARY KEY (key, endpoint_id), 410 CONSTRAINT fk_endpoint_tags_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE 411 ) 412 413 414 CREATE TABLE issues ( 415 issue_id VARCHAR(36) NOT NULL, 416 experiment_id INTEGER NOT NULL, 417 name VARCHAR(250) NOT NULL, 418 description TEXT NOT NULL, 419 status VARCHAR(50) NOT NULL, 420 severity VARCHAR(50), 421 root_causes TEXT, 422 source_run_id VARCHAR(32), 423 categories TEXT, 424 created_timestamp BIGINT NOT NULL, 425 last_updated_timestamp BIGINT NOT NULL, 426 created_by VARCHAR(255), 427 CONSTRAINT issues_pk PRIMARY KEY (issue_id), 428 CONSTRAINT fk_issues_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) ON DELETE CASCADE, 429 CONSTRAINT fk_issues_source_run_id FOREIGN KEY(source_run_id) REFERENCES runs (run_uuid) ON DELETE SET NULL 430 ) 431 432 433 CREATE TABLE latest_metrics ( 434 key VARCHAR(250) NOT NULL, 435 value FLOAT NOT NULL, 436 timestamp BIGINT, 437 step BIGINT NOT NULL, 438 is_nan BOOLEAN NOT NULL, 439 run_uuid VARCHAR(32) NOT NULL, 440 CONSTRAINT latest_metric_pk PRIMARY KEY (key, run_uuid), 441 FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid), 442 CHECK (is_nan IN (0, 1)) 443 ) 444 445 446 CREATE TABLE logged_model_metrics ( 447 model_id VARCHAR(36) NOT NULL, 448 metric_name VARCHAR(500) NOT NULL, 449 metric_timestamp_ms BIGINT NOT NULL, 450 metric_step BIGINT NOT NULL, 451 metric_value FLOAT, 452 experiment_id INTEGER NOT NULL, 453 run_id VARCHAR(32) NOT NULL, 454 dataset_uuid VARCHAR(36), 455 dataset_name VARCHAR(500), 456 dataset_digest VARCHAR(36), 457 CONSTRAINT logged_model_metrics_pk PRIMARY KEY (model_id, metric_name, metric_timestamp_ms, metric_step, run_id), 458 CONSTRAINT fk_logged_model_metrics_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), 459 CONSTRAINT fk_logged_model_metrics_model_id FOREIGN KEY(model_id) REFERENCES logged_models (model_id) ON DELETE CASCADE, 460 CONSTRAINT fk_logged_model_metrics_run_id FOREIGN KEY(run_id) REFERENCES runs (run_uuid) ON DELETE CASCADE 461 ) 462 463 464 CREATE TABLE logged_model_params ( 465 model_id VARCHAR(36) NOT NULL, 466 experiment_id INTEGER NOT NULL, 467 param_key VARCHAR(255) NOT NULL, 468 param_value TEXT NOT NULL, 469 CONSTRAINT logged_model_params_pk PRIMARY KEY (model_id, param_key), 470 CONSTRAINT fk_logged_model_params_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), 471 CONSTRAINT fk_logged_model_params_model_id FOREIGN KEY(model_id) REFERENCES logged_models (model_id) ON DELETE CASCADE 472 ) 473 474 475 CREATE TABLE logged_model_tags ( 476 model_id VARCHAR(36) NOT NULL, 477 experiment_id INTEGER NOT NULL, 478 tag_key VARCHAR(255) NOT NULL, 479 tag_value TEXT NOT NULL, 480 CONSTRAINT logged_model_tags_pk PRIMARY KEY (model_id, tag_key), 481 CONSTRAINT fk_logged_model_tags_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id), 482 CONSTRAINT fk_logged_model_tags_model_id FOREIGN KEY(model_id) REFERENCES logged_models (model_id) ON DELETE CASCADE 483 ) 484 485 486 CREATE TABLE metrics ( 487 key VARCHAR(250) NOT NULL, 488 value FLOAT NOT NULL, 489 timestamp BIGINT NOT NULL, 490 run_uuid VARCHAR(32) NOT NULL, 491 step BIGINT DEFAULT '0' NOT NULL, 492 is_nan BOOLEAN DEFAULT '0' NOT NULL, 493 CONSTRAINT metric_pk PRIMARY KEY (key, timestamp, step, run_uuid, value, is_nan), 494 FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid), 495 CHECK (is_nan IN (0, 1)) 496 ) 497 498 499 CREATE TABLE model_version_tags ( 500 key VARCHAR(250) NOT NULL, 501 value TEXT, 502 name VARCHAR(256) NOT NULL, 503 version INTEGER NOT NULL, 504 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 505 CONSTRAINT model_version_tag_pk PRIMARY KEY (workspace, key, name, version), 506 CONSTRAINT fk_model_version_tags_model_versions FOREIGN KEY(workspace, name, version) REFERENCES model_versions (workspace, name, version) ON UPDATE CASCADE 507 ) 508 509 510 CREATE TABLE online_scoring_configs ( 511 online_scoring_config_id VARCHAR(36) NOT NULL, 512 scorer_id VARCHAR(36) NOT NULL, 513 sample_rate FLOAT NOT NULL, 514 experiment_id INTEGER NOT NULL, 515 filter_string TEXT, 516 CONSTRAINT online_scoring_config_pk PRIMARY KEY (online_scoring_config_id), 517 CONSTRAINT fk_online_scoring_configs_scorer_id FOREIGN KEY(scorer_id) REFERENCES scorers (scorer_id) ON DELETE CASCADE, 518 CONSTRAINT fk_online_scoring_configs_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) 519 ) 520 521 522 CREATE TABLE params ( 523 key VARCHAR(250) NOT NULL, 524 value VARCHAR(8000) NOT NULL, 525 run_uuid VARCHAR(32) NOT NULL, 526 CONSTRAINT param_pk PRIMARY KEY (key, run_uuid), 527 FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid) 528 ) 529 530 531 CREATE TABLE scorer_versions ( 532 scorer_id VARCHAR(36) NOT NULL, 533 scorer_version INTEGER NOT NULL, 534 serialized_scorer TEXT NOT NULL, 535 creation_time BIGINT, 536 CONSTRAINT scorer_version_pk PRIMARY KEY (scorer_id, scorer_version), 537 CONSTRAINT fk_scorer_versions_scorer_id FOREIGN KEY(scorer_id) REFERENCES scorers (scorer_id) ON DELETE CASCADE 538 ) 539 540 541 CREATE TABLE spans ( 542 trace_id VARCHAR(50) NOT NULL, 543 experiment_id INTEGER NOT NULL, 544 span_id VARCHAR(50) NOT NULL, 545 parent_span_id VARCHAR(50), 546 name TEXT, 547 type VARCHAR(500), 548 status VARCHAR(50) NOT NULL, 549 start_time_unix_nano BIGINT NOT NULL, 550 end_time_unix_nano BIGINT, 551 duration_ns BIGINT GENERATED ALWAYS AS (end_time_unix_nano - start_time_unix_nano) STORED, 552 content TEXT NOT NULL, 553 dimension_attributes JSON, 554 CONSTRAINT spans_pk PRIMARY KEY (trace_id, span_id), 555 CONSTRAINT fk_spans_trace_id FOREIGN KEY(trace_id) REFERENCES trace_info (request_id) ON DELETE CASCADE, 556 CONSTRAINT fk_spans_experiment_id FOREIGN KEY(experiment_id) REFERENCES experiments (experiment_id) 557 ) 558 559 560 CREATE TABLE tags ( 561 key VARCHAR(250) NOT NULL, 562 value VARCHAR(8000), 563 run_uuid VARCHAR(32) NOT NULL, 564 CONSTRAINT tag_pk PRIMARY KEY (key, run_uuid), 565 FOREIGN KEY(run_uuid) REFERENCES runs (run_uuid) 566 ) 567 568 569 CREATE TABLE trace_metrics ( 570 request_id VARCHAR(50) NOT NULL, 571 key VARCHAR(250) NOT NULL, 572 value FLOAT, 573 CONSTRAINT trace_metrics_pk PRIMARY KEY (request_id, key), 574 CONSTRAINT fk_trace_metrics_request_id FOREIGN KEY(request_id) REFERENCES trace_info (request_id) ON DELETE CASCADE 575 ) 576 577 578 CREATE TABLE trace_request_metadata ( 579 key VARCHAR(250) NOT NULL, 580 value VARCHAR(8000), 581 request_id VARCHAR(50) NOT NULL, 582 CONSTRAINT trace_request_metadata_pk PRIMARY KEY (key, request_id), 583 CONSTRAINT fk_trace_request_metadata_request_id FOREIGN KEY(request_id) REFERENCES trace_info (request_id) ON DELETE CASCADE 584 ) 585 586 587 CREATE TABLE trace_tags ( 588 key VARCHAR(250) NOT NULL, 589 value VARCHAR(8000), 590 request_id VARCHAR(50) NOT NULL, 591 CONSTRAINT trace_tag_pk PRIMARY KEY (key, request_id), 592 CONSTRAINT fk_trace_tags_request_id FOREIGN KEY(request_id) REFERENCES trace_info (request_id) ON DELETE CASCADE 593 ) 594 595 596 CREATE TABLE guardrails ( 597 guardrail_id VARCHAR(36) NOT NULL, 598 name VARCHAR(255) NOT NULL, 599 scorer_id VARCHAR(36) NOT NULL, 600 scorer_version INTEGER NOT NULL, 601 stage VARCHAR(32) NOT NULL, 602 action VARCHAR(32) NOT NULL, 603 action_endpoint_id VARCHAR(36), 604 created_by VARCHAR(255), 605 created_at BIGINT NOT NULL, 606 last_updated_by VARCHAR(255), 607 last_updated_at BIGINT NOT NULL, 608 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 609 CONSTRAINT guardrails_pk PRIMARY KEY (guardrail_id), 610 CONSTRAINT fk_guardrails_scorer_version FOREIGN KEY(scorer_id, scorer_version) REFERENCES scorer_versions (scorer_id, scorer_version), 611 CONSTRAINT fk_guardrails_action_endpoint_id FOREIGN KEY(action_endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE SET NULL 612 ) 613 614 615 CREATE TABLE span_metrics ( 616 trace_id VARCHAR(50) NOT NULL, 617 span_id VARCHAR(50) NOT NULL, 618 key VARCHAR(250) NOT NULL, 619 value FLOAT, 620 CONSTRAINT span_metrics_pk PRIMARY KEY (trace_id, span_id, key), 621 CONSTRAINT fk_span_metrics_span FOREIGN KEY(trace_id, span_id) REFERENCES spans (trace_id, span_id) ON DELETE CASCADE 622 ) 623 624 625 CREATE TABLE guardrail_configs ( 626 endpoint_id VARCHAR(36) NOT NULL, 627 guardrail_id VARCHAR(36) NOT NULL, 628 execution_order INTEGER, 629 created_by VARCHAR(255), 630 created_at BIGINT NOT NULL, 631 workspace VARCHAR(63) DEFAULT 'default' NOT NULL, 632 CONSTRAINT guardrail_configs_pk PRIMARY KEY (endpoint_id, guardrail_id), 633 CONSTRAINT fk_guardrail_configs_endpoint_id FOREIGN KEY(endpoint_id) REFERENCES endpoints (endpoint_id) ON DELETE CASCADE, 634 CONSTRAINT fk_guardrail_configs_guardrail_id FOREIGN KEY(guardrail_id) REFERENCES guardrails (guardrail_id) ON DELETE CASCADE 635 ) 636