@shipfox/api-runners 12.3.0 → 12.4.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.
Files changed (153) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/CHANGELOG.md +36 -0
  3. package/dist/config.d.ts +1 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +9 -2
  6. package/dist/config.js.map +1 -1
  7. package/dist/core/demand.d.ts +4 -2
  8. package/dist/core/demand.d.ts.map +1 -1
  9. package/dist/core/demand.js +22 -6
  10. package/dist/core/demand.js.map +1 -1
  11. package/dist/core/entities/reservation.d.ts +1 -0
  12. package/dist/core/entities/reservation.d.ts.map +1 -1
  13. package/dist/core/entities/reservation.js.map +1 -1
  14. package/dist/core/entities/runner-instance.d.ts +3 -0
  15. package/dist/core/entities/runner-instance.d.ts.map +1 -1
  16. package/dist/core/entities/runner-instance.js.map +1 -1
  17. package/dist/core/errors.d.ts +5 -1
  18. package/dist/core/errors.d.ts.map +1 -1
  19. package/dist/core/errors.js +9 -2
  20. package/dist/core/errors.js.map +1 -1
  21. package/dist/core/runner-activation.d.ts +4 -1
  22. package/dist/core/runner-activation.d.ts.map +1 -1
  23. package/dist/core/runner-activation.js +32 -3
  24. package/dist/core/runner-activation.js.map +1 -1
  25. package/dist/core/runner-control-sessions.d.ts +8 -4
  26. package/dist/core/runner-control-sessions.d.ts.map +1 -1
  27. package/dist/core/runner-control-sessions.js +116 -20
  28. package/dist/core/runner-control-sessions.js.map +1 -1
  29. package/dist/core/runner-instances.d.ts +1 -0
  30. package/dist/core/runner-instances.d.ts.map +1 -1
  31. package/dist/core/runner-instances.js +1 -0
  32. package/dist/core/runner-instances.js.map +1 -1
  33. package/dist/db/db.d.ts +68 -0
  34. package/dist/db/db.d.ts.map +1 -1
  35. package/dist/db/ephemeral-registration-tokens.d.ts.map +1 -1
  36. package/dist/db/ephemeral-registration-tokens.js +1 -1
  37. package/dist/db/ephemeral-registration-tokens.js.map +1 -1
  38. package/dist/db/job-executions.d.ts.map +1 -1
  39. package/dist/db/job-executions.js +35 -4
  40. package/dist/db/job-executions.js.map +1 -1
  41. package/dist/db/reservation-locks.d.ts +6 -0
  42. package/dist/db/reservation-locks.d.ts.map +1 -0
  43. package/dist/db/reservation-locks.js +15 -0
  44. package/dist/db/reservation-locks.js.map +1 -0
  45. package/dist/db/reservations.d.ts +17 -3
  46. package/dist/db/reservations.d.ts.map +1 -1
  47. package/dist/db/reservations.js +246 -51
  48. package/dist/db/reservations.js.map +1 -1
  49. package/dist/db/runner-assignments.d.ts +25 -1
  50. package/dist/db/runner-assignments.d.ts.map +1 -1
  51. package/dist/db/runner-assignments.js +160 -18
  52. package/dist/db/runner-assignments.js.map +1 -1
  53. package/dist/db/runner-instances.d.ts +11 -2
  54. package/dist/db/runner-instances.d.ts.map +1 -1
  55. package/dist/db/runner-instances.js +167 -24
  56. package/dist/db/runner-instances.js.map +1 -1
  57. package/dist/db/runner-sessions.d.ts.map +1 -1
  58. package/dist/db/runner-sessions.js +14 -1
  59. package/dist/db/runner-sessions.js.map +1 -1
  60. package/dist/db/runner-states.d.ts +2 -0
  61. package/dist/db/runner-states.d.ts.map +1 -0
  62. package/dist/db/runner-states.js +7 -0
  63. package/dist/db/runner-states.js.map +1 -0
  64. package/dist/db/schema/reservations.d.ts +18 -0
  65. package/dist/db/schema/reservations.d.ts.map +1 -1
  66. package/dist/db/schema/reservations.js +7 -1
  67. package/dist/db/schema/reservations.js.map +1 -1
  68. package/dist/db/schema/runner-instances.d.ts +18 -0
  69. package/dist/db/schema/runner-instances.d.ts.map +1 -1
  70. package/dist/db/schema/runner-instances.js +8 -0
  71. package/dist/db/schema/runner-instances.js.map +1 -1
  72. package/dist/metrics/index.d.ts +2 -2
  73. package/dist/metrics/index.d.ts.map +1 -1
  74. package/dist/metrics/index.js +1 -1
  75. package/dist/metrics/index.js.map +1 -1
  76. package/dist/metrics/instance.d.ts +72 -2
  77. package/dist/metrics/instance.d.ts.map +1 -1
  78. package/dist/metrics/instance.js +161 -1
  79. package/dist/metrics/instance.js.map +1 -1
  80. package/dist/metrics/service.d.ts.map +1 -1
  81. package/dist/metrics/service.js +25 -4
  82. package/dist/metrics/service.js.map +1 -1
  83. package/dist/presentation/dto/poll-demand.d.ts.map +1 -1
  84. package/dist/presentation/dto/poll-demand.js +3 -0
  85. package/dist/presentation/dto/poll-demand.js.map +1 -1
  86. package/dist/presentation/dto/runner-instances.d.ts +4 -1
  87. package/dist/presentation/dto/runner-instances.d.ts.map +1 -1
  88. package/dist/presentation/dto/runner-instances.js +4 -1
  89. package/dist/presentation/dto/runner-instances.js.map +1 -1
  90. package/dist/presentation/routes/assign-runner-instances.d.ts.map +1 -1
  91. package/dist/presentation/routes/assign-runner-instances.js +10 -4
  92. package/dist/presentation/routes/assign-runner-instances.js.map +1 -1
  93. package/dist/presentation/routes/poll-demand.d.ts.map +1 -1
  94. package/dist/presentation/routes/poll-demand.js +1 -0
  95. package/dist/presentation/routes/poll-demand.js.map +1 -1
  96. package/dist/presentation/routes/reconcile-runner-instances.d.ts.map +1 -1
  97. package/dist/presentation/routes/reconcile-runner-instances.js +4 -2
  98. package/dist/presentation/routes/reconcile-runner-instances.js.map +1 -1
  99. package/dist/presentation/routes/runner-enrollment.d.ts +4 -1
  100. package/dist/presentation/routes/runner-enrollment.d.ts.map +1 -1
  101. package/dist/presentation/routes/runner-enrollment.js +11 -6
  102. package/dist/presentation/routes/runner-enrollment.js.map +1 -1
  103. package/dist/tsconfig.test.tsbuildinfo +1 -1
  104. package/drizzle/0005_previous_lenny_balinger.sql +5 -0
  105. package/drizzle/meta/0005_snapshot.json +2220 -0
  106. package/drizzle/meta/_journal.json +7 -0
  107. package/package.json +6 -6
  108. package/src/config.test.ts +22 -0
  109. package/src/config.ts +15 -2
  110. package/src/core/demand.test.ts +192 -3
  111. package/src/core/demand.ts +44 -4
  112. package/src/core/entities/reservation.ts +1 -0
  113. package/src/core/entities/runner-instance.ts +4 -0
  114. package/src/core/errors.ts +30 -1
  115. package/src/core/runner-activation.ts +48 -2
  116. package/src/core/runner-control-sessions.test.ts +135 -3
  117. package/src/core/runner-control-sessions.ts +141 -19
  118. package/src/core/runner-instances.test.ts +19 -0
  119. package/src/core/runner-instances.ts +2 -0
  120. package/src/core/runner-sessions.test.ts +121 -1
  121. package/src/db/ephemeral-registration-tokens.test.ts +20 -1
  122. package/src/db/ephemeral-registration-tokens.ts +1 -0
  123. package/src/db/job-executions.test.ts +98 -12
  124. package/src/db/job-executions.ts +52 -4
  125. package/src/db/reservation-locks.ts +22 -0
  126. package/src/db/reservations.test.ts +733 -22
  127. package/src/db/reservations.ts +408 -144
  128. package/src/db/runner-assignments.test.ts +105 -1
  129. package/src/db/runner-assignments.ts +245 -25
  130. package/src/db/runner-instances.test.ts +357 -2
  131. package/src/db/runner-instances.ts +289 -55
  132. package/src/db/runner-sessions.ts +19 -1
  133. package/src/db/runner-states.ts +7 -0
  134. package/src/db/schema/reservations.ts +5 -1
  135. package/src/db/schema/runner-instances.ts +9 -0
  136. package/src/metrics/index.ts +24 -1
  137. package/src/metrics/instance.test.ts +118 -0
  138. package/src/metrics/instance.ts +247 -3
  139. package/src/metrics/service.test.ts +46 -1
  140. package/src/metrics/service.ts +55 -8
  141. package/src/presentation/dto/poll-demand.ts +3 -0
  142. package/src/presentation/dto/runner-instances.ts +8 -1
  143. package/src/presentation/routes/assign-runner-instances.ts +14 -2
  144. package/src/presentation/routes/late-runner-enrollment.test.ts +219 -2
  145. package/src/presentation/routes/poll-demand.test.ts +56 -0
  146. package/src/presentation/routes/poll-demand.ts +1 -0
  147. package/src/presentation/routes/reconcile-runner-instances.test.ts +34 -2
  148. package/src/presentation/routes/reconcile-runner-instances.ts +7 -1
  149. package/src/presentation/routes/runner-enrollment.test.ts +316 -3
  150. package/src/presentation/routes/runner-enrollment.ts +8 -5
  151. package/test/factories/reservation.ts +2 -0
  152. package/test/factories/runner-instance.ts +6 -0
  153. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,2220 @@
