@highstate/backend 0.9.16 → 0.9.18

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 (125) hide show
  1. package/dist/chunk-NAAIDR4U.js +8499 -0
  2. package/dist/chunk-NAAIDR4U.js.map +1 -0
  3. package/dist/chunk-OU5OQBLB.js +74 -0
  4. package/dist/chunk-OU5OQBLB.js.map +1 -0
  5. package/dist/{chunk-WHALQHEZ.js → chunk-Y7DXREVO.js} +502 -774
  6. package/dist/chunk-Y7DXREVO.js.map +1 -0
  7. package/dist/highstate.manifest.json +4 -4
  8. package/dist/index.js +2979 -2233
  9. package/dist/index.js.map +1 -1
  10. package/dist/library/package-resolution-worker.js +7 -5
  11. package/dist/library/package-resolution-worker.js.map +1 -1
  12. package/dist/library/worker/main.js +40 -41
  13. package/dist/library/worker/main.js.map +1 -1
  14. package/dist/magic-string.es-5ABAC4JN.js +1292 -0
  15. package/dist/magic-string.es-5ABAC4JN.js.map +1 -0
  16. package/dist/shared/index.js +3 -216
  17. package/dist/shared/index.js.map +1 -1
  18. package/package.json +9 -6
  19. package/src/artifact/encryption.ts +47 -7
  20. package/src/artifact/factory.ts +2 -2
  21. package/src/artifact/local.ts +2 -6
  22. package/src/business/__traces__/secret/update-instance-secrets/create-and-delete-secrets-simultaneously.md +356 -0
  23. package/src/business/__traces__/secret/update-instance-secrets/create-new-secrets-for-instance.md +274 -0
  24. package/src/business/__traces__/secret/update-instance-secrets/delete-existing-secrets.md +223 -0
  25. package/src/business/__traces__/secret/update-instance-secrets/no-op-when-no-changes.md +147 -0
  26. package/src/business/__traces__/secret/update-instance-secrets/update-existing-secrets.md +280 -0
  27. package/src/business/__traces__/worker/update-unit-registrations/add-new-unit-registration-when-other-exists.md +360 -0
  28. package/src/business/__traces__/worker/update-unit-registrations/add-new-unit-registration.md +215 -0
  29. package/src/business/__traces__/worker/update-unit-registrations/create-multiple-workers-with-different-identities.md +427 -0
  30. package/src/business/__traces__/worker/update-unit-registrations/handle-nonexistent-registration-id-gracefully.md +217 -0
  31. package/src/business/__traces__/worker/update-unit-registrations/no-op-when-no-changes.md +132 -0
  32. package/src/business/__traces__/worker/update-unit-registrations/recreate-worker-when-image-changes.md +454 -0
  33. package/src/business/__traces__/worker/update-unit-registrations/recreate-worker-when-image-version-changes.md +426 -0
  34. package/src/business/__traces__/worker/update-unit-registrations/recreate-worker-with-same-identity-reuses-service-account.md +372 -0
  35. package/src/business/__traces__/worker/update-unit-registrations/remove-one-of-multiple-unit-registrations.md +383 -0
  36. package/src/business/__traces__/worker/update-unit-registrations/remove-unit-registration.md +245 -0
  37. package/src/business/__traces__/worker/update-unit-registrations/update-existing-unit-registration-when-params-change.md +174 -0
  38. package/src/business/__traces__/worker/update-unit-registrations/update-params-and-image-simultaneously.md +432 -0
  39. package/src/business/__traces__/worker/update-unit-registrations/worker-with-multiple-registrations-not-deleted-when-one-removed.md +220 -0
  40. package/src/business/artifact.ts +2 -1
  41. package/src/business/index.ts +1 -0
  42. package/src/business/instance-lock.ts +3 -2
  43. package/src/business/instance-state.ts +202 -60
  44. package/src/business/project-unlock.ts +41 -23
  45. package/src/business/project.ts +299 -0
  46. package/src/business/secret.test.ts +178 -0
  47. package/src/business/secret.ts +139 -45
  48. package/src/business/worker.test.ts +614 -0
  49. package/src/business/worker.ts +289 -52
  50. package/src/common/clock.ts +18 -0
  51. package/src/common/index.ts +3 -0
  52. package/src/common/random.ts +68 -0
  53. package/src/common/test/index.ts +2 -0
  54. package/src/common/test/render.ts +98 -0
  55. package/src/common/test/tracer.ts +359 -0
  56. package/src/config.ts +5 -1
  57. package/src/hotstate/manager.ts +8 -8
  58. package/src/hotstate/validation.ts +0 -1
  59. package/src/library/abstractions.ts +20 -11
  60. package/src/library/local.ts +6 -13
  61. package/src/library/worker/evaluator.ts +30 -34
  62. package/src/library/worker/loader.lite.ts +13 -0
  63. package/src/library/worker/main.ts +8 -8
  64. package/src/library/worker/protocol.ts +0 -11
  65. package/src/lock/index.ts +1 -0
  66. package/src/lock/manager.ts +17 -2
  67. package/src/lock/test.ts +108 -0
  68. package/src/orchestrator/manager.ts +17 -36
  69. package/src/orchestrator/operation-workset.ts +34 -37
  70. package/src/orchestrator/operation.ts +129 -74
  71. package/src/project/abstractions.ts +27 -51
  72. package/src/project/evaluation.ts +248 -0
  73. package/src/project/index.ts +1 -1
  74. package/src/project/local.ts +75 -127
  75. package/src/pubsub/manager.ts +21 -13
  76. package/src/runner/abstractions.ts +29 -9
  77. package/src/runner/artifact-env.ts +3 -3
  78. package/src/runner/local.ts +29 -19
  79. package/src/runner/pulumi.ts +4 -1
  80. package/src/services.ts +77 -24
  81. package/src/shared/models/backend/library.ts +4 -4
  82. package/src/shared/models/backend/project.ts +25 -6
  83. package/src/shared/models/backend/unlock-method.ts +1 -1
  84. package/src/shared/models/base.ts +1 -84
  85. package/src/shared/models/project/api-key.ts +5 -2
  86. package/src/shared/models/project/artifact.ts +3 -33
  87. package/src/shared/models/project/index.ts +1 -2
  88. package/src/shared/models/project/lock.ts +3 -3
  89. package/src/shared/models/project/model.ts +14 -0
  90. package/src/shared/models/project/operation.ts +3 -3
  91. package/src/shared/models/project/page.ts +3 -3
  92. package/src/shared/models/project/secret.ts +4 -18
  93. package/src/shared/models/project/service-account.ts +2 -2
  94. package/src/shared/models/project/state.ts +32 -15
  95. package/src/shared/models/project/terminal.ts +4 -5
  96. package/src/shared/models/project/trigger.ts +1 -1
  97. package/src/shared/models/project/unlock-method.ts +9 -2
  98. package/src/shared/models/project/worker.ts +9 -7
  99. package/src/shared/resolvers/graph-resolver.ts +41 -26
  100. package/src/shared/resolvers/input.ts +47 -5
  101. package/src/shared/resolvers/validation.ts +23 -7
  102. package/src/shared/utils/args.ts +25 -0
  103. package/src/shared/utils/index.ts +1 -0
  104. package/src/state/abstractions.ts +98 -259
  105. package/src/state/encryption.ts +39 -0
  106. package/src/state/index.ts +1 -0
  107. package/src/state/local/backend.ts +29 -222
  108. package/src/state/local/collection.ts +105 -86
  109. package/src/state/manager.ts +358 -287
  110. package/src/state/memory/backend.ts +70 -0
  111. package/src/state/memory/collection.ts +270 -0
  112. package/src/state/memory/index.ts +2 -0
  113. package/src/state/repository/repository.index.ts +1 -1
  114. package/src/state/repository/repository.ts +71 -22
  115. package/src/state/test.ts +457 -0
  116. package/src/unlock/abstractions.ts +49 -0
  117. package/src/unlock/index.ts +2 -0
  118. package/src/unlock/memory.ts +32 -0
  119. package/src/worker/manager.ts +28 -0
  120. package/dist/chunk-RCB4AFGD.js +0 -159
  121. package/dist/chunk-RCB4AFGD.js.map +0 -1
  122. package/dist/chunk-WHALQHEZ.js.map +0 -1
  123. package/src/project/manager.ts +0 -574
  124. package/src/shared/models/project/component.ts +0 -45
  125. package/src/shared/models/project/instance.ts +0 -74
