@intx/db 0.1.2 → 0.3.0
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/LICENSE +176 -0
- package/README.md +23 -4
- package/dist/approval-store.d.ts +52 -0
- package/dist/approval-store.js +79 -0
- package/dist/asset-resolution.d.ts +52 -0
- package/dist/asset-resolution.js +66 -0
- package/dist/catalog-resolution.d.ts +76 -0
- package/dist/catalog-resolution.js +151 -0
- package/dist/client.d.ts +19 -0
- package/dist/client.js +18 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.js +16 -0
- package/dist/connection.d.ts +3 -0
- package/dist/connection.js +26 -0
- package/dist/credential-resolution.d.ts +222 -0
- package/dist/credential-resolution.js +255 -0
- package/dist/grant-store.d.ts +3 -0
- package/dist/grant-store.js +59 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +20 -0
- package/dist/migrate.d.ts +36 -0
- package/dist/migrate.js +135 -0
- package/dist/model-source-resolution.d.ts +115 -0
- package/dist/model-source-resolution.js +291 -0
- package/dist/parse-row.d.ts +373 -0
- package/dist/parse-row.js +232 -0
- package/dist/pg-error.d.ts +3 -0
- package/dist/pg-error.js +19 -0
- package/dist/pricing.d.ts +15 -0
- package/dist/pricing.js +24 -0
- package/dist/rekey-credential-secrets.d.ts +13 -0
- package/dist/rekey-credential-secrets.js +61 -0
- package/dist/schema/approvals.d.ts +245 -0
- package/dist/schema/approvals.js +52 -0
- package/dist/schema/assets.d.ts +143 -0
- package/{src/schema/assets.ts → dist/schema/assets.js} +7 -16
- package/dist/schema/auth.d.ts +606 -0
- package/dist/schema/auth.js +47 -0
- package/dist/schema/catalog.d.ts +811 -0
- package/dist/schema/catalog.js +108 -0
- package/dist/schema/column-types.d.ts +26 -0
- package/dist/schema/column-types.js +15 -0
- package/dist/schema/credentials.d.ts +305 -0
- package/{src/schema/credentials.ts → dist/schema/credentials.js} +16 -22
- package/dist/schema/git-tokens.d.ts +256 -0
- package/{src/schema/git-tokens.ts → dist/schema/git-tokens.js} +16 -39
- package/dist/schema/grants.d.ts +211 -0
- package/dist/schema/grants.js +30 -0
- package/dist/schema/index.d.ts +25 -0
- package/dist/schema/index.js +25 -0
- package/dist/schema/messages.d.ts +414 -0
- package/dist/schema/messages.js +82 -0
- package/dist/schema/oauth-clients.d.ts +246 -0
- package/{src/schema/oauth-clients.ts → dist/schema/oauth-clients.js} +8 -14
- package/dist/schema/offerings.d.ts +160 -0
- package/dist/schema/offerings.js +24 -0
- package/dist/schema/principals.d.ts +128 -0
- package/dist/schema/principals.js +23 -0
- package/dist/schema/providers.d.ts +237 -0
- package/dist/schema/providers.js +22 -0
- package/dist/schema/roles.d.ts +242 -0
- package/dist/schema/roles.js +37 -0
- package/dist/schema/session-assets.d.ts +92 -0
- package/dist/schema/session-assets.js +45 -0
- package/dist/schema/sessions.d.ts +143 -0
- package/dist/schema/sessions.js +29 -0
- package/dist/schema/sidecar-allocation.d.ts +406 -0
- package/dist/schema/sidecar-allocation.js +57 -0
- package/dist/schema/sidecar.d.ts +145 -0
- package/dist/schema/sidecar.js +28 -0
- package/dist/schema/signal-correlations.d.ts +177 -0
- package/dist/schema/signal-correlations.js +31 -0
- package/dist/schema/tenants.d.ts +235 -0
- package/{src/schema/tenants.ts → dist/schema/tenants.js} +10 -27
- package/dist/schema/wallets.d.ts +354 -0
- package/dist/schema/wallets.js +43 -0
- package/dist/schema/workflow-definitions.d.ts +371 -0
- package/dist/schema/workflow-definitions.js +97 -0
- package/dist/schema/workflow-run-dispatch.d.ts +328 -0
- package/dist/schema/workflow-run-dispatch.js +56 -0
- package/dist/schema/workflow-run-execution.d.ts +126 -0
- package/dist/schema/workflow-run-execution.js +48 -0
- package/dist/schema/workflow-run-launch-spec.d.ts +200 -0
- package/dist/schema/workflow-run-launch-spec.js +26 -0
- package/dist/schema/workflow-run.d.ts +230 -0
- package/dist/schema/workflow-run.js +102 -0
- package/dist/sidecar-allocation-store.d.ts +171 -0
- package/dist/sidecar-allocation-store.js +512 -0
- package/dist/signal-correlation-store.d.ts +36 -0
- package/dist/signal-correlation-store.js +63 -0
- package/dist/tenant-hierarchy.d.ts +23 -0
- package/dist/tenant-hierarchy.js +60 -0
- package/dist/workflow-definition-store.d.ts +55 -0
- package/dist/workflow-definition-store.js +93 -0
- package/dist/workflow-run-dispatch-store.d.ts +80 -0
- package/dist/workflow-run-dispatch-store.js +298 -0
- package/dist/workflow-run-launch-spec-store.d.ts +13 -0
- package/dist/workflow-run-launch-spec-store.js +30 -0
- package/dist/workflow-run-store.d.ts +54 -0
- package/dist/workflow-run-store.js +85 -0
- package/migrations/0029_loose_warlock.sql +1 -0
- package/migrations/0030_session_asset_audit_split.sql +5 -0
- package/migrations/0031_gigantic_nicolaos.sql +68 -0
- package/migrations/0032_lethal_misty_knight.sql +1 -0
- package/migrations/0033_old_payback.sql +1 -0
- package/migrations/0034_sleepy_songbird.sql +11 -0
- package/migrations/0035_violet_giant_man.sql +3 -0
- package/migrations/0036_sharp_the_executioner.sql +2 -0
- package/migrations/0037_credential_use_backfill.sql +39 -0
- package/migrations/0038_chilly_blacklash.sql +37 -0
- package/migrations/0039_quick_carnage.sql +2 -0
- package/migrations/0040_reshape_approval_origin.sql +24 -0
- package/migrations/0041_make_approval_timeout_at_nullable.sql +1 -0
- package/migrations/0042_youthful_mantis.sql +2 -0
- package/migrations/0043_signal_correlation_deployment_fk.sql +1 -0
- package/migrations/0044_model_offering_quirks.sql +1 -0
- package/migrations/0045_create_workflow_run.sql +13 -0
- package/migrations/0046_approval_signal_correlation_run_fk.sql +2 -0
- package/migrations/0047_create_workflow_definition.sql +30 -0
- package/migrations/0048_workflow_definition_origin_agent_id.sql +2 -0
- package/migrations/0049_curly_omega_flight.sql +2 -0
- package/migrations/0050_late_crystal.sql +10 -0
- package/migrations/0051_funny_madelyne_pryor.sql +1 -0
- package/migrations/0052_drop_inference_turn_instance_fk.sql +1 -0
- package/migrations/0053_session_mail_session_id_index.sql +1 -0
- package/migrations/0054_rekey_instance_grants_to_workflow_run.sql +10 -0
- package/migrations/0055_backfill_anchor_workflow_runs.sql +69 -0
- package/migrations/0056_repoint_deployment_fks_to_anchor_run.sql +32 -0
- package/migrations/0057_drop_workflow_deployment_projection.sql +22 -0
- package/migrations/0058_repoint_offering_fk_to_definition.sql +41 -0
- package/migrations/0059_repoint_transaction_fk_to_run.sql +10 -0
- package/migrations/0060_drop_session_mail_instance_fk.sql +6 -0
- package/migrations/0061_drop_session_asset_instance_fk.sql +7 -0
- package/migrations/0062_drop_agent_asset_table.sql +11 -0
- package/migrations/0063_repoint_agent_role_fk_to_definition.sql +39 -0
- package/migrations/0064_repoint_agent_session_fk_to_definition.sql +47 -0
- package/migrations/0065_add_workflow_definition_model_requirements.sql +37 -0
- package/migrations/0066_rekey_agent_definition_principals_to_workflow.sql +27 -0
- package/migrations/0067_add_workflow_definition_kind.sql +10 -0
- package/migrations/0068_drop_agent_tables_and_origin_agent_id.sql +31 -0
- package/migrations/0069_drop_workflow_definition_kind.sql +10 -0
- package/migrations/0070_flashy_proteus.sql +13 -0
- package/migrations/0072_add_workflow_definition_credential_bindings.sql +1 -0
- package/migrations/0073_grant_target_exactly_one_check.sql +13 -0
- package/migrations/0074_add_provider_api_base_url.sql +1 -0
- package/migrations/0075_workflow_run_launch_spec.sql +17 -0
- package/migrations/0076_sidecar_allocation.sql +40 -0
- package/migrations/0077_workflow_run_dispatch.sql +29 -0
- package/migrations/0078_workflow_run_dispatch_kind.sql +2 -0
- package/migrations/0079_rename_workflow_run_deployment_id_to_anchor_run_id.sql +4 -0
- package/migrations/0080_rename_correlation_approval_deployment_id_to_anchor_run_id.sql +9 -0
- package/migrations/0081_workflow_definition_content_hash_and_approved_wire_hash.sql +4 -0
- package/migrations/0082_blue_black_queen.sql +1 -0
- package/migrations/0083_replace_launch_spec_snapshot_with_frozen_bundle.sql +3 -0
- package/migrations/0084_delete_orphaned_credential_grants.sql +22 -0
- package/migrations/meta/0029_snapshot.json +2664 -0
- package/migrations/meta/0030_snapshot.json +2670 -0
- package/migrations/meta/0031_snapshot.json +3100 -0
- package/migrations/meta/0032_snapshot.json +3106 -0
- package/migrations/meta/0033_snapshot.json +3112 -0
- package/migrations/meta/0034_snapshot.json +3198 -0
- package/migrations/meta/0035_snapshot.json +3225 -0
- package/migrations/meta/0036_snapshot.json +3237 -0
- package/migrations/meta/0037_snapshot.json +3237 -0
- package/migrations/meta/0038_snapshot.json +3470 -0
- package/migrations/meta/0039_snapshot.json +3470 -0
- package/migrations/meta/0040_snapshot.json +3489 -0
- package/migrations/meta/0041_snapshot.json +3489 -0
- package/migrations/meta/0042_snapshot.json +3489 -0
- package/migrations/meta/0043_snapshot.json +3498 -0
- package/migrations/meta/0044_snapshot.json +3504 -0
- package/migrations/meta/0045_snapshot.json +3589 -0
- package/migrations/meta/0046_snapshot.json +3607 -0
- package/migrations/meta/0047_snapshot.json +3832 -0
- package/migrations/meta/0048_snapshot.json +3853 -0
- package/migrations/meta/0049_snapshot.json +3854 -0
- package/migrations/meta/0050_snapshot.json +3924 -0
- package/migrations/meta/0051_snapshot.json +3940 -0
- package/migrations/meta/0052_snapshot.json +3931 -0
- package/migrations/meta/0053_snapshot.json +3952 -0
- package/migrations/meta/0054_snapshot.json +3952 -0
- package/migrations/meta/0055_snapshot.json +3952 -0
- package/migrations/meta/0056_snapshot.json +3952 -0
- package/migrations/meta/0057_snapshot.json +3839 -0
- package/migrations/meta/0058_snapshot.json +3839 -0
- package/migrations/meta/0059_snapshot.json +3839 -0
- package/migrations/meta/0060_snapshot.json +3830 -0
- package/migrations/meta/0061_snapshot.json +3821 -0
- package/migrations/meta/0062_snapshot.json +3723 -0
- package/migrations/meta/0063_snapshot.json +3723 -0
- package/migrations/meta/0064_snapshot.json +3723 -0
- package/migrations/meta/0065_snapshot.json +3729 -0
- package/migrations/meta/0066_snapshot.json +3729 -0
- package/migrations/meta/0067_snapshot.json +3736 -0
- package/migrations/meta/0068_snapshot.json +3347 -0
- package/migrations/meta/0069_snapshot.json +3340 -0
- package/migrations/meta/0070_snapshot.json +3444 -0
- package/migrations/meta/0072_snapshot.json +3450 -0
- package/migrations/meta/0073_snapshot.json +3455 -0
- package/migrations/meta/0074_snapshot.json +3461 -0
- package/migrations/meta/0075_snapshot.json +3567 -0
- package/migrations/meta/0076_snapshot.json +3851 -0
- package/migrations/meta/0077_snapshot.json +4067 -0
- package/migrations/meta/0078_snapshot.json +4078 -0
- package/migrations/meta/0079_snapshot.json +4078 -0
- package/migrations/meta/0080_snapshot.json +4078 -0
- package/migrations/meta/0081_snapshot.json +4096 -0
- package/migrations/meta/0082_snapshot.json +4102 -0
- package/migrations/meta/0083_snapshot.json +4096 -0
- package/migrations/meta/0084_snapshot.json +4096 -0
- package/migrations/meta/_journal.json +385 -0
- package/package.json +25 -11
- package/drizzle.config.ts +0 -23
- package/src/client.ts +0 -24
- package/src/config.ts +0 -19
- package/src/connection.ts +0 -27
- package/src/credential-resolution.ts +0 -378
- package/src/grant-store.ts +0 -51
- package/src/index.ts +0 -32
- package/src/migrate.test.ts +0 -35
- package/src/migrate.ts +0 -168
- package/src/parse-row.test.ts +0 -113
- package/src/parse-row.ts +0 -185
- package/src/schema/agent-assets.ts +0 -21
- package/src/schema/agents.ts +0 -49
- package/src/schema/auth.ts +0 -51
- package/src/schema/grants.ts +0 -26
- package/src/schema/index.ts +0 -19
- package/src/schema/instances.ts +0 -36
- package/src/schema/messages.ts +0 -108
- package/src/schema/offerings.ts +0 -20
- package/src/schema/principals.ts +0 -28
- package/src/schema/providers.ts +0 -23
- package/src/schema/roles.ts +0 -51
- package/src/schema/session-assets.ts +0 -49
- package/src/schema/sessions.ts +0 -26
- package/src/schema/sidecar.ts +0 -14
- package/src/schema/wallets.ts +0 -44
- package/src/tenant-hierarchy.ts +0 -34
- package/tsconfig.json +0 -4
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable inputs required to recreate an exclusively placed workflow on a
|
|
3
|
+
* replacement sidecar. Secrets are deliberately excluded: source offering
|
|
4
|
+
* ids are resolved against the current catalog and principal authority when a
|
|
5
|
+
* generation is launched.
|
|
6
|
+
*/
|
|
7
|
+
export declare const workflowRunLaunchSpec: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
8
|
+
name: "workflow_run_launch_spec";
|
|
9
|
+
schema: undefined;
|
|
10
|
+
columns: {
|
|
11
|
+
anchorRunId: import("drizzle-orm/pg-core").PgColumn<{
|
|
12
|
+
name: "anchor_run_id";
|
|
13
|
+
tableName: "workflow_run_launch_spec";
|
|
14
|
+
dataType: "string";
|
|
15
|
+
columnType: "PgText";
|
|
16
|
+
data: string;
|
|
17
|
+
driverParam: string;
|
|
18
|
+
notNull: true;
|
|
19
|
+
hasDefault: false;
|
|
20
|
+
isPrimaryKey: true;
|
|
21
|
+
isAutoincrement: false;
|
|
22
|
+
hasRuntimeDefault: false;
|
|
23
|
+
enumValues: [string, ...string[]];
|
|
24
|
+
baseColumn: never;
|
|
25
|
+
identity: undefined;
|
|
26
|
+
generated: undefined;
|
|
27
|
+
}, {}, {}>;
|
|
28
|
+
schemaVersion: import("drizzle-orm/pg-core").PgColumn<{
|
|
29
|
+
name: "schema_version";
|
|
30
|
+
tableName: "workflow_run_launch_spec";
|
|
31
|
+
dataType: "number";
|
|
32
|
+
columnType: "PgInteger";
|
|
33
|
+
data: number;
|
|
34
|
+
driverParam: string | number;
|
|
35
|
+
notNull: true;
|
|
36
|
+
hasDefault: true;
|
|
37
|
+
isPrimaryKey: false;
|
|
38
|
+
isAutoincrement: false;
|
|
39
|
+
hasRuntimeDefault: false;
|
|
40
|
+
enumValues: undefined;
|
|
41
|
+
baseColumn: never;
|
|
42
|
+
identity: undefined;
|
|
43
|
+
generated: undefined;
|
|
44
|
+
}, {}, {}>;
|
|
45
|
+
sessionId: import("drizzle-orm/pg-core").PgColumn<{
|
|
46
|
+
name: "session_id";
|
|
47
|
+
tableName: "workflow_run_launch_spec";
|
|
48
|
+
dataType: "string";
|
|
49
|
+
columnType: "PgText";
|
|
50
|
+
data: string;
|
|
51
|
+
driverParam: string;
|
|
52
|
+
notNull: true;
|
|
53
|
+
hasDefault: false;
|
|
54
|
+
isPrimaryKey: false;
|
|
55
|
+
isAutoincrement: false;
|
|
56
|
+
hasRuntimeDefault: false;
|
|
57
|
+
enumValues: [string, ...string[]];
|
|
58
|
+
baseColumn: never;
|
|
59
|
+
identity: undefined;
|
|
60
|
+
generated: undefined;
|
|
61
|
+
}, {}, {}>;
|
|
62
|
+
deploymentDomain: import("drizzle-orm/pg-core").PgColumn<{
|
|
63
|
+
name: "deployment_domain";
|
|
64
|
+
tableName: "workflow_run_launch_spec";
|
|
65
|
+
dataType: "string";
|
|
66
|
+
columnType: "PgText";
|
|
67
|
+
data: string;
|
|
68
|
+
driverParam: string;
|
|
69
|
+
notNull: true;
|
|
70
|
+
hasDefault: false;
|
|
71
|
+
isPrimaryKey: false;
|
|
72
|
+
isAutoincrement: false;
|
|
73
|
+
hasRuntimeDefault: false;
|
|
74
|
+
enumValues: [string, ...string[]];
|
|
75
|
+
baseColumn: never;
|
|
76
|
+
identity: undefined;
|
|
77
|
+
generated: undefined;
|
|
78
|
+
}, {}, {}>;
|
|
79
|
+
sourceAuthorityPrincipalId: import("drizzle-orm/pg-core").PgColumn<{
|
|
80
|
+
name: "source_authority_principal_id";
|
|
81
|
+
tableName: "workflow_run_launch_spec";
|
|
82
|
+
dataType: "string";
|
|
83
|
+
columnType: "PgText";
|
|
84
|
+
data: string;
|
|
85
|
+
driverParam: string;
|
|
86
|
+
notNull: true;
|
|
87
|
+
hasDefault: false;
|
|
88
|
+
isPrimaryKey: false;
|
|
89
|
+
isAutoincrement: false;
|
|
90
|
+
hasRuntimeDefault: false;
|
|
91
|
+
enumValues: [string, ...string[]];
|
|
92
|
+
baseColumn: never;
|
|
93
|
+
identity: undefined;
|
|
94
|
+
generated: undefined;
|
|
95
|
+
}, {}, {}>;
|
|
96
|
+
frozenApprovalBundle: import("drizzle-orm/pg-core").PgColumn<{
|
|
97
|
+
name: "frozen_approval_bundle";
|
|
98
|
+
tableName: "workflow_run_launch_spec";
|
|
99
|
+
dataType: "json";
|
|
100
|
+
columnType: "PgJsonb";
|
|
101
|
+
data: unknown;
|
|
102
|
+
driverParam: unknown;
|
|
103
|
+
notNull: true;
|
|
104
|
+
hasDefault: false;
|
|
105
|
+
isPrimaryKey: false;
|
|
106
|
+
isAutoincrement: false;
|
|
107
|
+
hasRuntimeDefault: false;
|
|
108
|
+
enumValues: undefined;
|
|
109
|
+
baseColumn: never;
|
|
110
|
+
identity: undefined;
|
|
111
|
+
generated: undefined;
|
|
112
|
+
}, {}, {}>;
|
|
113
|
+
sourceOfferingIds: import("drizzle-orm/pg-core").PgColumn<{
|
|
114
|
+
name: "source_offering_ids";
|
|
115
|
+
tableName: "workflow_run_launch_spec";
|
|
116
|
+
dataType: "json";
|
|
117
|
+
columnType: "PgJsonb";
|
|
118
|
+
data: unknown;
|
|
119
|
+
driverParam: unknown;
|
|
120
|
+
notNull: true;
|
|
121
|
+
hasDefault: false;
|
|
122
|
+
isPrimaryKey: false;
|
|
123
|
+
isAutoincrement: false;
|
|
124
|
+
hasRuntimeDefault: false;
|
|
125
|
+
enumValues: undefined;
|
|
126
|
+
baseColumn: never;
|
|
127
|
+
identity: undefined;
|
|
128
|
+
generated: undefined;
|
|
129
|
+
}, {}, {}>;
|
|
130
|
+
defaultSourceOfferingId: import("drizzle-orm/pg-core").PgColumn<{
|
|
131
|
+
name: "default_source_offering_id";
|
|
132
|
+
tableName: "workflow_run_launch_spec";
|
|
133
|
+
dataType: "string";
|
|
134
|
+
columnType: "PgText";
|
|
135
|
+
data: string;
|
|
136
|
+
driverParam: string;
|
|
137
|
+
notNull: true;
|
|
138
|
+
hasDefault: false;
|
|
139
|
+
isPrimaryKey: false;
|
|
140
|
+
isAutoincrement: false;
|
|
141
|
+
hasRuntimeDefault: false;
|
|
142
|
+
enumValues: [string, ...string[]];
|
|
143
|
+
baseColumn: never;
|
|
144
|
+
identity: undefined;
|
|
145
|
+
generated: undefined;
|
|
146
|
+
}, {}, {}>;
|
|
147
|
+
deployContent: import("drizzle-orm/pg-core").PgColumn<{
|
|
148
|
+
name: "deploy_content";
|
|
149
|
+
tableName: "workflow_run_launch_spec";
|
|
150
|
+
dataType: "json";
|
|
151
|
+
columnType: "PgJsonb";
|
|
152
|
+
data: unknown;
|
|
153
|
+
driverParam: unknown;
|
|
154
|
+
notNull: true;
|
|
155
|
+
hasDefault: false;
|
|
156
|
+
isPrimaryKey: false;
|
|
157
|
+
isAutoincrement: false;
|
|
158
|
+
hasRuntimeDefault: false;
|
|
159
|
+
enumValues: undefined;
|
|
160
|
+
baseColumn: never;
|
|
161
|
+
identity: undefined;
|
|
162
|
+
generated: undefined;
|
|
163
|
+
}, {}, {}>;
|
|
164
|
+
toolPackagePins: import("drizzle-orm/pg-core").PgColumn<{
|
|
165
|
+
name: "tool_package_pins";
|
|
166
|
+
tableName: "workflow_run_launch_spec";
|
|
167
|
+
dataType: "json";
|
|
168
|
+
columnType: "PgJsonb";
|
|
169
|
+
data: unknown;
|
|
170
|
+
driverParam: unknown;
|
|
171
|
+
notNull: false;
|
|
172
|
+
hasDefault: false;
|
|
173
|
+
isPrimaryKey: false;
|
|
174
|
+
isAutoincrement: false;
|
|
175
|
+
hasRuntimeDefault: false;
|
|
176
|
+
enumValues: undefined;
|
|
177
|
+
baseColumn: never;
|
|
178
|
+
identity: undefined;
|
|
179
|
+
generated: undefined;
|
|
180
|
+
}, {}, {}>;
|
|
181
|
+
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
182
|
+
name: "created_at";
|
|
183
|
+
tableName: "workflow_run_launch_spec";
|
|
184
|
+
dataType: "date";
|
|
185
|
+
columnType: "PgTimestamp";
|
|
186
|
+
data: Date;
|
|
187
|
+
driverParam: string;
|
|
188
|
+
notNull: true;
|
|
189
|
+
hasDefault: true;
|
|
190
|
+
isPrimaryKey: false;
|
|
191
|
+
isAutoincrement: false;
|
|
192
|
+
hasRuntimeDefault: false;
|
|
193
|
+
enumValues: undefined;
|
|
194
|
+
baseColumn: never;
|
|
195
|
+
identity: undefined;
|
|
196
|
+
generated: undefined;
|
|
197
|
+
}, {}, {}>;
|
|
198
|
+
};
|
|
199
|
+
dialect: "pg";
|
|
200
|
+
}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { integer, jsonb, pgTable, text, timestamp } from "drizzle-orm/pg-core";
|
|
2
|
+
import { principal } from "./principals.js";
|
|
3
|
+
import { workflowRun } from "./workflow-run.js";
|
|
4
|
+
/**
|
|
5
|
+
* Immutable inputs required to recreate an exclusively placed workflow on a
|
|
6
|
+
* replacement sidecar. Secrets are deliberately excluded: source offering
|
|
7
|
+
* ids are resolved against the current catalog and principal authority when a
|
|
8
|
+
* generation is launched.
|
|
9
|
+
*/
|
|
10
|
+
export const workflowRunLaunchSpec = pgTable("workflow_run_launch_spec", {
|
|
11
|
+
anchorRunId: text("anchor_run_id")
|
|
12
|
+
.primaryKey()
|
|
13
|
+
.references(() => workflowRun.id, { onDelete: "cascade" }),
|
|
14
|
+
schemaVersion: integer("schema_version").notNull().default(1),
|
|
15
|
+
sessionId: text("session_id").notNull(),
|
|
16
|
+
deploymentDomain: text("deployment_domain").notNull(),
|
|
17
|
+
sourceAuthorityPrincipalId: text("source_authority_principal_id")
|
|
18
|
+
.notNull()
|
|
19
|
+
.references(() => principal.id, { onDelete: "restrict" }),
|
|
20
|
+
frozenApprovalBundle: jsonb("frozen_approval_bundle").notNull(),
|
|
21
|
+
sourceOfferingIds: jsonb("source_offering_ids").notNull(),
|
|
22
|
+
defaultSourceOfferingId: text("default_source_offering_id").notNull(),
|
|
23
|
+
deployContent: jsonb("deploy_content").notNull(),
|
|
24
|
+
toolPackagePins: jsonb("tool_package_pins"),
|
|
25
|
+
createdAt: timestamp("created_at").notNull().defaultNow(),
|
|
26
|
+
});
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
export declare const workflowRun: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
2
|
+
name: "workflow_run";
|
|
3
|
+
schema: undefined;
|
|
4
|
+
columns: {
|
|
5
|
+
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
6
|
+
name: "id";
|
|
7
|
+
tableName: "workflow_run";
|
|
8
|
+
dataType: "string";
|
|
9
|
+
columnType: "PgText";
|
|
10
|
+
data: string;
|
|
11
|
+
driverParam: string;
|
|
12
|
+
notNull: true;
|
|
13
|
+
hasDefault: false;
|
|
14
|
+
isPrimaryKey: true;
|
|
15
|
+
isAutoincrement: false;
|
|
16
|
+
hasRuntimeDefault: false;
|
|
17
|
+
enumValues: [string, ...string[]];
|
|
18
|
+
baseColumn: never;
|
|
19
|
+
identity: undefined;
|
|
20
|
+
generated: undefined;
|
|
21
|
+
}, {}, {}>;
|
|
22
|
+
definitionId: import("drizzle-orm/pg-core").PgColumn<{
|
|
23
|
+
name: "definition_id";
|
|
24
|
+
tableName: "workflow_run";
|
|
25
|
+
dataType: "string";
|
|
26
|
+
columnType: "PgText";
|
|
27
|
+
data: string;
|
|
28
|
+
driverParam: string;
|
|
29
|
+
notNull: true;
|
|
30
|
+
hasDefault: false;
|
|
31
|
+
isPrimaryKey: false;
|
|
32
|
+
isAutoincrement: false;
|
|
33
|
+
hasRuntimeDefault: false;
|
|
34
|
+
enumValues: [string, ...string[]];
|
|
35
|
+
baseColumn: never;
|
|
36
|
+
identity: undefined;
|
|
37
|
+
generated: undefined;
|
|
38
|
+
}, {}, {}>;
|
|
39
|
+
anchorRunId: import("drizzle-orm/pg-core").PgColumn<{
|
|
40
|
+
name: "anchor_run_id";
|
|
41
|
+
tableName: "workflow_run";
|
|
42
|
+
dataType: "string";
|
|
43
|
+
columnType: "PgText";
|
|
44
|
+
data: string;
|
|
45
|
+
driverParam: string;
|
|
46
|
+
notNull: false;
|
|
47
|
+
hasDefault: false;
|
|
48
|
+
isPrimaryKey: false;
|
|
49
|
+
isAutoincrement: false;
|
|
50
|
+
hasRuntimeDefault: false;
|
|
51
|
+
enumValues: [string, ...string[]];
|
|
52
|
+
baseColumn: never;
|
|
53
|
+
identity: undefined;
|
|
54
|
+
generated: undefined;
|
|
55
|
+
}, {}, {}>;
|
|
56
|
+
tenantId: import("drizzle-orm/pg-core").PgColumn<{
|
|
57
|
+
name: "tenant_id";
|
|
58
|
+
tableName: "workflow_run";
|
|
59
|
+
dataType: "string";
|
|
60
|
+
columnType: "PgText";
|
|
61
|
+
data: string;
|
|
62
|
+
driverParam: string;
|
|
63
|
+
notNull: true;
|
|
64
|
+
hasDefault: false;
|
|
65
|
+
isPrimaryKey: false;
|
|
66
|
+
isAutoincrement: false;
|
|
67
|
+
hasRuntimeDefault: false;
|
|
68
|
+
enumValues: [string, ...string[]];
|
|
69
|
+
baseColumn: never;
|
|
70
|
+
identity: undefined;
|
|
71
|
+
generated: undefined;
|
|
72
|
+
}, {}, {}>;
|
|
73
|
+
principalId: import("drizzle-orm/pg-core").PgColumn<{
|
|
74
|
+
name: "principal_id";
|
|
75
|
+
tableName: "workflow_run";
|
|
76
|
+
dataType: "string";
|
|
77
|
+
columnType: "PgText";
|
|
78
|
+
data: string;
|
|
79
|
+
driverParam: string;
|
|
80
|
+
notNull: false;
|
|
81
|
+
hasDefault: false;
|
|
82
|
+
isPrimaryKey: false;
|
|
83
|
+
isAutoincrement: false;
|
|
84
|
+
hasRuntimeDefault: false;
|
|
85
|
+
enumValues: [string, ...string[]];
|
|
86
|
+
baseColumn: never;
|
|
87
|
+
identity: undefined;
|
|
88
|
+
generated: undefined;
|
|
89
|
+
}, {}, {}>;
|
|
90
|
+
status: import("drizzle-orm/pg-core").PgColumn<{
|
|
91
|
+
name: "status";
|
|
92
|
+
tableName: "workflow_run";
|
|
93
|
+
dataType: "string";
|
|
94
|
+
columnType: "PgText";
|
|
95
|
+
data: "deployed" | "failed" | "running" | "completed" | "cancelled";
|
|
96
|
+
driverParam: string;
|
|
97
|
+
notNull: true;
|
|
98
|
+
hasDefault: true;
|
|
99
|
+
isPrimaryKey: false;
|
|
100
|
+
isAutoincrement: false;
|
|
101
|
+
hasRuntimeDefault: false;
|
|
102
|
+
enumValues: ["deployed", "running", "completed", "failed", "cancelled"];
|
|
103
|
+
baseColumn: never;
|
|
104
|
+
identity: undefined;
|
|
105
|
+
generated: undefined;
|
|
106
|
+
}, {}, {}>;
|
|
107
|
+
address: import("drizzle-orm/pg-core").PgColumn<{
|
|
108
|
+
name: "address";
|
|
109
|
+
tableName: "workflow_run";
|
|
110
|
+
dataType: "string";
|
|
111
|
+
columnType: "PgText";
|
|
112
|
+
data: string;
|
|
113
|
+
driverParam: string;
|
|
114
|
+
notNull: false;
|
|
115
|
+
hasDefault: false;
|
|
116
|
+
isPrimaryKey: false;
|
|
117
|
+
isAutoincrement: false;
|
|
118
|
+
hasRuntimeDefault: false;
|
|
119
|
+
enumValues: [string, ...string[]];
|
|
120
|
+
baseColumn: never;
|
|
121
|
+
identity: undefined;
|
|
122
|
+
generated: undefined;
|
|
123
|
+
}, {}, {}>;
|
|
124
|
+
publicKey: import("drizzle-orm/pg-core").PgColumn<{
|
|
125
|
+
name: "public_key";
|
|
126
|
+
tableName: "workflow_run";
|
|
127
|
+
dataType: "string";
|
|
128
|
+
columnType: "PgText";
|
|
129
|
+
data: string;
|
|
130
|
+
driverParam: string;
|
|
131
|
+
notNull: false;
|
|
132
|
+
hasDefault: false;
|
|
133
|
+
isPrimaryKey: false;
|
|
134
|
+
isAutoincrement: false;
|
|
135
|
+
hasRuntimeDefault: false;
|
|
136
|
+
enumValues: [string, ...string[]];
|
|
137
|
+
baseColumn: never;
|
|
138
|
+
identity: undefined;
|
|
139
|
+
generated: undefined;
|
|
140
|
+
}, {}, {}>;
|
|
141
|
+
sidecarId: import("drizzle-orm/pg-core").PgColumn<{
|
|
142
|
+
name: "sidecar_id";
|
|
143
|
+
tableName: "workflow_run";
|
|
144
|
+
dataType: "string";
|
|
145
|
+
columnType: "PgText";
|
|
146
|
+
data: string;
|
|
147
|
+
driverParam: string;
|
|
148
|
+
notNull: false;
|
|
149
|
+
hasDefault: false;
|
|
150
|
+
isPrimaryKey: false;
|
|
151
|
+
isAutoincrement: false;
|
|
152
|
+
hasRuntimeDefault: false;
|
|
153
|
+
enumValues: [string, ...string[]];
|
|
154
|
+
baseColumn: never;
|
|
155
|
+
identity: undefined;
|
|
156
|
+
generated: undefined;
|
|
157
|
+
}, {}, {}>;
|
|
158
|
+
kernelId: import("drizzle-orm/pg-core").PgColumn<{
|
|
159
|
+
name: "kernel_id";
|
|
160
|
+
tableName: "workflow_run";
|
|
161
|
+
dataType: "string";
|
|
162
|
+
columnType: "PgText";
|
|
163
|
+
data: string;
|
|
164
|
+
driverParam: string;
|
|
165
|
+
notNull: false;
|
|
166
|
+
hasDefault: false;
|
|
167
|
+
isPrimaryKey: false;
|
|
168
|
+
isAutoincrement: false;
|
|
169
|
+
hasRuntimeDefault: false;
|
|
170
|
+
enumValues: [string, ...string[]];
|
|
171
|
+
baseColumn: never;
|
|
172
|
+
identity: undefined;
|
|
173
|
+
generated: undefined;
|
|
174
|
+
}, {}, {}>;
|
|
175
|
+
modelPreferences: import("drizzle-orm/pg-core").PgColumn<{
|
|
176
|
+
name: "model_preferences";
|
|
177
|
+
tableName: "workflow_run";
|
|
178
|
+
dataType: "json";
|
|
179
|
+
columnType: "PgJsonb";
|
|
180
|
+
data: unknown;
|
|
181
|
+
driverParam: unknown;
|
|
182
|
+
notNull: false;
|
|
183
|
+
hasDefault: false;
|
|
184
|
+
isPrimaryKey: false;
|
|
185
|
+
isAutoincrement: false;
|
|
186
|
+
hasRuntimeDefault: false;
|
|
187
|
+
enumValues: undefined;
|
|
188
|
+
baseColumn: never;
|
|
189
|
+
identity: undefined;
|
|
190
|
+
generated: undefined;
|
|
191
|
+
}, {}, {}>;
|
|
192
|
+
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
193
|
+
name: "created_at";
|
|
194
|
+
tableName: "workflow_run";
|
|
195
|
+
dataType: "date";
|
|
196
|
+
columnType: "PgTimestamp";
|
|
197
|
+
data: Date;
|
|
198
|
+
driverParam: string;
|
|
199
|
+
notNull: true;
|
|
200
|
+
hasDefault: true;
|
|
201
|
+
isPrimaryKey: false;
|
|
202
|
+
isAutoincrement: false;
|
|
203
|
+
hasRuntimeDefault: false;
|
|
204
|
+
enumValues: undefined;
|
|
205
|
+
baseColumn: never;
|
|
206
|
+
identity: undefined;
|
|
207
|
+
generated: undefined;
|
|
208
|
+
}, {}, {}>;
|
|
209
|
+
endedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
210
|
+
name: "ended_at";
|
|
211
|
+
tableName: "workflow_run";
|
|
212
|
+
dataType: "date";
|
|
213
|
+
columnType: "PgTimestamp";
|
|
214
|
+
data: Date;
|
|
215
|
+
driverParam: string;
|
|
216
|
+
notNull: false;
|
|
217
|
+
hasDefault: false;
|
|
218
|
+
isPrimaryKey: false;
|
|
219
|
+
isAutoincrement: false;
|
|
220
|
+
hasRuntimeDefault: false;
|
|
221
|
+
enumValues: undefined;
|
|
222
|
+
baseColumn: never;
|
|
223
|
+
identity: undefined;
|
|
224
|
+
generated: undefined;
|
|
225
|
+
}, {}, {}>;
|
|
226
|
+
};
|
|
227
|
+
dialect: "pg";
|
|
228
|
+
}>;
|
|
229
|
+
export declare const liveWorkflowRunStatuses: readonly ["deployed", "running"];
|
|
230
|
+
export declare function isLiveWorkflowRunStatus(status: string): boolean;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { sql } from "drizzle-orm";
|
|
2
|
+
import { index, jsonb, pgTable, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
|
|
3
|
+
import { principal } from "./principals.js";
|
|
4
|
+
import { sidecar } from "./sidecar.js";
|
|
5
|
+
import { tenant } from "./tenants.js";
|
|
6
|
+
import { workflowDefinition } from "./workflow-definitions.js";
|
|
7
|
+
// workflow_run is the per-run authorization subject: one row per run of a
|
|
8
|
+
// workflow deployment. It gives "this approval belongs to a real run of this
|
|
9
|
+
// deployment" a database referent, so approvals and signal correlations anchor
|
|
10
|
+
// to a run row rather than a bare run id string.
|
|
11
|
+
//
|
|
12
|
+
// The id is opaque and heterogeneous: a deployment's addressable top-level
|
|
13
|
+
// run uses its stable mail address, while internal body-child runs use freshly
|
|
14
|
+
// minted synthetic ids. Both are run identifiers, so no format is enforced on
|
|
15
|
+
// the column.
|
|
16
|
+
export const workflowRun = pgTable("workflow_run", {
|
|
17
|
+
id: text("id").primaryKey(),
|
|
18
|
+
// The definition a run belongs to, carried by every run: a folded
|
|
19
|
+
// agent-origin run sets it at launch, and a deployment's anchor run and its
|
|
20
|
+
// child runs carry the deployment's definition. It is the run's anchor to a
|
|
21
|
+
// first-class definition. `cascade` matches `anchorRunId`'s onDelete, so
|
|
22
|
+
// deleting the definition removes its runs.
|
|
23
|
+
definitionId: text("definition_id")
|
|
24
|
+
.notNull()
|
|
25
|
+
.references(() => workflowDefinition.id, { onDelete: "cascade" }),
|
|
26
|
+
// Nullable as of the fold: a folded agent-origin run carries a
|
|
27
|
+
// `definitionId` and no deployment, while a deployment's anchor run sets
|
|
28
|
+
// this to its own id and a child run sets it to its anchor's id. It
|
|
29
|
+
// references the anchor `workflow_run` -- the run whose id equals the
|
|
30
|
+
// deployment id -- so an anchor row is self-referential. The only runtime
|
|
31
|
+
// read of the column (`resolveWorkflowPrincipalNames`) degrades gracefully
|
|
32
|
+
// when it is null.
|
|
33
|
+
anchorRunId: text("anchor_run_id").references(() => workflowRun.id, { onDelete: "cascade" }),
|
|
34
|
+
tenantId: text("tenant_id")
|
|
35
|
+
.notNull()
|
|
36
|
+
.references(() => tenant.id, { onDelete: "cascade" }),
|
|
37
|
+
// Nullable by design: an internal, workflow-spawned run has no principal of
|
|
38
|
+
// its own -- it inherits the deployment's grants at read time -- so null is
|
|
39
|
+
// the honest signal for "this run has no own principal." `onDelete: "set
|
|
40
|
+
// null"` is deliberate (unlike agent_instance's principal, which uses the
|
|
41
|
+
// implicit default): deleting a run's principal nulls the column rather than
|
|
42
|
+
// wedging the run row.
|
|
43
|
+
principalId: text("principal_id").references(() => principal.id, {
|
|
44
|
+
onDelete: "set null",
|
|
45
|
+
}),
|
|
46
|
+
// A deployment's anchor run is born "deployed": the deploy->first-trigger
|
|
47
|
+
// window is live but not yet running. The first trigger reconciles the
|
|
48
|
+
// anchor and flips this column "deployed" -> "running" (see
|
|
49
|
+
// `anchorWithPrincipal`). A child run has no such window -- it exists only
|
|
50
|
+
// once execution spawns it -- so it is born "running". A run settles into a
|
|
51
|
+
// terminal status when its terminal event lands on the workflow-run ref:
|
|
52
|
+
// the hub's pack-receive path flips this column under a live-status guard so
|
|
53
|
+
// a redelivered terminal event does not re-terminate the run.
|
|
54
|
+
status: text("status", {
|
|
55
|
+
enum: ["deployed", "running", "completed", "failed", "cancelled"],
|
|
56
|
+
})
|
|
57
|
+
.notNull()
|
|
58
|
+
.default("running"),
|
|
59
|
+
// Runtime bindings a folded run carries, mirroring `agent_instance`: a
|
|
60
|
+
// folded run IS the launched instance, so it owns its routing endpoint.
|
|
61
|
+
// `address` is that endpoint -- nullable because an address-less child run
|
|
62
|
+
// routes via its deployment (a deployment's anchor run instead carries a
|
|
63
|
+
// workflow-derived address), but unique among the runs that set it (the
|
|
64
|
+
// partial unique index below). The folded launch writes `address` and
|
|
65
|
+
// `modelPreferences`; `publicKey` is persisted when the sidecar acks the
|
|
66
|
+
// deploy; no code populates `sidecarId`/`kernelId`.
|
|
67
|
+
address: text("address"),
|
|
68
|
+
publicKey: text("public_key"),
|
|
69
|
+
sidecarId: text("sidecar_id").references(() => sidecar.id, {
|
|
70
|
+
onDelete: "set null",
|
|
71
|
+
}),
|
|
72
|
+
kernelId: text("kernel_id"),
|
|
73
|
+
modelPreferences: jsonb("model_preferences"),
|
|
74
|
+
createdAt: timestamp("created_at").notNull().defaultNow(),
|
|
75
|
+
// Nullable: a run has no end time until it reaches a terminal state.
|
|
76
|
+
endedAt: timestamp("ended_at"),
|
|
77
|
+
}, (t) => [
|
|
78
|
+
// Supports lookups of a definition's runs, the read path folded runs use
|
|
79
|
+
// once `definitionId` is the anchor.
|
|
80
|
+
index("workflow_run_definition_idx").on(t.definitionId),
|
|
81
|
+
// A folded run owns a unique routing address, exactly like the agent
|
|
82
|
+
// instance it stands in for; a run that anchors on a deployment instead
|
|
83
|
+
// leaves `address` null and is not indexed. Partial so the many null-address
|
|
84
|
+
// rows never collide and are kept out of the index.
|
|
85
|
+
uniqueIndex("workflow_run_address_idx")
|
|
86
|
+
.on(t.address)
|
|
87
|
+
.where(sql `${t.address} is not null`),
|
|
88
|
+
]);
|
|
89
|
+
// The statuses a run holds while live -- not yet settled into a terminal state.
|
|
90
|
+
// A deployment anchor is born "deployed" and flips to "running" on its first
|
|
91
|
+
// trigger; a child run is born "running". Every status gate that must treat a
|
|
92
|
+
// live run as live tests membership here, so "which statuses count as live" has
|
|
93
|
+
// a single definition rather than a `status !== "running"` scattered across the
|
|
94
|
+
// workflow-run domain. The `satisfies` bound makes a drift from the column enum
|
|
95
|
+
// a compile error.
|
|
96
|
+
export const liveWorkflowRunStatuses = [
|
|
97
|
+
"deployed",
|
|
98
|
+
"running",
|
|
99
|
+
];
|
|
100
|
+
export function isLiveWorkflowRunStatus(status) {
|
|
101
|
+
return liveWorkflowRunStatuses.some((live) => live === status);
|
|
102
|
+
}
|