@intx/db 0.2.2 → 0.4.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.
Files changed (207) hide show
  1. package/README.md +13 -2
  2. package/dist/approval-store.d.ts +59 -0
  3. package/dist/approval-store.js +92 -0
  4. package/dist/asset-resolution.d.ts +2 -2
  5. package/dist/backfill-principal-keys.d.ts +9 -0
  6. package/dist/backfill-principal-keys.js +51 -0
  7. package/dist/client.d.ts +37 -2
  8. package/dist/client.js +6 -0
  9. package/dist/config.d.ts +1 -0
  10. package/dist/config.js +2 -0
  11. package/dist/connection.js +12 -8
  12. package/dist/credential-resolution.d.ts +181 -20
  13. package/dist/credential-resolution.js +251 -3
  14. package/dist/grant-store.js +35 -13
  15. package/dist/index.d.ts +20 -5
  16. package/dist/index.js +19 -5
  17. package/dist/model-source-resolution.d.ts +54 -7
  18. package/dist/model-source-resolution.js +177 -22
  19. package/dist/parse-row.d.ts +245 -34
  20. package/dist/parse-row.js +117 -18
  21. package/dist/principal-key-store.d.ts +51 -0
  22. package/dist/principal-key-store.js +82 -0
  23. package/dist/principal-store.d.ts +44 -0
  24. package/dist/principal-store.js +67 -0
  25. package/dist/rekey-credential-secrets.d.ts +13 -0
  26. package/dist/rekey-credential-secrets.js +61 -0
  27. package/dist/schema/approvals.d.ts +245 -0
  28. package/dist/schema/approvals.js +57 -0
  29. package/dist/schema/catalog.d.ts +17 -0
  30. package/dist/schema/catalog.js +7 -1
  31. package/dist/schema/credentials.d.ts +1 -1
  32. package/dist/schema/git-tokens.js +1 -1
  33. package/dist/schema/grants.js +8 -2
  34. package/dist/schema/index.d.ts +10 -4
  35. package/dist/schema/index.js +10 -4
  36. package/dist/schema/messages.d.ts +5 -5
  37. package/dist/schema/messages.js +20 -9
  38. package/dist/schema/offerings.js +8 -2
  39. package/dist/schema/{workflow-deployments.d.ts → principal-keys.d.ts} +29 -32
  40. package/dist/schema/principal-keys.js +28 -0
  41. package/dist/schema/principals.d.ts +2 -2
  42. package/dist/schema/principals.js +7 -5
  43. package/dist/schema/providers.d.ts +17 -0
  44. package/dist/schema/providers.js +5 -0
  45. package/dist/schema/roles.js +6 -2
  46. package/dist/schema/session-assets.d.ts +1 -38
  47. package/dist/schema/session-assets.js +36 -19
  48. package/dist/schema/sessions.js +7 -2
  49. package/dist/schema/sidecar-allocation.d.ts +385 -0
  50. package/dist/schema/sidecar-allocation.js +53 -0
  51. package/dist/schema/sidecar.d.ts +2 -2
  52. package/dist/schema/sidecar.js +3 -1
  53. package/dist/schema/signal-correlations.d.ts +177 -0
  54. package/dist/schema/signal-correlations.js +31 -0
  55. package/dist/schema/tenants.js +13 -3
  56. package/dist/schema/wallets.d.ts +3 -3
  57. package/dist/schema/wallets.js +4 -2
  58. package/dist/schema/{agents.d.ts → workflow-definitions.d.ts} +79 -113
  59. package/dist/schema/workflow-definitions.js +97 -0
  60. package/dist/schema/workflow-probe.d.ts +358 -0
  61. package/dist/schema/workflow-probe.js +51 -0
  62. package/dist/schema/workflow-run-dispatch.d.ts +345 -0
  63. package/dist/schema/workflow-run-dispatch.js +63 -0
  64. package/dist/schema/{agent-assets.d.ts → workflow-run-execution.d.ts} +44 -27
  65. package/dist/schema/workflow-run-execution.js +48 -0
  66. package/dist/schema/workflow-run-launch-spec.d.ts +200 -0
  67. package/dist/schema/workflow-run-launch-spec.js +26 -0
  68. package/dist/schema/{instances.d.ts → workflow-run.d.ts} +61 -66
  69. package/dist/schema/workflow-run.js +110 -0
  70. package/dist/sender-key-resolver.d.ts +91 -0
  71. package/dist/sender-key-resolver.js +184 -0
  72. package/dist/sidecar-allocation-store.d.ts +206 -0
  73. package/dist/sidecar-allocation-store.js +714 -0
  74. package/dist/signal-correlation-store.d.ts +36 -0
  75. package/dist/signal-correlation-store.js +63 -0
  76. package/dist/signer-identity.d.ts +12 -0
  77. package/dist/signer-identity.js +15 -0
  78. package/dist/tenant-hierarchy.d.ts +4 -1
  79. package/dist/tenant-hierarchy.js +37 -5
  80. package/dist/workflow-definition-store.d.ts +55 -0
  81. package/dist/workflow-definition-store.js +93 -0
  82. package/dist/workflow-probe-store.d.ts +47 -0
  83. package/dist/workflow-probe-store.js +124 -0
  84. package/dist/workflow-run-dispatch-store.d.ts +83 -0
  85. package/dist/workflow-run-dispatch-store.js +308 -0
  86. package/dist/workflow-run-launch-spec-store.d.ts +13 -0
  87. package/dist/workflow-run-launch-spec-store.js +30 -0
  88. package/dist/workflow-run-store.d.ts +54 -0
  89. package/dist/workflow-run-store.js +85 -0
  90. package/migrations/0037_credential_use_backfill.sql +39 -0
  91. package/migrations/0038_chilly_blacklash.sql +37 -0
  92. package/migrations/0039_quick_carnage.sql +2 -0
  93. package/migrations/0040_reshape_approval_origin.sql +24 -0
  94. package/migrations/0041_make_approval_timeout_at_nullable.sql +1 -0
  95. package/migrations/0042_youthful_mantis.sql +2 -0
  96. package/migrations/0043_signal_correlation_deployment_fk.sql +1 -0
  97. package/migrations/0044_model_offering_quirks.sql +1 -0
  98. package/migrations/0045_create_workflow_run.sql +13 -0
  99. package/migrations/0046_approval_signal_correlation_run_fk.sql +2 -0
  100. package/migrations/0047_create_workflow_definition.sql +30 -0
  101. package/migrations/0048_workflow_definition_origin_agent_id.sql +2 -0
  102. package/migrations/0049_curly_omega_flight.sql +2 -0
  103. package/migrations/0050_late_crystal.sql +10 -0
  104. package/migrations/0051_funny_madelyne_pryor.sql +1 -0
  105. package/migrations/0052_drop_inference_turn_instance_fk.sql +1 -0
  106. package/migrations/0053_session_mail_session_id_index.sql +1 -0
  107. package/migrations/0054_rekey_instance_grants_to_workflow_run.sql +10 -0
  108. package/migrations/0055_backfill_anchor_workflow_runs.sql +69 -0
  109. package/migrations/0056_repoint_deployment_fks_to_anchor_run.sql +32 -0
  110. package/migrations/0057_drop_workflow_deployment_projection.sql +22 -0
  111. package/migrations/0058_repoint_offering_fk_to_definition.sql +41 -0
  112. package/migrations/0059_repoint_transaction_fk_to_run.sql +10 -0
  113. package/migrations/0060_drop_session_mail_instance_fk.sql +6 -0
  114. package/migrations/0061_drop_session_asset_instance_fk.sql +7 -0
  115. package/migrations/0062_drop_agent_asset_table.sql +11 -0
  116. package/migrations/0063_repoint_agent_role_fk_to_definition.sql +39 -0
  117. package/migrations/0064_repoint_agent_session_fk_to_definition.sql +47 -0
  118. package/migrations/0065_add_workflow_definition_model_requirements.sql +37 -0
  119. package/migrations/0066_rekey_agent_definition_principals_to_workflow.sql +27 -0
  120. package/migrations/0067_add_workflow_definition_kind.sql +10 -0
  121. package/migrations/0068_drop_agent_tables_and_origin_agent_id.sql +31 -0
  122. package/migrations/0069_drop_workflow_definition_kind.sql +10 -0
  123. package/migrations/0070_flashy_proteus.sql +13 -0
  124. package/migrations/0072_add_workflow_definition_credential_bindings.sql +1 -0
  125. package/migrations/0073_grant_target_exactly_one_check.sql +13 -0
  126. package/migrations/0074_add_provider_api_base_url.sql +1 -0
  127. package/migrations/0075_workflow_run_launch_spec.sql +17 -0
  128. package/migrations/0076_sidecar_allocation.sql +40 -0
  129. package/migrations/0077_workflow_run_dispatch.sql +29 -0
  130. package/migrations/0078_workflow_run_dispatch_kind.sql +2 -0
  131. package/migrations/0079_rename_workflow_run_deployment_id_to_anchor_run_id.sql +4 -0
  132. package/migrations/0080_rename_correlation_approval_deployment_id_to_anchor_run_id.sql +9 -0
  133. package/migrations/0081_workflow_definition_content_hash_and_approved_wire_hash.sql +4 -0
  134. package/migrations/0082_blue_black_queen.sql +1 -0
  135. package/migrations/0083_replace_launch_spec_snapshot_with_frozen_bundle.sql +3 -0
  136. package/migrations/0084_delete_orphaned_credential_grants.sql +22 -0
  137. package/migrations/0085_add_approval_run_idx.sql +1 -0
  138. package/migrations/0086_cool_human_cannonball.sql +1 -0
  139. package/migrations/0087_drop_sidecar_placement.sql +3 -0
  140. package/migrations/0088_thick_sprite.sql +32 -0
  141. package/migrations/0089_tense_selene.sql +13 -0
  142. package/migrations/0090_tenant_domain_lower_unique.sql +2 -0
  143. package/migrations/0091_workflow_run_dispatch_sender_address.sql +21 -0
  144. package/migrations/0092_sidecar_destroy_failed.sql +4 -0
  145. package/migrations/0093_sidecar_initialization.sql +2 -0
  146. package/migrations/meta/0037_snapshot.json +3237 -0
  147. package/migrations/meta/0038_snapshot.json +3470 -0
  148. package/migrations/meta/0039_snapshot.json +3470 -0
  149. package/migrations/meta/0040_snapshot.json +3489 -0
  150. package/migrations/meta/0041_snapshot.json +3489 -0
  151. package/migrations/meta/0042_snapshot.json +3489 -0
  152. package/migrations/meta/0043_snapshot.json +3498 -0
  153. package/migrations/meta/0044_snapshot.json +3504 -0
  154. package/migrations/meta/0045_snapshot.json +3589 -0
  155. package/migrations/meta/0046_snapshot.json +3607 -0
  156. package/migrations/meta/0047_snapshot.json +3832 -0
  157. package/migrations/meta/0048_snapshot.json +3853 -0
  158. package/migrations/meta/0049_snapshot.json +3854 -0
  159. package/migrations/meta/0050_snapshot.json +3924 -0
  160. package/migrations/meta/0051_snapshot.json +3940 -0
  161. package/migrations/meta/0052_snapshot.json +3931 -0
  162. package/migrations/meta/0053_snapshot.json +3952 -0
  163. package/migrations/meta/0054_snapshot.json +3952 -0
  164. package/migrations/meta/0055_snapshot.json +3952 -0
  165. package/migrations/meta/0056_snapshot.json +3952 -0
  166. package/migrations/meta/0057_snapshot.json +3839 -0
  167. package/migrations/meta/0058_snapshot.json +3839 -0
  168. package/migrations/meta/0059_snapshot.json +3839 -0
  169. package/migrations/meta/0060_snapshot.json +3830 -0
  170. package/migrations/meta/0061_snapshot.json +3821 -0
  171. package/migrations/meta/0062_snapshot.json +3723 -0
  172. package/migrations/meta/0063_snapshot.json +3723 -0
  173. package/migrations/meta/0064_snapshot.json +3723 -0
  174. package/migrations/meta/0065_snapshot.json +3729 -0
  175. package/migrations/meta/0066_snapshot.json +3729 -0
  176. package/migrations/meta/0067_snapshot.json +3736 -0
  177. package/migrations/meta/0068_snapshot.json +3347 -0
  178. package/migrations/meta/0069_snapshot.json +3340 -0
  179. package/migrations/meta/0070_snapshot.json +3444 -0
  180. package/migrations/meta/0072_snapshot.json +3450 -0
  181. package/migrations/meta/0073_snapshot.json +3455 -0
  182. package/migrations/meta/0074_snapshot.json +3461 -0
  183. package/migrations/meta/0075_snapshot.json +3567 -0
  184. package/migrations/meta/0076_snapshot.json +3851 -0
  185. package/migrations/meta/0077_snapshot.json +4067 -0
  186. package/migrations/meta/0078_snapshot.json +4078 -0
  187. package/migrations/meta/0079_snapshot.json +4078 -0
  188. package/migrations/meta/0080_snapshot.json +4078 -0
  189. package/migrations/meta/0081_snapshot.json +4096 -0
  190. package/migrations/meta/0082_snapshot.json +4102 -0
  191. package/migrations/meta/0083_snapshot.json +4096 -0
  192. package/migrations/meta/0084_snapshot.json +4096 -0
  193. package/migrations/meta/0085_snapshot.json +4111 -0
  194. package/migrations/meta/0086_snapshot.json +4117 -0
  195. package/migrations/meta/0087_snapshot.json +4100 -0
  196. package/migrations/meta/0088_snapshot.json +4286 -0
  197. package/migrations/meta/0089_snapshot.json +4376 -0
  198. package/migrations/meta/0090_snapshot.json +4387 -0
  199. package/migrations/meta/0091_snapshot.json +4397 -0
  200. package/migrations/meta/0092_snapshot.json +4397 -0
  201. package/migrations/meta/0093_snapshot.json +4407 -0
  202. package/migrations/meta/_journal.json +392 -0
  203. package/package.json +7 -3
  204. package/dist/schema/agent-assets.js +0 -15
  205. package/dist/schema/agents.js +0 -57
  206. package/dist/schema/instances.js +0 -39
  207. package/dist/schema/workflow-deployments.js +0 -37