@@ -0,0 +1,372 @@
1
+ ## arrange
2
+
3
+ ### <a id="trace-1"></a> 1. 💾 putItem
4
+
5
+ **Collection:** `workers:test`
6
+
7
+ **Key:** `"00000000-0023-7000-8000-8b4d7d575153"`
8
+
9
+ **Value:**
10
+
11
+ ```js
12
+ {
13
+ "id": "00000000-0023-7000-8000-8b4d7d575153",
14
+ "meta": {},
15
+ "image": "ghcr.io/org/worker:v1",
16
+ "apiKeyId": "00000000-0035-7000-8000-d15f8f696365",
17
+ "failedStartAttempts": 5,
18
+ "status": "starting",
19
+ "identity": "ghcr.io/org/worker",
20
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41"
21
+ }
22
+ ```
23
+
24
+ ### <a id="trace-2"></a> 2. 💾 putItem
25
+
26
+ **Collection:** `workers:test`
27
+
28
+ **Key:** `"00000000-0047-7000-8001-1b71a17b7577"`
29
+
30
+ **Value:**
31
+
32
+ ```js
33
+ {
34
+ "id": "00000000-0047-7000-8001-1b71a17b7577",
35
+ "meta": {},
36
+ "image": "ghcr.io/org/worker:v2",
37
+ "apiKeyId": "00000000-0059-7000-8001-6183b38d8789",
38
+ "failedStartAttempts": 5,
39
+ "status": "starting",
40
+ "identity": "ghcr.io/org/worker",
41
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41"
42
+ }
43
+ ```
44
+
45
+ ### <a id="trace-3"></a> 3. 💾 putItem
46
+
47
+ **Collection:** `worker-registrations:test`
48
+
49
+ **Key:** `"00000000-006b-7000-8001-ab95c59f999b"`
50
+
51
+ **Value:**
52
+
53
+ ```js
54
+ {
55
+ "id": "00000000-006b-7000-8001-ab95c59f999b",
56
+ "meta": {},
57
+ "workerId": "00000000-0023-7000-8000-8b4d7d575153",
58
+ "image": "ghcr.io/org/worker:v1",
59
+ "instanceId": "test",
60
+ "params": {}
61
+ }
62
+ ```
63
+
64
+ ## act
65
+
66
+ ### <a id="trace-4"></a> 4. 🔒 locked, released at [27](#trace-27)
67
+
68
+ **Keys:**
69
+
70
+ `"worker-image:test:ghcr.io/org/worker:v2"`
71
+
72
+ ### <a id="trace-5"></a> 5. 📖 getManyRecord
73
+
74
+ **Collection:** `worker-registrations:test`
75
+
76
+ **Keys:**
77
+
78
+ `"00000000-006b-7000-8001-ab95c59f999b"`
79
+
80
+ **Result:**
81
+
82
+ ```js
83
+ {
84
+ "00000000-006b-7000-8001-ab95c59f999b": {
85
+ "id": "00000000-006b-7000-8001-ab95c59f999b",
86
+ "meta": {
87
+ "createdAt": 0,
88
+ "updatedAt": 0
89
+ },
90
+ "workerId": "00000000-0023-7000-8000-8b4d7d575153",
91
+ "instanceId": "test",
92
+ "image": "ghcr.io/org/worker:v1",
93
+ "params": {}
94
+ }
95
+ }
96
+ ```
97
+
98
+ ### <a id="trace-6"></a> 6. 🔒 locked, released at [9](#trace-9)
99
+
100
+ **Keys:**
101
+
102
+ `"worker-image:test:ghcr.io/org/worker"`
103
+
104
+ ### <a id="trace-7"></a> 7. 📖 getAllItems
105
+
106
+ **Collection:** `workers:test`
107
+
108
+ **Result:**
109
+
110
+ ```js
111
+ {
112
+ "id": "00000000-0023-7000-8000-8b4d7d575153",
113
+ "meta": {
114
+ "createdAt": 0,
115
+ "updatedAt": 0
116
+ },
117
+ "status": "starting",
118
+ "failedStartAttempts": 5,
119
+ "identity": "ghcr.io/org/worker",
120
+ "image": "ghcr.io/org/worker:v1",
121
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41",
122
+ "apiKeyId": "00000000-0035-7000-8000-d15f8f696365"
123
+ }
124
+ ```
125
+
126
+ ```js
127
+ {
128
+ "id": "00000000-0047-7000-8001-1b71a17b7577",
129
+ "meta": {
130
+ "createdAt": 0,
131
+ "updatedAt": 0
132
+ },
133
+ "status": "starting",
134
+ "failedStartAttempts": 5,
135
+ "identity": "ghcr.io/org/worker",
136
+ "image": "ghcr.io/org/worker:v2",
137
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41",
138
+ "apiKeyId": "00000000-0059-7000-8001-6183b38d8789"
139
+ }
140
+ ```
141
+
142
+ ### <a id="trace-8"></a> 8. 🔍 debug
143
+
144
+ `worker with image "ghcr.io/org/worker:v2" already exists, reusing it`
145
+
146
+ **Data:**
147
+
148
+ ```js
149
+ {
150
+ "service": "WorkerService",
151
+ "projectId": "test",
152
+ "workerId": "00000000-0047-7000-8001-1b71a17b7577",
153
+ "image": "ghcr.io/org/worker:v2"
154
+ }
155
+ ```
156
+
157
+ ### <a id="trace-9"></a> 9. 🔓 released, locked at [6](#trace-6)
158
+
159
+ **Keys:**
160
+
161
+ `"worker-image:test:ghcr.io/org/worker"`
162
+
163
+ ### <a id="trace-10"></a> 10. â„šī¸ info
164
+
165
+ `updating worker registration "00000000-006b-7000-8001-ab95c59f999b" for unit worker "worker" in project "test" (worker changed from "00000000-0023-7000-8000-8b4d7d575153" to "00000000-0047-7000-8001-1b71a17b7577")`
166
+
167
+ **Data:**
168
+
169
+ ```js
170
+ {
171
+ "service": "WorkerService",
172
+ "projectId": "test",
173
+ "registrationId": "00000000-006b-7000-8001-ab95c59f999b",
174
+ "unitWorkerName": "worker",
175
+ "oldWorkerId": "00000000-0023-7000-8000-8b4d7d575153",
176
+ "newWorkerId": "00000000-0047-7000-8001-1b71a17b7577",
177
+ "oldImage": "ghcr.io/org/worker:v1",
178
+ "newImage": "ghcr.io/org/worker:v2"
179
+ }
180
+ ```
181
+
182
+ ### <a id="trace-11"></a> 11. 💾 putItem
183
+
184
+ **Collection:** `worker-registrations:test`
185
+
186
+ **Batch ID:** `1`, written at [26](#trace-26)
187
+
188
+ **Key:** `"00000000-006b-7000-8001-ab95c59f999b"`
189
+
190
+ **Value:**
191
+
192
+ ```js
193
+ {
194
+ "id": "00000000-006b-7000-8001-ab95c59f999b",
195
+ "meta": {
196
+ "createdAt": 0,
197
+ "updatedAt": 0
198
+ },
199
+ "image": "ghcr.io/org/worker:v2",
200
+ "params": {},
201
+ "instanceId": "test",
202
+ "workerId": "00000000-0047-7000-8001-1b71a17b7577"
203
+ }
204
+ ```
205
+
206
+ ### <a id="trace-12"></a> 12. 💾 put
207
+
208
+ **Collection:** `worker-registration-index:test:00000000-0047-7000-8001-1b71a17b7577`
209
+
210
+ **Key:** `"00000000-006b-7000-8001-ab95c59f999b"`
211
+
212
+ **Value:**
213
+
214
+ `""`
215
+
216
+ ### <a id="trace-13"></a> 13. đŸ—‘ī¸ delete
217
+
218
+ **Collection:** `worker-registration-index:test:00000000-0023-7000-8000-8b4d7d575153`
219
+
220
+ **Key:** `"00000000-006b-7000-8001-ab95c59f999b"`
221
+
222
+ ### <a id="trace-14"></a> 14. 🔒 locked, released at [25](#trace-25)
223
+
224
+ **Keys:**
225
+
226
+ `"worker:00000000-0023-7000-8000-8b4d7d575153"`
227
+
228
+ ### <a id="trace-15"></a> 15. 📸 snapshot, used by [16](#trace-16)
229
+
230
+ ### <a id="trace-16"></a> 16. 📖 getAll
231
+
232
+ **Collection:** `worker-registration-index:test:00000000-0023-7000-8000-8b4d7d575153`
233
+
234
+ **Result:** `[]`
235
+
236
+ **Snapshot ID:** `1`, captured at [15](#trace-15)
237
+
238
+ ### <a id="trace-17"></a> 17. 📖 get
239
+
240
+ **Collection:** `workers:test`
241
+
242
+ **Keys:**
243
+
244
+ `"00000000-0023-7000-8000-8b4d7d575153"`
245
+
246
+ **Result:**
247
+
248
+ ```js
249
+ {
250
+ "id": "00000000-0023-7000-8000-8b4d7d575153",
251
+ "meta": {
252
+ "createdAt": 0,
253
+ "updatedAt": 0
254
+ },
255
+ "status": "starting",
256
+ "failedStartAttempts": 5,
257
+ "identity": "ghcr.io/org/worker",
258
+ "image": "ghcr.io/org/worker:v1",
259
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41",
260
+ "apiKeyId": "00000000-0035-7000-8000-d15f8f696365"
261
+ }
262
+ ```
263
+
264
+ ### <a id="trace-18"></a> 18. â„šī¸ info
265
+
266
+ `deleting worker "00000000-0023-7000-8000-8b4d7d575153" with image "ghcr.io/org/worker:v1" in project "test" (no registrations remaining)`
267
+
268
+ **Data:**
269
+
270
+ ```js
271
+ {
272
+ "service": "WorkerService",
273
+ "projectId": "test",
274
+ "workerId": "00000000-0023-7000-8000-8b4d7d575153",
275
+ "image": "ghcr.io/org/worker:v1",
276
+ "identity": "ghcr.io/org/worker"
277
+ }
278
+ ```
279
+
280
+ ### <a id="trace-19"></a> 19. đŸ—‘ī¸ delete
281
+
282
+ **Collection:** `workers:test`
283
+
284
+ **Batch ID:** `2`, written at [23](#trace-23)
285
+
286
+ **Key:** `"00000000-0023-7000-8000-8b4d7d575153"`
287
+
288
+ ### <a id="trace-20"></a> 20. đŸ—‘ī¸ delete
289
+
290
+ **Collection:** `api-keys:test`
291
+
292
+ **Batch ID:** `2`, written at [23](#trace-23)
293
+
294
+ **Key:** `"00000000-0035-7000-8000-d15f8f696365"`
295
+
296
+ ### <a id="trace-21"></a> 21. 📖 getAllItems
297
+
298
+ **Collection:** `workers:test`
299
+
300
+ **Result:**
301
+
302
+ ```js
303
+ {
304
+ "id": "00000000-0023-7000-8000-8b4d7d575153",
305
+ "meta": {
306
+ "createdAt": 0,
307
+ "updatedAt": 0
308
+ },
309
+ "status": "starting",
310
+ "failedStartAttempts": 5,
311
+ "identity": "ghcr.io/org/worker",
312
+ "image": "ghcr.io/org/worker:v1",
313
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41",
314
+ "apiKeyId": "00000000-0035-7000-8000-d15f8f696365"
315
+ }
316
+ ```
317
+
318
+ ```js
319
+ {
320
+ "id": "00000000-0047-7000-8001-1b71a17b7577",
321
+ "meta": {
322
+ "createdAt": 0,
323
+ "updatedAt": 0
324
+ },
325
+ "status": "starting",
326
+ "failedStartAttempts": 5,
327
+ "identity": "ghcr.io/org/worker",
328
+ "image": "ghcr.io/org/worker:v2",
329
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41",
330
+ "apiKeyId": "00000000-0059-7000-8001-6183b38d8789"
331
+ }
332
+ ```
333
+
334
+ ### <a id="trace-22"></a> 22. 🔍 debug
335
+
336
+ `not deleting service account "00000000-0011-7000-8000-413b6b453f41" for worker "00000000-0023-7000-8000-8b4d7d575153" in project "test" (has sibling workers)`
337
+
338
+ **Data:**
339
+
340
+ ```js
341
+ {
342
+ "service": "WorkerService",
343
+ "projectId": "test",
344
+ "workerId": "00000000-0023-7000-8000-8b4d7d575153",
345
+ "serviceAccountId": "00000000-0011-7000-8000-413b6b453f41",
346
+ "identity": "ghcr.io/org/worker"
347
+ }
348
+ ```
349
+
350
+ ### <a id="trace-23"></a> 23. 💾 write [19](#trace-19), [20](#trace-20)
351
+
352
+ ### <a id="trace-24"></a> 24. ✅ workerManager.stopWorker
353
+
354
+ **Args:**
355
+
356
+ `"test"`
357
+
358
+ `"00000000-0023-7000-8000-8b4d7d575153"`
359
+
360
+ ### <a id="trace-25"></a> 25. 🔓 released, locked at [14](#trace-14)
361
+
362
+ **Keys:**
363
+
364
+ `"worker:00000000-0023-7000-8000-8b4d7d575153"`
365
+
366
+ ### <a id="trace-26"></a> 26. 💾 write [11](#trace-11)
367
+
368
+ ### <a id="trace-27"></a> 27. 🔓 released, locked at [4](#trace-4)
369
+
370
+ **Keys:**
371
+
372
+ `"worker-image:test:ghcr.io/org/worker:v2"`