/ tests / resources / db / latest_schema.sql
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