@@ -0,0 +1,385 @@
1
+ export declare const sidecarAllocation: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "sidecar_allocation";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "sidecar_allocation";
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
+ anchorRunId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "anchor_run_id";
24
+ tableName: "sidecar_allocation";
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
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "tenant_id";
41
+ tableName: "sidecar_allocation";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
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
+ provisionerId: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "provisioner_id";
58
+ tableName: "sidecar_allocation";
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
+ provisionerApiVersion: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "provisioner_api_version";
75
+ tableName: "sidecar_allocation";
76
+ dataType: "number";
77
+ columnType: "PgInteger";
78
+ data: 1;
79
+ driverParam: string | number;
80
+ notNull: true;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {
90
+ $type: 1;
91
+ }>;
92
+ provisionerBindingFingerprint: import("drizzle-orm/pg-core").PgColumn<{
93
+ name: "provisioner_binding_fingerprint";
94
+ tableName: "sidecar_allocation";
95
+ dataType: "string";
96
+ columnType: "PgText";
97
+ data: string;
98
+ driverParam: string;
99
+ notNull: true;
100
+ hasDefault: false;
101
+ isPrimaryKey: false;
102
+ isAutoincrement: false;
103
+ hasRuntimeDefault: false;
104
+ enumValues: [string, ...string[]];
105
+ baseColumn: never;
106
+ identity: undefined;
107
+ generated: undefined;
108
+ }, {}, {}>;
109
+ sidecarId: import("drizzle-orm/pg-core").PgColumn<{
110
+ name: "sidecar_id";
111
+ tableName: "sidecar_allocation";
112
+ dataType: "string";
113
+ columnType: "PgText";
114
+ data: string;
115
+ driverParam: string;
116
+ notNull: false;
117
+ hasDefault: false;
118
+ isPrimaryKey: false;
119
+ isAutoincrement: false;
120
+ hasRuntimeDefault: false;
121
+ enumValues: [string, ...string[]];
122
+ baseColumn: never;
123
+ identity: undefined;
124
+ generated: undefined;
125
+ }, {}, {}>;
126
+ status: import("drizzle-orm/pg-core").PgColumn<{
127
+ name: "status";
128
+ tableName: "sidecar_allocation";
129
+ dataType: "string";
130
+ columnType: "PgText";
131
+ data: "failed" | "pending" | "releasing" | "released" | "destroy_failed" | "provisioning" | "allocated" | "replacing";
132
+ driverParam: string;
133
+ notNull: true;
134
+ hasDefault: true;
135
+ isPrimaryKey: false;
136
+ isAutoincrement: false;
137
+ hasRuntimeDefault: false;
138
+ enumValues: [string, ...string[]];
139
+ baseColumn: never;
140
+ identity: undefined;
141
+ generated: undefined;
142
+ }, {}, {
143
+ $type: "failed" | "pending" | "releasing" | "released" | "destroy_failed" | "provisioning" | "allocated" | "replacing";
144
+ }>;
145
+ generation: import("drizzle-orm/pg-core").PgColumn<{
146
+ name: "generation";
147
+ tableName: "sidecar_allocation";
148
+ dataType: "number";
149
+ columnType: "PgInteger";
150
+ data: number;
151
+ driverParam: string | number;
152
+ notNull: true;
153
+ hasDefault: true;
154
+ isPrimaryKey: false;
155
+ isAutoincrement: false;
156
+ hasRuntimeDefault: false;
157
+ enumValues: undefined;
158
+ baseColumn: never;
159
+ identity: undefined;
160
+ generated: undefined;
161
+ }, {}, {}>;
162
+ ensureAcceptedGeneration: import("drizzle-orm/pg-core").PgColumn<{
163
+ name: "ensure_accepted_generation";
164
+ tableName: "sidecar_allocation";
165
+ dataType: "number";
166
+ columnType: "PgInteger";
167
+ data: number;
168
+ driverParam: string | number;
169
+ notNull: false;
170
+ hasDefault: false;
171
+ isPrimaryKey: false;
172
+ isAutoincrement: false;
173
+ hasRuntimeDefault: false;
174
+ enumValues: undefined;
175
+ baseColumn: never;
176
+ identity: undefined;
177
+ generated: undefined;
178
+ }, {}, {}>;
179
+ externalRef: import("drizzle-orm/pg-core").PgColumn<{
180
+ name: "external_ref";
181
+ tableName: "sidecar_allocation";
182
+ dataType: "string";
183
+ columnType: "PgText";
184
+ data: string;
185
+ driverParam: string;
186
+ notNull: false;
187
+ hasDefault: false;
188
+ isPrimaryKey: false;
189
+ isAutoincrement: false;
190
+ hasRuntimeDefault: false;
191
+ enumValues: [string, ...string[]];
192
+ baseColumn: never;
193
+ identity: undefined;
194
+ generated: undefined;
195
+ }, {}, {}>;
196
+ nextAttemptAt: import("drizzle-orm/pg-core").PgColumn<{
197
+ name: "next_attempt_at";
198
+ tableName: "sidecar_allocation";
199
+ dataType: "date";
200
+ columnType: "PgTimestamp";
201
+ data: Date;
202
+ driverParam: string;
203
+ notNull: false;
204
+ hasDefault: false;
205
+ isPrimaryKey: false;
206
+ isAutoincrement: false;
207
+ hasRuntimeDefault: false;
208
+ enumValues: undefined;
209
+ baseColumn: never;
210
+ identity: undefined;
211
+ generated: undefined;
212
+ }, {}, {}>;
213
+ reconciliationLeaseId: import("drizzle-orm/pg-core").PgColumn<{
214
+ name: "reconciliation_lease_id";
215
+ tableName: "sidecar_allocation";
216
+ dataType: "string";
217
+ columnType: "PgText";
218
+ data: string;
219
+ driverParam: string;
220
+ notNull: false;
221
+ hasDefault: false;
222
+ isPrimaryKey: false;
223
+ isAutoincrement: false;
224
+ hasRuntimeDefault: false;
225
+ enumValues: [string, ...string[]];
226
+ baseColumn: never;
227
+ identity: undefined;
228
+ generated: undefined;
229
+ }, {}, {}>;
230
+ reconciliationLeaseExpiresAt: import("drizzle-orm/pg-core").PgColumn<{
231
+ name: "reconciliation_lease_expires_at";
232
+ tableName: "sidecar_allocation";
233
+ dataType: "date";
234
+ columnType: "PgTimestamp";
235
+ data: Date;
236
+ driverParam: string;
237
+ notNull: false;
238
+ hasDefault: false;
239
+ isPrimaryKey: false;
240
+ isAutoincrement: false;
241
+ hasRuntimeDefault: false;
242
+ enumValues: undefined;
243
+ baseColumn: never;
244
+ identity: undefined;
245
+ generated: undefined;
246
+ }, {}, {}>;
247
+ initializationLeaseId: import("drizzle-orm/pg-core").PgColumn<{
248
+ name: "initialization_lease_id";
249
+ tableName: "sidecar_allocation";
250
+ dataType: "string";
251
+ columnType: "PgText";
252
+ data: string;
253
+ driverParam: string;
254
+ notNull: false;
255
+ hasDefault: false;
256
+ isPrimaryKey: false;
257
+ isAutoincrement: false;
258
+ hasRuntimeDefault: false;
259
+ enumValues: [string, ...string[]];
260
+ baseColumn: never;
261
+ identity: undefined;
262
+ generated: undefined;
263
+ }, {}, {}>;
264
+ ensureAttempts: import("drizzle-orm/pg-core").PgColumn<{
265
+ name: "ensure_attempts";
266
+ tableName: "sidecar_allocation";
267
+ dataType: "number";
268
+ columnType: "PgInteger";
269
+ data: number;
270
+ driverParam: string | number;
271
+ notNull: true;
272
+ hasDefault: true;
273
+ isPrimaryKey: false;
274
+ isAutoincrement: false;
275
+ hasRuntimeDefault: false;
276
+ enumValues: undefined;
277
+ baseColumn: never;
278
+ identity: undefined;
279
+ generated: undefined;
280
+ }, {}, {}>;
281
+ destroyAttempts: import("drizzle-orm/pg-core").PgColumn<{
282
+ name: "destroy_attempts";
283
+ tableName: "sidecar_allocation";
284
+ dataType: "number";
285
+ columnType: "PgInteger";
286
+ data: number;
287
+ driverParam: string | number;
288
+ notNull: true;
289
+ hasDefault: true;
290
+ isPrimaryKey: false;
291
+ isAutoincrement: false;
292
+ hasRuntimeDefault: false;
293
+ enumValues: undefined;
294
+ baseColumn: never;
295
+ identity: undefined;
296
+ generated: undefined;
297
+ }, {}, {}>;
298
+ connectDeadline: import("drizzle-orm/pg-core").PgColumn<{
299
+ name: "connect_deadline";
300
+ tableName: "sidecar_allocation";
301
+ dataType: "date";
302
+ columnType: "PgTimestamp";
303
+ data: Date;
304
+ driverParam: string;
305
+ notNull: false;
306
+ hasDefault: false;
307
+ isPrimaryKey: false;
308
+ isAutoincrement: false;
309
+ hasRuntimeDefault: false;
310
+ enumValues: undefined;
311
+ baseColumn: never;
312
+ identity: undefined;
313
+ generated: undefined;
314
+ }, {}, {}>;
315
+ failureCode: import("drizzle-orm/pg-core").PgColumn<{
316
+ name: "failure_code";
317
+ tableName: "sidecar_allocation";
318
+ dataType: "string";
319
+ columnType: "PgText";
320
+ data: string;
321
+ driverParam: string;
322
+ notNull: false;
323
+ hasDefault: false;
324
+ isPrimaryKey: false;
325
+ isAutoincrement: false;
326
+ hasRuntimeDefault: false;
327
+ enumValues: [string, ...string[]];
328
+ baseColumn: never;
329
+ identity: undefined;
330
+ generated: undefined;
331
+ }, {}, {}>;
332
+ failureMessage: import("drizzle-orm/pg-core").PgColumn<{
333
+ name: "failure_message";
334
+ tableName: "sidecar_allocation";
335
+ dataType: "string";
336
+ columnType: "PgText";
337
+ data: string;
338
+ driverParam: string;
339
+ notNull: false;
340
+ hasDefault: false;
341
+ isPrimaryKey: false;
342
+ isAutoincrement: false;
343
+ hasRuntimeDefault: false;
344
+ enumValues: [string, ...string[]];
345
+ baseColumn: never;
346
+ identity: undefined;
347
+ generated: undefined;
348
+ }, {}, {}>;
349
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
350
+ name: "created_at";
351
+ tableName: "sidecar_allocation";
352
+ dataType: "date";
353
+ columnType: "PgTimestamp";
354
+ data: Date;
355
+ driverParam: string;
356
+ notNull: true;
357
+ hasDefault: true;
358
+ isPrimaryKey: false;
359
+ isAutoincrement: false;
360
+ hasRuntimeDefault: false;
361
+ enumValues: undefined;
362
+ baseColumn: never;
363
+ identity: undefined;
364
+ generated: undefined;
365
+ }, {}, {}>;
366
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
367
+ name: "updated_at";
368
+ tableName: "sidecar_allocation";
369
+ dataType: "date";
370
+ columnType: "PgTimestamp";
371
+ data: Date;
372
+ driverParam: string;
373
+ notNull: true;
374
+ hasDefault: true;
375
+ isPrimaryKey: false;
376
+ isAutoincrement: false;
377
+ hasRuntimeDefault: false;
378
+ enumValues: undefined;
379
+ baseColumn: never;
380
+ identity: undefined;
381
+ generated: undefined;
382
+ }, {}, {}>;
383
+ };
384
+ dialect: "pg";
385
+ }>;
@@ -0,0 +1,53 @@
1
+ import { sql } from "drizzle-orm";
2
+ import { check, index, integer, pgTable, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
3
+ import { sidecar } from "./sidecar.js";
4
+ import { tenant } from "./tenants.js";
5
+ import { workflowRun } from "./workflow-run.js";
6
+ export const sidecarAllocation = pgTable("sidecar_allocation", {
7
+ id: text("id").primaryKey(),
8
+ anchorRunId: text("anchor_run_id")
9
+ .notNull()
10
+ .references(() => workflowRun.id, { onDelete: "cascade" }),
11
+ tenantId: text("tenant_id")
12
+ .notNull()
13
+ .references(() => tenant.id, { onDelete: "restrict" }),
14
+ provisionerId: text("provisioner_id").notNull(),
15
+ provisionerApiVersion: integer("provisioner_api_version")
16
+ .$type()
17
+ .notNull(),
18
+ provisionerBindingFingerprint: text("provisioner_binding_fingerprint").notNull(),
19
+ sidecarId: text("sidecar_id").references(() => sidecar.id, {
20
+ onDelete: "restrict",
21
+ }),
22
+ status: text("status")
23
+ .$type()
24
+ .notNull()
25
+ .default("pending"),
26
+ generation: integer("generation").notNull().default(0),
27
+ ensureAcceptedGeneration: integer("ensure_accepted_generation"),
28
+ externalRef: text("external_ref"),
29
+ nextAttemptAt: timestamp("next_attempt_at"),
30
+ reconciliationLeaseId: text("reconciliation_lease_id"),
31
+ reconciliationLeaseExpiresAt: timestamp("reconciliation_lease_expires_at"),
32
+ initializationLeaseId: text("initialization_lease_id"),
33
+ ensureAttempts: integer("ensure_attempts").notNull().default(0),
34
+ destroyAttempts: integer("destroy_attempts").notNull().default(0),
35
+ connectDeadline: timestamp("connect_deadline"),
36
+ failureCode: text("failure_code"),
37
+ failureMessage: text("failure_message"),
38
+ createdAt: timestamp("created_at").notNull().defaultNow(),
39
+ updatedAt: timestamp("updated_at").notNull().defaultNow(),
40
+ }, (t) => [
41
+ uniqueIndex("sidecar_allocation_anchor_run_idx").on(t.anchorRunId),
42
+ uniqueIndex("sidecar_allocation_active_sidecar_idx")
43
+ .on(t.sidecarId)
44
+ .where(sql `${t.status} in ('provisioning', 'allocated', 'replacing', 'releasing', 'destroy_failed')`),
45
+ index("sidecar_allocation_sidecar_idx").on(t.sidecarId),
46
+ index("sidecar_allocation_reconciliation_idx")
47
+ .on(t.nextAttemptAt, t.createdAt)
48
+ .where(sql `${t.status} in ('pending', 'provisioning', 'allocated', 'replacing', 'releasing') and ${t.nextAttemptAt} is not null`),
49
+ check("sidecar_allocation_status_check", sql `${t.status} in ('pending', 'provisioning', 'allocated', 'replacing', 'releasing', 'destroy_failed', 'released', 'failed')`),
50
+ check("sidecar_allocation_generation_check", sql `${t.generation} >= 0`),
51
+ check("sidecar_allocation_accepted_generation_check", sql `${t.ensureAcceptedGeneration} is null or ${t.ensureAcceptedGeneration} <= ${t.generation}`),
52
+ check("sidecar_allocation_initialization_check", sql `${t.initializationLeaseId} is null or (${t.status} = 'allocated' and ${t.ensureAcceptedGeneration} is not null and ${t.ensureAcceptedGeneration} = ${t.generation})`),
53
+ ]);
@@ -26,7 +26,7 @@ export declare const sidecar: import("drizzle-orm/pg-core").PgTableWithColumns<{
26
26
  columnType: "PgText";
27
27
  data: string;
28
28
  driverParam: string;
29
- notNull: true;
29
+ notNull: false;
30
30
  hasDefault: false;
31
31
  isPrimaryKey: false;
32
32
  isAutoincrement: false;
@@ -60,7 +60,7 @@ export declare const sidecar: import("drizzle-orm/pg-core").PgTableWithColumns<{
60
60
  tableName: "sidecar";
61
61
  dataType: "string";
62
62
  columnType: "PgText";
63
- data: "error" | "online" | "offline";
63
+ data: "online" | "offline" | "error";
64
64
  driverParam: string;
65
65
  notNull: true;
66
66
  hasDefault: true;
@@ -2,7 +2,9 @@ import { pgTable, text, timestamp } from "drizzle-orm/pg-core";
2
2
  import { bytea } from "./column-types.js";
3
3
  export const sidecar = pgTable("sidecar", {
4
4
  id: text("id").primaryKey(),
5
- url: text("url").notNull(),
5
+ // Provisioned probe/allocation identities exist before their infrastructure
6
+ // connects, so they do not have an endpoint until registration completes.
7
+ url: text("url"),
6
8
  // SHA-256 digest of the sidecar's bearer token, presented on the
7
9
  // WebSocket handshake and matched against this column. Only the digest
8
10
  // is stored; the raw token is never persisted.
@@ -0,0 +1,177 @@
1
+ export declare const signalCorrelation: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "signal_correlation";
3
+ schema: undefined;
4
+ columns: {
5
+ correlationId: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "correlation_id";
7
+ tableName: "signal_correlation";
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
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "tenant_id";
24
+ tableName: "signal_correlation";
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: "signal_correlation";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
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
+ agentAddress: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "agent_address";
58
+ tableName: "signal_correlation";
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
+ runId: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "run_id";
75
+ tableName: "signal_correlation";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: true;
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
+ signalName: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "signal_name";
92
+ tableName: "signal_correlation";
93
+ dataType: "string";
94
+ columnType: "PgText";
95
+ data: string;
96
+ driverParam: string;
97
+ notNull: true;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: [string, ...string[]];
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ kind: import("drizzle-orm/pg-core").PgColumn<{
108
+ name: "kind";
109
+ tableName: "signal_correlation";
110
+ dataType: "string";
111
+ columnType: "PgText";
112
+ data: "approval";
113
+ driverParam: string;
114
+ notNull: true;
115
+ hasDefault: false;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: ["approval"];
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}, {}>;
124
+ signalId: import("drizzle-orm/pg-core").PgColumn<{
125
+ name: "signal_id";
126
+ tableName: "signal_correlation";
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
+ resolvedAt: import("drizzle-orm/pg-core").PgColumn<{
142
+ name: "resolved_at";
143
+ tableName: "signal_correlation";
144
+ dataType: "date";
145
+ columnType: "PgTimestamp";
146
+ data: Date;
147
+ driverParam: string;
148
+ notNull: false;
149
+ hasDefault: false;
150
+ isPrimaryKey: false;
151
+ isAutoincrement: false;
152
+ hasRuntimeDefault: false;
153
+ enumValues: undefined;
154
+ baseColumn: never;
155
+ identity: undefined;
156
+ generated: undefined;
157
+ }, {}, {}>;
158
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
159
+ name: "created_at";
160
+ tableName: "signal_correlation";
161
+ dataType: "date";
162
+ columnType: "PgTimestamp";
163
+ data: Date;
164
+ driverParam: string;
165
+ notNull: true;
166
+ hasDefault: true;
167
+ isPrimaryKey: false;
168
+ isAutoincrement: false;
169
+ hasRuntimeDefault: false;
170
+ enumValues: undefined;
171
+ baseColumn: never;
172
+ identity: undefined;
173
+ generated: undefined;
174
+ }, {}, {}>;
175
+ };
176
+ dialect: "pg";
177
+ }>;
@@ -0,0 +1,31 @@
1
+ import { pgTable, text, timestamp } from "drizzle-orm/pg-core";
2
+ import { tenant } from "./tenants.js";
3
+ import { workflowRun } from "./workflow-run.js";
4
+ export const signalCorrelation = pgTable("signal_correlation", {
5
+ correlationId: text("correlation_id").primaryKey(),
6
+ tenantId: text("tenant_id")
7
+ .notNull()
8
+ .references(() => tenant.id, { onDelete: "cascade" }),
9
+ // Co-written with an `approval` that references the same anchor run and
10
+ // already cascades on its delete. A correlation whose anchor run is gone can
11
+ // never resolve, and its co-written approval has already cascaded away, so
12
+ // cascading the correlation keeps the pair consistent rather than leaving a
13
+ // correlation pointing at a vanished anchor run.
14
+ anchorRunId: text("anchor_run_id")
15
+ .notNull()
16
+ .references(() => workflowRun.id, { onDelete: "cascade" }),
17
+ agentAddress: text("agent_address").notNull(),
18
+ // References the run this correlation belongs to. Cascades on the run's
19
+ // delete: a correlation whose run is gone can never resolve, and the
20
+ // anchor-run cascade above already removes it when the whole deployment
21
+ // is torn down. The `anchor_run_id` FK stays as the lock and cascade anchor
22
+ // the co-write orders against.
23
+ runId: text("run_id")
24
+ .notNull()
25
+ .references(() => workflowRun.id, { onDelete: "cascade" }),
26
+ signalName: text("signal_name").notNull(),
27
+ kind: text("kind", { enum: ["approval"] }).notNull(),
28
+ signalId: text("signal_id"),
29
+ resolvedAt: timestamp("resolved_at"),
30
+ createdAt: timestamp("created_at").notNull().defaultNow(),
31
+ });