@shipfox/api-runners 12.0.0 → 12.2.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 (116) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/CHANGELOG.md +30 -0
  3. package/dist/config.d.ts +3 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +24 -2
  6. package/dist/config.js.map +1 -1
  7. package/dist/core/errors.d.ts +4 -0
  8. package/dist/core/errors.d.ts.map +1 -1
  9. package/dist/core/errors.js +6 -0
  10. package/dist/core/errors.js.map +1 -1
  11. package/dist/core/index.d.ts +1 -1
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/core/index.js +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/core/rate-limit.d.ts.map +1 -1
  16. package/dist/core/runner-control-sessions.d.ts.map +1 -1
  17. package/dist/core/runner-control-sessions.js +23 -9
  18. package/dist/core/runner-control-sessions.js.map +1 -1
  19. package/dist/core/runner-instances.d.ts +1 -0
  20. package/dist/core/runner-instances.d.ts.map +1 -1
  21. package/dist/core/runner-instances.js.map +1 -1
  22. package/dist/core/runner-labels.d.ts +11 -0
  23. package/dist/core/runner-labels.d.ts.map +1 -0
  24. package/dist/core/runner-labels.js +41 -0
  25. package/dist/core/runner-labels.js.map +1 -0
  26. package/dist/core/runner-sessions.d.ts.map +1 -1
  27. package/dist/core/runner-sessions.js +5 -1
  28. package/dist/core/runner-sessions.js.map +1 -1
  29. package/dist/db/db.d.ts +64 -64
  30. package/dist/db/ephemeral-registration-tokens.d.ts.map +1 -1
  31. package/dist/db/ephemeral-registration-tokens.js +12 -2
  32. package/dist/db/ephemeral-registration-tokens.js.map +1 -1
  33. package/dist/db/reservations.d.ts.map +1 -1
  34. package/dist/db/reservations.js +15 -5
  35. package/dist/db/reservations.js.map +1 -1
  36. package/dist/db/runner-instances.d.ts +1 -0
  37. package/dist/db/runner-instances.d.ts.map +1 -1
  38. package/dist/db/runner-instances.js +6 -4
  39. package/dist/db/runner-instances.js.map +1 -1
  40. package/dist/db/runner-sessions.d.ts.map +1 -1
  41. package/dist/db/runner-sessions.js +12 -1
  42. package/dist/db/runner-sessions.js.map +1 -1
  43. package/dist/db/schema/admin-command-results.d.ts +1 -1
  44. package/dist/db/schema/ephemeral-registration-tokens.d.ts +1 -1
  45. package/dist/db/schema/manual-registration-tokens.d.ts +1 -1
  46. package/dist/db/schema/outbox.d.ts +1 -1
  47. package/dist/db/schema/pending-job-executions.d.ts +3 -3
  48. package/dist/db/schema/provisioner-capability-snapshots.d.ts +3 -3
  49. package/dist/db/schema/provisioner-tokens.d.ts +2 -2
  50. package/dist/db/schema/rate-limits.d.ts +1 -1
  51. package/dist/db/schema/reservations.d.ts +3 -3
  52. package/dist/db/schema/runner-activation-tokens.d.ts +1 -1
  53. package/dist/db/schema/runner-control-sessions.d.ts +2 -2
  54. package/dist/db/schema/runner-instances.d.ts +4 -4
  55. package/dist/db/schema/runner-instances.d.ts.map +1 -1
  56. package/dist/db/schema/runner-instances.js +1 -0
  57. package/dist/db/schema/runner-instances.js.map +1 -1
  58. package/dist/db/schema/runner-sessions.d.ts +4 -4
  59. package/dist/db/schema/running-job-executions.d.ts +5 -5
  60. package/dist/metrics/index.d.ts +2 -1
  61. package/dist/metrics/index.d.ts.map +1 -1
  62. package/dist/metrics/index.js +1 -1
  63. package/dist/metrics/index.js.map +1 -1
  64. package/dist/metrics/instance.d.ts +13 -8
  65. package/dist/metrics/instance.d.ts.map +1 -1
  66. package/dist/metrics/instance.js +8 -0
  67. package/dist/metrics/instance.js.map +1 -1
  68. package/dist/presentation/dto/admin-provisioner-token.d.ts +1 -1
  69. package/dist/presentation/dto/admin-provisioner-token.d.ts.map +1 -1
  70. package/dist/presentation/dto/admin-runner-instances.d.ts +2 -2
  71. package/dist/presentation/dto/admin-runner-instances.d.ts.map +1 -1
  72. package/dist/presentation/routes/poll-demand.d.ts.map +1 -1
  73. package/dist/presentation/routes/poll-demand.js +12 -6
  74. package/dist/presentation/routes/poll-demand.js.map +1 -1
  75. package/dist/presentation/routes/rate-limit.d.ts.map +1 -1
  76. package/dist/presentation/routes/register.d.ts.map +1 -1
  77. package/dist/presentation/routes/register.js +9 -1
  78. package/dist/presentation/routes/register.js.map +1 -1
  79. package/dist/presentation/routes/report-runner-instances.d.ts.map +1 -1
  80. package/dist/presentation/routes/report-runner-instances.js +1 -0
  81. package/dist/presentation/routes/report-runner-instances.js.map +1 -1
  82. package/dist/tsconfig.test.tsbuildinfo +1 -1
  83. package/drizzle/0004_huge_skreet.sql +1 -0
  84. package/drizzle/meta/0004_snapshot.json +2194 -0
  85. package/drizzle/meta/_journal.json +7 -0
  86. package/package.json +9 -9
  87. package/src/config.test.ts +81 -0
  88. package/src/config.ts +39 -2
  89. package/src/core/errors.ts +9 -0
  90. package/src/core/index.ts +1 -0
  91. package/src/core/runner-control-sessions.test.ts +239 -0
  92. package/src/core/runner-control-sessions.ts +29 -10
  93. package/src/core/runner-instances.ts +1 -0
  94. package/src/core/runner-labels.test.ts +53 -0
  95. package/src/core/runner-labels.ts +51 -0
  96. package/src/core/runner-sessions.test.ts +34 -1
  97. package/src/core/runner-sessions.ts +8 -1
  98. package/src/db/ephemeral-registration-tokens.ts +15 -1
  99. package/src/db/reservations.test.ts +169 -0
  100. package/src/db/reservations.ts +42 -8
  101. package/src/db/runner-instances.test.ts +45 -1
  102. package/src/db/runner-instances.ts +7 -2
  103. package/src/db/runner-sessions.ts +14 -1
  104. package/src/db/schema/runner-instances.ts +3 -0
  105. package/src/metrics/index.ts +2 -0
  106. package/src/metrics/instance.ts +18 -0
  107. package/src/presentation/routes/poll-demand.test.ts +99 -3
  108. package/src/presentation/routes/poll-demand.ts +18 -6
  109. package/src/presentation/routes/register.test.ts +116 -2
  110. package/src/presentation/routes/register.ts +7 -0
  111. package/src/presentation/routes/report-runner-instances.test.ts +33 -0
  112. package/src/presentation/routes/report-runner-instances.ts +1 -0
  113. package/src/presentation/routes/runner-enrollment.test.ts +65 -5
  114. package/src/temporal/activities/maintenance-activities.test.ts +24 -31
  115. package/test/env.ts +1 -0
  116. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,2194 @@
