mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-22 19:29:13 +08:00
92 lines
4.1 KiB
TypeScript
92 lines
4.1 KiB
TypeScript
import { defineLocalSqliteMigration } from './sqlMigration';
|
|
|
|
export const local0055ToolExecutionStartBarriersMigration =
|
|
defineLocalSqliteMigration({
|
|
id: '0055-tool-execution-start-barriers',
|
|
statements: [
|
|
`
|
|
CREATE TABLE "ToolExecutionStartBarriers" (
|
|
start_id TEXT PRIMARY KEY NOT NULL,
|
|
project_id TEXT NOT NULL,
|
|
run_id TEXT NOT NULL,
|
|
step_run_id TEXT NOT NULL,
|
|
started_step_run_version INTEGER NOT NULL,
|
|
step_run_mutation_id TEXT NOT NULL,
|
|
run_event_id TEXT NOT NULL,
|
|
trace_id TEXT NOT NULL,
|
|
span_id TEXT NOT NULL,
|
|
audit_event_id TEXT NOT NULL,
|
|
command_digest TEXT NOT NULL,
|
|
barrier_digest TEXT NOT NULL,
|
|
started_at_ms INTEGER NOT NULL,
|
|
barrier_json TEXT NOT NULL,
|
|
CONSTRAINT ql3_tool_start_step_fk
|
|
FOREIGN KEY (run_id, step_run_id)
|
|
REFERENCES "StepRuns" (run_id, id) ON DELETE RESTRICT,
|
|
CONSTRAINT ql3_tool_start_mutation_fk
|
|
FOREIGN KEY (step_run_mutation_id)
|
|
REFERENCES "StepRunMutations" (mutation_id) ON DELETE RESTRICT,
|
|
CONSTRAINT ql3_tool_start_event_fk
|
|
FOREIGN KEY (run_event_id)
|
|
REFERENCES "RunEvents" (id) ON DELETE RESTRICT,
|
|
CONSTRAINT ql3_tool_start_trace_fk
|
|
FOREIGN KEY (trace_id, span_id)
|
|
REFERENCES "ToolExecutionTraceAnchors" (trace_id, span_id)
|
|
ON DELETE RESTRICT,
|
|
CONSTRAINT ql3_tool_start_audit_fk
|
|
FOREIGN KEY (audit_event_id)
|
|
REFERENCES "ToolExecutionAuditReceipts" (event_id)
|
|
ON DELETE RESTRICT,
|
|
CONSTRAINT ql3_tool_start_identity_check CHECK (
|
|
length(start_id) BETWEEN 1 AND 128 AND
|
|
length(project_id) BETWEEN 1 AND 128 AND
|
|
length(run_id) BETWEEN 1 AND 128 AND
|
|
length(step_run_id) BETWEEN 1 AND 128 AND
|
|
length(step_run_mutation_id) BETWEEN 1 AND 128 AND
|
|
length(run_event_id) BETWEEN 1 AND 128 AND
|
|
length(trace_id) = 32 AND trace_id NOT GLOB '*[^0-9a-f]*' AND
|
|
length(span_id) = 16 AND span_id NOT GLOB '*[^0-9a-f]*' AND
|
|
length(audit_event_id) BETWEEN 1 AND 128
|
|
),
|
|
CONSTRAINT ql3_tool_start_version_time_check CHECK (
|
|
started_step_run_version BETWEEN 2 AND 2147483647 AND
|
|
started_at_ms >= 0
|
|
),
|
|
CONSTRAINT ql3_tool_start_digest_check CHECK (
|
|
length(command_digest) = 64 AND
|
|
command_digest NOT GLOB '*[^0-9a-f]*' AND
|
|
length(barrier_digest) = 64 AND
|
|
barrier_digest NOT GLOB '*[^0-9a-f]*'
|
|
),
|
|
CONSTRAINT ql3_tool_start_json_check CHECK (
|
|
length(CAST(barrier_json AS BLOB)) BETWEEN 2 AND 16384 AND
|
|
json_valid(barrier_json) AND json_type(barrier_json) = 'object' AND
|
|
json_extract(barrier_json, '$.schema') =
|
|
'qinglong/tool-execution-start-barrier@v1' AND
|
|
json_extract(barrier_json, '$.startId') = start_id AND
|
|
json_extract(barrier_json, '$.projectId') = project_id AND
|
|
json_extract(barrier_json, '$.runId') = run_id AND
|
|
json_extract(barrier_json, '$.stepRunId') = step_run_id AND
|
|
json_extract(barrier_json, '$.startedStepRunVersion') IS
|
|
started_step_run_version AND
|
|
json_extract(barrier_json, '$.stepRunMutationId') =
|
|
step_run_mutation_id AND
|
|
json_extract(barrier_json, '$.runEventId') = run_event_id AND
|
|
json_extract(barrier_json, '$.traceId') = trace_id AND
|
|
json_extract(barrier_json, '$.spanId') = span_id AND
|
|
json_extract(barrier_json, '$.auditEventId') = audit_event_id AND
|
|
json_extract(barrier_json, '$.commandDigest') = command_digest AND
|
|
json_extract(barrier_json, '$.barrierDigest') = barrier_digest AND
|
|
json_extract(barrier_json, '$.startedAtMs') IS started_at_ms
|
|
)
|
|
)
|
|
`,
|
|
`CREATE UNIQUE INDEX ql3_tool_start_step_version_uidx ON "ToolExecutionStartBarriers" (run_id, step_run_id, started_step_run_version)`,
|
|
`CREATE UNIQUE INDEX ql3_tool_start_mutation_uidx ON "ToolExecutionStartBarriers" (step_run_mutation_id)`,
|
|
`CREATE UNIQUE INDEX ql3_tool_start_event_uidx ON "ToolExecutionStartBarriers" (run_event_id)`,
|
|
`CREATE UNIQUE INDEX ql3_tool_start_trace_uidx ON "ToolExecutionStartBarriers" (trace_id, span_id)`,
|
|
`CREATE UNIQUE INDEX ql3_tool_start_audit_uidx ON "ToolExecutionStartBarriers" (audit_event_id)`,
|
|
`CREATE INDEX ql3_tool_start_run_time_idx ON "ToolExecutionStartBarriers" (run_id, started_at_ms, start_id)`,
|
|
],
|
|
});
|