1
+ {
2
+ "id": "2a126d53-abd8-44c2-9133-39b4906faf9a",
3
+ "prevId": "5d378e67-a9df-497a-86c0-a70ed6b79e68",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.runners_admin_command_results": {
8
+ "name": "runners_admin_command_results",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "uuidv7()"
17
+ },
18
+ "actor_id": {
19
+ "name": "actor_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "idempotency_key_fingerprint": {
25
+ "name": "idempotency_key_fingerprint",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "command": {
31
+ "name": "command",
32
+ "type": "text",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "request_fingerprint": {
37
+ "name": "request_fingerprint",
38
+ "type": "text",
39
+ "primaryKey": false,
40
+ "notNull": true
41
+ },
42
+ "result": {
43
+ "name": "result",
44
+ "type": "jsonb",
45
+ "primaryKey": false,
46
+ "notNull": true
47
+ },
48
+ "created_at": {
49
+ "name": "created_at",
50
+ "type": "timestamp with time zone",
51
+ "primaryKey": false,
52
+ "notNull": true,
53
+ "default": "now()"
54
+ }
55
+ },
56
+ "indexes": {
57
+ "runners_admin_command_results_actor_key_unique": {
58
+ "name": "runners_admin_command_results_actor_key_unique",
59
+ "columns": [
60
+ {
61
+ "expression": "actor_id",
62
+ "isExpression": false,
63
+ "asc": true,
64
+ "nulls": "last"
65
+ },
66
+ {
67
+ "expression": "idempotency_key_fingerprint",
68
+ "isExpression": false,
69
+ "asc": true,
70
+ "nulls": "last"
71
+ }
72
+ ],
73
+ "isUnique": true,
74
+ "concurrently": false,
75
+ "method": "btree",
76
+ "with": {}
77
+ }
78
+ },
79
+ "foreignKeys": {},
80
+ "compositePrimaryKeys": {},
81
+ "uniqueConstraints": {},
82
+ "policies": {},
83
+ "checkConstraints": {},
84
+ "isRLSEnabled": false
85
+ },
86
+ "public.runners_ephemeral_registration_tokens": {
87
+ "name": "runners_ephemeral_registration_tokens",
88
+ "schema": "",
89
+ "columns": {
90
+ "id": {
91
+ "name": "id",
92
+ "type": "uuid",
93
+ "primaryKey": true,
94
+ "notNull": true,
95
+ "default": "uuidv7()"
96
+ },
97
+ "workspace_id": {
98
+ "name": "workspace_id",
99
+ "type": "uuid",
100
+ "primaryKey": false,
101
+ "notNull": true
102
+ },
103
+ "provisioner_id": {
104
+ "name": "provisioner_id",
105
+ "type": "uuid",
106
+ "primaryKey": false,
107
+ "notNull": true
108
+ },
109
+ "reservation_id": {
110
+ "name": "reservation_id",
111
+ "type": "uuid",
112
+ "primaryKey": false,
113
+ "notNull": false
114
+ },
115
+ "provider_runner_id": {
116
+ "name": "provider_runner_id",
117
+ "type": "text",
118
+ "primaryKey": false,
119
+ "notNull": true
120
+ },
121
+ "hashed_token": {
122
+ "name": "hashed_token",
123
+ "type": "text",
124
+ "primaryKey": false,
125
+ "notNull": true
126
+ },
127
+ "prefix": {
128
+ "name": "prefix",
129
+ "type": "text",
130
+ "primaryKey": false,
131
+ "notNull": true
132
+ },
133
+ "expires_at": {
134
+ "name": "expires_at",
135
+ "type": "timestamp with time zone",
136
+ "primaryKey": false,
137
+ "notNull": true
138
+ },
139
+ "consumed_at": {
140
+ "name": "consumed_at",
141
+ "type": "timestamp with time zone",
142
+ "primaryKey": false,
143
+ "notNull": false
144
+ },
145
+ "consumed_session_id": {
146
+ "name": "consumed_session_id",
147
+ "type": "uuid",
148
+ "primaryKey": false,
149
+ "notNull": false
150
+ },
151
+ "created_at": {
152
+ "name": "created_at",
153
+ "type": "timestamp with time zone",
154
+ "primaryKey": false,
155
+ "notNull": true,
156
+ "default": "now()"
157
+ }
158
+ },
159
+ "indexes": {
160
+ "runners_ephemeral_registration_tokens_hashed_token_unique": {
161
+ "name": "runners_ephemeral_registration_tokens_hashed_token_unique",
162
+ "columns": [
163
+ {
164
+ "expression": "hashed_token",
165
+ "isExpression": false,
166
+ "asc": true,
167
+ "nulls": "last"
168
+ }
169
+ ],
170
+ "isUnique": true,
171
+ "concurrently": false,
172
+ "method": "btree",
173
+ "with": {}
174
+ },
175
+ "runners_ephemeral_registration_tokens_reservation_id_idx": {
176
+ "name": "runners_ephemeral_registration_tokens_reservation_id_idx",
177
+ "columns": [
178
+ {
179
+ "expression": "reservation_id",
180
+ "isExpression": false,
181
+ "asc": true,
182
+ "nulls": "last"
183
+ }
184
+ ],
185
+ "isUnique": false,
186
+ "concurrently": false,
187
+ "method": "btree",
188
+ "with": {}
189
+ },
190
+ "runners_ephemeral_registration_tokens_active_provider_runner_idx": {
191
+ "name": "runners_ephemeral_registration_tokens_active_provider_runner_idx",
192
+ "columns": [
193
+ {
194
+ "expression": "workspace_id",
195
+ "isExpression": false,
196
+ "asc": true,
197
+ "nulls": "last"
198
+ },
199
+ {
200
+ "expression": "provisioner_id",
201
+ "isExpression": false,
202
+ "asc": true,
203
+ "nulls": "last"
204
+ },
205
+ {
206
+ "expression": "provider_runner_id",
207
+ "isExpression": false,
208
+ "asc": true,
209
+ "nulls": "last"
210
+ },
211
+ {
212
+ "expression": "consumed_at",
213
+ "isExpression": false,
214
+ "asc": true,
215
+ "nulls": "last"
216
+ },
217
+ {
218
+ "expression": "expires_at",
219
+ "isExpression": false,
220
+ "asc": true,
221
+ "nulls": "last"
222
+ }
223
+ ],
224
+ "isUnique": false,
225
+ "concurrently": false,
226
+ "method": "btree",
227
+ "with": {}
228
+ },
229
+ "runners_ephemeral_registration_tokens_terminal_idx": {
230
+ "name": "runners_ephemeral_registration_tokens_terminal_idx",
231
+ "columns": [
232
+ {
233
+ "expression": "coalesce(\"consumed_at\", \"expires_at\")",
234
+ "asc": true,
235
+ "isExpression": true,
236
+ "nulls": "last"
237
+ },
238
+ {
239
+ "expression": "id",
240
+ "isExpression": false,
241
+ "asc": true,
242
+ "nulls": "last"
243
+ }
244
+ ],
245
+ "isUnique": false,
246
+ "concurrently": false,
247
+ "method": "btree",
248
+ "with": {}
249
+ }
250
+ },
251
+ "foreignKeys": {},
252
+ "compositePrimaryKeys": {},
253
+ "uniqueConstraints": {},
254
+ "policies": {},
255
+ "checkConstraints": {},
256
+ "isRLSEnabled": false
257
+ },
258
+ "public.runners_manual_registration_tokens": {
259
+ "name": "runners_manual_registration_tokens",
260
+ "schema": "",
261
+ "columns": {
262
+ "id": {
263
+ "name": "id",
264
+ "type": "uuid",
265
+ "primaryKey": true,
266
+ "notNull": true,
267
+ "default": "uuidv7()"
268
+ },
269
+ "workspace_id": {
270
+ "name": "workspace_id",
271
+ "type": "uuid",
272
+ "primaryKey": false,
273
+ "notNull": true
274
+ },
275
+ "hashed_token": {
276
+ "name": "hashed_token",
277
+ "type": "text",
278
+ "primaryKey": false,
279
+ "notNull": true
280
+ },
281
+ "prefix": {
282
+ "name": "prefix",
283
+ "type": "text",
284
+ "primaryKey": false,
285
+ "notNull": true
286
+ },
287
+ "name": {
288
+ "name": "name",
289
+ "type": "text",
290
+ "primaryKey": false,
291
+ "notNull": false
292
+ },
293
+ "expires_at": {
294
+ "name": "expires_at",
295
+ "type": "timestamp with time zone",
296
+ "primaryKey": false,
297
+ "notNull": false
298
+ },
299
+ "revoked_at": {
300
+ "name": "revoked_at",
301
+ "type": "timestamp with time zone",
302
+ "primaryKey": false,
303
+ "notNull": false
304
+ },
305
+ "created_at": {
306
+ "name": "created_at",
307
+ "type": "timestamp with time zone",
308
+ "primaryKey": false,
309
+ "notNull": true,
310
+ "default": "now()"
311
+ },
312
+ "updated_at": {
313
+ "name": "updated_at",
314
+ "type": "timestamp with time zone",
315
+ "primaryKey": false,
316
+ "notNull": true,
317
+ "default": "now()"
318
+ }
319
+ },
320
+ "indexes": {
321
+ "runners_manual_registration_tokens_hashed_token_unique": {
322
+ "name": "runners_manual_registration_tokens_hashed_token_unique",
323
+ "columns": [
324
+ {
325
+ "expression": "hashed_token",
326
+ "isExpression": false,
327
+ "asc": true,
328
+ "nulls": "last"
329
+ }
330
+ ],
331
+ "isUnique": true,
332
+ "concurrently": false,
333
+ "method": "btree",
334
+ "with": {}
335
+ },
336
+ "runners_manual_registration_tokens_workspace_id_idx": {
337
+ "name": "runners_manual_registration_tokens_workspace_id_idx",
338
+ "columns": [
339
+ {
340
+ "expression": "workspace_id",
341
+ "isExpression": false,
342
+ "asc": true,
343
+ "nulls": "last"
344
+ }
345
+ ],
346
+ "isUnique": false,
347
+ "concurrently": false,
348
+ "method": "btree",
349
+ "with": {}
350
+ }
351
+ },
352
+ "foreignKeys": {},
353
+ "compositePrimaryKeys": {},
354
+ "uniqueConstraints": {},
355
+ "policies": {},
356
+ "checkConstraints": {},
357
+ "isRLSEnabled": false
358
+ },
359
+ "public.runners_outbox": {
360
+ "name": "runners_outbox",
361
+ "schema": "",
362
+ "columns": {
363
+ "id": {
364
+ "name": "id",
365
+ "type": "uuid",
366
+ "primaryKey": true,
367
+ "notNull": true,
368
+ "default": "uuidv7()"
369
+ },
370
+ "event_type": {
371
+ "name": "event_type",
372
+ "type": "text",
373
+ "primaryKey": false,
374
+ "notNull": true
375
+ },
376
+ "ordering_key": {
377
+ "name": "ordering_key",
378
+ "type": "text",
379
+ "primaryKey": false,
380
+ "notNull": false
381
+ },
382
+ "payload": {
383
+ "name": "payload",
384
+ "type": "jsonb",
385
+ "primaryKey": false,
386
+ "notNull": true
387
+ },
388
+ "created_at": {
389
+ "name": "created_at",
390
+ "type": "timestamp with time zone",
391
+ "primaryKey": false,
392
+ "notNull": true,
393
+ "default": "now()"
394
+ },
395
+ "dispatched_at": {
396
+ "name": "dispatched_at",
397
+ "type": "timestamp with time zone",
398
+ "primaryKey": false,
399
+ "notNull": false
400
+ },
401
+ "dispatch_attempts": {
402
+ "name": "dispatch_attempts",
403
+ "type": "integer",
404
+ "primaryKey": false,
405
+ "notNull": true,
406
+ "default": 0
407
+ },
408
+ "next_dispatch_at": {
409
+ "name": "next_dispatch_at",
410
+ "type": "timestamp with time zone",
411
+ "primaryKey": false,
412
+ "notNull": true,
413
+ "default": "now()"
414
+ },
415
+ "last_dispatch_error": {
416
+ "name": "last_dispatch_error",
417
+ "type": "jsonb",
418
+ "primaryKey": false,
419
+ "notNull": false
420
+ },
421
+ "last_dispatch_failed_at": {
422
+ "name": "last_dispatch_failed_at",
423
+ "type": "timestamp with time zone",
424
+ "primaryKey": false,
425
+ "notNull": false
426
+ },
427
+ "dead_lettered_at": {
428
+ "name": "dead_lettered_at",
429
+ "type": "timestamp with time zone",
430
+ "primaryKey": false,
431
+ "notNull": false
432
+ }
433
+ },
434
+ "indexes": {
435
+ "runners_outbox_pending_idx": {
436
+ "name": "runners_outbox_pending_idx",
437
+ "columns": [
438
+ {
439
+ "expression": "next_dispatch_at",
440
+ "isExpression": false,
441
+ "asc": true,
442
+ "nulls": "last"
443
+ },
444
+ {
445
+ "expression": "created_at",
446
+ "isExpression": false,
447
+ "asc": true,
448
+ "nulls": "last"
449
+ }
450
+ ],
451
+ "isUnique": false,
452
+ "where": "\"dispatched_at\" IS NULL AND \"dead_lettered_at\" IS NULL",
453
+ "concurrently": false,
454
+ "method": "btree",
455
+ "with": {}
456
+ },
457
+ "runners_outbox_dispatched_retention_idx": {
458
+ "name": "runners_outbox_dispatched_retention_idx",
459
+ "columns": [
460
+ {
461
+ "expression": "dispatched_at",
462
+ "isExpression": false,
463
+ "asc": true,
464
+ "nulls": "last"
465
+ },
466
+ {
467
+ "expression": "id",
468
+ "isExpression": false,
469
+ "asc": true,
470
+ "nulls": "last"
471
+ }
472
+ ],
473
+ "isUnique": false,
474
+ "where": "\"dispatched_at\" IS NOT NULL",
475
+ "concurrently": false,
476
+ "method": "btree",
477
+ "with": {}
478
+ }
479
+ },
480
+ "foreignKeys": {},
481
+ "compositePrimaryKeys": {},
482
+ "uniqueConstraints": {},
483
+ "policies": {},
484
+ "checkConstraints": {},
485
+ "isRLSEnabled": false
486
+ },
487
+ "public.runners_pending_jobs": {
488
+ "name": "runners_pending_jobs",
489
+ "schema": "",
490
+ "columns": {
491
+ "id": {
492
+ "name": "id",
493
+ "type": "uuid",
494
+ "primaryKey": true,
495
+ "notNull": true,
496
+ "default": "uuidv7()"
497
+ },
498
+ "workspace_id": {
499
+ "name": "workspace_id",
500
+ "type": "uuid",
501
+ "primaryKey": false,
502
+ "notNull": true
503
+ },
504
+ "workflow_run_id": {
505
+ "name": "workflow_run_id",
506
+ "type": "uuid",
507
+ "primaryKey": false,
508
+ "notNull": true
509
+ },
510
+ "workflow_run_attempt_id": {
511
+ "name": "workflow_run_attempt_id",
512
+ "type": "uuid",
513
+ "primaryKey": false,
514
+ "notNull": true
515
+ },
516
+ "job_id": {
517
+ "name": "job_id",
518
+ "type": "uuid",
519
+ "primaryKey": false,
520
+ "notNull": true
521
+ },
522
+ "job_execution_id": {
523
+ "name": "job_execution_id",
524
+ "type": "uuid",
525
+ "primaryKey": false,
526
+ "notNull": true
527
+ },
528
+ "project_id": {
529
+ "name": "project_id",
530
+ "type": "uuid",
531
+ "primaryKey": false,
532
+ "notNull": true
533
+ },
534
+ "required_labels": {
535
+ "name": "required_labels",
536
+ "type": "text[]",
537
+ "primaryKey": false,
538
+ "notNull": true
539
+ },
540
+ "created_at": {
541
+ "name": "created_at",
542
+ "type": "timestamp with time zone",
543
+ "primaryKey": false,
544
+ "notNull": true,
545
+ "default": "now()"
546
+ }
547
+ },
548
+ "indexes": {
549
+ "runners_pending_jobs_workspace_created_idx": {
550
+ "name": "runners_pending_jobs_workspace_created_idx",
551
+ "columns": [
552
+ {
553
+ "expression": "workspace_id",
554
+ "isExpression": false,
555
+ "asc": true,
556
+ "nulls": "last"
557
+ },
558
+ {
559
+ "expression": "created_at",
560
+ "isExpression": false,
561
+ "asc": true,
562
+ "nulls": "last"
563
+ }
564
+ ],
565
+ "isUnique": false,
566
+ "concurrently": false,
567
+ "method": "btree",
568
+ "with": {}
569
+ },
570
+ "runners_pending_jobs_job_id_idx": {
571
+ "name": "runners_pending_jobs_job_id_idx",
572
+ "columns": [
573
+ {
574
+ "expression": "job_id",
575
+ "isExpression": false,
576
+ "asc": true,
577
+ "nulls": "last"
578
+ }
579
+ ],
580
+ "isUnique": false,
581
+ "concurrently": false,
582
+ "method": "btree",
583
+ "with": {}
584
+ }
585
+ },
586
+ "foreignKeys": {},
587
+ "compositePrimaryKeys": {},
588
+ "uniqueConstraints": {
589
+ "runners_pending_jobs_job_execution_id_unique": {
590
+ "name": "runners_pending_jobs_job_execution_id_unique",
591
+ "nullsNotDistinct": false,
592
+ "columns": ["job_execution_id"]
593
+ }
594
+ },
595
+ "policies": {},
596
+ "checkConstraints": {},
597
+ "isRLSEnabled": false
598
+ },
599
+ "public.runners_provisioner_capability_snapshots": {
600
+ "name": "runners_provisioner_capability_snapshots",
601
+ "schema": "",
602
+ "columns": {
603
+ "id": {
604
+ "name": "id",
605
+ "type": "uuid",
606
+ "primaryKey": true,
607
+ "notNull": true,
608
+ "default": "uuidv7()"
609
+ },
610
+ "workspace_id": {
611
+ "name": "workspace_id",
612
+ "type": "uuid",
613
+ "primaryKey": false,
614
+ "notNull": true
615
+ },
616
+ "provisioner_id": {
617
+ "name": "provisioner_id",
618
+ "type": "uuid",
619
+ "primaryKey": false,
620
+ "notNull": true
621
+ },
622
+ "template_key": {
623
+ "name": "template_key",
624
+ "type": "text",
625
+ "primaryKey": false,
626
+ "notNull": true
627
+ },
628
+ "labels": {
629
+ "name": "labels",
630
+ "type": "text[]",
631
+ "primaryKey": false,
632
+ "notNull": true
633
+ },
634
+ "available_slots": {
635
+ "name": "available_slots",
636
+ "type": "integer",
637
+ "primaryKey": false,
638
+ "notNull": true
639
+ },
640
+ "starting": {
641
+ "name": "starting",
642
+ "type": "integer",
643
+ "primaryKey": false,
644
+ "notNull": true
645
+ },
646
+ "running": {
647
+ "name": "running",
648
+ "type": "integer",
649
+ "primaryKey": false,
650
+ "notNull": true
651
+ },
652
+ "advertised_at": {
653
+ "name": "advertised_at",
654
+ "type": "timestamp with time zone",
655
+ "primaryKey": false,
656
+ "notNull": true,
657
+ "default": "now()"
658
+ },
659
+ "created_at": {
660
+ "name": "created_at",
661
+ "type": "timestamp with time zone",
662
+ "primaryKey": false,
663
+ "notNull": true,
664
+ "default": "now()"
665
+ }
666
+ },
667
+ "indexes": {
668
+ "runners_provisioner_capability_snapshots_workspace_active_idx": {
669
+ "name": "runners_provisioner_capability_snapshots_workspace_active_idx",
670
+ "columns": [
671
+ {
672
+ "expression": "workspace_id",
673
+ "isExpression": false,
674
+ "asc": true,
675
+ "nulls": "last"
676
+ },
677
+ {
678
+ "expression": "advertised_at",
679
+ "isExpression": false,
680
+ "asc": true,
681
+ "nulls": "last"
682
+ }
683
+ ],
684
+ "isUnique": false,
685
+ "concurrently": false,
686
+ "method": "btree",
687
+ "with": {}
688
+ },
689
+ "runners_provisioner_capability_snapshots_provisioner_idx": {
690
+ "name": "runners_provisioner_capability_snapshots_provisioner_idx",
691
+ "columns": [
692
+ {
693
+ "expression": "provisioner_id",
694
+ "isExpression": false,
695
+ "asc": true,
696
+ "nulls": "last"
697
+ }
698
+ ],
699
+ "isUnique": false,
700
+ "concurrently": false,
701
+ "method": "btree",
702
+ "with": {}
703
+ }
704
+ },
705
+ "foreignKeys": {},
706
+ "compositePrimaryKeys": {},
707
+ "uniqueConstraints": {},
708
+ "policies": {},
709
+ "checkConstraints": {},
710
+ "isRLSEnabled": false
711
+ },
712
+ "public.runners_provisioner_tokens": {
713
+ "name": "runners_provisioner_tokens",
714
+ "schema": "",
715
+ "columns": {
716
+ "id": {
717
+ "name": "id",
718
+ "type": "uuid",
719
+ "primaryKey": true,
720
+ "notNull": true,
721
+ "default": "uuidv7()"
722
+ },
723
+ "scope": {
724
+ "name": "scope",
725
+ "type": "runners_provisioner_scope",
726
+ "typeSchema": "public",
727
+ "primaryKey": false,
728
+ "notNull": true
729
+ },
730
+ "workspace_id": {
731
+ "name": "workspace_id",
732
+ "type": "uuid",
733
+ "primaryKey": false,
734
+ "notNull": false
735
+ },
736
+ "hashed_token": {
737
+ "name": "hashed_token",
738
+ "type": "text",
739
+ "primaryKey": false,
740
+ "notNull": true
741
+ },
742
+ "prefix": {
743
+ "name": "prefix",
744
+ "type": "text",
745
+ "primaryKey": false,
746
+ "notNull": true
747
+ },
748
+ "name": {
749
+ "name": "name",
750
+ "type": "text",
751
+ "primaryKey": false,
752
+ "notNull": false
753
+ },
754
+ "created_by_user_id": {
755
+ "name": "created_by_user_id",
756
+ "type": "uuid",
757
+ "primaryKey": false,
758
+ "notNull": true
759
+ },
760
+ "revoked_by_user_id": {
761
+ "name": "revoked_by_user_id",
762
+ "type": "uuid",
763
+ "primaryKey": false,
764
+ "notNull": false
765
+ },
766
+ "expires_at": {
767
+ "name": "expires_at",
768
+ "type": "timestamp with time zone",
769
+ "primaryKey": false,
770
+ "notNull": false
771
+ },
772
+ "revoked_at": {
773
+ "name": "revoked_at",
774
+ "type": "timestamp with time zone",
775
+ "primaryKey": false,
776
+ "notNull": false
777
+ },
778
+ "last_seen_at": {
779
+ "name": "last_seen_at",
780
+ "type": "timestamp with time zone",
781
+ "primaryKey": false,
782
+ "notNull": false
783
+ },
784
+ "created_at": {
785
+ "name": "created_at",
786
+ "type": "timestamp with time zone",
787
+ "primaryKey": false,
788
+ "notNull": true,
789
+ "default": "now()"
790
+ },
791
+ "updated_at": {
792
+ "name": "updated_at",
793
+ "type": "timestamp with time zone",
794
+ "primaryKey": false,
795
+ "notNull": true,
796
+ "default": "now()"
797
+ }
798
+ },
799
+ "indexes": {
800
+ "runners_provisioner_tokens_hashed_token_unique": {
801
+ "name": "runners_provisioner_tokens_hashed_token_unique",
802
+ "columns": [
803
+ {
804
+ "expression": "hashed_token",
805
+ "isExpression": false,
806
+ "asc": true,
807
+ "nulls": "last"
808
+ }
809
+ ],
810
+ "isUnique": true,
811
+ "concurrently": false,
812
+ "method": "btree",
813
+ "with": {}
814
+ },
815
+ "runners_provisioner_tokens_workspace_last_seen_idx": {
816
+ "name": "runners_provisioner_tokens_workspace_last_seen_idx",
817
+ "columns": [
818
+ {
819
+ "expression": "workspace_id",
820
+ "isExpression": false,
821
+ "asc": true,
822
+ "nulls": "last"
823
+ },
824
+ {
825
+ "expression": "last_seen_at",
826
+ "isExpression": false,
827
+ "asc": false,
828
+ "nulls": "last"
829
+ },
830
+ {
831
+ "expression": "id",
832
+ "isExpression": false,
833
+ "asc": false,
834
+ "nulls": "last"
835
+ }
836
+ ],
837
+ "isUnique": false,
838
+ "concurrently": false,
839
+ "method": "btree",
840
+ "with": {}
841
+ }
842
+ },
843
+ "foreignKeys": {},
844
+ "compositePrimaryKeys": {},
845
+ "uniqueConstraints": {},
846
+ "policies": {},
847
+ "checkConstraints": {
848
+ "runners_provisioner_tokens_scope_workspace_ck": {
849
+ "name": "runners_provisioner_tokens_scope_workspace_ck",
850
+ "value": "(scope = 'workspace' AND workspace_id IS NOT NULL) OR (scope = 'installation' AND workspace_id IS NULL)"
851
+ }
852
+ },
853
+ "isRLSEnabled": false
854
+ },
855
+ "public.runners_rate_limits": {
856
+ "name": "runners_rate_limits",
857
+ "schema": "",
858
+ "columns": {
859
+ "action": {
860
+ "name": "action",
861
+ "type": "text",
862
+ "primaryKey": false,
863
+ "notNull": true
864
+ },
865
+ "scope": {
866
+ "name": "scope",
867
+ "type": "text",
868
+ "primaryKey": false,
869
+ "notNull": true
870
+ },
871
+ "identifier_hmac": {
872
+ "name": "identifier_hmac",
873
+ "type": "text",
874
+ "primaryKey": false,
875
+ "notNull": true
876
+ },
877
+ "window_start": {
878
+ "name": "window_start",
879
+ "type": "timestamp with time zone",
880
+ "primaryKey": false,
881
+ "notNull": true
882
+ },
883
+ "count": {
884
+ "name": "count",
885
+ "type": "integer",
886
+ "primaryKey": false,
887
+ "notNull": true,
888
+ "default": 1
889
+ },
890
+ "expires_at": {
891
+ "name": "expires_at",
892
+ "type": "timestamp with time zone",
893
+ "primaryKey": false,
894
+ "notNull": true
895
+ },
896
+ "created_at": {
897
+ "name": "created_at",
898
+ "type": "timestamp with time zone",
899
+ "primaryKey": false,
900
+ "notNull": true,
901
+ "default": "now()"
902
+ },
903
+ "updated_at": {
904
+ "name": "updated_at",
905
+ "type": "timestamp with time zone",
906
+ "primaryKey": false,
907
+ "notNull": true,
908
+ "default": "now()"
909
+ }
910
+ },
911
+ "indexes": {
912
+ "runners_rate_limits_window_unique": {
913
+ "name": "runners_rate_limits_window_unique",
914
+ "columns": [
915
+ {
916
+ "expression": "action",
917
+ "isExpression": false,
918
+ "asc": true,
919
+ "nulls": "last"
920
+ },
921
+ {
922
+ "expression": "scope",
923
+ "isExpression": false,
924
+ "asc": true,
925
+ "nulls": "last"
926
+ },
927
+ {
928
+ "expression": "identifier_hmac",
929
+ "isExpression": false,
930
+ "asc": true,
931
+ "nulls": "last"
932
+ },
933
+ {
934
+ "expression": "window_start",
935
+ "isExpression": false,
936
+ "asc": true,
937
+ "nulls": "last"
938
+ }
939
+ ],
940
+ "isUnique": true,
941
+ "concurrently": false,
942
+ "method": "btree",
943
+ "with": {}
944
+ },
945
+ "runners_rate_limits_expires_at_idx": {
946
+ "name": "runners_rate_limits_expires_at_idx",
947
+ "columns": [
948
+ {
949
+ "expression": "expires_at",
950
+ "isExpression": false,
951
+ "asc": true,
952
+ "nulls": "last"
953
+ }
954
+ ],
955
+ "isUnique": false,
956
+ "concurrently": false,
957
+ "method": "btree",
958
+ "with": {}
959
+ }
960
+ },
961
+ "foreignKeys": {},
962
+ "compositePrimaryKeys": {},
963
+ "uniqueConstraints": {},
964
+ "policies": {},
965
+ "checkConstraints": {},
966
+ "isRLSEnabled": false
967
+ },
968
+ "public.runners_reservations": {
969
+ "name": "runners_reservations",
970
+ "schema": "",
971
+ "columns": {
972
+ "id": {
973
+ "name": "id",
974
+ "type": "uuid",
975
+ "primaryKey": true,
976
+ "notNull": true,
977
+ "default": "uuidv7()"
978
+ },
979
+ "workspace_id": {
980
+ "name": "workspace_id",
981
+ "type": "uuid",
982
+ "primaryKey": false,
983
+ "notNull": true
984
+ },
985
+ "provisioner_id": {
986
+ "name": "provisioner_id",
987
+ "type": "uuid",
988
+ "primaryKey": false,
989
+ "notNull": true
990
+ },
991
+ "required_labels": {
992
+ "name": "required_labels",
993
+ "type": "text[]",
994
+ "primaryKey": false,
995
+ "notNull": true
996
+ },
997
+ "count": {
998
+ "name": "count",
999
+ "type": "integer",
1000
+ "primaryKey": false,
1001
+ "notNull": true
1002
+ },
1003
+ "kind": {
1004
+ "name": "kind",
1005
+ "type": "runners_reservation_kind",
1006
+ "typeSchema": "public",
1007
+ "primaryKey": false,
1008
+ "notNull": true,
1009
+ "default": "'launch'"
1010
+ },
1011
+ "created_at": {
1012
+ "name": "created_at",
1013
+ "type": "timestamp with time zone",
1014
+ "primaryKey": false,
1015
+ "notNull": true,
1016
+ "default": "now()"
1017
+ },
1018
+ "expires_at": {
1019
+ "name": "expires_at",
1020
+ "type": "timestamp with time zone",
1021
+ "primaryKey": false,
1022
+ "notNull": true
1023
+ }
1024
+ },
1025
+ "indexes": {
1026
+ "runners_reservations_workspace_expires_idx": {
1027
+ "name": "runners_reservations_workspace_expires_idx",
1028
+ "columns": [
1029
+ {
1030
+ "expression": "workspace_id",
1031
+ "isExpression": false,
1032
+ "asc": true,
1033
+ "nulls": "last"
1034
+ },
1035
+ {
1036
+ "expression": "expires_at",
1037
+ "isExpression": false,
1038
+ "asc": true,
1039
+ "nulls": "last"
1040
+ }
1041
+ ],
1042
+ "isUnique": false,
1043
+ "concurrently": false,
1044
+ "method": "btree",
1045
+ "with": {}
1046
+ },
1047
+ "runners_reservations_expires_idx": {
1048
+ "name": "runners_reservations_expires_idx",
1049
+ "columns": [
1050
+ {
1051
+ "expression": "expires_at",
1052
+ "isExpression": false,
1053
+ "asc": true,
1054
+ "nulls": "last"
1055
+ }
1056
+ ],
1057
+ "isUnique": false,
1058
+ "concurrently": false,
1059
+ "method": "btree",
1060
+ "with": {}
1061
+ }
1062
+ },
1063
+ "foreignKeys": {},
1064
+ "compositePrimaryKeys": {},
1065
+ "uniqueConstraints": {},
1066
+ "policies": {},
1067
+ "checkConstraints": {
1068
+ "runners_reservations_count_positive_ck": {
1069
+ "name": "runners_reservations_count_positive_ck",
1070
+ "value": "\"runners_reservations\".\"count\" > 0"
1071
+ }
1072
+ },
1073
+ "isRLSEnabled": false
1074
+ },
1075
+ "public.runners_runner_activation_tokens": {
1076
+ "name": "runners_runner_activation_tokens",
1077
+ "schema": "",
1078
+ "columns": {
1079
+ "id": {
1080
+ "name": "id",
1081
+ "type": "uuid",
1082
+ "primaryKey": true,
1083
+ "notNull": true,
1084
+ "default": "uuidv7()"
1085
+ },
1086
+ "runner_instance_id": {
1087
+ "name": "runner_instance_id",
1088
+ "type": "uuid",
1089
+ "primaryKey": false,
1090
+ "notNull": true
1091
+ },
1092
+ "hashed_token": {
1093
+ "name": "hashed_token",
1094
+ "type": "text",
1095
+ "primaryKey": false,
1096
+ "notNull": true
1097
+ },
1098
+ "prefix": {
1099
+ "name": "prefix",
1100
+ "type": "text",
1101
+ "primaryKey": false,
1102
+ "notNull": true
1103
+ },
1104
+ "expires_at": {
1105
+ "name": "expires_at",
1106
+ "type": "timestamp with time zone",
1107
+ "primaryKey": false,
1108
+ "notNull": true
1109
+ },
1110
+ "consumed_at": {
1111
+ "name": "consumed_at",
1112
+ "type": "timestamp with time zone",
1113
+ "primaryKey": false,
1114
+ "notNull": false
1115
+ },
1116
+ "revoked_at": {
1117
+ "name": "revoked_at",
1118
+ "type": "timestamp with time zone",
1119
+ "primaryKey": false,
1120
+ "notNull": false
1121
+ },
1122
+ "consumed_session_id": {
1123
+ "name": "consumed_session_id",
1124
+ "type": "uuid",
1125
+ "primaryKey": false,
1126
+ "notNull": false
1127
+ },
1128
+ "created_at": {
1129
+ "name": "created_at",
1130
+ "type": "timestamp with time zone",
1131
+ "primaryKey": false,
1132
+ "notNull": true,
1133
+ "default": "now()"
1134
+ }
1135
+ },
1136
+ "indexes": {
1137
+ "runners_runner_activation_tokens_hashed_token_unique": {
1138
+ "name": "runners_runner_activation_tokens_hashed_token_unique",
1139
+ "columns": [
1140
+ {
1141
+ "expression": "hashed_token",
1142
+ "isExpression": false,
1143
+ "asc": true,
1144
+ "nulls": "last"
1145
+ }
1146
+ ],
1147
+ "isUnique": true,
1148
+ "concurrently": false,
1149
+ "method": "btree",
1150
+ "with": {}
1151
+ },
1152
+ "runners_runner_activation_tokens_runner_instance_idx": {
1153
+ "name": "runners_runner_activation_tokens_runner_instance_idx",
1154
+ "columns": [
1155
+ {
1156
+ "expression": "runner_instance_id",
1157
+ "isExpression": false,
1158
+ "asc": true,
1159
+ "nulls": "last"
1160
+ }
1161
+ ],
1162
+ "isUnique": false,
1163
+ "concurrently": false,
1164
+ "method": "btree",
1165
+ "with": {}
1166
+ }
1167
+ },
1168
+ "foreignKeys": {},
1169
+ "compositePrimaryKeys": {},
1170
+ "uniqueConstraints": {},
1171
+ "policies": {},
1172
+ "checkConstraints": {},
1173
+ "isRLSEnabled": false
1174
+ },
1175
+ "public.runners_runner_bootstrap_tokens": {
1176
+ "name": "runners_runner_bootstrap_tokens",
1177
+ "schema": "",
1178
+ "columns": {
1179
+ "id": {
1180
+ "name": "id",
1181
+ "type": "uuid",
1182
+ "primaryKey": true,
1183
+ "notNull": true,
1184
+ "default": "uuidv7()"
1185
+ },
1186
+ "runner_instance_id": {
1187
+ "name": "runner_instance_id",
1188
+ "type": "uuid",
1189
+ "primaryKey": false,
1190
+ "notNull": true
1191
+ },
1192
+ "provisioner_id": {
1193
+ "name": "provisioner_id",
1194
+ "type": "uuid",
1195
+ "primaryKey": false,
1196
+ "notNull": true
1197
+ },
1198
+ "hashed_token": {
1199
+ "name": "hashed_token",
1200
+ "type": "text",
1201
+ "primaryKey": false,
1202
+ "notNull": true
1203
+ },
1204
+ "prefix": {
1205
+ "name": "prefix",
1206
+ "type": "text",
1207
+ "primaryKey": false,
1208
+ "notNull": true
1209
+ },
1210
+ "expires_at": {
1211
+ "name": "expires_at",
1212
+ "type": "timestamp with time zone",
1213
+ "primaryKey": false,
1214
+ "notNull": true
1215
+ },
1216
+ "consumed_at": {
1217
+ "name": "consumed_at",
1218
+ "type": "timestamp with time zone",
1219
+ "primaryKey": false,
1220
+ "notNull": false
1221
+ },
1222
+ "revoked_at": {
1223
+ "name": "revoked_at",
1224
+ "type": "timestamp with time zone",
1225
+ "primaryKey": false,
1226
+ "notNull": false
1227
+ },
1228
+ "created_at": {
1229
+ "name": "created_at",
1230
+ "type": "timestamp with time zone",
1231
+ "primaryKey": false,
1232
+ "notNull": true,
1233
+ "default": "now()"
1234
+ }
1235
+ },
1236
+ "indexes": {
1237
+ "runners_runner_bootstrap_tokens_hashed_token_unique": {
1238
+ "name": "runners_runner_bootstrap_tokens_hashed_token_unique",
1239
+ "columns": [
1240
+ {
1241
+ "expression": "hashed_token",
1242
+ "isExpression": false,
1243
+ "asc": true,
1244
+ "nulls": "last"
1245
+ }
1246
+ ],
1247
+ "isUnique": true,
1248
+ "concurrently": false,
1249
+ "method": "btree",
1250
+ "with": {}
1251
+ },
1252
+ "runners_runner_bootstrap_tokens_runner_instance_idx": {
1253
+ "name": "runners_runner_bootstrap_tokens_runner_instance_idx",
1254
+ "columns": [
1255
+ {
1256
+ "expression": "runner_instance_id",
1257
+ "isExpression": false,
1258
+ "asc": true,
1259
+ "nulls": "last"
1260
+ }
1261
+ ],
1262
+ "isUnique": false,
1263
+ "concurrently": false,
1264
+ "method": "btree",
1265
+ "with": {}
1266
+ }
1267
+ },
1268
+ "foreignKeys": {},
1269
+ "compositePrimaryKeys": {},
1270
+ "uniqueConstraints": {},
1271
+ "policies": {},
1272
+ "checkConstraints": {},
1273
+ "isRLSEnabled": false
1274
+ },
1275
+ "public.runners_runner_control_sessions": {
1276
+ "name": "runners_runner_control_sessions",
1277
+ "schema": "",
1278
+ "columns": {
1279
+ "id": {
1280
+ "name": "id",
1281
+ "type": "uuid",
1282
+ "primaryKey": true,
1283
+ "notNull": true,
1284
+ "default": "uuidv7()"
1285
+ },
1286
+ "runner_instance_id": {
1287
+ "name": "runner_instance_id",
1288
+ "type": "uuid",
1289
+ "primaryKey": false,
1290
+ "notNull": true
1291
+ },
1292
+ "provisioner_id": {
1293
+ "name": "provisioner_id",
1294
+ "type": "uuid",
1295
+ "primaryKey": false,
1296
+ "notNull": true
1297
+ },
1298
+ "hashed_token": {
1299
+ "name": "hashed_token",
1300
+ "type": "text",
1301
+ "primaryKey": false,
1302
+ "notNull": true
1303
+ },
1304
+ "prefix": {
1305
+ "name": "prefix",
1306
+ "type": "text",
1307
+ "primaryKey": false,
1308
+ "notNull": true
1309
+ },
1310
+ "expires_at": {
1311
+ "name": "expires_at",
1312
+ "type": "timestamp with time zone",
1313
+ "primaryKey": false,
1314
+ "notNull": true
1315
+ },
1316
+ "last_seen_at": {
1317
+ "name": "last_seen_at",
1318
+ "type": "timestamp with time zone",
1319
+ "primaryKey": false,
1320
+ "notNull": true,
1321
+ "default": "now()"
1322
+ },
1323
+ "closed_at": {
1324
+ "name": "closed_at",
1325
+ "type": "timestamp with time zone",
1326
+ "primaryKey": false,
1327
+ "notNull": false
1328
+ },
1329
+ "close_reason": {
1330
+ "name": "close_reason",
1331
+ "type": "text",
1332
+ "primaryKey": false,
1333
+ "notNull": false
1334
+ },
1335
+ "created_at": {
1336
+ "name": "created_at",
1337
+ "type": "timestamp with time zone",
1338
+ "primaryKey": false,
1339
+ "notNull": true,
1340
+ "default": "now()"
1341
+ }
1342
+ },
1343
+ "indexes": {
1344
+ "runners_runner_control_sessions_hashed_token_unique": {
1345
+ "name": "runners_runner_control_sessions_hashed_token_unique",
1346
+ "columns": [
1347
+ {
1348
+ "expression": "hashed_token",
1349
+ "isExpression": false,
1350
+ "asc": true,
1351
+ "nulls": "last"
1352
+ }
1353
+ ],
1354
+ "isUnique": true,
1355
+ "concurrently": false,
1356
+ "method": "btree",
1357
+ "with": {}
1358
+ },
1359
+ "runners_runner_control_sessions_active_runner_instance_unique": {
1360
+ "name": "runners_runner_control_sessions_active_runner_instance_unique",
1361
+ "columns": [
1362
+ {
1363
+ "expression": "runner_instance_id",
1364
+ "isExpression": false,
1365
+ "asc": true,
1366
+ "nulls": "last"
1367
+ }
1368
+ ],
1369
+ "isUnique": true,
1370
+ "where": "\"closed_at\" is null",
1371
+ "concurrently": false,
1372
+ "method": "btree",
1373
+ "with": {}
1374
+ },
1375
+ "runners_runner_control_sessions_runner_instance_idx": {
1376
+ "name": "runners_runner_control_sessions_runner_instance_idx",
1377
+ "columns": [
1378
+ {
1379
+ "expression": "runner_instance_id",
1380
+ "isExpression": false,
1381
+ "asc": true,
1382
+ "nulls": "last"
1383
+ }
1384
+ ],
1385
+ "isUnique": false,
1386
+ "concurrently": false,
1387
+ "method": "btree",
1388
+ "with": {}
1389
+ }
1390
+ },
1391
+ "foreignKeys": {},
1392
+ "compositePrimaryKeys": {},
1393
+ "uniqueConstraints": {},
1394
+ "policies": {},
1395
+ "checkConstraints": {},
1396
+ "isRLSEnabled": false
1397
+ },
1398
+ "public.runners_runner_instances": {
1399
+ "name": "runners_runner_instances",
1400
+ "schema": "",
1401
+ "columns": {
1402
+ "id": {
1403
+ "name": "id",
1404
+ "type": "uuid",
1405
+ "primaryKey": true,
1406
+ "notNull": true,
1407
+ "default": "uuidv7()"
1408
+ },
1409
+ "workspace_id": {
1410
+ "name": "workspace_id",
1411
+ "type": "uuid",
1412
+ "primaryKey": false,
1413
+ "notNull": false
1414
+ },
1415
+ "provisioner_id": {
1416
+ "name": "provisioner_id",
1417
+ "type": "uuid",
1418
+ "primaryKey": false,
1419
+ "notNull": true
1420
+ },
1421
+ "provider_runner_id": {
1422
+ "name": "provider_runner_id",
1423
+ "type": "text",
1424
+ "primaryKey": false,
1425
+ "notNull": false
1426
+ },
1427
+ "intended_reservation_id": {
1428
+ "name": "intended_reservation_id",
1429
+ "type": "uuid",
1430
+ "primaryKey": false,
1431
+ "notNull": false
1432
+ },
1433
+ "reservation_id": {
1434
+ "name": "reservation_id",
1435
+ "type": "uuid",
1436
+ "primaryKey": false,
1437
+ "notNull": false
1438
+ },
1439
+ "launch_kind": {
1440
+ "name": "launch_kind",
1441
+ "type": "runners_provider_runner_launch_kind",
1442
+ "typeSchema": "public",
1443
+ "primaryKey": false,
1444
+ "notNull": true,
1445
+ "default": "'manual'"
1446
+ },
1447
+ "assigned_at": {
1448
+ "name": "assigned_at",
1449
+ "type": "timestamp with time zone",
1450
+ "primaryKey": false,
1451
+ "notNull": false
1452
+ },
1453
+ "template_key": {
1454
+ "name": "template_key",
1455
+ "type": "text",
1456
+ "primaryKey": false,
1457
+ "notNull": false
1458
+ },
1459
+ "labels": {
1460
+ "name": "labels",
1461
+ "type": "text[]",
1462
+ "primaryKey": false,
1463
+ "notNull": true,
1464
+ "default": "'{}'"
1465
+ },
1466
+ "state": {
1467
+ "name": "state",
1468
+ "type": "runners_provider_runner_state",
1469
+ "typeSchema": "public",
1470
+ "primaryKey": false,
1471
+ "notNull": true
1472
+ },
1473
+ "reason": {
1474
+ "name": "reason",
1475
+ "type": "text",
1476
+ "primaryKey": false,
1477
+ "notNull": false
1478
+ },
1479
+ "runner_session_id": {
1480
+ "name": "runner_session_id",
1481
+ "type": "uuid",
1482
+ "primaryKey": false,
1483
+ "notNull": false
1484
+ },
1485
+ "first_claimed_at": {
1486
+ "name": "first_claimed_at",
1487
+ "type": "timestamp with time zone",
1488
+ "primaryKey": false,
1489
+ "notNull": false
1490
+ },
1491
+ "provider_kind": {
1492
+ "name": "provider_kind",
1493
+ "type": "text",
1494
+ "primaryKey": false,
1495
+ "notNull": false
1496
+ },
1497
+ "protocol_version": {
1498
+ "name": "protocol_version",
1499
+ "type": "text",
1500
+ "primaryKey": false,
1501
+ "notNull": false
1502
+ },
1503
+ "capabilities": {
1504
+ "name": "capabilities",
1505
+ "type": "jsonb",
1506
+ "primaryKey": false,
1507
+ "notNull": false
1508
+ },
1509
+ "reported_at": {
1510
+ "name": "reported_at",
1511
+ "type": "timestamp with time zone",
1512
+ "primaryKey": false,
1513
+ "notNull": true
1514
+ },
1515
+ "started_at": {
1516
+ "name": "started_at",
1517
+ "type": "timestamp with time zone",
1518
+ "primaryKey": false,
1519
+ "notNull": false
1520
+ },
1521
+ "stopping_at": {
1522
+ "name": "stopping_at",
1523
+ "type": "timestamp with time zone",
1524
+ "primaryKey": false,
1525
+ "notNull": false
1526
+ },
1527
+ "stopped_at": {
1528
+ "name": "stopped_at",
1529
+ "type": "timestamp with time zone",
1530
+ "primaryKey": false,
1531
+ "notNull": false
1532
+ },
1533
+ "failed_at": {
1534
+ "name": "failed_at",
1535
+ "type": "timestamp with time zone",
1536
+ "primaryKey": false,
1537
+ "notNull": false
1538
+ },
1539
+ "terminated_at": {
1540
+ "name": "terminated_at",
1541
+ "type": "timestamp with time zone",
1542
+ "primaryKey": false,
1543
+ "notNull": false
1544
+ },
1545
+ "reservation_released_at": {
1546
+ "name": "reservation_released_at",
1547
+ "type": "timestamp with time zone",
1548
+ "primaryKey": false,
1549
+ "notNull": false
1550
+ },
1551
+ "created_at": {
1552
+ "name": "created_at",
1553
+ "type": "timestamp with time zone",
1554
+ "primaryKey": false,
1555
+ "notNull": true,
1556
+ "default": "now()"
1557
+ },
1558
+ "updated_at": {
1559
+ "name": "updated_at",
1560
+ "type": "timestamp with time zone",
1561
+ "primaryKey": false,
1562
+ "notNull": true,
1563
+ "default": "now()"
1564
+ }
1565
+ },
1566
+ "indexes": {
1567
+ "runners_runner_instances_provisioner_runner_unique": {
1568
+ "name": "runners_runner_instances_provisioner_runner_unique",
1569
+ "columns": [
1570
+ {
1571
+ "expression": "provisioner_id",
1572
+ "isExpression": false,
1573
+ "asc": true,
1574
+ "nulls": "last"
1575
+ },
1576
+ {
1577
+ "expression": "provider_runner_id",
1578
+ "isExpression": false,
1579
+ "asc": true,
1580
+ "nulls": "last"
1581
+ }
1582
+ ],
1583
+ "isUnique": true,
1584
+ "where": "\"runners_runner_instances\".\"provider_runner_id\" is not null",
1585
+ "concurrently": false,
1586
+ "method": "btree",
1587
+ "with": {}
1588
+ },
1589
+ "runners_runner_instances_workspace_state_updated_idx": {
1590
+ "name": "runners_runner_instances_workspace_state_updated_idx",
1591
+ "columns": [
1592
+ {
1593
+ "expression": "state",
1594
+ "isExpression": false,
1595
+ "asc": true,
1596
+ "nulls": "last"
1597
+ },
1598
+ {
1599
+ "expression": "updated_at",
1600
+ "isExpression": false,
1601
+ "asc": true,
1602
+ "nulls": "last"
1603
+ }
1604
+ ],
1605
+ "isUnique": false,
1606
+ "concurrently": false,
1607
+ "method": "btree",
1608
+ "with": {}
1609
+ },
1610
+ "runners_runner_instances_stale_reaper_idx": {
1611
+ "name": "runners_runner_instances_stale_reaper_idx",
1612
+ "columns": [
1613
+ {
1614
+ "expression": "state",
1615
+ "isExpression": false,
1616
+ "asc": true,
1617
+ "nulls": "last"
1618
+ },
1619
+ {
1620
+ "expression": "updated_at",
1621
+ "isExpression": false,
1622
+ "asc": true,
1623
+ "nulls": "last"
1624
+ },
1625
+ {
1626
+ "expression": "reported_at",
1627
+ "isExpression": false,
1628
+ "asc": true,
1629
+ "nulls": "last"
1630
+ }
1631
+ ],
1632
+ "isUnique": false,
1633
+ "concurrently": false,
1634
+ "method": "btree",
1635
+ "with": {}
1636
+ },
1637
+ "runners_runner_instances_provisioner_intended_reservation_idx": {
1638
+ "name": "runners_runner_instances_provisioner_intended_reservation_idx",
1639
+ "columns": [
1640
+ {
1641
+ "expression": "provisioner_id",
1642
+ "isExpression": false,
1643
+ "asc": true,
1644
+ "nulls": "last"
1645
+ },
1646
+ {
1647
+ "expression": "intended_reservation_id",
1648
+ "isExpression": false,
1649
+ "asc": true,
1650
+ "nulls": "last"
1651
+ }
1652
+ ],
1653
+ "isUnique": false,
1654
+ "where": "\"runners_runner_instances\".\"intended_reservation_id\" is not null and \"runners_runner_instances\".\"reservation_released_at\" is null",
1655
+ "concurrently": false,
1656
+ "method": "btree",
1657
+ "with": {}
1658
+ },
1659
+ "runners_runner_instances_intended_reservation_idx": {
1660
+ "name": "runners_runner_instances_intended_reservation_idx",
1661
+ "columns": [
1662
+ {
1663
+ "expression": "intended_reservation_id",
1664
+ "isExpression": false,
1665
+ "asc": true,
1666
+ "nulls": "last"
1667
+ }
1668
+ ],
1669
+ "isUnique": false,
1670
+ "where": "\"runners_runner_instances\".\"intended_reservation_id\" is not null",
1671
+ "concurrently": false,
1672
+ "method": "btree",
1673
+ "with": {}
1674
+ },
1675
+ "runners_runner_instances_provisioner_reservation_idx": {
1676
+ "name": "runners_runner_instances_provisioner_reservation_idx",
1677
+ "columns": [
1678
+ {
1679
+ "expression": "provisioner_id",
1680
+ "isExpression": false,
1681
+ "asc": true,
1682
+ "nulls": "last"
1683
+ },
1684
+ {
1685
+ "expression": "reservation_id",
1686
+ "isExpression": false,
1687
+ "asc": true,
1688
+ "nulls": "last"
1689
+ }
1690
+ ],
1691
+ "isUnique": false,
1692
+ "where": "\"runners_runner_instances\".\"reservation_id\" is not null",
1693
+ "concurrently": false,
1694
+ "method": "btree",
1695
+ "with": {}
1696
+ },
1697
+ "runners_runner_instances_active_template_counts_idx": {
1698
+ "name": "runners_runner_instances_active_template_counts_idx",
1699
+ "columns": [
1700
+ {
1701
+ "expression": "provisioner_id",
1702
+ "isExpression": false,
1703
+ "asc": true,
1704
+ "nulls": "last"
1705
+ },
1706
+ {
1707
+ "expression": "state",
1708
+ "isExpression": false,
1709
+ "asc": true,
1710
+ "nulls": "last"
1711
+ },
1712
+ {
1713
+ "expression": "template_key",
1714
+ "isExpression": false,
1715
+ "asc": true,
1716
+ "nulls": "last"
1717
+ }
1718
+ ],
1719
+ "isUnique": false,
1720
+ "where": "\"state\" in ('starting', 'running') and \"template_key\" is not null",
1721
+ "concurrently": false,
1722
+ "method": "btree",
1723
+ "with": {}
1724
+ }
1725
+ },
1726
+ "foreignKeys": {},
1727
+ "compositePrimaryKeys": {},
1728
+ "uniqueConstraints": {},
1729
+ "policies": {},
1730
+ "checkConstraints": {},
1731
+ "isRLSEnabled": false
1732
+ },
1733
+ "public.runners_runner_sessions": {
1734
+ "name": "runners_runner_sessions",
1735
+ "schema": "",
1736
+ "columns": {
1737
+ "id": {
1738
+ "name": "id",
1739
+ "type": "uuid",
1740
+ "primaryKey": true,
1741
+ "notNull": true,
1742
+ "default": "uuidv7()"
1743
+ },
1744
+ "workspace_id": {
1745
+ "name": "workspace_id",
1746
+ "type": "uuid",
1747
+ "primaryKey": false,
1748
+ "notNull": true
1749
+ },
1750
+ "scope": {
1751
+ "name": "scope",
1752
+ "type": "runners_runner_session_scope",
1753
+ "typeSchema": "public",
1754
+ "primaryKey": false,
1755
+ "notNull": true,
1756
+ "default": "'workspace'"
1757
+ },
1758
+ "registration_token_id": {
1759
+ "name": "registration_token_id",
1760
+ "type": "uuid",
1761
+ "primaryKey": false,
1762
+ "notNull": true
1763
+ },
1764
+ "registration_token_kind": {
1765
+ "name": "registration_token_kind",
1766
+ "type": "runners_runner_session_registration_token_kind",
1767
+ "typeSchema": "public",
1768
+ "primaryKey": false,
1769
+ "notNull": true
1770
+ },
1771
+ "runner_instance_id": {
1772
+ "name": "runner_instance_id",
1773
+ "type": "uuid",
1774
+ "primaryKey": false,
1775
+ "notNull": false
1776
+ },
1777
+ "provisioner_id": {
1778
+ "name": "provisioner_id",
1779
+ "type": "uuid",
1780
+ "primaryKey": false,
1781
+ "notNull": false
1782
+ },
1783
+ "provider_runner_id": {
1784
+ "name": "provider_runner_id",
1785
+ "type": "text",
1786
+ "primaryKey": false,
1787
+ "notNull": false
1788
+ },
1789
+ "labels": {
1790
+ "name": "labels",
1791
+ "type": "text[]",
1792
+ "primaryKey": false,
1793
+ "notNull": true
1794
+ },
1795
+ "tool_capabilities": {
1796
+ "name": "tool_capabilities",
1797
+ "type": "jsonb",
1798
+ "primaryKey": false,
1799
+ "notNull": false
1800
+ },
1801
+ "tool_capabilities_reported_at": {
1802
+ "name": "tool_capabilities_reported_at",
1803
+ "type": "timestamp with time zone",
1804
+ "primaryKey": false,
1805
+ "notNull": false
1806
+ },
1807
+ "max_claims": {
1808
+ "name": "max_claims",
1809
+ "type": "integer",
1810
+ "primaryKey": false,
1811
+ "notNull": false
1812
+ },
1813
+ "claims_used": {
1814
+ "name": "claims_used",
1815
+ "type": "integer",
1816
+ "primaryKey": false,
1817
+ "notNull": true,
1818
+ "default": 0
1819
+ },
1820
+ "revoked_at": {
1821
+ "name": "revoked_at",
1822
+ "type": "timestamp with time zone",
1823
+ "primaryKey": false,
1824
+ "notNull": false
1825
+ },
1826
+ "created_at": {
1827
+ "name": "created_at",
1828
+ "type": "timestamp with time zone",
1829
+ "primaryKey": false,
1830
+ "notNull": true,
1831
+ "default": "now()"
1832
+ },
1833
+ "updated_at": {
1834
+ "name": "updated_at",
1835
+ "type": "timestamp with time zone",
1836
+ "primaryKey": false,
1837
+ "notNull": true,
1838
+ "default": "now()"
1839
+ }
1840
+ },
1841
+ "indexes": {
1842
+ "runners_runner_sessions_kind_created_id_idx": {
1843
+ "name": "runners_runner_sessions_kind_created_id_idx",
1844
+ "columns": [
1845
+ {
1846
+ "expression": "registration_token_kind",
1847
+ "isExpression": false,
1848
+ "asc": true,
1849
+ "nulls": "last"
1850
+ },
1851
+ {
1852
+ "expression": "created_at",
1853
+ "isExpression": false,
1854
+ "asc": true,
1855
+ "nulls": "last"
1856
+ },
1857
+ {
1858
+ "expression": "id",
1859
+ "isExpression": false,
1860
+ "asc": true,
1861
+ "nulls": "last"
1862
+ }
1863
+ ],
1864
+ "isUnique": false,
1865
+ "concurrently": false,
1866
+ "method": "btree",
1867
+ "with": {}
1868
+ },
1869
+ "runners_runner_sessions_provider_runner_updated_idx": {
1870
+ "name": "runners_runner_sessions_provider_runner_updated_idx",
1871
+ "columns": [
1872
+ {
1873
+ "expression": "workspace_id",
1874
+ "isExpression": false,
1875
+ "asc": true,
1876
+ "nulls": "last"
1877
+ },
1878
+ {
1879
+ "expression": "provisioner_id",
1880
+ "isExpression": false,
1881
+ "asc": true,
1882
+ "nulls": "last"
1883
+ },
1884
+ {
1885
+ "expression": "provider_runner_id",
1886
+ "isExpression": false,
1887
+ "asc": true,
1888
+ "nulls": "last"
1889
+ },
1890
+ {
1891
+ "expression": "updated_at",
1892
+ "isExpression": false,
1893
+ "asc": true,
1894
+ "nulls": "last"
1895
+ }
1896
+ ],
1897
+ "isUnique": false,
1898
+ "where": "\"provisioner_id\" IS NOT NULL",
1899
+ "concurrently": false,
1900
+ "method": "btree",
1901
+ "with": {}
1902
+ }
1903
+ },
1904
+ "foreignKeys": {},
1905
+ "compositePrimaryKeys": {},
1906
+ "uniqueConstraints": {},
1907
+ "policies": {},
1908
+ "checkConstraints": {
1909
+ "runners_runner_sessions_claims_ck": {
1910
+ "name": "runners_runner_sessions_claims_ck",
1911
+ "value": "\"runners_runner_sessions\".\"claims_used\" >= 0 AND ((\"runners_runner_sessions\".\"registration_token_kind\" = 'manual' AND \"runners_runner_sessions\".\"max_claims\" IS NULL) OR (\"runners_runner_sessions\".\"registration_token_kind\" in ('ephemeral', 'activation') AND \"runners_runner_sessions\".\"max_claims\" IS NOT NULL AND \"runners_runner_sessions\".\"max_claims\" > 0 AND \"runners_runner_sessions\".\"claims_used\" <= \"runners_runner_sessions\".\"max_claims\"))"
1912
+ },
1913
+ "runners_runner_sessions_link_ck": {
1914
+ "name": "runners_runner_sessions_link_ck",
1915
+ "value": "((\"runners_runner_sessions\".\"registration_token_kind\" = 'manual' AND \"runners_runner_sessions\".\"runner_instance_id\" IS NULL AND \"runners_runner_sessions\".\"provisioner_id\" IS NULL AND \"runners_runner_sessions\".\"provider_runner_id\" IS NULL) OR (\"runners_runner_sessions\".\"registration_token_kind\" = 'ephemeral' AND \"runners_runner_sessions\".\"runner_instance_id\" IS NULL AND \"runners_runner_sessions\".\"provisioner_id\" IS NOT NULL AND \"runners_runner_sessions\".\"provider_runner_id\" IS NOT NULL) OR (\"runners_runner_sessions\".\"registration_token_kind\" = 'activation' AND \"runners_runner_sessions\".\"runner_instance_id\" IS NOT NULL AND \"runners_runner_sessions\".\"provisioner_id\" IS NOT NULL AND \"runners_runner_sessions\".\"provider_runner_id\" IS NOT NULL))"
1916
+ }
1917
+ },
1918
+ "isRLSEnabled": false
1919
+ },
1920
+ "public.runners_running_jobs": {
1921
+ "name": "runners_running_jobs",
1922
+ "schema": "",
1923
+ "columns": {
1924
+ "id": {
1925
+ "name": "id",
1926
+ "type": "uuid",
1927
+ "primaryKey": true,
1928
+ "notNull": true,
1929
+ "default": "uuidv7()"
1930
+ },
1931
+ "workspace_id": {
1932
+ "name": "workspace_id",
1933
+ "type": "uuid",
1934
+ "primaryKey": false,
1935
+ "notNull": true
1936
+ },
1937
+ "workflow_run_id": {
1938
+ "name": "workflow_run_id",
1939
+ "type": "uuid",
1940
+ "primaryKey": false,
1941
+ "notNull": true
1942
+ },
1943
+ "workflow_run_attempt_id": {
1944
+ "name": "workflow_run_attempt_id",
1945
+ "type": "uuid",
1946
+ "primaryKey": false,
1947
+ "notNull": true
1948
+ },
1949
+ "job_id": {
1950
+ "name": "job_id",
1951
+ "type": "uuid",
1952
+ "primaryKey": false,
1953
+ "notNull": true
1954
+ },
1955
+ "job_execution_id": {
1956
+ "name": "job_execution_id",
1957
+ "type": "uuid",
1958
+ "primaryKey": false,
1959
+ "notNull": true
1960
+ },
1961
+ "project_id": {
1962
+ "name": "project_id",
1963
+ "type": "uuid",
1964
+ "primaryKey": false,
1965
+ "notNull": true
1966
+ },
1967
+ "runner_session_id": {
1968
+ "name": "runner_session_id",
1969
+ "type": "uuid",
1970
+ "primaryKey": false,
1971
+ "notNull": true
1972
+ },
1973
+ "provisioner_id": {
1974
+ "name": "provisioner_id",
1975
+ "type": "uuid",
1976
+ "primaryKey": false,
1977
+ "notNull": false
1978
+ },
1979
+ "provider_runner_id": {
1980
+ "name": "provider_runner_id",
1981
+ "type": "text",
1982
+ "primaryKey": false,
1983
+ "notNull": false
1984
+ },
1985
+ "required_labels": {
1986
+ "name": "required_labels",
1987
+ "type": "text[]",
1988
+ "primaryKey": false,
1989
+ "notNull": true
1990
+ },
1991
+ "runner_labels": {
1992
+ "name": "runner_labels",
1993
+ "type": "text[]",
1994
+ "primaryKey": false,
1995
+ "notNull": true
1996
+ },
1997
+ "started_at": {
1998
+ "name": "started_at",
1999
+ "type": "timestamp with time zone",
2000
+ "primaryKey": false,
2001
+ "notNull": true,
2002
+ "default": "now()"
2003
+ },
2004
+ "first_heartbeat_at": {
2005
+ "name": "first_heartbeat_at",
2006
+ "type": "timestamp with time zone",
2007
+ "primaryKey": false,
2008
+ "notNull": false
2009
+ },
2010
+ "last_heartbeat_at": {
2011
+ "name": "last_heartbeat_at",
2012
+ "type": "timestamp with time zone",
2013
+ "primaryKey": false,
2014
+ "notNull": true,
2015
+ "default": "now()"
2016
+ },
2017
+ "cancellation_requested_at": {
2018
+ "name": "cancellation_requested_at",
2019
+ "type": "timestamp with time zone",
2020
+ "primaryKey": false,
2021
+ "notNull": false
2022
+ }
2023
+ },
2024
+ "indexes": {
2025
+ "runners_running_jobs_no_first_heartbeat_started_idx": {
2026
+ "name": "runners_running_jobs_no_first_heartbeat_started_idx",
2027
+ "columns": [
2028
+ {
2029
+ "expression": "started_at",
2030
+ "isExpression": false,
2031
+ "asc": true,
2032
+ "nulls": "last"
2033
+ }
2034
+ ],
2035
+ "isUnique": false,
2036
+ "where": "\"first_heartbeat_at\" IS NULL",
2037
+ "concurrently": false,
2038
+ "method": "btree",
2039
+ "with": {}
2040
+ },
2041
+ "runners_running_jobs_last_heartbeat_at_idx": {
2042
+ "name": "runners_running_jobs_last_heartbeat_at_idx",
2043
+ "columns": [
2044
+ {
2045
+ "expression": "last_heartbeat_at",
2046
+ "isExpression": false,
2047
+ "asc": true,
2048
+ "nulls": "last"
2049
+ }
2050
+ ],
2051
+ "isUnique": false,
2052
+ "concurrently": false,
2053
+ "method": "btree",
2054
+ "with": {}
2055
+ },
2056
+ "runners_running_jobs_provider_runner_started_idx": {
2057
+ "name": "runners_running_jobs_provider_runner_started_idx",
2058
+ "columns": [
2059
+ {
2060
+ "expression": "workspace_id",
2061
+ "isExpression": false,
2062
+ "asc": true,
2063
+ "nulls": "last"
2064
+ },
2065
+ {
2066
+ "expression": "provisioner_id",
2067
+ "isExpression": false,
2068
+ "asc": true,
2069
+ "nulls": "last"
2070
+ },
2071
+ {
2072
+ "expression": "provider_runner_id",
2073
+ "isExpression": false,
2074
+ "asc": true,
2075
+ "nulls": "last"
2076
+ },
2077
+ {
2078
+ "expression": "started_at",
2079
+ "isExpression": false,
2080
+ "asc": false,
2081
+ "nulls": "last"
2082
+ }
2083
+ ],
2084
+ "isUnique": false,
2085
+ "where": "\"provisioner_id\" IS NOT NULL",
2086
+ "concurrently": false,
2087
+ "method": "btree",
2088
+ "with": {}
2089
+ },
2090
+ "runners_running_jobs_cancellation_requested_idx": {
2091
+ "name": "runners_running_jobs_cancellation_requested_idx",
2092
+ "columns": [
2093
+ {
2094
+ "expression": "workspace_id",
2095
+ "isExpression": false,
2096
+ "asc": true,
2097
+ "nulls": "last"
2098
+ },
2099
+ {
2100
+ "expression": "provisioner_id",
2101
+ "isExpression": false,
2102
+ "asc": true,
2103
+ "nulls": "last"
2104
+ },
2105
+ {
2106
+ "expression": "provider_runner_id",
2107
+ "isExpression": false,
2108
+ "asc": true,
2109
+ "nulls": "last"
2110
+ }
2111
+ ],
2112
+ "isUnique": false,
2113
+ "where": "\"cancellation_requested_at\" IS NOT NULL",
2114
+ "concurrently": false,
2115
+ "method": "btree",
2116
+ "with": {}
2117
+ },
2118
+ "runners_running_jobs_job_id_idx": {
2119
+ "name": "runners_running_jobs_job_id_idx",
2120
+ "columns": [
2121
+ {
2122
+ "expression": "job_id",
2123
+ "isExpression": false,
2124
+ "asc": true,
2125
+ "nulls": "last"
2126
+ }
2127
+ ],
2128
+ "isUnique": false,
2129
+ "concurrently": false,
2130
+ "method": "btree",
2131
+ "with": {}
2132
+ },
2133
+ "runners_running_jobs_runner_session_id_idx": {
2134
+ "name": "runners_running_jobs_runner_session_id_idx",
2135
+ "columns": [
2136
+ {
2137
+ "expression": "runner_session_id",
2138
+ "isExpression": false,
2139
+ "asc": true,
2140
+ "nulls": "last"
2141
+ }
2142
+ ],
2143
+ "isUnique": false,
2144
+ "concurrently": false,
2145
+ "method": "btree",
2146
+ "with": {}
2147
+ }
2148
+ },
2149
+ "foreignKeys": {
2150
+ "runners_running_jobs_runner_session_id_runners_runner_sessions_id_fk": {
2151
+ "name": "runners_running_jobs_runner_session_id_runners_runner_sessions_id_fk",
2152
+ "tableFrom": "runners_running_jobs",
2153
+ "tableTo": "runners_runner_sessions",
2154
+ "columnsFrom": ["runner_session_id"],
2155
+ "columnsTo": ["id"],
2156
+ "onDelete": "no action",
2157
+ "onUpdate": "no action"
2158
+ }
2159
+ },
2160
+ "compositePrimaryKeys": {},
2161
+ "uniqueConstraints": {
2162
+ "runners_running_jobs_job_execution_id_unique": {
2163
+ "name": "runners_running_jobs_job_execution_id_unique",
2164
+ "nullsNotDistinct": false,
2165
+ "columns": ["job_execution_id"]
2166
+ }
2167
+ },
2168
+ "policies": {},
2169
+ "checkConstraints": {
2170
+ "runners_running_jobs_link_ck": {
2171
+ "name": "runners_running_jobs_link_ck",
2172
+ "value": "(\"runners_running_jobs\".\"provisioner_id\" IS NULL) = (\"runners_running_jobs\".\"provider_runner_id\" IS NULL)"
2173
+ }
2174
+ },
2175
+ "isRLSEnabled": false
2176
+ }
2177
+ },
2178
+ "enums": {
2179
+ "public.runners_provisioner_scope": {
2180
+ "name": "runners_provisioner_scope",
2181
+ "schema": "public",
2182
+ "values": ["workspace", "installation"]
2183
+ },
2184
+ "public.runners_reservation_kind": {
2185
+ "name": "runners_reservation_kind",
2186
+ "schema": "public",
2187
+ "values": ["bound", "launch"]
2188
+ },
2189
+ "public.runners_provider_runner_launch_kind": {
2190
+ "name": "runners_provider_runner_launch_kind",
2191
+ "schema": "public",
2192
+ "values": ["demand", "warm", "manual"]
2193
+ },
2194
+ "public.runners_provider_runner_state": {
2195
+ "name": "runners_provider_runner_state",
2196
+ "schema": "public",
2197
+ "values": ["starting", "running", "stopping", "stopped", "failed", "terminated"]
2198
+ },
2199
+ "public.runners_runner_session_registration_token_kind": {
2200
+ "name": "runners_runner_session_registration_token_kind",
2201
+ "schema": "public",
2202
+ "values": ["manual", "ephemeral", "activation"]
2203
+ },
2204
+ "public.runners_runner_session_scope": {
2205
+ "name": "runners_runner_session_scope",
2206
+ "schema": "public",
2207
+ "values": ["workspace"]
2208
+ }
2209
+ },
2210
+ "schemas": {},
2211
+ "sequences": {},
2212
+ "roles": {},
2213
+ "policies": {},
2214
+ "views": {},
2215
+ "_meta": {
2216
+ "columns": {},
2217
+ "schemas": {},
2218
+ "tables": {}
2219
+ }
2220
+ }