1
+ {
2
+ "id": "5d378e67-a9df-497a-86c0-a70ed6b79e68",
3
+ "prevId": "c9034ead-e269-4022-bc05-ea5b2fd36f6d",
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
+ "created_at": {
1004
+ "name": "created_at",
1005
+ "type": "timestamp with time zone",
1006
+ "primaryKey": false,
1007
+ "notNull": true,
1008
+ "default": "now()"
1009
+ },
1010
+ "expires_at": {
1011
+ "name": "expires_at",
1012
+ "type": "timestamp with time zone",
1013
+ "primaryKey": false,
1014
+ "notNull": true
1015
+ }
1016
+ },
1017
+ "indexes": {
1018
+ "runners_reservations_workspace_expires_idx": {
1019
+ "name": "runners_reservations_workspace_expires_idx",
1020
+ "columns": [
1021
+ {
1022
+ "expression": "workspace_id",
1023
+ "isExpression": false,
1024
+ "asc": true,
1025
+ "nulls": "last"
1026
+ },
1027
+ {
1028
+ "expression": "expires_at",
1029
+ "isExpression": false,
1030
+ "asc": true,
1031
+ "nulls": "last"
1032
+ }
1033
+ ],
1034
+ "isUnique": false,
1035
+ "concurrently": false,
1036
+ "method": "btree",
1037
+ "with": {}
1038
+ },
1039
+ "runners_reservations_expires_idx": {
1040
+ "name": "runners_reservations_expires_idx",
1041
+ "columns": [
1042
+ {
1043
+ "expression": "expires_at",
1044
+ "isExpression": false,
1045
+ "asc": true,
1046
+ "nulls": "last"
1047
+ }
1048
+ ],
1049
+ "isUnique": false,
1050
+ "concurrently": false,
1051
+ "method": "btree",
1052
+ "with": {}
1053
+ }
1054
+ },
1055
+ "foreignKeys": {},
1056
+ "compositePrimaryKeys": {},
1057
+ "uniqueConstraints": {},
1058
+ "policies": {},
1059
+ "checkConstraints": {
1060
+ "runners_reservations_count_positive_ck": {
1061
+ "name": "runners_reservations_count_positive_ck",
1062
+ "value": "\"runners_reservations\".\"count\" > 0"
1063
+ }
1064
+ },
1065
+ "isRLSEnabled": false
1066
+ },
1067
+ "public.runners_runner_activation_tokens": {
1068
+ "name": "runners_runner_activation_tokens",
1069
+ "schema": "",
1070
+ "columns": {
1071
+ "id": {
1072
+ "name": "id",
1073
+ "type": "uuid",
1074
+ "primaryKey": true,
1075
+ "notNull": true,
1076
+ "default": "uuidv7()"
1077
+ },
1078
+ "runner_instance_id": {
1079
+ "name": "runner_instance_id",
1080
+ "type": "uuid",
1081
+ "primaryKey": false,
1082
+ "notNull": true
1083
+ },
1084
+ "hashed_token": {
1085
+ "name": "hashed_token",
1086
+ "type": "text",
1087
+ "primaryKey": false,
1088
+ "notNull": true
1089
+ },
1090
+ "prefix": {
1091
+ "name": "prefix",
1092
+ "type": "text",
1093
+ "primaryKey": false,
1094
+ "notNull": true
1095
+ },
1096
+ "expires_at": {
1097
+ "name": "expires_at",
1098
+ "type": "timestamp with time zone",
1099
+ "primaryKey": false,
1100
+ "notNull": true
1101
+ },
1102
+ "consumed_at": {
1103
+ "name": "consumed_at",
1104
+ "type": "timestamp with time zone",
1105
+ "primaryKey": false,
1106
+ "notNull": false
1107
+ },
1108
+ "revoked_at": {
1109
+ "name": "revoked_at",
1110
+ "type": "timestamp with time zone",
1111
+ "primaryKey": false,
1112
+ "notNull": false
1113
+ },
1114
+ "consumed_session_id": {
1115
+ "name": "consumed_session_id",
1116
+ "type": "uuid",
1117
+ "primaryKey": false,
1118
+ "notNull": false
1119
+ },
1120
+ "created_at": {
1121
+ "name": "created_at",
1122
+ "type": "timestamp with time zone",
1123
+ "primaryKey": false,
1124
+ "notNull": true,
1125
+ "default": "now()"
1126
+ }
1127
+ },
1128
+ "indexes": {
1129
+ "runners_runner_activation_tokens_hashed_token_unique": {
1130
+ "name": "runners_runner_activation_tokens_hashed_token_unique",
1131
+ "columns": [
1132
+ {
1133
+ "expression": "hashed_token",
1134
+ "isExpression": false,
1135
+ "asc": true,
1136
+ "nulls": "last"
1137
+ }
1138
+ ],
1139
+ "isUnique": true,
1140
+ "concurrently": false,
1141
+ "method": "btree",
1142
+ "with": {}
1143
+ },
1144
+ "runners_runner_activation_tokens_runner_instance_idx": {
1145
+ "name": "runners_runner_activation_tokens_runner_instance_idx",
1146
+ "columns": [
1147
+ {
1148
+ "expression": "runner_instance_id",
1149
+ "isExpression": false,
1150
+ "asc": true,
1151
+ "nulls": "last"
1152
+ }
1153
+ ],
1154
+ "isUnique": false,
1155
+ "concurrently": false,
1156
+ "method": "btree",
1157
+ "with": {}
1158
+ }
1159
+ },
1160
+ "foreignKeys": {},
1161
+ "compositePrimaryKeys": {},
1162
+ "uniqueConstraints": {},
1163
+ "policies": {},
1164
+ "checkConstraints": {},
1165
+ "isRLSEnabled": false
1166
+ },
1167
+ "public.runners_runner_bootstrap_tokens": {
1168
+ "name": "runners_runner_bootstrap_tokens",
1169
+ "schema": "",
1170
+ "columns": {
1171
+ "id": {
1172
+ "name": "id",
1173
+ "type": "uuid",
1174
+ "primaryKey": true,
1175
+ "notNull": true,
1176
+ "default": "uuidv7()"
1177
+ },
1178
+ "runner_instance_id": {
1179
+ "name": "runner_instance_id",
1180
+ "type": "uuid",
1181
+ "primaryKey": false,
1182
+ "notNull": true
1183
+ },
1184
+ "provisioner_id": {
1185
+ "name": "provisioner_id",
1186
+ "type": "uuid",
1187
+ "primaryKey": false,
1188
+ "notNull": true
1189
+ },
1190
+ "hashed_token": {
1191
+ "name": "hashed_token",
1192
+ "type": "text",
1193
+ "primaryKey": false,
1194
+ "notNull": true
1195
+ },
1196
+ "prefix": {
1197
+ "name": "prefix",
1198
+ "type": "text",
1199
+ "primaryKey": false,
1200
+ "notNull": true
1201
+ },
1202
+ "expires_at": {
1203
+ "name": "expires_at",
1204
+ "type": "timestamp with time zone",
1205
+ "primaryKey": false,
1206
+ "notNull": true
1207
+ },
1208
+ "consumed_at": {
1209
+ "name": "consumed_at",
1210
+ "type": "timestamp with time zone",
1211
+ "primaryKey": false,
1212
+ "notNull": false
1213
+ },
1214
+ "revoked_at": {
1215
+ "name": "revoked_at",
1216
+ "type": "timestamp with time zone",
1217
+ "primaryKey": false,
1218
+ "notNull": false
1219
+ },
1220
+ "created_at": {
1221
+ "name": "created_at",
1222
+ "type": "timestamp with time zone",
1223
+ "primaryKey": false,
1224
+ "notNull": true,
1225
+ "default": "now()"
1226
+ }
1227
+ },
1228
+ "indexes": {
1229
+ "runners_runner_bootstrap_tokens_hashed_token_unique": {
1230
+ "name": "runners_runner_bootstrap_tokens_hashed_token_unique",
1231
+ "columns": [
1232
+ {
1233
+ "expression": "hashed_token",
1234
+ "isExpression": false,
1235
+ "asc": true,
1236
+ "nulls": "last"
1237
+ }
1238
+ ],
1239
+ "isUnique": true,
1240
+ "concurrently": false,
1241
+ "method": "btree",
1242
+ "with": {}
1243
+ },
1244
+ "runners_runner_bootstrap_tokens_runner_instance_idx": {
1245
+ "name": "runners_runner_bootstrap_tokens_runner_instance_idx",
1246
+ "columns": [
1247
+ {
1248
+ "expression": "runner_instance_id",
1249
+ "isExpression": false,
1250
+ "asc": true,
1251
+ "nulls": "last"
1252
+ }
1253
+ ],
1254
+ "isUnique": false,
1255
+ "concurrently": false,
1256
+ "method": "btree",
1257
+ "with": {}
1258
+ }
1259
+ },
1260
+ "foreignKeys": {},
1261
+ "compositePrimaryKeys": {},
1262
+ "uniqueConstraints": {},
1263
+ "policies": {},
1264
+ "checkConstraints": {},
1265
+ "isRLSEnabled": false
1266
+ },
1267
+ "public.runners_runner_control_sessions": {
1268
+ "name": "runners_runner_control_sessions",
1269
+ "schema": "",
1270
+ "columns": {
1271
+ "id": {
1272
+ "name": "id",
1273
+ "type": "uuid",
1274
+ "primaryKey": true,
1275
+ "notNull": true,
1276
+ "default": "uuidv7()"
1277
+ },
1278
+ "runner_instance_id": {
1279
+ "name": "runner_instance_id",
1280
+ "type": "uuid",
1281
+ "primaryKey": false,
1282
+ "notNull": true
1283
+ },
1284
+ "provisioner_id": {
1285
+ "name": "provisioner_id",
1286
+ "type": "uuid",
1287
+ "primaryKey": false,
1288
+ "notNull": true
1289
+ },
1290
+ "hashed_token": {
1291
+ "name": "hashed_token",
1292
+ "type": "text",
1293
+ "primaryKey": false,
1294
+ "notNull": true
1295
+ },
1296
+ "prefix": {
1297
+ "name": "prefix",
1298
+ "type": "text",
1299
+ "primaryKey": false,
1300
+ "notNull": true
1301
+ },
1302
+ "expires_at": {
1303
+ "name": "expires_at",
1304
+ "type": "timestamp with time zone",
1305
+ "primaryKey": false,
1306
+ "notNull": true
1307
+ },
1308
+ "last_seen_at": {
1309
+ "name": "last_seen_at",
1310
+ "type": "timestamp with time zone",
1311
+ "primaryKey": false,
1312
+ "notNull": true,
1313
+ "default": "now()"
1314
+ },
1315
+ "closed_at": {
1316
+ "name": "closed_at",
1317
+ "type": "timestamp with time zone",
1318
+ "primaryKey": false,
1319
+ "notNull": false
1320
+ },
1321
+ "close_reason": {
1322
+ "name": "close_reason",
1323
+ "type": "text",
1324
+ "primaryKey": false,
1325
+ "notNull": false
1326
+ },
1327
+ "created_at": {
1328
+ "name": "created_at",
1329
+ "type": "timestamp with time zone",
1330
+ "primaryKey": false,
1331
+ "notNull": true,
1332
+ "default": "now()"
1333
+ }
1334
+ },
1335
+ "indexes": {
1336
+ "runners_runner_control_sessions_hashed_token_unique": {
1337
+ "name": "runners_runner_control_sessions_hashed_token_unique",
1338
+ "columns": [
1339
+ {
1340
+ "expression": "hashed_token",
1341
+ "isExpression": false,
1342
+ "asc": true,
1343
+ "nulls": "last"
1344
+ }
1345
+ ],
1346
+ "isUnique": true,
1347
+ "concurrently": false,
1348
+ "method": "btree",
1349
+ "with": {}
1350
+ },
1351
+ "runners_runner_control_sessions_active_runner_instance_unique": {
1352
+ "name": "runners_runner_control_sessions_active_runner_instance_unique",
1353
+ "columns": [
1354
+ {
1355
+ "expression": "runner_instance_id",
1356
+ "isExpression": false,
1357
+ "asc": true,
1358
+ "nulls": "last"
1359
+ }
1360
+ ],
1361
+ "isUnique": true,
1362
+ "where": "\"closed_at\" is null",
1363
+ "concurrently": false,
1364
+ "method": "btree",
1365
+ "with": {}
1366
+ },
1367
+ "runners_runner_control_sessions_runner_instance_idx": {
1368
+ "name": "runners_runner_control_sessions_runner_instance_idx",
1369
+ "columns": [
1370
+ {
1371
+ "expression": "runner_instance_id",
1372
+ "isExpression": false,
1373
+ "asc": true,
1374
+ "nulls": "last"
1375
+ }
1376
+ ],
1377
+ "isUnique": false,
1378
+ "concurrently": false,
1379
+ "method": "btree",
1380
+ "with": {}
1381
+ }
1382
+ },
1383
+ "foreignKeys": {},
1384
+ "compositePrimaryKeys": {},
1385
+ "uniqueConstraints": {},
1386
+ "policies": {},
1387
+ "checkConstraints": {},
1388
+ "isRLSEnabled": false
1389
+ },
1390
+ "public.runners_runner_instances": {
1391
+ "name": "runners_runner_instances",
1392
+ "schema": "",
1393
+ "columns": {
1394
+ "id": {
1395
+ "name": "id",
1396
+ "type": "uuid",
1397
+ "primaryKey": true,
1398
+ "notNull": true,
1399
+ "default": "uuidv7()"
1400
+ },
1401
+ "workspace_id": {
1402
+ "name": "workspace_id",
1403
+ "type": "uuid",
1404
+ "primaryKey": false,
1405
+ "notNull": false
1406
+ },
1407
+ "provisioner_id": {
1408
+ "name": "provisioner_id",
1409
+ "type": "uuid",
1410
+ "primaryKey": false,
1411
+ "notNull": true
1412
+ },
1413
+ "provider_runner_id": {
1414
+ "name": "provider_runner_id",
1415
+ "type": "text",
1416
+ "primaryKey": false,
1417
+ "notNull": false
1418
+ },
1419
+ "intended_reservation_id": {
1420
+ "name": "intended_reservation_id",
1421
+ "type": "uuid",
1422
+ "primaryKey": false,
1423
+ "notNull": false
1424
+ },
1425
+ "reservation_id": {
1426
+ "name": "reservation_id",
1427
+ "type": "uuid",
1428
+ "primaryKey": false,
1429
+ "notNull": false
1430
+ },
1431
+ "assigned_at": {
1432
+ "name": "assigned_at",
1433
+ "type": "timestamp with time zone",
1434
+ "primaryKey": false,
1435
+ "notNull": false
1436
+ },
1437
+ "template_key": {
1438
+ "name": "template_key",
1439
+ "type": "text",
1440
+ "primaryKey": false,
1441
+ "notNull": false
1442
+ },
1443
+ "labels": {
1444
+ "name": "labels",
1445
+ "type": "text[]",
1446
+ "primaryKey": false,
1447
+ "notNull": true,
1448
+ "default": "'{}'"
1449
+ },
1450
+ "state": {
1451
+ "name": "state",
1452
+ "type": "runners_provider_runner_state",
1453
+ "typeSchema": "public",
1454
+ "primaryKey": false,
1455
+ "notNull": true
1456
+ },
1457
+ "reason": {
1458
+ "name": "reason",
1459
+ "type": "text",
1460
+ "primaryKey": false,
1461
+ "notNull": false
1462
+ },
1463
+ "runner_session_id": {
1464
+ "name": "runner_session_id",
1465
+ "type": "uuid",
1466
+ "primaryKey": false,
1467
+ "notNull": false
1468
+ },
1469
+ "first_claimed_at": {
1470
+ "name": "first_claimed_at",
1471
+ "type": "timestamp with time zone",
1472
+ "primaryKey": false,
1473
+ "notNull": false
1474
+ },
1475
+ "provider_kind": {
1476
+ "name": "provider_kind",
1477
+ "type": "text",
1478
+ "primaryKey": false,
1479
+ "notNull": false
1480
+ },
1481
+ "protocol_version": {
1482
+ "name": "protocol_version",
1483
+ "type": "text",
1484
+ "primaryKey": false,
1485
+ "notNull": false
1486
+ },
1487
+ "capabilities": {
1488
+ "name": "capabilities",
1489
+ "type": "jsonb",
1490
+ "primaryKey": false,
1491
+ "notNull": false
1492
+ },
1493
+ "reported_at": {
1494
+ "name": "reported_at",
1495
+ "type": "timestamp with time zone",
1496
+ "primaryKey": false,
1497
+ "notNull": true
1498
+ },
1499
+ "started_at": {
1500
+ "name": "started_at",
1501
+ "type": "timestamp with time zone",
1502
+ "primaryKey": false,
1503
+ "notNull": false
1504
+ },
1505
+ "stopping_at": {
1506
+ "name": "stopping_at",
1507
+ "type": "timestamp with time zone",
1508
+ "primaryKey": false,
1509
+ "notNull": false
1510
+ },
1511
+ "stopped_at": {
1512
+ "name": "stopped_at",
1513
+ "type": "timestamp with time zone",
1514
+ "primaryKey": false,
1515
+ "notNull": false
1516
+ },
1517
+ "failed_at": {
1518
+ "name": "failed_at",
1519
+ "type": "timestamp with time zone",
1520
+ "primaryKey": false,
1521
+ "notNull": false
1522
+ },
1523
+ "terminated_at": {
1524
+ "name": "terminated_at",
1525
+ "type": "timestamp with time zone",
1526
+ "primaryKey": false,
1527
+ "notNull": false
1528
+ },
1529
+ "reservation_released_at": {
1530
+ "name": "reservation_released_at",
1531
+ "type": "timestamp with time zone",
1532
+ "primaryKey": false,
1533
+ "notNull": false
1534
+ },
1535
+ "created_at": {
1536
+ "name": "created_at",
1537
+ "type": "timestamp with time zone",
1538
+ "primaryKey": false,
1539
+ "notNull": true,
1540
+ "default": "now()"
1541
+ },
1542
+ "updated_at": {
1543
+ "name": "updated_at",
1544
+ "type": "timestamp with time zone",
1545
+ "primaryKey": false,
1546
+ "notNull": true,
1547
+ "default": "now()"
1548
+ }
1549
+ },
1550
+ "indexes": {
1551
+ "runners_runner_instances_provisioner_runner_unique": {
1552
+ "name": "runners_runner_instances_provisioner_runner_unique",
1553
+ "columns": [
1554
+ {
1555
+ "expression": "provisioner_id",
1556
+ "isExpression": false,
1557
+ "asc": true,
1558
+ "nulls": "last"
1559
+ },
1560
+ {
1561
+ "expression": "provider_runner_id",
1562
+ "isExpression": false,
1563
+ "asc": true,
1564
+ "nulls": "last"
1565
+ }
1566
+ ],
1567
+ "isUnique": true,
1568
+ "where": "\"runners_runner_instances\".\"provider_runner_id\" is not null",
1569
+ "concurrently": false,
1570
+ "method": "btree",
1571
+ "with": {}
1572
+ },
1573
+ "runners_runner_instances_workspace_state_updated_idx": {
1574
+ "name": "runners_runner_instances_workspace_state_updated_idx",
1575
+ "columns": [
1576
+ {
1577
+ "expression": "state",
1578
+ "isExpression": false,
1579
+ "asc": true,
1580
+ "nulls": "last"
1581
+ },
1582
+ {
1583
+ "expression": "updated_at",
1584
+ "isExpression": false,
1585
+ "asc": true,
1586
+ "nulls": "last"
1587
+ }
1588
+ ],
1589
+ "isUnique": false,
1590
+ "concurrently": false,
1591
+ "method": "btree",
1592
+ "with": {}
1593
+ },
1594
+ "runners_runner_instances_stale_reaper_idx": {
1595
+ "name": "runners_runner_instances_stale_reaper_idx",
1596
+ "columns": [
1597
+ {
1598
+ "expression": "state",
1599
+ "isExpression": false,
1600
+ "asc": true,
1601
+ "nulls": "last"
1602
+ },
1603
+ {
1604
+ "expression": "updated_at",
1605
+ "isExpression": false,
1606
+ "asc": true,
1607
+ "nulls": "last"
1608
+ },
1609
+ {
1610
+ "expression": "reported_at",
1611
+ "isExpression": false,
1612
+ "asc": true,
1613
+ "nulls": "last"
1614
+ }
1615
+ ],
1616
+ "isUnique": false,
1617
+ "concurrently": false,
1618
+ "method": "btree",
1619
+ "with": {}
1620
+ },
1621
+ "runners_runner_instances_provisioner_intended_reservation_idx": {
1622
+ "name": "runners_runner_instances_provisioner_intended_reservation_idx",
1623
+ "columns": [
1624
+ {
1625
+ "expression": "provisioner_id",
1626
+ "isExpression": false,
1627
+ "asc": true,
1628
+ "nulls": "last"
1629
+ },
1630
+ {
1631
+ "expression": "intended_reservation_id",
1632
+ "isExpression": false,
1633
+ "asc": true,
1634
+ "nulls": "last"
1635
+ }
1636
+ ],
1637
+ "isUnique": false,
1638
+ "where": "\"runners_runner_instances\".\"intended_reservation_id\" is not null and \"runners_runner_instances\".\"reservation_released_at\" is null",
1639
+ "concurrently": false,
1640
+ "method": "btree",
1641
+ "with": {}
1642
+ },
1643
+ "runners_runner_instances_intended_reservation_idx": {
1644
+ "name": "runners_runner_instances_intended_reservation_idx",
1645
+ "columns": [
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",
1655
+ "concurrently": false,
1656
+ "method": "btree",
1657
+ "with": {}
1658
+ },
1659
+ "runners_runner_instances_provisioner_reservation_idx": {
1660
+ "name": "runners_runner_instances_provisioner_reservation_idx",
1661
+ "columns": [
1662
+ {
1663
+ "expression": "provisioner_id",
1664
+ "isExpression": false,
1665
+ "asc": true,
1666
+ "nulls": "last"
1667
+ },
1668
+ {
1669
+ "expression": "reservation_id",
1670
+ "isExpression": false,
1671
+ "asc": true,
1672
+ "nulls": "last"
1673
+ }
1674
+ ],
1675
+ "isUnique": false,
1676
+ "where": "\"runners_runner_instances\".\"reservation_id\" is not null",
1677
+ "concurrently": false,
1678
+ "method": "btree",
1679
+ "with": {}
1680
+ },
1681
+ "runners_runner_instances_active_template_counts_idx": {
1682
+ "name": "runners_runner_instances_active_template_counts_idx",
1683
+ "columns": [
1684
+ {
1685
+ "expression": "provisioner_id",
1686
+ "isExpression": false,
1687
+ "asc": true,
1688
+ "nulls": "last"
1689
+ },
1690
+ {
1691
+ "expression": "state",
1692
+ "isExpression": false,
1693
+ "asc": true,
1694
+ "nulls": "last"
1695
+ },
1696
+ {
1697
+ "expression": "template_key",
1698
+ "isExpression": false,
1699
+ "asc": true,
1700
+ "nulls": "last"
1701
+ }
1702
+ ],
1703
+ "isUnique": false,
1704
+ "where": "\"state\" in ('starting', 'running') and \"template_key\" is not null",
1705
+ "concurrently": false,
1706
+ "method": "btree",
1707
+ "with": {}
1708
+ }
1709
+ },
1710
+ "foreignKeys": {},
1711
+ "compositePrimaryKeys": {},
1712
+ "uniqueConstraints": {},
1713
+ "policies": {},
1714
+ "checkConstraints": {},
1715
+ "isRLSEnabled": false
1716
+ },
1717
+ "public.runners_runner_sessions": {
1718
+ "name": "runners_runner_sessions",
1719
+ "schema": "",
1720
+ "columns": {
1721
+ "id": {
1722
+ "name": "id",
1723
+ "type": "uuid",
1724
+ "primaryKey": true,
1725
+ "notNull": true,
1726
+ "default": "uuidv7()"
1727
+ },
1728
+ "workspace_id": {
1729
+ "name": "workspace_id",
1730
+ "type": "uuid",
1731
+ "primaryKey": false,
1732
+ "notNull": true
1733
+ },
1734
+ "scope": {
1735
+ "name": "scope",
1736
+ "type": "runners_runner_session_scope",
1737
+ "typeSchema": "public",
1738
+ "primaryKey": false,
1739
+ "notNull": true,
1740
+ "default": "'workspace'"
1741
+ },
1742
+ "registration_token_id": {
1743
+ "name": "registration_token_id",
1744
+ "type": "uuid",
1745
+ "primaryKey": false,
1746
+ "notNull": true
1747
+ },
1748
+ "registration_token_kind": {
1749
+ "name": "registration_token_kind",
1750
+ "type": "runners_runner_session_registration_token_kind",
1751
+ "typeSchema": "public",
1752
+ "primaryKey": false,
1753
+ "notNull": true
1754
+ },
1755
+ "runner_instance_id": {
1756
+ "name": "runner_instance_id",
1757
+ "type": "uuid",
1758
+ "primaryKey": false,
1759
+ "notNull": false
1760
+ },
1761
+ "provisioner_id": {
1762
+ "name": "provisioner_id",
1763
+ "type": "uuid",
1764
+ "primaryKey": false,
1765
+ "notNull": false
1766
+ },
1767
+ "provider_runner_id": {
1768
+ "name": "provider_runner_id",
1769
+ "type": "text",
1770
+ "primaryKey": false,
1771
+ "notNull": false
1772
+ },
1773
+ "labels": {
1774
+ "name": "labels",
1775
+ "type": "text[]",
1776
+ "primaryKey": false,
1777
+ "notNull": true
1778
+ },
1779
+ "tool_capabilities": {
1780
+ "name": "tool_capabilities",
1781
+ "type": "jsonb",
1782
+ "primaryKey": false,
1783
+ "notNull": false
1784
+ },
1785
+ "tool_capabilities_reported_at": {
1786
+ "name": "tool_capabilities_reported_at",
1787
+ "type": "timestamp with time zone",
1788
+ "primaryKey": false,
1789
+ "notNull": false
1790
+ },
1791
+ "max_claims": {
1792
+ "name": "max_claims",
1793
+ "type": "integer",
1794
+ "primaryKey": false,
1795
+ "notNull": false
1796
+ },
1797
+ "claims_used": {
1798
+ "name": "claims_used",
1799
+ "type": "integer",
1800
+ "primaryKey": false,
1801
+ "notNull": true,
1802
+ "default": 0
1803
+ },
1804
+ "revoked_at": {
1805
+ "name": "revoked_at",
1806
+ "type": "timestamp with time zone",
1807
+ "primaryKey": false,
1808
+ "notNull": false
1809
+ },
1810
+ "created_at": {
1811
+ "name": "created_at",
1812
+ "type": "timestamp with time zone",
1813
+ "primaryKey": false,
1814
+ "notNull": true,
1815
+ "default": "now()"
1816
+ },
1817
+ "updated_at": {
1818
+ "name": "updated_at",
1819
+ "type": "timestamp with time zone",
1820
+ "primaryKey": false,
1821
+ "notNull": true,
1822
+ "default": "now()"
1823
+ }
1824
+ },
1825
+ "indexes": {
1826
+ "runners_runner_sessions_kind_created_id_idx": {
1827
+ "name": "runners_runner_sessions_kind_created_id_idx",
1828
+ "columns": [
1829
+ {
1830
+ "expression": "registration_token_kind",
1831
+ "isExpression": false,
1832
+ "asc": true,
1833
+ "nulls": "last"
1834
+ },
1835
+ {
1836
+ "expression": "created_at",
1837
+ "isExpression": false,
1838
+ "asc": true,
1839
+ "nulls": "last"
1840
+ },
1841
+ {
1842
+ "expression": "id",
1843
+ "isExpression": false,
1844
+ "asc": true,
1845
+ "nulls": "last"
1846
+ }
1847
+ ],
1848
+ "isUnique": false,
1849
+ "concurrently": false,
1850
+ "method": "btree",
1851
+ "with": {}
1852
+ },
1853
+ "runners_runner_sessions_provider_runner_updated_idx": {
1854
+ "name": "runners_runner_sessions_provider_runner_updated_idx",
1855
+ "columns": [
1856
+ {
1857
+ "expression": "workspace_id",
1858
+ "isExpression": false,
1859
+ "asc": true,
1860
+ "nulls": "last"
1861
+ },
1862
+ {
1863
+ "expression": "provisioner_id",
1864
+ "isExpression": false,
1865
+ "asc": true,
1866
+ "nulls": "last"
1867
+ },
1868
+ {
1869
+ "expression": "provider_runner_id",
1870
+ "isExpression": false,
1871
+ "asc": true,
1872
+ "nulls": "last"
1873
+ },
1874
+ {
1875
+ "expression": "updated_at",
1876
+ "isExpression": false,
1877
+ "asc": true,
1878
+ "nulls": "last"
1879
+ }
1880
+ ],
1881
+ "isUnique": false,
1882
+ "where": "\"provisioner_id\" IS NOT NULL",
1883
+ "concurrently": false,
1884
+ "method": "btree",
1885
+ "with": {}
1886
+ }
1887
+ },
1888
+ "foreignKeys": {},
1889
+ "compositePrimaryKeys": {},
1890
+ "uniqueConstraints": {},
1891
+ "policies": {},
1892
+ "checkConstraints": {
1893
+ "runners_runner_sessions_claims_ck": {
1894
+ "name": "runners_runner_sessions_claims_ck",
1895
+ "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\"))"
1896
+ },
1897
+ "runners_runner_sessions_link_ck": {
1898
+ "name": "runners_runner_sessions_link_ck",
1899
+ "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))"
1900
+ }
1901
+ },
1902
+ "isRLSEnabled": false
1903
+ },
1904
+ "public.runners_running_jobs": {
1905
+ "name": "runners_running_jobs",
1906
+ "schema": "",
1907
+ "columns": {
1908
+ "id": {
1909
+ "name": "id",
1910
+ "type": "uuid",
1911
+ "primaryKey": true,
1912
+ "notNull": true,
1913
+ "default": "uuidv7()"
1914
+ },
1915
+ "workspace_id": {
1916
+ "name": "workspace_id",
1917
+ "type": "uuid",
1918
+ "primaryKey": false,
1919
+ "notNull": true
1920
+ },
1921
+ "workflow_run_id": {
1922
+ "name": "workflow_run_id",
1923
+ "type": "uuid",
1924
+ "primaryKey": false,
1925
+ "notNull": true
1926
+ },
1927
+ "workflow_run_attempt_id": {
1928
+ "name": "workflow_run_attempt_id",
1929
+ "type": "uuid",
1930
+ "primaryKey": false,
1931
+ "notNull": true
1932
+ },
1933
+ "job_id": {
1934
+ "name": "job_id",
1935
+ "type": "uuid",
1936
+ "primaryKey": false,
1937
+ "notNull": true
1938
+ },
1939
+ "job_execution_id": {
1940
+ "name": "job_execution_id",
1941
+ "type": "uuid",
1942
+ "primaryKey": false,
1943
+ "notNull": true
1944
+ },
1945
+ "project_id": {
1946
+ "name": "project_id",
1947
+ "type": "uuid",
1948
+ "primaryKey": false,
1949
+ "notNull": true
1950
+ },
1951
+ "runner_session_id": {
1952
+ "name": "runner_session_id",
1953
+ "type": "uuid",
1954
+ "primaryKey": false,
1955
+ "notNull": true
1956
+ },
1957
+ "provisioner_id": {
1958
+ "name": "provisioner_id",
1959
+ "type": "uuid",
1960
+ "primaryKey": false,
1961
+ "notNull": false
1962
+ },
1963
+ "provider_runner_id": {
1964
+ "name": "provider_runner_id",
1965
+ "type": "text",
1966
+ "primaryKey": false,
1967
+ "notNull": false
1968
+ },
1969
+ "required_labels": {
1970
+ "name": "required_labels",
1971
+ "type": "text[]",
1972
+ "primaryKey": false,
1973
+ "notNull": true
1974
+ },
1975
+ "runner_labels": {
1976
+ "name": "runner_labels",
1977
+ "type": "text[]",
1978
+ "primaryKey": false,
1979
+ "notNull": true
1980
+ },
1981
+ "started_at": {
1982
+ "name": "started_at",
1983
+ "type": "timestamp with time zone",
1984
+ "primaryKey": false,
1985
+ "notNull": true,
1986
+ "default": "now()"
1987
+ },
1988
+ "first_heartbeat_at": {
1989
+ "name": "first_heartbeat_at",
1990
+ "type": "timestamp with time zone",
1991
+ "primaryKey": false,
1992
+ "notNull": false
1993
+ },
1994
+ "last_heartbeat_at": {
1995
+ "name": "last_heartbeat_at",
1996
+ "type": "timestamp with time zone",
1997
+ "primaryKey": false,
1998
+ "notNull": true,
1999
+ "default": "now()"
2000
+ },
2001
+ "cancellation_requested_at": {
2002
+ "name": "cancellation_requested_at",
2003
+ "type": "timestamp with time zone",
2004
+ "primaryKey": false,
2005
+ "notNull": false
2006
+ }
2007
+ },
2008
+ "indexes": {
2009
+ "runners_running_jobs_no_first_heartbeat_started_idx": {
2010
+ "name": "runners_running_jobs_no_first_heartbeat_started_idx",
2011
+ "columns": [
2012
+ {
2013
+ "expression": "started_at",
2014
+ "isExpression": false,
2015
+ "asc": true,
2016
+ "nulls": "last"
2017
+ }
2018
+ ],
2019
+ "isUnique": false,
2020
+ "where": "\"first_heartbeat_at\" IS NULL",
2021
+ "concurrently": false,
2022
+ "method": "btree",
2023
+ "with": {}
2024
+ },
2025
+ "runners_running_jobs_last_heartbeat_at_idx": {
2026
+ "name": "runners_running_jobs_last_heartbeat_at_idx",
2027
+ "columns": [
2028
+ {
2029
+ "expression": "last_heartbeat_at",
2030
+ "isExpression": false,
2031
+ "asc": true,
2032
+ "nulls": "last"
2033
+ }
2034
+ ],
2035
+ "isUnique": false,
2036
+ "concurrently": false,
2037
+ "method": "btree",
2038
+ "with": {}
2039
+ },
2040
+ "runners_running_jobs_provider_runner_started_idx": {
2041
+ "name": "runners_running_jobs_provider_runner_started_idx",
2042
+ "columns": [
2043
+ {
2044
+ "expression": "workspace_id",
2045
+ "isExpression": false,
2046
+ "asc": true,
2047
+ "nulls": "last"
2048
+ },
2049
+ {
2050
+ "expression": "provisioner_id",
2051
+ "isExpression": false,
2052
+ "asc": true,
2053
+ "nulls": "last"
2054
+ },
2055
+ {
2056
+ "expression": "provider_runner_id",
2057
+ "isExpression": false,
2058
+ "asc": true,
2059
+ "nulls": "last"
2060
+ },
2061
+ {
2062
+ "expression": "started_at",
2063
+ "isExpression": false,
2064
+ "asc": false,
2065
+ "nulls": "last"
2066
+ }
2067
+ ],
2068
+ "isUnique": false,
2069
+ "where": "\"provisioner_id\" IS NOT NULL",
2070
+ "concurrently": false,
2071
+ "method": "btree",
2072
+ "with": {}
2073
+ },
2074
+ "runners_running_jobs_cancellation_requested_idx": {
2075
+ "name": "runners_running_jobs_cancellation_requested_idx",
2076
+ "columns": [
2077
+ {
2078
+ "expression": "workspace_id",
2079
+ "isExpression": false,
2080
+ "asc": true,
2081
+ "nulls": "last"
2082
+ },
2083
+ {
2084
+ "expression": "provisioner_id",
2085
+ "isExpression": false,
2086
+ "asc": true,
2087
+ "nulls": "last"
2088
+ },
2089
+ {
2090
+ "expression": "provider_runner_id",
2091
+ "isExpression": false,
2092
+ "asc": true,
2093
+ "nulls": "last"
2094
+ }
2095
+ ],
2096
+ "isUnique": false,
2097
+ "where": "\"cancellation_requested_at\" IS NOT NULL",
2098
+ "concurrently": false,
2099
+ "method": "btree",
2100
+ "with": {}
2101
+ },
2102
+ "runners_running_jobs_job_id_idx": {
2103
+ "name": "runners_running_jobs_job_id_idx",
2104
+ "columns": [
2105
+ {
2106
+ "expression": "job_id",
2107
+ "isExpression": false,
2108
+ "asc": true,
2109
+ "nulls": "last"
2110
+ }
2111
+ ],
2112
+ "isUnique": false,
2113
+ "concurrently": false,
2114
+ "method": "btree",
2115
+ "with": {}
2116
+ },
2117
+ "runners_running_jobs_runner_session_id_idx": {
2118
+ "name": "runners_running_jobs_runner_session_id_idx",
2119
+ "columns": [
2120
+ {
2121
+ "expression": "runner_session_id",
2122
+ "isExpression": false,
2123
+ "asc": true,
2124
+ "nulls": "last"
2125
+ }
2126
+ ],
2127
+ "isUnique": false,
2128
+ "concurrently": false,
2129
+ "method": "btree",
2130
+ "with": {}
2131
+ }
2132
+ },
2133
+ "foreignKeys": {
2134
+ "runners_running_jobs_runner_session_id_runners_runner_sessions_id_fk": {
2135
+ "name": "runners_running_jobs_runner_session_id_runners_runner_sessions_id_fk",
2136
+ "tableFrom": "runners_running_jobs",
2137
+ "tableTo": "runners_runner_sessions",
2138
+ "columnsFrom": ["runner_session_id"],
2139
+ "columnsTo": ["id"],
2140
+ "onDelete": "no action",
2141
+ "onUpdate": "no action"
2142
+ }
2143
+ },
2144
+ "compositePrimaryKeys": {},
2145
+ "uniqueConstraints": {
2146
+ "runners_running_jobs_job_execution_id_unique": {
2147
+ "name": "runners_running_jobs_job_execution_id_unique",
2148
+ "nullsNotDistinct": false,
2149
+ "columns": ["job_execution_id"]
2150
+ }
2151
+ },
2152
+ "policies": {},
2153
+ "checkConstraints": {
2154
+ "runners_running_jobs_link_ck": {
2155
+ "name": "runners_running_jobs_link_ck",
2156
+ "value": "(\"runners_running_jobs\".\"provisioner_id\" IS NULL) = (\"runners_running_jobs\".\"provider_runner_id\" IS NULL)"
2157
+ }
2158
+ },
2159
+ "isRLSEnabled": false
2160
+ }
2161
+ },
2162
+ "enums": {
2163
+ "public.runners_provisioner_scope": {
2164
+ "name": "runners_provisioner_scope",
2165
+ "schema": "public",
2166
+ "values": ["workspace", "installation"]
2167
+ },
2168
+ "public.runners_provider_runner_state": {
2169
+ "name": "runners_provider_runner_state",
2170
+ "schema": "public",
2171
+ "values": ["starting", "running", "stopping", "stopped", "failed", "terminated"]
2172
+ },
2173
+ "public.runners_runner_session_registration_token_kind": {
2174
+ "name": "runners_runner_session_registration_token_kind",
2175
+ "schema": "public",
2176
+ "values": ["manual", "ephemeral", "activation"]
2177
+ },
2178
+ "public.runners_runner_session_scope": {
2179
+ "name": "runners_runner_session_scope",
2180
+ "schema": "public",
2181
+ "values": ["workspace"]
2182
+ }
2183
+ },
2184
+ "schemas": {},
2185
+ "sequences": {},
2186
+ "roles": {},
2187
+ "policies": {},
2188
+ "views": {},
2189
+ "_meta": {
2190
+ "columns": {},
2191
+ "schemas": {},
2192
+ "tables": {}
2193
+ }
2194
+ }