@opengeni/db 0.28.1 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attached-browser-devices.d.ts +42 -0
- package/dist/attempt-tool-catalogs.d.ts +16 -0
- package/dist/browser-auth.d.ts +91 -0
- package/dist/browser-identities.d.ts +128 -0
- package/dist/browser-sessions.d.ts +272 -0
- package/dist/browser-state-artifacts.d.ts +17 -0
- package/dist/capability-components.d.ts +37 -0
- package/dist/capability-integrations.d.ts +192 -0
- package/dist/chunk-F5FT7BEZ.js +3535 -0
- package/dist/chunk-F5FT7BEZ.js.map +1 -0
- package/dist/chunk-ISI2TIUG.js +639 -0
- package/dist/chunk-ISI2TIUG.js.map +1 -0
- package/dist/chunk-MWDVXQOL.js +11639 -0
- package/dist/chunk-MWDVXQOL.js.map +1 -0
- package/dist/chunk-NBE6CHRI.js +955 -0
- package/dist/chunk-NBE6CHRI.js.map +1 -0
- package/dist/{chunk-DBS5HPEW.js → chunk-YHZXQ7HP.js} +760 -11
- package/dist/chunk-YHZXQ7HP.js.map +1 -0
- package/dist/codemode-operations.d.ts +117 -0
- package/dist/codex-token-resolver.d.ts +2 -2
- package/dist/company-profile-schema.d.ts +798 -0
- package/dist/company-profile.d.ts +268 -0
- package/dist/computer-sessions.d.ts +109 -0
- package/dist/connection-token-resolver.d.ts +9 -4
- package/dist/database.d.ts +52 -3
- package/dist/editable-artifact-durable-export.d.ts +153 -0
- package/dist/editable-artifact-durable-export.js +788 -0
- package/dist/editable-artifact-durable-export.js.map +1 -0
- package/dist/editable-artifact-materialization.d.ts +123 -0
- package/dist/editable-artifacts-schema.d.ts +4152 -0
- package/dist/editable-artifacts.d.ts +610 -0
- package/dist/editable-artifacts.js +26 -0
- package/dist/editable-artifacts.js.map +1 -0
- package/dist/environment-crypto.d.ts +8 -4
- package/dist/generated-images.d.ts +139 -0
- package/dist/index.d.ts +958 -126
- package/dist/index.js +31204 -12172
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +51 -4
- package/dist/integration-bindings.d.ts +70 -0
- package/dist/integration-features.d.ts +99 -0
- package/dist/interaction-revisions.d.ts +3 -0
- package/dist/interaction-schema.d.ts +5372 -0
- package/dist/knowledge-source-sync-schema.d.ts +1679 -0
- package/dist/knowledge-source-sync.d.ts +274 -0
- package/dist/lossless-columns.d.ts +58 -0
- package/dist/lossless-json.d.ts +39 -0
- package/dist/memory-domain.d.ts +3 -6
- package/dist/memory-governance.d.ts +2 -2
- package/dist/memory-slack-delivery.d.ts +101 -0
- package/dist/new-session-drafts.d.ts +2 -2
- package/dist/pack-components.d.ts +76 -0
- package/dist/pack-installations.d.ts +86 -0
- package/dist/persistence-errors.d.ts +7 -14
- package/dist/plugin-packages.d.ts +126 -0
- package/dist/preference-registry.d.ts +1 -1
- package/dist/provision-roles.d.ts +9 -1
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +18 -6
- package/dist/schema.d.ts +19122 -8731
- package/dist/schema.js +173 -1
- package/dist/scoped-knowledge.d.ts +97 -1
- package/dist/session-control.d.ts +4 -4
- package/dist/session-queue-commands.d.ts +19 -11
- package/dist/session-realtime-context.d.ts +2 -2
- package/dist/session-realtime-ledger.d.ts +4 -4
- package/dist/session-realtime-mirror.d.ts +2 -2
- package/dist/session-realtime-state.d.ts +1 -1
- package/dist/session-realtime-terminal.d.ts +8 -1
- package/dist/session-realtime.d.ts +7 -7
- package/dist/session-tool-call-settlement.d.ts +1 -1
- package/dist/slack-user-link-access.d.ts +54 -0
- package/dist/transcription-recordings-schema.d.ts +44 -6
- package/dist/transcription-recordings.d.ts +3 -3
- package/dist/turn-initiator.d.ts +2 -2
- package/dist/video-generation.d.ts +216 -0
- package/dist/video-generation.js +66 -0
- package/dist/video-generation.js.map +1 -0
- package/dist/workspace-artifacts.d.ts +1 -1
- package/dist/workspace-instruction-policies.d.ts +1 -1
- package/dist/workspace-learning-policy-schema.d.ts +932 -0
- package/dist/workspace-learning-policy.d.ts +161 -0
- package/drizzle/0065_enrollment_credential_generation.sql +10 -0
- package/drizzle/0140_retained_screenshot_artifacts.sql +192 -0
- package/drizzle/0176_lossless_canonical_json.sql +975 -0
- package/drizzle/0177_session_events_workspace_turn_type_index.sql +5 -0
- package/drizzle/0178_permissioned_secret_reads.sql +14 -0
- package/drizzle/0179_slack_private_shortcut_delivery_gate.sql +85 -0
- package/drizzle/0180_retained_screenshot_lifecycle_fences.sql +273 -0
- package/drizzle/0181_connected_machine_removal.sql +52 -0
- package/drizzle/0182_connected_machine_remove_session_default.sql +77 -0
- package/drizzle/0183_model_call_provider_cost_estimates.sql +39 -0
- package/drizzle/0184_sandbox_drain_teardown_fence.sql +682 -0
- package/drizzle/0185_temporal_schedule_cleanup_outbox.sql +168 -0
- package/drizzle/0186_sandbox_capture_provider_contract.sql +400 -0
- package/drizzle/0187_generated_image_artifacts.sql +173 -0
- package/drizzle/0188_image_generation_retention_failure.sql +25 -0
- package/drizzle/0189_retained_session_image_formats.sql +13 -0
- package/drizzle/0190_timeline_annotations.sql +31 -0
- package/drizzle/0191_editable_artifact_engine.sql +3853 -0
- package/drizzle/0192_editable_artifact_live_tickets.sql +338 -0
- package/drizzle/0193_editable_artifact_authorization.sql +190 -0
- package/drizzle/0194_editable_artifact_durable_exports.sql +160 -0
- package/drizzle/0195_editable_artifact_import_authorization.sql +203 -0
- package/drizzle/0196_rig_provider_images.sql +152 -0
- package/drizzle/0197_knowledge_source_sync_schedules.sql +523 -0
- package/drizzle/0198_memory_slack_publication_delivery.sql +393 -0
- package/drizzle/0199_workspace_learning_policy.sql +980 -0
- package/drizzle/0201_company_profile_authority.sql +849 -0
- package/drizzle/0202_document_index_checkpoints.sql +85 -0
- package/drizzle/0203_durable_video_generation.sql +353 -0
- package/drizzle/0204_video_generation_funding.sql +44 -0
- package/drizzle/0205_attempt_tool_catalogs.sql +230 -0
- package/drizzle/0206_browser_sessions.sql +646 -0
- package/drizzle/0207_browser_identities.sql +379 -0
- package/drizzle/0208_attached_browser_devices.sql +165 -0
- package/drizzle/0209_computer_sessions.sql +575 -0
- package/drizzle/0210_browser_auth_network_interventions.sql +441 -0
- package/drizzle/0211_editable_artifact_session_links.sql +58 -0
- package/drizzle/0212_slack_installation_bindings.sql +348 -0
- package/drizzle/0213_slack_user_link_access_requests.sql +177 -0
- package/drizzle/0214_session_activity_commit_gate.sql +262 -0
- package/drizzle/0215_capabilities_platform.sql +980 -0
- package/drizzle/0216_pack_component_ownership.sql +235 -0
- package/drizzle/0217_capability_definition_delete_authority.sql +32 -0
- package/package.json +18 -5
- package/src/attached-browser-devices.ts +371 -0
- package/src/attempt-tool-catalogs.ts +131 -0
- package/src/browser-auth.ts +1896 -0
- package/src/browser-identities.ts +1168 -0
- package/src/browser-sessions.ts +2005 -0
- package/src/browser-state-artifacts.ts +59 -0
- package/src/capability-components.ts +166 -0
- package/src/capability-integrations.ts +1663 -0
- package/src/codemode-operations.ts +674 -0
- package/src/company-profile-schema.ts +143 -0
- package/src/company-profile.ts +968 -0
- package/src/computer-sessions.ts +1130 -0
- package/src/connection-token-resolver.ts +270 -25
- package/src/database.ts +434 -24
- package/src/editable-artifact-durable-export.ts +1201 -0
- package/src/editable-artifact-materialization.ts +893 -0
- package/src/editable-artifacts-schema.ts +879 -0
- package/src/editable-artifacts.ts +5404 -0
- package/src/environment-crypto.ts +22 -9
- package/src/generated-images.ts +740 -0
- package/src/index.ts +10117 -2730
- package/src/insights.ts +160 -13
- package/src/integration-bindings.ts +455 -0
- package/src/integration-features.ts +859 -0
- package/src/interaction-revisions.ts +40 -0
- package/src/interaction-schema.ts +1303 -0
- package/src/knowledge-source-sync-schema.ts +192 -0
- package/src/knowledge-source-sync.ts +1922 -0
- package/src/lossless-columns.ts +35 -0
- package/src/lossless-json.ts +322 -0
- package/src/memory-domain.ts +5 -44
- package/src/memory-slack-delivery.ts +801 -0
- package/src/pack-components.ts +954 -0
- package/src/pack-installations.ts +929 -0
- package/src/persistence-errors.ts +26 -34
- package/src/plugin-packages.ts +1186 -0
- package/src/provision-roles.ts +302 -1
- package/src/runtime-posture-cli.ts +9 -0
- package/src/runtime-posture.ts +514 -5
- package/src/schema.ts +5177 -2957
- package/src/scoped-knowledge-schema.ts +1 -1
- package/src/scoped-knowledge.ts +655 -3
- package/src/session-control.ts +133 -81
- package/src/session-queue-commands.ts +511 -247
- package/src/session-realtime-context.ts +20 -7
- package/src/session-realtime-ledger.ts +32 -10
- package/src/session-realtime-mirror.ts +4 -2
- package/src/session-realtime-terminal.ts +89 -21
- package/src/session-realtime.ts +10 -9
- package/src/session-tool-call-settlement.ts +38 -15
- package/src/slack-user-link-access.ts +702 -0
- package/src/transcription-recordings-schema.ts +5 -2
- package/src/transcription-recordings.ts +70 -40
- package/src/video-generation.ts +1452 -0
- package/src/workspace-learning-policy-schema.ts +139 -0
- package/src/workspace-learning-policy.ts +595 -0
- package/dist/chunk-DBS5HPEW.js.map +0 -1
- package/dist/chunk-HT5T62CC.js +0 -6803
- package/dist/chunk-HT5T62CC.js.map +0 -1
- package/dist/event-payload-sanitizer.d.ts +0 -32
- package/src/event-payload-sanitizer.ts +0 -377
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
-- Keep generated image bytes in the permanent workspace file authority while
|
|
3
|
+
-- recording only bounded provider/tool correlation needed for replay and UI.
|
|
4
|
+
|
|
5
|
+
SET LOCAL lock_timeout = '5s';
|
|
6
|
+
SET LOCAL statement_timeout = '5min';
|
|
7
|
+
|
|
8
|
+
CREATE TABLE "generated_image_artifacts" (
|
|
9
|
+
"artifact_id" uuid PRIMARY KEY,
|
|
10
|
+
"account_id" uuid NOT NULL,
|
|
11
|
+
"workspace_id" uuid NOT NULL,
|
|
12
|
+
"session_id" uuid,
|
|
13
|
+
"turn_id" uuid,
|
|
14
|
+
"attempt_id" uuid,
|
|
15
|
+
"upload_id" uuid,
|
|
16
|
+
"settlement_key" text NOT NULL,
|
|
17
|
+
"tool_call_id" text NOT NULL,
|
|
18
|
+
"source_strategy" text NOT NULL,
|
|
19
|
+
"provider_id" text NOT NULL,
|
|
20
|
+
"provider_binding_hash" text NOT NULL,
|
|
21
|
+
"provider_item_id" text,
|
|
22
|
+
"status" text NOT NULL DEFAULT 'pending',
|
|
23
|
+
"media_type" text NOT NULL,
|
|
24
|
+
"size_bytes" bigint NOT NULL,
|
|
25
|
+
"sha256" text NOT NULL,
|
|
26
|
+
"width" integer NOT NULL,
|
|
27
|
+
"height" integer NOT NULL,
|
|
28
|
+
"sandbox_path" text NOT NULL,
|
|
29
|
+
"ready_at" timestamptz,
|
|
30
|
+
"last_error" text,
|
|
31
|
+
"created_at" timestamptz NOT NULL DEFAULT now(),
|
|
32
|
+
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
|
33
|
+
CONSTRAINT "generated_image_artifacts_workspace_account_fk"
|
|
34
|
+
FOREIGN KEY ("workspace_id", "account_id")
|
|
35
|
+
REFERENCES "workspaces"("id", "account_id") ON DELETE CASCADE,
|
|
36
|
+
CONSTRAINT "generated_image_artifacts_workspace_session_fk"
|
|
37
|
+
FOREIGN KEY ("workspace_id", "session_id")
|
|
38
|
+
REFERENCES "sessions"("workspace_id", "id") ON DELETE SET NULL ("session_id"),
|
|
39
|
+
CONSTRAINT "generated_image_artifacts_workspace_turn_fk"
|
|
40
|
+
FOREIGN KEY ("workspace_id", "turn_id")
|
|
41
|
+
REFERENCES "session_turns"("workspace_id", "id") ON DELETE SET NULL ("turn_id"),
|
|
42
|
+
CONSTRAINT "generated_image_artifacts_workspace_attempt_fk"
|
|
43
|
+
FOREIGN KEY ("workspace_id", "attempt_id")
|
|
44
|
+
REFERENCES "session_turn_attempts"("workspace_id", "id") ON DELETE SET NULL ("attempt_id"),
|
|
45
|
+
CONSTRAINT "generated_image_artifacts_upload_fk"
|
|
46
|
+
FOREIGN KEY ("upload_id") REFERENCES "file_uploads"("id") ON DELETE SET NULL,
|
|
47
|
+
CONSTRAINT "generated_image_artifacts_workspace_file_fk"
|
|
48
|
+
FOREIGN KEY ("workspace_id", "artifact_id")
|
|
49
|
+
REFERENCES "files"("workspace_id", "id") ON DELETE CASCADE,
|
|
50
|
+
CONSTRAINT "generated_image_artifacts_source_strategy_chk"
|
|
51
|
+
CHECK ("source_strategy" IN ('native_hosted', 'provider_adapter')),
|
|
52
|
+
CONSTRAINT "generated_image_artifacts_source_shape_chk"
|
|
53
|
+
CHECK (
|
|
54
|
+
("source_strategy" = 'native_hosted' AND "provider_item_id" IS NOT NULL)
|
|
55
|
+
OR ("source_strategy" = 'provider_adapter' AND "provider_item_id" IS NULL)
|
|
56
|
+
),
|
|
57
|
+
CONSTRAINT "generated_image_artifacts_status_chk"
|
|
58
|
+
CHECK ("status" IN ('pending', 'ready')),
|
|
59
|
+
CONSTRAINT "generated_image_artifacts_ready_shape_chk"
|
|
60
|
+
CHECK (("status" = 'ready') = ("ready_at" IS NOT NULL)),
|
|
61
|
+
CONSTRAINT "generated_image_artifacts_media_type_chk"
|
|
62
|
+
CHECK ("media_type" IN ('image/png', 'image/jpeg', 'image/webp')),
|
|
63
|
+
CONSTRAINT "generated_image_artifacts_size_chk"
|
|
64
|
+
CHECK ("size_bytes" > 0 AND "size_bytes" <= 67108864),
|
|
65
|
+
CONSTRAINT "generated_image_artifacts_sha256_chk"
|
|
66
|
+
CHECK ("sha256" ~ '^[0-9a-f]{64}$'),
|
|
67
|
+
CONSTRAINT "generated_image_artifacts_binding_hash_chk"
|
|
68
|
+
CHECK ("provider_binding_hash" ~ '^[0-9a-f]{64}$'),
|
|
69
|
+
CONSTRAINT "generated_image_artifacts_identity_bounds_chk"
|
|
70
|
+
CHECK (
|
|
71
|
+
"settlement_key" ~ '^[0-9a-f]{64}$'
|
|
72
|
+
AND octet_length("tool_call_id") BETWEEN 1 AND 512
|
|
73
|
+
AND octet_length("provider_id") BETWEEN 1 AND 128
|
|
74
|
+
AND ("provider_item_id" IS NULL OR octet_length("provider_item_id") BETWEEN 1 AND 512)
|
|
75
|
+
AND ("last_error" IS NULL OR octet_length("last_error") <= 16384)
|
|
76
|
+
),
|
|
77
|
+
CONSTRAINT "generated_image_artifacts_dimensions_chk"
|
|
78
|
+
CHECK (
|
|
79
|
+
"width" BETWEEN 1 AND 16384
|
|
80
|
+
AND "height" BETWEEN 1 AND 16384
|
|
81
|
+
AND ("width"::bigint * "height"::bigint) <= 67108864
|
|
82
|
+
),
|
|
83
|
+
CONSTRAINT "generated_image_artifacts_sandbox_path_chk"
|
|
84
|
+
CHECK ("sandbox_path" ~ '^/workspace/generated-images/generated-image-[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\.(png|jpg|webp)$')
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
CREATE UNIQUE INDEX "generated_image_artifacts_settlement_key_uq"
|
|
88
|
+
ON "generated_image_artifacts" ("workspace_id", "settlement_key");
|
|
89
|
+
CREATE INDEX "generated_image_artifacts_session_created_idx"
|
|
90
|
+
ON "generated_image_artifacts" ("workspace_id", "session_id", "created_at", "artifact_id");
|
|
91
|
+
CREATE UNIQUE INDEX "generated_image_artifacts_provider_item_uq"
|
|
92
|
+
ON "generated_image_artifacts" ("workspace_id", "provider_id", "provider_binding_hash", "provider_item_id")
|
|
93
|
+
WHERE "provider_item_id" IS NOT NULL;
|
|
94
|
+
|
|
95
|
+
CREATE TABLE "image_generation_operations" (
|
|
96
|
+
"id" uuid PRIMARY KEY,
|
|
97
|
+
"account_id" uuid NOT NULL,
|
|
98
|
+
"workspace_id" uuid NOT NULL,
|
|
99
|
+
"session_id" uuid,
|
|
100
|
+
"turn_id" uuid,
|
|
101
|
+
"attempt_id" uuid,
|
|
102
|
+
"operation_key" text NOT NULL,
|
|
103
|
+
"tool_call_id" text NOT NULL,
|
|
104
|
+
"provider_id" text NOT NULL,
|
|
105
|
+
"provider_binding_hash" text NOT NULL,
|
|
106
|
+
"model_id" text NOT NULL,
|
|
107
|
+
"request_digest" text NOT NULL,
|
|
108
|
+
"expected_artifact_id" uuid NOT NULL,
|
|
109
|
+
"status" text NOT NULL DEFAULT 'prepared',
|
|
110
|
+
"provider_started_at" timestamptz,
|
|
111
|
+
"completed_at" timestamptz,
|
|
112
|
+
"last_error" text,
|
|
113
|
+
"created_at" timestamptz NOT NULL DEFAULT now(),
|
|
114
|
+
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
|
115
|
+
CONSTRAINT "image_generation_operations_workspace_account_fk"
|
|
116
|
+
FOREIGN KEY ("workspace_id", "account_id")
|
|
117
|
+
REFERENCES "workspaces"("id", "account_id") ON DELETE CASCADE,
|
|
118
|
+
CONSTRAINT "image_generation_operations_workspace_session_fk"
|
|
119
|
+
FOREIGN KEY ("workspace_id", "session_id")
|
|
120
|
+
REFERENCES "sessions"("workspace_id", "id") ON DELETE CASCADE,
|
|
121
|
+
CONSTRAINT "image_generation_operations_workspace_turn_fk"
|
|
122
|
+
FOREIGN KEY ("workspace_id", "turn_id")
|
|
123
|
+
REFERENCES "session_turns"("workspace_id", "id") ON DELETE CASCADE,
|
|
124
|
+
CONSTRAINT "image_generation_operations_workspace_attempt_fk"
|
|
125
|
+
FOREIGN KEY ("workspace_id", "attempt_id")
|
|
126
|
+
REFERENCES "session_turn_attempts"("workspace_id", "id") ON DELETE SET NULL ("attempt_id"),
|
|
127
|
+
CONSTRAINT "image_generation_operations_status_chk"
|
|
128
|
+
CHECK ("status" IN ('prepared', 'provider_started', 'completed', 'outcome_unknown')),
|
|
129
|
+
CONSTRAINT "image_generation_operations_digest_chk"
|
|
130
|
+
CHECK (
|
|
131
|
+
"operation_key" ~ '^[0-9a-f]{64}$'
|
|
132
|
+
AND "provider_binding_hash" ~ '^[0-9a-f]{64}$'
|
|
133
|
+
AND "request_digest" ~ '^[0-9a-f]{64}$'
|
|
134
|
+
),
|
|
135
|
+
CONSTRAINT "image_generation_operations_identity_bounds_chk"
|
|
136
|
+
CHECK (
|
|
137
|
+
octet_length("tool_call_id") BETWEEN 1 AND 512
|
|
138
|
+
AND octet_length("provider_id") BETWEEN 1 AND 128
|
|
139
|
+
AND octet_length("model_id") BETWEEN 1 AND 256
|
|
140
|
+
AND ("last_error" IS NULL OR octet_length("last_error") <= 16384)
|
|
141
|
+
),
|
|
142
|
+
CONSTRAINT "image_generation_operations_state_chk"
|
|
143
|
+
CHECK (
|
|
144
|
+
("status" = 'prepared' AND "provider_started_at" IS NULL AND "completed_at" IS NULL)
|
|
145
|
+
OR ("status" IN ('provider_started', 'outcome_unknown') AND "provider_started_at" IS NOT NULL AND "completed_at" IS NULL)
|
|
146
|
+
OR ("status" = 'completed' AND "provider_started_at" IS NOT NULL AND "completed_at" IS NOT NULL)
|
|
147
|
+
)
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
CREATE UNIQUE INDEX "image_generation_operations_operation_key_uq"
|
|
151
|
+
ON "image_generation_operations" ("workspace_id", "operation_key");
|
|
152
|
+
CREATE INDEX "image_generation_operations_session_created_idx"
|
|
153
|
+
ON "image_generation_operations" ("workspace_id", "session_id", "created_at", "id");
|
|
154
|
+
|
|
155
|
+
ALTER TABLE "generated_image_artifacts" ENABLE ROW LEVEL SECURITY;
|
|
156
|
+
ALTER TABLE "generated_image_artifacts" FORCE ROW LEVEL SECURITY;
|
|
157
|
+
CREATE POLICY "workspace_isolation" ON "generated_image_artifacts"
|
|
158
|
+
USING (opengeni_private.workspace_rls_visible(account_id, workspace_id))
|
|
159
|
+
WITH CHECK (opengeni_private.workspace_rls_visible(account_id, workspace_id));
|
|
160
|
+
|
|
161
|
+
ALTER TABLE "image_generation_operations" ENABLE ROW LEVEL SECURITY;
|
|
162
|
+
ALTER TABLE "image_generation_operations" FORCE ROW LEVEL SECURITY;
|
|
163
|
+
CREATE POLICY "workspace_isolation" ON "image_generation_operations"
|
|
164
|
+
USING (opengeni_private.workspace_rls_visible(account_id, workspace_id))
|
|
165
|
+
WITH CHECK (opengeni_private.workspace_rls_visible(account_id, workspace_id));
|
|
166
|
+
|
|
167
|
+
DO $$
|
|
168
|
+
BEGIN
|
|
169
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'opengeni_app') THEN
|
|
170
|
+
GRANT SELECT, INSERT, UPDATE, DELETE ON "generated_image_artifacts" TO opengeni_app;
|
|
171
|
+
GRANT SELECT, INSERT, UPDATE, DELETE ON "image_generation_operations" TO opengeni_app;
|
|
172
|
+
END IF;
|
|
173
|
+
END $$;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
-- Distinguish a known provider success whose bytes could not be retained from
|
|
3
|
+
-- an ambiguous provider request. Both remain non-replayable.
|
|
4
|
+
|
|
5
|
+
SET LOCAL lock_timeout = '5s';
|
|
6
|
+
SET LOCAL statement_timeout = '5min';
|
|
7
|
+
|
|
8
|
+
ALTER TABLE "image_generation_operations"
|
|
9
|
+
DROP CONSTRAINT "image_generation_operations_status_chk",
|
|
10
|
+
DROP CONSTRAINT "image_generation_operations_state_chk",
|
|
11
|
+
ADD CONSTRAINT "image_generation_operations_status_chk"
|
|
12
|
+
CHECK ("status" IN ('prepared', 'provider_started', 'completed', 'outcome_unknown', 'retention_failed')) NOT VALID,
|
|
13
|
+
ADD CONSTRAINT "image_generation_operations_state_chk"
|
|
14
|
+
CHECK (
|
|
15
|
+
("status" = 'prepared' AND "provider_started_at" IS NULL AND "completed_at" IS NULL)
|
|
16
|
+
OR ("status" IN ('provider_started', 'outcome_unknown', 'retention_failed') AND "provider_started_at" IS NOT NULL AND "completed_at" IS NULL)
|
|
17
|
+
OR ("status" = 'completed' AND "provider_started_at" IS NOT NULL AND "completed_at" IS NOT NULL)
|
|
18
|
+
) NOT VALID;
|
|
19
|
+
|
|
20
|
+
-- Validation uses a weaker lock than adding an immediately-valid check, so a
|
|
21
|
+
-- large operations table remains writable during the scan.
|
|
22
|
+
ALTER TABLE "image_generation_operations"
|
|
23
|
+
VALIDATE CONSTRAINT "image_generation_operations_status_chk";
|
|
24
|
+
ALTER TABLE "image_generation_operations"
|
|
25
|
+
VALIDATE CONSTRAINT "image_generation_operations_state_chk";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
SET LOCAL lock_timeout = '5s';
|
|
3
|
+
SET LOCAL statement_timeout = '30s';
|
|
4
|
+
|
|
5
|
+
ALTER TABLE "retained_screenshot_artifacts"
|
|
6
|
+
ADD CONSTRAINT "retained_screenshot_artifacts_media_type_v2_chk"
|
|
7
|
+
CHECK ("media_type" IN ('image/png', 'image/jpeg', 'image/webp')) NOT VALID;
|
|
8
|
+
|
|
9
|
+
ALTER TABLE "retained_screenshot_artifacts"
|
|
10
|
+
VALIDATE CONSTRAINT "retained_screenshot_artifacts_media_type_v2_chk";
|
|
11
|
+
|
|
12
|
+
ALTER TABLE "retained_screenshot_artifacts"
|
|
13
|
+
DROP CONSTRAINT "retained_screenshot_artifacts_media_type_chk";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
SET LOCAL lock_timeout = '5s';
|
|
3
|
+
SET LOCAL statement_timeout = '30s';
|
|
4
|
+
|
|
5
|
+
ALTER TABLE "composer_drafts"
|
|
6
|
+
ADD COLUMN "annotations" jsonb NOT NULL DEFAULT '[]'::jsonb;
|
|
7
|
+
|
|
8
|
+
ALTER TABLE "session_turns"
|
|
9
|
+
ADD COLUMN "annotations" jsonb NOT NULL DEFAULT '[]'::jsonb;
|
|
10
|
+
|
|
11
|
+
ALTER TABLE "composer_drafts"
|
|
12
|
+
ADD CONSTRAINT "composer_drafts_annotations_check"
|
|
13
|
+
CHECK (
|
|
14
|
+
jsonb_typeof("annotations") = 'array'
|
|
15
|
+
AND jsonb_array_length("annotations") <= 12
|
|
16
|
+
AND octet_length("annotations"::text) <= 65536
|
|
17
|
+
) NOT VALID;
|
|
18
|
+
|
|
19
|
+
ALTER TABLE "session_turns"
|
|
20
|
+
ADD CONSTRAINT "session_turns_annotations_check"
|
|
21
|
+
CHECK (
|
|
22
|
+
jsonb_typeof("annotations") = 'array'
|
|
23
|
+
AND jsonb_array_length("annotations") <= 12
|
|
24
|
+
AND octet_length("annotations"::text) <= 65536
|
|
25
|
+
) NOT VALID;
|
|
26
|
+
|
|
27
|
+
ALTER TABLE "composer_drafts"
|
|
28
|
+
VALIDATE CONSTRAINT "composer_drafts_annotations_check";
|
|
29
|
+
|
|
30
|
+
ALTER TABLE "session_turns"
|
|
31
|
+
VALIDATE CONSTRAINT "session_turns_annotations_check";
|