@shipfox/api-runners 6.0.0 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +19 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/core/entities/runner-instance.d.ts +1 -0
- package/dist/core/entities/runner-instance.d.ts.map +1 -1
- package/dist/core/entities/runner-instance.js.map +1 -1
- package/dist/core/errors.d.ts +6 -6
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +8 -8
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +2 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/runner-assignments.d.ts +6 -0
- package/dist/core/runner-assignments.d.ts.map +1 -0
- package/dist/core/runner-assignments.js +6 -0
- package/dist/core/runner-assignments.js.map +1 -0
- package/dist/core/runner-instances.d.ts +2 -9
- package/dist/core/runner-instances.d.ts.map +1 -1
- package/dist/core/runner-instances.js +3 -6
- package/dist/core/runner-instances.js.map +1 -1
- package/dist/db/db.d.ts +34 -218
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db.js +0 -2
- package/dist/db/db.js.map +1 -1
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +2 -2
- package/dist/db/index.js.map +1 -1
- package/dist/db/runner-assignments.d.ts +7 -0
- package/dist/db/runner-assignments.d.ts.map +1 -0
- package/dist/db/runner-assignments.js +55 -0
- package/dist/db/runner-assignments.js.map +1 -0
- package/dist/db/runner-instances.d.ts +2 -9
- package/dist/db/runner-instances.d.ts.map +1 -1
- package/dist/db/runner-instances.js +2 -16
- package/dist/db/runner-instances.js.map +1 -1
- package/dist/db/schema/runner-instances.d.ts +17 -0
- package/dist/db/schema/runner-instances.d.ts.map +1 -1
- package/dist/db/schema/runner-instances.js +5 -1
- package/dist/db/schema/runner-instances.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/presentation/dto/index.d.ts +0 -1
- package/dist/presentation/dto/index.d.ts.map +1 -1
- package/dist/presentation/dto/index.js +0 -1
- package/dist/presentation/dto/index.js.map +1 -1
- package/dist/presentation/routes/assign-runner-instances.d.ts +2 -0
- package/dist/presentation/routes/assign-runner-instances.d.ts.map +1 -0
- package/dist/presentation/routes/assign-runner-instances.js +40 -0
- package/dist/presentation/routes/assign-runner-instances.js.map +1 -0
- package/dist/presentation/routes/index.d.ts.map +1 -1
- package/dist/presentation/routes/index.js +4 -8
- package/dist/presentation/routes/index.js.map +1 -1
- package/dist/presentation/routes/runner-enrollment.d.ts +1 -0
- package/dist/presentation/routes/runner-enrollment.d.ts.map +1 -1
- package/dist/presentation/routes/runner-enrollment.js +27 -0
- package/dist/presentation/routes/runner-enrollment.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/drizzle/0000_initial.sql +1 -12
- package/drizzle/meta/0000_snapshot.json +6 -97
- package/package.json +10 -10
- package/src/config.ts +1 -1
- package/src/core/entities/runner-instance.ts +1 -0
- package/src/core/errors.ts +8 -8
- package/src/core/index.ts +2 -9
- package/src/core/runner-assignments.ts +9 -0
- package/src/core/runner-instances.ts +4 -13
- package/src/db/db.ts +0 -2
- package/src/db/index.ts +2 -3
- package/src/db/runner-assignments.test.ts +163 -0
- package/src/db/runner-assignments.ts +115 -0
- package/src/db/runner-instances.test.ts +36 -23
- package/src/db/runner-instances.ts +3 -23
- package/src/db/schema/runner-instances.ts +3 -1
- package/src/index.ts +0 -9
- package/src/presentation/dto/index.ts +0 -4
- package/src/presentation/routes/assign-runner-instances.ts +49 -0
- package/src/presentation/routes/index.ts +4 -7
- package/src/presentation/routes/runner-enrollment.test.ts +60 -0
- package/src/presentation/routes/runner-enrollment.ts +22 -0
- package/test/globalSetup.ts +0 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/dist/core/capacity-assignments.d.ts +0 -7
- package/dist/core/capacity-assignments.d.ts.map +0 -1
- package/dist/core/capacity-assignments.js +0 -6
- package/dist/core/capacity-assignments.js.map +0 -1
- package/dist/core/entities/capacity-assignment.d.ts +0 -9
- package/dist/core/entities/capacity-assignment.d.ts.map +0 -1
- package/dist/core/entities/capacity-assignment.js +0 -3
- package/dist/core/entities/capacity-assignment.js.map +0 -1
- package/dist/db/capacity-assignments.d.ts +0 -7
- package/dist/db/capacity-assignments.d.ts.map +0 -1
- package/dist/db/capacity-assignments.js +0 -72
- package/dist/db/capacity-assignments.js.map +0 -1
- package/dist/db/schema/capacity-assignments.d.ts +0 -113
- package/dist/db/schema/capacity-assignments.d.ts.map +0 -1
- package/dist/db/schema/capacity-assignments.js +0 -29
- package/dist/db/schema/capacity-assignments.js.map +0 -1
- package/dist/presentation/dto/mint-registration-tokens.d.ts +0 -7
- package/dist/presentation/dto/mint-registration-tokens.d.ts.map +0 -1
- package/dist/presentation/dto/mint-registration-tokens.js +0 -19
- package/dist/presentation/dto/mint-registration-tokens.js.map +0 -1
- package/dist/presentation/routes/assign-capacity.d.ts +0 -2
- package/dist/presentation/routes/assign-capacity.d.ts.map +0 -1
- package/dist/presentation/routes/assign-capacity.js +0 -44
- package/dist/presentation/routes/assign-capacity.js.map +0 -1
- package/dist/presentation/routes/mint-registration-tokens.d.ts +0 -2
- package/dist/presentation/routes/mint-registration-tokens.d.ts.map +0 -1
- package/dist/presentation/routes/mint-registration-tokens.js +0 -74
- package/dist/presentation/routes/mint-registration-tokens.js.map +0 -1
- package/dist/presentation/routes/planned-capacity.d.ts +0 -3
- package/dist/presentation/routes/planned-capacity.d.ts.map +0 -1
- package/dist/presentation/routes/planned-capacity.js +0 -54
- package/dist/presentation/routes/planned-capacity.js.map +0 -1
- package/src/core/capacity-assignments.ts +0 -10
- package/src/core/entities/capacity-assignment.ts +0 -8
- package/src/db/capacity-assignments.test.ts +0 -159
- package/src/db/capacity-assignments.ts +0 -116
- package/src/db/schema/capacity-assignments.ts +0 -34
- package/src/presentation/dto/mint-registration-tokens.ts +0 -28
- package/src/presentation/routes/assign-capacity.ts +0 -48
- package/src/presentation/routes/mint-registration-tokens.test.ts +0 -453
- package/src/presentation/routes/mint-registration-tokens.ts +0 -80
- package/src/presentation/routes/planned-capacity.ts +0 -49
package/dist/db/db.d.ts
CHANGED
|
@@ -1,114 +1,5 @@
|
|
|
1
1
|
import { type NodePgDatabase } from '@shipfox/node-drizzle';
|
|
2
2
|
export declare const schema: {
|
|
3
|
-
capacityAssignments: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
4
|
-
name: "capacity_assignments";
|
|
5
|
-
schema: undefined;
|
|
6
|
-
columns: {
|
|
7
|
-
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
8
|
-
name: "id";
|
|
9
|
-
tableName: "capacity_assignments";
|
|
10
|
-
dataType: "string";
|
|
11
|
-
columnType: "PgUUID";
|
|
12
|
-
data: string;
|
|
13
|
-
driverParam: string;
|
|
14
|
-
notNull: true;
|
|
15
|
-
hasDefault: true;
|
|
16
|
-
isPrimaryKey: true;
|
|
17
|
-
isAutoincrement: false;
|
|
18
|
-
hasRuntimeDefault: false;
|
|
19
|
-
enumValues: undefined;
|
|
20
|
-
baseColumn: never;
|
|
21
|
-
identity: undefined;
|
|
22
|
-
generated: undefined;
|
|
23
|
-
}, {}, {}>;
|
|
24
|
-
capacityId: import("drizzle-orm/pg-core").PgColumn<{
|
|
25
|
-
name: "capacity_id";
|
|
26
|
-
tableName: "capacity_assignments";
|
|
27
|
-
dataType: "string";
|
|
28
|
-
columnType: "PgUUID";
|
|
29
|
-
data: string;
|
|
30
|
-
driverParam: string;
|
|
31
|
-
notNull: true;
|
|
32
|
-
hasDefault: false;
|
|
33
|
-
isPrimaryKey: false;
|
|
34
|
-
isAutoincrement: false;
|
|
35
|
-
hasRuntimeDefault: false;
|
|
36
|
-
enumValues: undefined;
|
|
37
|
-
baseColumn: never;
|
|
38
|
-
identity: undefined;
|
|
39
|
-
generated: undefined;
|
|
40
|
-
}, {}, {}>;
|
|
41
|
-
reservationId: import("drizzle-orm/pg-core").PgColumn<{
|
|
42
|
-
name: "reservation_id";
|
|
43
|
-
tableName: "capacity_assignments";
|
|
44
|
-
dataType: "string";
|
|
45
|
-
columnType: "PgUUID";
|
|
46
|
-
data: string;
|
|
47
|
-
driverParam: string;
|
|
48
|
-
notNull: true;
|
|
49
|
-
hasDefault: false;
|
|
50
|
-
isPrimaryKey: false;
|
|
51
|
-
isAutoincrement: false;
|
|
52
|
-
hasRuntimeDefault: false;
|
|
53
|
-
enumValues: undefined;
|
|
54
|
-
baseColumn: never;
|
|
55
|
-
identity: undefined;
|
|
56
|
-
generated: undefined;
|
|
57
|
-
}, {}, {}>;
|
|
58
|
-
workspaceId: import("drizzle-orm/pg-core").PgColumn<{
|
|
59
|
-
name: "workspace_id";
|
|
60
|
-
tableName: "capacity_assignments";
|
|
61
|
-
dataType: "string";
|
|
62
|
-
columnType: "PgUUID";
|
|
63
|
-
data: string;
|
|
64
|
-
driverParam: string;
|
|
65
|
-
notNull: true;
|
|
66
|
-
hasDefault: false;
|
|
67
|
-
isPrimaryKey: false;
|
|
68
|
-
isAutoincrement: false;
|
|
69
|
-
hasRuntimeDefault: false;
|
|
70
|
-
enumValues: undefined;
|
|
71
|
-
baseColumn: never;
|
|
72
|
-
identity: undefined;
|
|
73
|
-
generated: undefined;
|
|
74
|
-
}, {}, {}>;
|
|
75
|
-
provisionerId: import("drizzle-orm/pg-core").PgColumn<{
|
|
76
|
-
name: "provisioner_id";
|
|
77
|
-
tableName: "capacity_assignments";
|
|
78
|
-
dataType: "string";
|
|
79
|
-
columnType: "PgUUID";
|
|
80
|
-
data: string;
|
|
81
|
-
driverParam: string;
|
|
82
|
-
notNull: true;
|
|
83
|
-
hasDefault: false;
|
|
84
|
-
isPrimaryKey: false;
|
|
85
|
-
isAutoincrement: false;
|
|
86
|
-
hasRuntimeDefault: false;
|
|
87
|
-
enumValues: undefined;
|
|
88
|
-
baseColumn: never;
|
|
89
|
-
identity: undefined;
|
|
90
|
-
generated: undefined;
|
|
91
|
-
}, {}, {}>;
|
|
92
|
-
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
93
|
-
name: "created_at";
|
|
94
|
-
tableName: "capacity_assignments";
|
|
95
|
-
dataType: "date";
|
|
96
|
-
columnType: "PgTimestamp";
|
|
97
|
-
data: Date;
|
|
98
|
-
driverParam: string;
|
|
99
|
-
notNull: true;
|
|
100
|
-
hasDefault: true;
|
|
101
|
-
isPrimaryKey: false;
|
|
102
|
-
isAutoincrement: false;
|
|
103
|
-
hasRuntimeDefault: false;
|
|
104
|
-
enumValues: undefined;
|
|
105
|
-
baseColumn: never;
|
|
106
|
-
identity: undefined;
|
|
107
|
-
generated: undefined;
|
|
108
|
-
}, {}, {}>;
|
|
109
|
-
};
|
|
110
|
-
dialect: "pg";
|
|
111
|
-
}>;
|
|
112
3
|
ephemeralRegistrationTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
113
4
|
name: "ephemeral_registration_tokens";
|
|
114
5
|
schema: undefined;
|
|
@@ -578,6 +469,23 @@ export declare const schema: {
|
|
|
578
469
|
identity: undefined;
|
|
579
470
|
generated: undefined;
|
|
580
471
|
}, {}, {}>;
|
|
472
|
+
assignedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
473
|
+
name: "assigned_at";
|
|
474
|
+
tableName: "runner_instances";
|
|
475
|
+
dataType: "date";
|
|
476
|
+
columnType: "PgTimestamp";
|
|
477
|
+
data: Date;
|
|
478
|
+
driverParam: string;
|
|
479
|
+
notNull: false;
|
|
480
|
+
hasDefault: false;
|
|
481
|
+
isPrimaryKey: false;
|
|
482
|
+
isAutoincrement: false;
|
|
483
|
+
hasRuntimeDefault: false;
|
|
484
|
+
enumValues: undefined;
|
|
485
|
+
baseColumn: never;
|
|
486
|
+
identity: undefined;
|
|
487
|
+
generated: undefined;
|
|
488
|
+
}, {}, {}>;
|
|
581
489
|
templateKey: import("drizzle-orm/pg-core").PgColumn<{
|
|
582
490
|
name: "template_key";
|
|
583
491
|
tableName: "runner_instances";
|
|
@@ -3151,115 +3059,6 @@ export declare const schema: {
|
|
|
3151
3059
|
}>;
|
|
3152
3060
|
};
|
|
3153
3061
|
export declare function db(): NodePgDatabase<{
|
|
3154
|
-
capacityAssignments: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3155
|
-
name: "capacity_assignments";
|
|
3156
|
-
schema: undefined;
|
|
3157
|
-
columns: {
|
|
3158
|
-
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
3159
|
-
name: "id";
|
|
3160
|
-
tableName: "capacity_assignments";
|
|
3161
|
-
dataType: "string";
|
|
3162
|
-
columnType: "PgUUID";
|
|
3163
|
-
data: string;
|
|
3164
|
-
driverParam: string;
|
|
3165
|
-
notNull: true;
|
|
3166
|
-
hasDefault: true;
|
|
3167
|
-
isPrimaryKey: true;
|
|
3168
|
-
isAutoincrement: false;
|
|
3169
|
-
hasRuntimeDefault: false;
|
|
3170
|
-
enumValues: undefined;
|
|
3171
|
-
baseColumn: never;
|
|
3172
|
-
identity: undefined;
|
|
3173
|
-
generated: undefined;
|
|
3174
|
-
}, {}, {}>;
|
|
3175
|
-
capacityId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3176
|
-
name: "capacity_id";
|
|
3177
|
-
tableName: "capacity_assignments";
|
|
3178
|
-
dataType: "string";
|
|
3179
|
-
columnType: "PgUUID";
|
|
3180
|
-
data: string;
|
|
3181
|
-
driverParam: string;
|
|
3182
|
-
notNull: true;
|
|
3183
|
-
hasDefault: false;
|
|
3184
|
-
isPrimaryKey: false;
|
|
3185
|
-
isAutoincrement: false;
|
|
3186
|
-
hasRuntimeDefault: false;
|
|
3187
|
-
enumValues: undefined;
|
|
3188
|
-
baseColumn: never;
|
|
3189
|
-
identity: undefined;
|
|
3190
|
-
generated: undefined;
|
|
3191
|
-
}, {}, {}>;
|
|
3192
|
-
reservationId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3193
|
-
name: "reservation_id";
|
|
3194
|
-
tableName: "capacity_assignments";
|
|
3195
|
-
dataType: "string";
|
|
3196
|
-
columnType: "PgUUID";
|
|
3197
|
-
data: string;
|
|
3198
|
-
driverParam: string;
|
|
3199
|
-
notNull: true;
|
|
3200
|
-
hasDefault: false;
|
|
3201
|
-
isPrimaryKey: false;
|
|
3202
|
-
isAutoincrement: false;
|
|
3203
|
-
hasRuntimeDefault: false;
|
|
3204
|
-
enumValues: undefined;
|
|
3205
|
-
baseColumn: never;
|
|
3206
|
-
identity: undefined;
|
|
3207
|
-
generated: undefined;
|
|
3208
|
-
}, {}, {}>;
|
|
3209
|
-
workspaceId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3210
|
-
name: "workspace_id";
|
|
3211
|
-
tableName: "capacity_assignments";
|
|
3212
|
-
dataType: "string";
|
|
3213
|
-
columnType: "PgUUID";
|
|
3214
|
-
data: string;
|
|
3215
|
-
driverParam: string;
|
|
3216
|
-
notNull: true;
|
|
3217
|
-
hasDefault: false;
|
|
3218
|
-
isPrimaryKey: false;
|
|
3219
|
-
isAutoincrement: false;
|
|
3220
|
-
hasRuntimeDefault: false;
|
|
3221
|
-
enumValues: undefined;
|
|
3222
|
-
baseColumn: never;
|
|
3223
|
-
identity: undefined;
|
|
3224
|
-
generated: undefined;
|
|
3225
|
-
}, {}, {}>;
|
|
3226
|
-
provisionerId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3227
|
-
name: "provisioner_id";
|
|
3228
|
-
tableName: "capacity_assignments";
|
|
3229
|
-
dataType: "string";
|
|
3230
|
-
columnType: "PgUUID";
|
|
3231
|
-
data: string;
|
|
3232
|
-
driverParam: string;
|
|
3233
|
-
notNull: true;
|
|
3234
|
-
hasDefault: false;
|
|
3235
|
-
isPrimaryKey: false;
|
|
3236
|
-
isAutoincrement: false;
|
|
3237
|
-
hasRuntimeDefault: false;
|
|
3238
|
-
enumValues: undefined;
|
|
3239
|
-
baseColumn: never;
|
|
3240
|
-
identity: undefined;
|
|
3241
|
-
generated: undefined;
|
|
3242
|
-
}, {}, {}>;
|
|
3243
|
-
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
3244
|
-
name: "created_at";
|
|
3245
|
-
tableName: "capacity_assignments";
|
|
3246
|
-
dataType: "date";
|
|
3247
|
-
columnType: "PgTimestamp";
|
|
3248
|
-
data: Date;
|
|
3249
|
-
driverParam: string;
|
|
3250
|
-
notNull: true;
|
|
3251
|
-
hasDefault: true;
|
|
3252
|
-
isPrimaryKey: false;
|
|
3253
|
-
isAutoincrement: false;
|
|
3254
|
-
hasRuntimeDefault: false;
|
|
3255
|
-
enumValues: undefined;
|
|
3256
|
-
baseColumn: never;
|
|
3257
|
-
identity: undefined;
|
|
3258
|
-
generated: undefined;
|
|
3259
|
-
}, {}, {}>;
|
|
3260
|
-
};
|
|
3261
|
-
dialect: "pg";
|
|
3262
|
-
}>;
|
|
3263
3062
|
ephemeralRegistrationTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3264
3063
|
name: "ephemeral_registration_tokens";
|
|
3265
3064
|
schema: undefined;
|
|
@@ -3729,6 +3528,23 @@ export declare function db(): NodePgDatabase<{
|
|
|
3729
3528
|
identity: undefined;
|
|
3730
3529
|
generated: undefined;
|
|
3731
3530
|
}, {}, {}>;
|
|
3531
|
+
assignedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
3532
|
+
name: "assigned_at";
|
|
3533
|
+
tableName: "runner_instances";
|
|
3534
|
+
dataType: "date";
|
|
3535
|
+
columnType: "PgTimestamp";
|
|
3536
|
+
data: Date;
|
|
3537
|
+
driverParam: string;
|
|
3538
|
+
notNull: false;
|
|
3539
|
+
hasDefault: false;
|
|
3540
|
+
isPrimaryKey: false;
|
|
3541
|
+
isAutoincrement: false;
|
|
3542
|
+
hasRuntimeDefault: false;
|
|
3543
|
+
enumValues: undefined;
|
|
3544
|
+
baseColumn: never;
|
|
3545
|
+
identity: undefined;
|
|
3546
|
+
generated: undefined;
|
|
3547
|
+
}, {}, {}>;
|
|
3732
3548
|
templateKey: import("drizzle-orm/pg-core").PgColumn<{
|
|
3733
3549
|
name: "template_key";
|
|
3734
3550
|
tableName: "runner_instances";
|
package/dist/db/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAgBnE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAelB,CAAC;AAIF,wBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGjB;AAED,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/db/db.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { drizzle } from '@shipfox/node-drizzle';
|
|
2
2
|
import { pgClient } from '@shipfox/node-postgres';
|
|
3
|
-
import { capacityAssignments } from './schema/capacity-assignments.js';
|
|
4
3
|
import { ephemeralRegistrationTokens } from './schema/ephemeral-registration-tokens.js';
|
|
5
4
|
import { manualRegistrationTokens } from './schema/manual-registration-tokens.js';
|
|
6
5
|
import { runnersOutbox } from './schema/outbox.js';
|
|
@@ -15,7 +14,6 @@ import { providerRunners } from './schema/runner-instances.js';
|
|
|
15
14
|
import { runnerSessions } from './schema/runner-sessions.js';
|
|
16
15
|
import { runningJobExecutions } from './schema/running-job-executions.js';
|
|
17
16
|
export const schema = {
|
|
18
|
-
capacityAssignments,
|
|
19
17
|
ephemeralRegistrationTokens,
|
|
20
18
|
pendingJobExecutions,
|
|
21
19
|
providerRunners,
|
package/dist/db/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/db/db.ts"],"sourcesContent":["import {drizzle, type NodePgDatabase} from '@shipfox/node-drizzle';\nimport {pgClient} from '@shipfox/node-postgres';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/db/db.ts"],"sourcesContent":["import {drizzle, type NodePgDatabase} from '@shipfox/node-drizzle';\nimport {pgClient} from '@shipfox/node-postgres';\nimport {ephemeralRegistrationTokens} from './schema/ephemeral-registration-tokens.js';\nimport {manualRegistrationTokens} from './schema/manual-registration-tokens.js';\nimport {runnersOutbox} from './schema/outbox.js';\nimport {pendingJobExecutions} from './schema/pending-job-executions.js';\nimport {provisionerCapabilitySnapshots} from './schema/provisioner-capability-snapshots.js';\nimport {provisionerTokens} from './schema/provisioner-tokens.js';\nimport {runnersRateLimits} from './schema/rate-limits.js';\nimport {reservations} from './schema/reservations.js';\nimport {runnerActivationTokens} from './schema/runner-activation-tokens.js';\nimport {runnerBootstrapTokens, runnerControlSessions} from './schema/runner-control-sessions.js';\nimport {providerRunners} from './schema/runner-instances.js';\nimport {runnerSessions} from './schema/runner-sessions.js';\nimport {runningJobExecutions} from './schema/running-job-executions.js';\n\nexport const schema = {\n ephemeralRegistrationTokens,\n pendingJobExecutions,\n providerRunners,\n provisionerCapabilitySnapshots,\n provisionerTokens,\n runnersRateLimits,\n reservations,\n runnerSessions,\n runnerBootstrapTokens,\n runnerControlSessions,\n runnerActivationTokens,\n manualRegistrationTokens,\n runningJobExecutions,\n runnersOutbox,\n};\n\nlet _db: NodePgDatabase<typeof schema> | undefined;\n\nexport function db() {\n if (!_db) _db = drizzle(pgClient(), {schema});\n return _db;\n}\n\nexport function closeDb(): void {\n _db = undefined;\n}\n\nexport type Tx = Parameters<Parameters<NodePgDatabase<typeof schema>['transaction']>[0]>[0];\n"],"names":["drizzle","pgClient","ephemeralRegistrationTokens","manualRegistrationTokens","runnersOutbox","pendingJobExecutions","provisionerCapabilitySnapshots","provisionerTokens","runnersRateLimits","reservations","runnerActivationTokens","runnerBootstrapTokens","runnerControlSessions","providerRunners","runnerSessions","runningJobExecutions","schema","_db","db","closeDb","undefined"],"mappings":"AAAA,SAAQA,OAAO,QAA4B,wBAAwB;AACnE,SAAQC,QAAQ,QAAO,yBAAyB;AAChD,SAAQC,2BAA2B,QAAO,4CAA4C;AACtF,SAAQC,wBAAwB,QAAO,yCAAyC;AAChF,SAAQC,aAAa,QAAO,qBAAqB;AACjD,SAAQC,oBAAoB,QAAO,qCAAqC;AACxE,SAAQC,8BAA8B,QAAO,+CAA+C;AAC5F,SAAQC,iBAAiB,QAAO,iCAAiC;AACjE,SAAQC,iBAAiB,QAAO,0BAA0B;AAC1D,SAAQC,YAAY,QAAO,2BAA2B;AACtD,SAAQC,sBAAsB,QAAO,uCAAuC;AAC5E,SAAQC,qBAAqB,EAAEC,qBAAqB,QAAO,sCAAsC;AACjG,SAAQC,eAAe,QAAO,+BAA+B;AAC7D,SAAQC,cAAc,QAAO,8BAA8B;AAC3D,SAAQC,oBAAoB,QAAO,qCAAqC;AAExE,OAAO,MAAMC,SAAS;IACpBd;IACAG;IACAQ;IACAP;IACAC;IACAC;IACAC;IACAK;IACAH;IACAC;IACAF;IACAP;IACAY;IACAX;AACF,EAAE;AAEF,IAAIa;AAEJ,OAAO,SAASC;IACd,IAAI,CAACD,KAAKA,MAAMjB,QAAQC,YAAY;QAACe;IAAM;IAC3C,OAAOC;AACT;AAEA,OAAO,SAASE;IACdF,MAAMG;AACR"}
|
package/dist/db/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { assignCapacityBatch } from './capacity-assignments.js';
|
|
2
1
|
export { closeDb, db, schema } from './db.js';
|
|
3
2
|
export type { CreateEphemeralRegistrationTokenParams, DeleteExpiredEphemeralRegistrationTokensParams, } from './ephemeral-registration-tokens.js';
|
|
4
3
|
export { createEphemeralRegistrationToken, createRunnerSessionConsumingEphemeralToken, deleteExpiredEphemeralRegistrationTokens, resolveEphemeralRegistrationTokenByHash, } from './ephemeral-registration-tokens.js';
|
|
@@ -12,8 +11,9 @@ export { createProvisionerToken, listActiveProvisionerTokens, listUsableProvisio
|
|
|
12
11
|
export { consumeRunnersRateLimit, pruneExpiredRunnersRateLimits, } from './rate-limits.js';
|
|
13
12
|
export type { DemandStat, PollDemandAndReserveParams, ReservationGrant, ReservationTemplate, } from './reservations.js';
|
|
14
13
|
export { deleteExpiredReservations, deleteReservationsByIds, pollDemandAndReserve, releaseReservationUnits, } from './reservations.js';
|
|
14
|
+
export { assignRunnerInstances } from './runner-assignments.js';
|
|
15
15
|
export type { ActiveRunnerInstanceTemplateCount, ReapStaleRunnerInstancesResult, ReconcileRunnerInstancesDbResult, ReconcileRunnerInstancesParams, ReportRunnerInstancesParams, RunnerInstanceReportEvent, RunnerInstanceTerminateIntent, RunnerInstanceTerminateIntentReason, } from './runner-instances.js';
|
|
16
|
-
export {
|
|
16
|
+
export { attachRunnerInstanceProviderId, isTerminalState, listActiveRunnerInstanceCountsByTemplateTx, listActiveRunnerInstances, listProvisionerTerminateIntentRowsTx, listProvisionerTerminateIntents, reapStaleRunnerInstances, reconcileRunnerInstances, reportRunnerInstances, } from './runner-instances.js';
|
|
17
17
|
export type { CreateRunnerSessionParams, DeleteExpiredRunnerSessionsParams, } from './runner-sessions.js';
|
|
18
18
|
export { createRunnerSession, deleteExpiredRunnerSessions } from './runner-sessions.js';
|
|
19
19
|
export { runnersOutbox } from './schema/outbox.js';
|
package/dist/db/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC;AAC5C,YAAY,EACV,sCAAsC,EACtC,8CAA8C,GAC/C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,wCAAwC,EACxC,uCAAuC,GACxC,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,8BAA8B,EAC9B,0CAA0C,EAC1C,eAAe,EACf,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAC,mCAAmC,EAAC,MAAM,iCAAiC,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,+CAA+C,EAC/C,oCAAoC,EACpC,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,uCAAuC,EACvC,iDAAiD,EACjD,gDAAgD,EAChD,6CAA6C,GAC9C,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,wCAAwC,EACxC,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EACV,iCAAiC,EACjC,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,eAAe,EACf,0CAA0C,EAC1C,yBAAyB,EACzB,oCAAoC,EACpC,+BAA+B,EAC/B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,mBAAmB,EAAE,2BAA2B,EAAC,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAEjG,eAAO,MAAM,cAAc,QAAoE,CAAC"}
|
package/dist/db/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { dirname, resolve } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
|
-
export { assignCapacityBatch } from './capacity-assignments.js';
|
|
4
3
|
export { closeDb, db, schema } from './db.js';
|
|
5
4
|
export { createEphemeralRegistrationToken, createRunnerSessionConsumingEphemeralToken, deleteExpiredEphemeralRegistrationTokens, resolveEphemeralRegistrationTokenByHash } from './ephemeral-registration-tokens.js';
|
|
6
5
|
export { cancelRunnerJobs, claimPendingJobExecution, enqueueJobExecution, expireStuckJobExecutions, isJobLeaseActive, listActiveRunningJobExecutions, listRunningJobExecutionsByRunnerInstanceTx, recordHeartbeat, releaseJobExecution } from './job-executions.js';
|
|
@@ -9,7 +8,8 @@ export { hasActiveWorkspaceProvisionerCapability, listActiveWorkspaceProvisioner
|
|
|
9
8
|
export { createProvisionerToken, listActiveProvisionerTokens, listUsableProvisionerTokensByWorkspaceId, resolveProvisionerTokenByHash, revokeProvisionerToken, touchProvisionerLastSeen } from './provisioner-tokens.js';
|
|
10
9
|
export { consumeRunnersRateLimit, pruneExpiredRunnersRateLimits } from './rate-limits.js';
|
|
11
10
|
export { deleteExpiredReservations, deleteReservationsByIds, pollDemandAndReserve, releaseReservationUnits } from './reservations.js';
|
|
12
|
-
export {
|
|
11
|
+
export { assignRunnerInstances } from './runner-assignments.js';
|
|
12
|
+
export { attachRunnerInstanceProviderId, isTerminalState, listActiveRunnerInstanceCountsByTemplateTx, listActiveRunnerInstances, listProvisionerTerminateIntentRowsTx, listProvisionerTerminateIntents, reapStaleRunnerInstances, reconcileRunnerInstances, reportRunnerInstances } from './runner-instances.js';
|
|
13
13
|
export { createRunnerSession, deleteExpiredRunnerSessions } from './runner-sessions.js';
|
|
14
14
|
export { runnersOutbox } from './schema/outbox.js';
|
|
15
15
|
export { runnerBootstrapTokens, runnerControlSessions } from './schema/runner-control-sessions.js';
|
package/dist/db/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/db/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\n\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/db/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\n\nexport {closeDb, db, schema} from './db.js';\nexport type {\n CreateEphemeralRegistrationTokenParams,\n DeleteExpiredEphemeralRegistrationTokensParams,\n} from './ephemeral-registration-tokens.js';\nexport {\n createEphemeralRegistrationToken,\n createRunnerSessionConsumingEphemeralToken,\n deleteExpiredEphemeralRegistrationTokens,\n resolveEphemeralRegistrationTokenByHash,\n} from './ephemeral-registration-tokens.js';\nexport type {\n ClaimedJobExecution,\n EnqueueJobExecutionParams,\n RunnerInstanceBoundJobExecution,\n} from './job-executions.js';\nexport {\n cancelRunnerJobs,\n claimPendingJobExecution,\n enqueueJobExecution,\n expireStuckJobExecutions,\n isJobLeaseActive,\n listActiveRunningJobExecutions,\n listRunningJobExecutionsByRunnerInstanceTx,\n recordHeartbeat,\n releaseJobExecution,\n} from './job-executions.js';\nexport type {CreateManualRegistrationTokenParams} from './manual-registration-tokens.js';\nexport {\n createManualRegistrationToken,\n listUsableManualRegistrationTokensByWorkspaceId,\n resolveManualRegistrationTokenByHash,\n revokeManualRegistrationToken,\n} from './manual-registration-tokens.js';\nexport {\n hasActiveWorkspaceProvisionerCapability,\n listActiveWorkspaceProvisionerCapabilitySnapshots,\n listStaleWorkspaceProvisionerCapabilitySnapshots,\n publishWorkspaceProvisionerCapabilitySnapshot,\n} from './provisioner-capability-snapshots.js';\nexport type {CreateProvisionerTokenParams} from './provisioner-tokens.js';\nexport {\n createProvisionerToken,\n listActiveProvisionerTokens,\n listUsableProvisionerTokensByWorkspaceId,\n resolveProvisionerTokenByHash,\n revokeProvisionerToken,\n touchProvisionerLastSeen,\n} from './provisioner-tokens.js';\nexport {\n consumeRunnersRateLimit,\n pruneExpiredRunnersRateLimits,\n} from './rate-limits.js';\nexport type {\n DemandStat,\n PollDemandAndReserveParams,\n ReservationGrant,\n ReservationTemplate,\n} from './reservations.js';\nexport {\n deleteExpiredReservations,\n deleteReservationsByIds,\n pollDemandAndReserve,\n releaseReservationUnits,\n} from './reservations.js';\nexport {assignRunnerInstances} from './runner-assignments.js';\nexport type {\n ActiveRunnerInstanceTemplateCount,\n ReapStaleRunnerInstancesResult,\n ReconcileRunnerInstancesDbResult,\n ReconcileRunnerInstancesParams,\n ReportRunnerInstancesParams,\n RunnerInstanceReportEvent,\n RunnerInstanceTerminateIntent,\n RunnerInstanceTerminateIntentReason,\n} from './runner-instances.js';\nexport {\n attachRunnerInstanceProviderId,\n isTerminalState,\n listActiveRunnerInstanceCountsByTemplateTx,\n listActiveRunnerInstances,\n listProvisionerTerminateIntentRowsTx,\n listProvisionerTerminateIntents,\n reapStaleRunnerInstances,\n reconcileRunnerInstances,\n reportRunnerInstances,\n} from './runner-instances.js';\nexport type {\n CreateRunnerSessionParams,\n DeleteExpiredRunnerSessionsParams,\n} from './runner-sessions.js';\nexport {createRunnerSession, deleteExpiredRunnerSessions} from './runner-sessions.js';\nexport {runnersOutbox} from './schema/outbox.js';\nexport {runnerBootstrapTokens, runnerControlSessions} from './schema/runner-control-sessions.js';\n\nexport const migrationsPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../drizzle');\n"],"names":["dirname","resolve","fileURLToPath","closeDb","db","schema","createEphemeralRegistrationToken","createRunnerSessionConsumingEphemeralToken","deleteExpiredEphemeralRegistrationTokens","resolveEphemeralRegistrationTokenByHash","cancelRunnerJobs","claimPendingJobExecution","enqueueJobExecution","expireStuckJobExecutions","isJobLeaseActive","listActiveRunningJobExecutions","listRunningJobExecutionsByRunnerInstanceTx","recordHeartbeat","releaseJobExecution","createManualRegistrationToken","listUsableManualRegistrationTokensByWorkspaceId","resolveManualRegistrationTokenByHash","revokeManualRegistrationToken","hasActiveWorkspaceProvisionerCapability","listActiveWorkspaceProvisionerCapabilitySnapshots","listStaleWorkspaceProvisionerCapabilitySnapshots","publishWorkspaceProvisionerCapabilitySnapshot","createProvisionerToken","listActiveProvisionerTokens","listUsableProvisionerTokensByWorkspaceId","resolveProvisionerTokenByHash","revokeProvisionerToken","touchProvisionerLastSeen","consumeRunnersRateLimit","pruneExpiredRunnersRateLimits","deleteExpiredReservations","deleteReservationsByIds","pollDemandAndReserve","releaseReservationUnits","assignRunnerInstances","attachRunnerInstanceProviderId","isTerminalState","listActiveRunnerInstanceCountsByTemplateTx","listActiveRunnerInstances","listProvisionerTerminateIntentRowsTx","listProvisionerTerminateIntents","reapStaleRunnerInstances","reconcileRunnerInstances","reportRunnerInstances","createRunnerSession","deleteExpiredRunnerSessions","runnersOutbox","runnerBootstrapTokens","runnerControlSessions","migrationsPath","url"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,OAAO,QAAO,YAAY;AAC3C,SAAQC,aAAa,QAAO,WAAW;AAEvC,SAAQC,OAAO,EAAEC,EAAE,EAAEC,MAAM,QAAO,UAAU;AAK5C,SACEC,gCAAgC,EAChCC,0CAA0C,EAC1CC,wCAAwC,EACxCC,uCAAuC,QAClC,qCAAqC;AAM5C,SACEC,gBAAgB,EAChBC,wBAAwB,EACxBC,mBAAmB,EACnBC,wBAAwB,EACxBC,gBAAgB,EAChBC,8BAA8B,EAC9BC,0CAA0C,EAC1CC,eAAe,EACfC,mBAAmB,QACd,sBAAsB;AAE7B,SACEC,6BAA6B,EAC7BC,+CAA+C,EAC/CC,oCAAoC,EACpCC,6BAA6B,QACxB,kCAAkC;AACzC,SACEC,uCAAuC,EACvCC,iDAAiD,EACjDC,gDAAgD,EAChDC,6CAA6C,QACxC,wCAAwC;AAE/C,SACEC,sBAAsB,EACtBC,2BAA2B,EAC3BC,wCAAwC,EACxCC,6BAA6B,EAC7BC,sBAAsB,EACtBC,wBAAwB,QACnB,0BAA0B;AACjC,SACEC,uBAAuB,EACvBC,6BAA6B,QACxB,mBAAmB;AAO1B,SACEC,yBAAyB,EACzBC,uBAAuB,EACvBC,oBAAoB,EACpBC,uBAAuB,QAClB,oBAAoB;AAC3B,SAAQC,qBAAqB,QAAO,0BAA0B;AAW9D,SACEC,8BAA8B,EAC9BC,eAAe,EACfC,0CAA0C,EAC1CC,yBAAyB,EACzBC,oCAAoC,EACpCC,+BAA+B,EAC/BC,wBAAwB,EACxBC,wBAAwB,EACxBC,qBAAqB,QAChB,wBAAwB;AAK/B,SAAQC,mBAAmB,EAAEC,2BAA2B,QAAO,uBAAuB;AACtF,SAAQC,aAAa,QAAO,qBAAqB;AACjD,SAAQC,qBAAqB,EAAEC,qBAAqB,QAAO,sCAAsC;AAEjG,OAAO,MAAMC,iBAAiBrD,QAAQD,QAAQE,cAAc,YAAYqD,GAAG,IAAI,iBAAiB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Atomically consumes reservation units by writing the immutable assignment on each runner. */
|
|
2
|
+
export declare function assignRunnerInstances(params: {
|
|
3
|
+
provisionerId: string;
|
|
4
|
+
reservationId: string;
|
|
5
|
+
runnerInstanceIds: string[];
|
|
6
|
+
}): Promise<string[]>;
|
|
7
|
+
//# sourceMappingURL=runner-assignments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-assignments.d.ts","sourceRoot":"","sources":["../../src/db/runner-assignments.ts"],"names":[],"mappings":"AAYA,gGAAgG;AAChG,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiGpB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { and, eq, inArray, isNull, sql } from 'drizzle-orm';
|
|
2
|
+
import { ReservationExpiredError, ReservationNotFoundError, RunnerInstanceAlreadyAssignedError, RunnerInstanceNotAssignableError } from '#core/errors.js';
|
|
3
|
+
import { db } from './db.js';
|
|
4
|
+
import { reservations } from './schema/reservations.js';
|
|
5
|
+
import { runnerControlSessions } from './schema/runner-control-sessions.js';
|
|
6
|
+
import { providerRunners } from './schema/runner-instances.js';
|
|
7
|
+
/** Atomically consumes reservation units by writing the immutable assignment on each runner. */ export async function assignRunnerInstances(params) {
|
|
8
|
+
const runnerInstanceIds = [
|
|
9
|
+
...params.runnerInstanceIds
|
|
10
|
+
].sort();
|
|
11
|
+
return await db().transaction(async (tx)=>{
|
|
12
|
+
await tx.execute(sql`select pg_advisory_xact_lock(hashtext(${`runners_assignment:${params.provisionerId}:${params.reservationId}`}))`);
|
|
13
|
+
const [reservation] = await tx.select().from(reservations).where(and(eq(reservations.id, params.reservationId), eq(reservations.provisionerId, params.provisionerId))).limit(1).for('update');
|
|
14
|
+
if (!reservation) throw new ReservationNotFoundError(params.reservationId);
|
|
15
|
+
if (reservation.expiresAt <= new Date()) throw new ReservationExpiredError(params.reservationId);
|
|
16
|
+
const runnerRows = await tx.select({
|
|
17
|
+
id: providerRunners.id,
|
|
18
|
+
reservationId: providerRunners.reservationId,
|
|
19
|
+
workspaceId: providerRunners.workspaceId,
|
|
20
|
+
providerRunnerId: providerRunners.providerRunnerId,
|
|
21
|
+
labels: providerRunners.labels,
|
|
22
|
+
state: providerRunners.state
|
|
23
|
+
}).from(providerRunners).where(and(eq(providerRunners.provisionerId, params.provisionerId), inArray(providerRunners.id, runnerInstanceIds))).for('update');
|
|
24
|
+
const activeControlSessions = await tx.select({
|
|
25
|
+
runnerInstanceId: runnerControlSessions.runnerInstanceId
|
|
26
|
+
}).from(runnerControlSessions).where(and(inArray(runnerControlSessions.runnerInstanceId, runnerRows.map((runner)=>runner.id)), isNull(runnerControlSessions.closedAt)));
|
|
27
|
+
const runnerInstanceIdsWithControlSession = new Set(activeControlSessions.map((session)=>session.runnerInstanceId));
|
|
28
|
+
const runners = runnerRows.map((runner)=>({
|
|
29
|
+
...runner,
|
|
30
|
+
controlSessionId: runnerInstanceIdsWithControlSession.has(runner.id) ? runner.id : null
|
|
31
|
+
}));
|
|
32
|
+
if (runners.length !== runnerInstanceIds.length) throw new RunnerInstanceNotAssignableError(runnerInstanceIds[0] ?? '');
|
|
33
|
+
const alreadyAssigned = runners.filter((runner)=>runner.reservationId !== null);
|
|
34
|
+
if (alreadyAssigned.some((runner)=>runner.reservationId !== reservation.id)) throw new RunnerInstanceAlreadyAssignedError(alreadyAssigned[0]?.id ?? '');
|
|
35
|
+
const newRunners = runners.filter((runner)=>runner.reservationId === null);
|
|
36
|
+
const assignedCount = await tx.select({
|
|
37
|
+
count: sql`count(*)::int`
|
|
38
|
+
}).from(providerRunners).where(eq(providerRunners.reservationId, reservation.id));
|
|
39
|
+
if ((assignedCount[0]?.count ?? 0) + newRunners.length > reservation.count) throw new RunnerInstanceNotAssignableError(newRunners[0]?.id ?? '');
|
|
40
|
+
for (const runner of newRunners){
|
|
41
|
+
if (runner.state !== 'running' || !runner.providerRunnerId || !runner.controlSessionId || !reservation.requiredLabels.every((label)=>runner.labels.includes(label))) throw new RunnerInstanceNotAssignableError(runner.id);
|
|
42
|
+
}
|
|
43
|
+
if (newRunners.length > 0) {
|
|
44
|
+
await tx.update(providerRunners).set({
|
|
45
|
+
workspaceId: reservation.workspaceId,
|
|
46
|
+
reservationId: reservation.id,
|
|
47
|
+
assignedAt: sql`now()`,
|
|
48
|
+
updatedAt: sql`now()`
|
|
49
|
+
}).where(inArray(providerRunners.id, newRunners.map((runner)=>runner.id)));
|
|
50
|
+
}
|
|
51
|
+
return params.runnerInstanceIds;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=runner-assignments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/db/runner-assignments.ts"],"sourcesContent":["import {and, eq, inArray, isNull, sql} from 'drizzle-orm';\nimport {\n ReservationExpiredError,\n ReservationNotFoundError,\n RunnerInstanceAlreadyAssignedError,\n RunnerInstanceNotAssignableError,\n} from '#core/errors.js';\nimport {db} from './db.js';\nimport {reservations} from './schema/reservations.js';\nimport {runnerControlSessions} from './schema/runner-control-sessions.js';\nimport {providerRunners} from './schema/runner-instances.js';\n\n/** Atomically consumes reservation units by writing the immutable assignment on each runner. */\nexport async function assignRunnerInstances(params: {\n provisionerId: string;\n reservationId: string;\n runnerInstanceIds: string[];\n}): Promise<string[]> {\n const runnerInstanceIds = [...params.runnerInstanceIds].sort();\n return await db().transaction(async (tx) => {\n await tx.execute(\n sql`select pg_advisory_xact_lock(hashtext(${`runners_assignment:${params.provisionerId}:${params.reservationId}`}))`,\n );\n const [reservation] = await tx\n .select()\n .from(reservations)\n .where(\n and(\n eq(reservations.id, params.reservationId),\n eq(reservations.provisionerId, params.provisionerId),\n ),\n )\n .limit(1)\n .for('update');\n if (!reservation) throw new ReservationNotFoundError(params.reservationId);\n if (reservation.expiresAt <= new Date())\n throw new ReservationExpiredError(params.reservationId);\n\n const runnerRows = await tx\n .select({\n id: providerRunners.id,\n reservationId: providerRunners.reservationId,\n workspaceId: providerRunners.workspaceId,\n providerRunnerId: providerRunners.providerRunnerId,\n labels: providerRunners.labels,\n state: providerRunners.state,\n })\n .from(providerRunners)\n .where(\n and(\n eq(providerRunners.provisionerId, params.provisionerId),\n inArray(providerRunners.id, runnerInstanceIds),\n ),\n )\n .for('update');\n const activeControlSessions = await tx\n .select({runnerInstanceId: runnerControlSessions.runnerInstanceId})\n .from(runnerControlSessions)\n .where(\n and(\n inArray(\n runnerControlSessions.runnerInstanceId,\n runnerRows.map((runner) => runner.id),\n ),\n isNull(runnerControlSessions.closedAt),\n ),\n );\n const runnerInstanceIdsWithControlSession = new Set(\n activeControlSessions.map((session) => session.runnerInstanceId),\n );\n const runners = runnerRows.map((runner) => ({\n ...runner,\n controlSessionId: runnerInstanceIdsWithControlSession.has(runner.id) ? runner.id : null,\n }));\n if (runners.length !== runnerInstanceIds.length)\n throw new RunnerInstanceNotAssignableError(runnerInstanceIds[0] ?? '');\n\n const alreadyAssigned = runners.filter((runner) => runner.reservationId !== null);\n if (alreadyAssigned.some((runner) => runner.reservationId !== reservation.id))\n throw new RunnerInstanceAlreadyAssignedError(alreadyAssigned[0]?.id ?? '');\n const newRunners = runners.filter((runner) => runner.reservationId === null);\n const assignedCount = await tx\n .select({count: sql<number>`count(*)::int`})\n .from(providerRunners)\n .where(eq(providerRunners.reservationId, reservation.id));\n if ((assignedCount[0]?.count ?? 0) + newRunners.length > reservation.count)\n throw new RunnerInstanceNotAssignableError(newRunners[0]?.id ?? '');\n for (const runner of newRunners) {\n if (\n runner.state !== 'running' ||\n !runner.providerRunnerId ||\n !runner.controlSessionId ||\n !reservation.requiredLabels.every((label) => runner.labels.includes(label))\n )\n throw new RunnerInstanceNotAssignableError(runner.id);\n }\n if (newRunners.length > 0) {\n await tx\n .update(providerRunners)\n .set({\n workspaceId: reservation.workspaceId,\n reservationId: reservation.id,\n assignedAt: sql`now()`,\n updatedAt: sql`now()`,\n })\n .where(\n inArray(\n providerRunners.id,\n newRunners.map((runner) => runner.id),\n ),\n );\n }\n return params.runnerInstanceIds;\n });\n}\n"],"names":["and","eq","inArray","isNull","sql","ReservationExpiredError","ReservationNotFoundError","RunnerInstanceAlreadyAssignedError","RunnerInstanceNotAssignableError","db","reservations","runnerControlSessions","providerRunners","assignRunnerInstances","params","runnerInstanceIds","sort","transaction","tx","execute","provisionerId","reservationId","reservation","select","from","where","id","limit","for","expiresAt","Date","runnerRows","workspaceId","providerRunnerId","labels","state","activeControlSessions","runnerInstanceId","map","runner","closedAt","runnerInstanceIdsWithControlSession","Set","session","runners","controlSessionId","has","length","alreadyAssigned","filter","some","newRunners","assignedCount","count","requiredLabels","every","label","includes","update","set","assignedAt","updatedAt"],"mappings":"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"}
|
|
@@ -46,15 +46,8 @@ export interface ReapStaleRunnerInstancesResult {
|
|
|
46
46
|
reaped: number;
|
|
47
47
|
reservationsReleased: number;
|
|
48
48
|
}
|
|
49
|
-
export declare function
|
|
50
|
-
|
|
51
|
-
providerKind: string | null;
|
|
52
|
-
templateKey: string | null;
|
|
53
|
-
}): Promise<{
|
|
54
|
-
capacityId: string;
|
|
55
|
-
}>;
|
|
56
|
-
export declare function attachProviderRunnerId(params: {
|
|
57
|
-
capacityId: string;
|
|
49
|
+
export declare function attachRunnerInstanceProviderId(params: {
|
|
50
|
+
runnerInstanceId: string;
|
|
58
51
|
provisionerId: string;
|
|
59
52
|
providerRunnerId: string;
|
|
60
53
|
}): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-instances.d.ts","sourceRoot":"","sources":["../../src/db/runner-instances.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,mCAAmC,CAAC;AAC3F,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,SAAS,CAAC;AAEhC,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,qBAAqB,CAAC;AAQ7B,eAAO,MAAM,cAAc,8CAIwB,CAAC;AACpD,eAAO,MAAM,YAAY,8CAI0B,CAAC;AACpD,eAAO,MAAM,qBAAqB,kCAG/B,CAAC;AAEJ,MAAM,MAAM,mCAAmC,GAAG,eAAe,CAAC;AAElE,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,mCAAmC,CAAC;CAC7C;AAED,MAAM,WAAW,iCAAiC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,oCAAoC,EAAE,GAAG,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;IACnF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,
|
|
1
|
+
{"version":3,"file":"runner-instances.d.ts","sourceRoot":"","sources":["../../src/db/runner-instances.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,25 +24,11 @@ export const divergenceCountStates = [
|
|
|
24
24
|
'starting',
|
|
25
25
|
'running'
|
|
26
26
|
];
|
|
27
|
-
export async function
|
|
28
|
-
const [row] = await db().insert(providerRunners).values({
|
|
29
|
-
provisionerId: params.provisionerId,
|
|
30
|
-
providerKind: params.providerKind,
|
|
31
|
-
templateKey: params.templateKey,
|
|
32
|
-
state: 'starting',
|
|
33
|
-
labels: [],
|
|
34
|
-
reportedAt: new Date()
|
|
35
|
-
}).returning({
|
|
36
|
-
capacityId: providerRunners.id
|
|
37
|
-
});
|
|
38
|
-
if (!row) throw new Error('Planned capacity insert returned no row');
|
|
39
|
-
return row;
|
|
40
|
-
}
|
|
41
|
-
export async function attachProviderRunnerId(params) {
|
|
27
|
+
export async function attachRunnerInstanceProviderId(params) {
|
|
42
28
|
const updated = await db().update(providerRunners).set({
|
|
43
29
|
providerRunnerId: params.providerRunnerId,
|
|
44
30
|
updatedAt: sql`now()`
|
|
45
|
-
}).where(and(eq(providerRunners.id, params.
|
|
31
|
+
}).where(and(eq(providerRunners.id, params.runnerInstanceId), eq(providerRunners.provisionerId, params.provisionerId), isNull(providerRunners.providerRunnerId), notInArray(providerRunners.state, [
|
|
46
32
|
...terminalStates
|
|
47
33
|
]))).returning({
|
|
48
34
|
id: providerRunners.id
|