@treeseed/sdk 0.10.24 → 0.10.26
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/dist/index.d.ts +12 -2
- package/dist/index.js +42 -1
- package/dist/market-client.d.ts +23 -0
- package/dist/market-client.js +30 -0
- package/dist/operations/providers/default.js +103 -10
- package/dist/operations/repository-operations.d.ts +6 -1
- package/dist/operations/repository-operations.js +44 -0
- package/dist/operations/services/config-runtime.d.ts +24 -9
- package/dist/operations/services/config-runtime.js +60 -12
- package/dist/operations/services/deploy.js +6 -1
- package/dist/operations/services/hub-launch.js +1 -0
- package/dist/operations/services/hub-provider-launch.d.ts +11 -1
- package/dist/operations/services/hub-provider-launch.js +81 -8
- package/dist/operations/services/project-host-operations.d.ts +153 -0
- package/dist/operations/services/project-host-operations.js +365 -0
- package/dist/operations/services/project-platform.d.ts +198 -193
- package/dist/operations/services/project-platform.js +29 -14
- package/dist/operations/services/railway-deploy.d.ts +3 -0
- package/dist/operations/services/railway-deploy.js +74 -35
- package/dist/operations/services/release-candidate.js +8 -2
- package/dist/operations/services/template-host-bindings.d.ts +68 -0
- package/dist/operations/services/template-host-bindings.js +400 -0
- package/dist/operations/services/template-registry.d.ts +22 -2
- package/dist/operations/services/template-registry.js +60 -3
- package/dist/operations/services/template-secret-sync.d.ts +97 -0
- package/dist/operations/services/template-secret-sync.js +292 -0
- package/dist/platform/environment.d.ts +3 -0
- package/dist/project-workflow.d.ts +7 -1
- package/dist/scripts/scaffold-site.js +3 -2
- package/dist/scripts/test-scaffold.js +2 -1
- package/dist/sdk-types.d.ts +87 -0
- package/dist/sdk-types.js +29 -0
- package/dist/template-catalog.js +3 -1
- package/dist/template-launch-requirements.d.ts +118 -0
- package/dist/template-launch-requirements.js +759 -0
- package/dist/template-launch-ui.d.ts +85 -0
- package/dist/template-launch-ui.js +189 -0
- package/dist/treeseed/template-catalog/catalog.fixture.json +330 -3
- package/package.json +13 -1
|
@@ -97,54 +97,6 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
97
97
|
ok: true;
|
|
98
98
|
target: any;
|
|
99
99
|
checks: {
|
|
100
|
-
r2: {
|
|
101
|
-
ok: boolean;
|
|
102
|
-
skipped: boolean;
|
|
103
|
-
reason: string;
|
|
104
|
-
objectKey?: undefined;
|
|
105
|
-
} | {
|
|
106
|
-
ok: boolean;
|
|
107
|
-
objectKey: string;
|
|
108
|
-
skipped?: undefined;
|
|
109
|
-
reason?: undefined;
|
|
110
|
-
} | {
|
|
111
|
-
ok: boolean;
|
|
112
|
-
skipped: boolean;
|
|
113
|
-
reason: string;
|
|
114
|
-
};
|
|
115
|
-
queue: {
|
|
116
|
-
ok: boolean;
|
|
117
|
-
skipped: boolean;
|
|
118
|
-
reason: string;
|
|
119
|
-
messageId?: undefined;
|
|
120
|
-
detail?: undefined;
|
|
121
|
-
attempts?: undefined;
|
|
122
|
-
} | {
|
|
123
|
-
ok: boolean;
|
|
124
|
-
skipped: boolean;
|
|
125
|
-
reason: string;
|
|
126
|
-
messageId: string;
|
|
127
|
-
detail: string;
|
|
128
|
-
attempts?: undefined;
|
|
129
|
-
} | {
|
|
130
|
-
ok: boolean;
|
|
131
|
-
reason: string;
|
|
132
|
-
skipped?: undefined;
|
|
133
|
-
messageId?: undefined;
|
|
134
|
-
detail?: undefined;
|
|
135
|
-
attempts?: undefined;
|
|
136
|
-
} | {
|
|
137
|
-
ok: boolean;
|
|
138
|
-
messageId: string;
|
|
139
|
-
attempts: number;
|
|
140
|
-
skipped?: undefined;
|
|
141
|
-
reason?: undefined;
|
|
142
|
-
detail?: undefined;
|
|
143
|
-
} | {
|
|
144
|
-
ok: boolean;
|
|
145
|
-
skipped: boolean;
|
|
146
|
-
reason: string;
|
|
147
|
-
};
|
|
148
100
|
pages: {
|
|
149
101
|
ok: boolean;
|
|
150
102
|
status: number | null;
|
|
@@ -196,6 +148,54 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
196
148
|
skipped: boolean;
|
|
197
149
|
reason: string;
|
|
198
150
|
};
|
|
151
|
+
r2: {
|
|
152
|
+
ok: boolean;
|
|
153
|
+
skipped: boolean;
|
|
154
|
+
reason: string;
|
|
155
|
+
objectKey?: undefined;
|
|
156
|
+
} | {
|
|
157
|
+
ok: boolean;
|
|
158
|
+
objectKey: string;
|
|
159
|
+
skipped?: undefined;
|
|
160
|
+
reason?: undefined;
|
|
161
|
+
} | {
|
|
162
|
+
ok: boolean;
|
|
163
|
+
skipped: boolean;
|
|
164
|
+
reason: string;
|
|
165
|
+
};
|
|
166
|
+
queue: {
|
|
167
|
+
ok: boolean;
|
|
168
|
+
skipped: boolean;
|
|
169
|
+
reason: string;
|
|
170
|
+
messageId?: undefined;
|
|
171
|
+
detail?: undefined;
|
|
172
|
+
attempts?: undefined;
|
|
173
|
+
} | {
|
|
174
|
+
ok: boolean;
|
|
175
|
+
skipped: boolean;
|
|
176
|
+
reason: string;
|
|
177
|
+
messageId: string;
|
|
178
|
+
detail: string;
|
|
179
|
+
attempts?: undefined;
|
|
180
|
+
} | {
|
|
181
|
+
ok: boolean;
|
|
182
|
+
reason: string;
|
|
183
|
+
skipped?: undefined;
|
|
184
|
+
messageId?: undefined;
|
|
185
|
+
detail?: undefined;
|
|
186
|
+
attempts?: undefined;
|
|
187
|
+
} | {
|
|
188
|
+
ok: boolean;
|
|
189
|
+
messageId: string;
|
|
190
|
+
attempts: number;
|
|
191
|
+
skipped?: undefined;
|
|
192
|
+
reason?: undefined;
|
|
193
|
+
detail?: undefined;
|
|
194
|
+
} | {
|
|
195
|
+
ok: boolean;
|
|
196
|
+
skipped: boolean;
|
|
197
|
+
reason: string;
|
|
198
|
+
};
|
|
199
199
|
scaleProbe: {
|
|
200
200
|
ok: boolean;
|
|
201
201
|
mocked: boolean;
|
|
@@ -272,6 +272,7 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
272
272
|
command: string;
|
|
273
273
|
cwd: any;
|
|
274
274
|
publicBaseUrl: any;
|
|
275
|
+
timings: TreeseedTimingEntry[];
|
|
275
276
|
runtimeConfiguration?: undefined;
|
|
276
277
|
} | {
|
|
277
278
|
service: any;
|
|
@@ -279,6 +280,7 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
279
280
|
command: string;
|
|
280
281
|
cwd: any;
|
|
281
282
|
publicBaseUrl: any;
|
|
283
|
+
timings: TreeseedTimingEntry[];
|
|
282
284
|
runtimeConfiguration: {
|
|
283
285
|
updated: boolean;
|
|
284
286
|
healthcheckPath: string | null;
|
|
@@ -295,9 +297,10 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
295
297
|
} | undefined)[];
|
|
296
298
|
timings: TreeseedTimingEntry[];
|
|
297
299
|
}>;
|
|
298
|
-
export declare function resolveRailwayServiceDeployDependencies({ includeDataDependency, previousRailwayDeployNodeId, }: {
|
|
300
|
+
export declare function resolveRailwayServiceDeployDependencies({ includeDataDependency, previousRailwayDeployNodeId, sequentialRailwayDeploys, }: {
|
|
299
301
|
includeDataDependency: boolean;
|
|
300
302
|
previousRailwayDeployNodeId?: string | null;
|
|
303
|
+
sequentialRailwayDeploys?: boolean;
|
|
301
304
|
}): string[];
|
|
302
305
|
export declare function publishProjectContent(options: ProjectPlatformActionOptions): Promise<{
|
|
303
306
|
ok: boolean;
|
|
@@ -312,54 +315,6 @@ export declare function monitorProjectPlatform(options: ProjectPlatformActionOpt
|
|
|
312
315
|
ok: true;
|
|
313
316
|
target: any;
|
|
314
317
|
checks: {
|
|
315
|
-
r2: {
|
|
316
|
-
ok: boolean;
|
|
317
|
-
skipped: boolean;
|
|
318
|
-
reason: string;
|
|
319
|
-
objectKey?: undefined;
|
|
320
|
-
} | {
|
|
321
|
-
ok: boolean;
|
|
322
|
-
objectKey: string;
|
|
323
|
-
skipped?: undefined;
|
|
324
|
-
reason?: undefined;
|
|
325
|
-
} | {
|
|
326
|
-
ok: boolean;
|
|
327
|
-
skipped: boolean;
|
|
328
|
-
reason: string;
|
|
329
|
-
};
|
|
330
|
-
queue: {
|
|
331
|
-
ok: boolean;
|
|
332
|
-
skipped: boolean;
|
|
333
|
-
reason: string;
|
|
334
|
-
messageId?: undefined;
|
|
335
|
-
detail?: undefined;
|
|
336
|
-
attempts?: undefined;
|
|
337
|
-
} | {
|
|
338
|
-
ok: boolean;
|
|
339
|
-
skipped: boolean;
|
|
340
|
-
reason: string;
|
|
341
|
-
messageId: string;
|
|
342
|
-
detail: string;
|
|
343
|
-
attempts?: undefined;
|
|
344
|
-
} | {
|
|
345
|
-
ok: boolean;
|
|
346
|
-
reason: string;
|
|
347
|
-
skipped?: undefined;
|
|
348
|
-
messageId?: undefined;
|
|
349
|
-
detail?: undefined;
|
|
350
|
-
attempts?: undefined;
|
|
351
|
-
} | {
|
|
352
|
-
ok: boolean;
|
|
353
|
-
messageId: string;
|
|
354
|
-
attempts: number;
|
|
355
|
-
skipped?: undefined;
|
|
356
|
-
reason?: undefined;
|
|
357
|
-
detail?: undefined;
|
|
358
|
-
} | {
|
|
359
|
-
ok: boolean;
|
|
360
|
-
skipped: boolean;
|
|
361
|
-
reason: string;
|
|
362
|
-
};
|
|
363
318
|
pages: {
|
|
364
319
|
ok: boolean;
|
|
365
320
|
status: number | null;
|
|
@@ -411,6 +366,54 @@ export declare function monitorProjectPlatform(options: ProjectPlatformActionOpt
|
|
|
411
366
|
skipped: boolean;
|
|
412
367
|
reason: string;
|
|
413
368
|
};
|
|
369
|
+
r2: {
|
|
370
|
+
ok: boolean;
|
|
371
|
+
skipped: boolean;
|
|
372
|
+
reason: string;
|
|
373
|
+
objectKey?: undefined;
|
|
374
|
+
} | {
|
|
375
|
+
ok: boolean;
|
|
376
|
+
objectKey: string;
|
|
377
|
+
skipped?: undefined;
|
|
378
|
+
reason?: undefined;
|
|
379
|
+
} | {
|
|
380
|
+
ok: boolean;
|
|
381
|
+
skipped: boolean;
|
|
382
|
+
reason: string;
|
|
383
|
+
};
|
|
384
|
+
queue: {
|
|
385
|
+
ok: boolean;
|
|
386
|
+
skipped: boolean;
|
|
387
|
+
reason: string;
|
|
388
|
+
messageId?: undefined;
|
|
389
|
+
detail?: undefined;
|
|
390
|
+
attempts?: undefined;
|
|
391
|
+
} | {
|
|
392
|
+
ok: boolean;
|
|
393
|
+
skipped: boolean;
|
|
394
|
+
reason: string;
|
|
395
|
+
messageId: string;
|
|
396
|
+
detail: string;
|
|
397
|
+
attempts?: undefined;
|
|
398
|
+
} | {
|
|
399
|
+
ok: boolean;
|
|
400
|
+
reason: string;
|
|
401
|
+
skipped?: undefined;
|
|
402
|
+
messageId?: undefined;
|
|
403
|
+
detail?: undefined;
|
|
404
|
+
attempts?: undefined;
|
|
405
|
+
} | {
|
|
406
|
+
ok: boolean;
|
|
407
|
+
messageId: string;
|
|
408
|
+
attempts: number;
|
|
409
|
+
skipped?: undefined;
|
|
410
|
+
reason?: undefined;
|
|
411
|
+
detail?: undefined;
|
|
412
|
+
} | {
|
|
413
|
+
ok: boolean;
|
|
414
|
+
skipped: boolean;
|
|
415
|
+
reason: string;
|
|
416
|
+
};
|
|
414
417
|
scaleProbe: {
|
|
415
418
|
ok: boolean;
|
|
416
419
|
mocked: boolean;
|
|
@@ -478,54 +481,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
478
481
|
ok: true;
|
|
479
482
|
target: any;
|
|
480
483
|
checks: {
|
|
481
|
-
r2: {
|
|
482
|
-
ok: boolean;
|
|
483
|
-
skipped: boolean;
|
|
484
|
-
reason: string;
|
|
485
|
-
objectKey?: undefined;
|
|
486
|
-
} | {
|
|
487
|
-
ok: boolean;
|
|
488
|
-
objectKey: string;
|
|
489
|
-
skipped?: undefined;
|
|
490
|
-
reason?: undefined;
|
|
491
|
-
} | {
|
|
492
|
-
ok: boolean;
|
|
493
|
-
skipped: boolean;
|
|
494
|
-
reason: string;
|
|
495
|
-
};
|
|
496
|
-
queue: {
|
|
497
|
-
ok: boolean;
|
|
498
|
-
skipped: boolean;
|
|
499
|
-
reason: string;
|
|
500
|
-
messageId?: undefined;
|
|
501
|
-
detail?: undefined;
|
|
502
|
-
attempts?: undefined;
|
|
503
|
-
} | {
|
|
504
|
-
ok: boolean;
|
|
505
|
-
skipped: boolean;
|
|
506
|
-
reason: string;
|
|
507
|
-
messageId: string;
|
|
508
|
-
detail: string;
|
|
509
|
-
attempts?: undefined;
|
|
510
|
-
} | {
|
|
511
|
-
ok: boolean;
|
|
512
|
-
reason: string;
|
|
513
|
-
skipped?: undefined;
|
|
514
|
-
messageId?: undefined;
|
|
515
|
-
detail?: undefined;
|
|
516
|
-
attempts?: undefined;
|
|
517
|
-
} | {
|
|
518
|
-
ok: boolean;
|
|
519
|
-
messageId: string;
|
|
520
|
-
attempts: number;
|
|
521
|
-
skipped?: undefined;
|
|
522
|
-
reason?: undefined;
|
|
523
|
-
detail?: undefined;
|
|
524
|
-
} | {
|
|
525
|
-
ok: boolean;
|
|
526
|
-
skipped: boolean;
|
|
527
|
-
reason: string;
|
|
528
|
-
};
|
|
529
484
|
pages: {
|
|
530
485
|
ok: boolean;
|
|
531
486
|
status: number | null;
|
|
@@ -577,6 +532,54 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
577
532
|
skipped: boolean;
|
|
578
533
|
reason: string;
|
|
579
534
|
};
|
|
535
|
+
r2: {
|
|
536
|
+
ok: boolean;
|
|
537
|
+
skipped: boolean;
|
|
538
|
+
reason: string;
|
|
539
|
+
objectKey?: undefined;
|
|
540
|
+
} | {
|
|
541
|
+
ok: boolean;
|
|
542
|
+
objectKey: string;
|
|
543
|
+
skipped?: undefined;
|
|
544
|
+
reason?: undefined;
|
|
545
|
+
} | {
|
|
546
|
+
ok: boolean;
|
|
547
|
+
skipped: boolean;
|
|
548
|
+
reason: string;
|
|
549
|
+
};
|
|
550
|
+
queue: {
|
|
551
|
+
ok: boolean;
|
|
552
|
+
skipped: boolean;
|
|
553
|
+
reason: string;
|
|
554
|
+
messageId?: undefined;
|
|
555
|
+
detail?: undefined;
|
|
556
|
+
attempts?: undefined;
|
|
557
|
+
} | {
|
|
558
|
+
ok: boolean;
|
|
559
|
+
skipped: boolean;
|
|
560
|
+
reason: string;
|
|
561
|
+
messageId: string;
|
|
562
|
+
detail: string;
|
|
563
|
+
attempts?: undefined;
|
|
564
|
+
} | {
|
|
565
|
+
ok: boolean;
|
|
566
|
+
reason: string;
|
|
567
|
+
skipped?: undefined;
|
|
568
|
+
messageId?: undefined;
|
|
569
|
+
detail?: undefined;
|
|
570
|
+
attempts?: undefined;
|
|
571
|
+
} | {
|
|
572
|
+
ok: boolean;
|
|
573
|
+
messageId: string;
|
|
574
|
+
attempts: number;
|
|
575
|
+
skipped?: undefined;
|
|
576
|
+
reason?: undefined;
|
|
577
|
+
detail?: undefined;
|
|
578
|
+
} | {
|
|
579
|
+
ok: boolean;
|
|
580
|
+
skipped: boolean;
|
|
581
|
+
reason: string;
|
|
582
|
+
};
|
|
580
583
|
scaleProbe: {
|
|
581
584
|
ok: boolean;
|
|
582
585
|
mocked: boolean;
|
|
@@ -637,54 +640,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
637
640
|
ok: true;
|
|
638
641
|
target: any;
|
|
639
642
|
checks: {
|
|
640
|
-
r2: {
|
|
641
|
-
ok: boolean;
|
|
642
|
-
skipped: boolean;
|
|
643
|
-
reason: string;
|
|
644
|
-
objectKey?: undefined;
|
|
645
|
-
} | {
|
|
646
|
-
ok: boolean;
|
|
647
|
-
objectKey: string;
|
|
648
|
-
skipped?: undefined;
|
|
649
|
-
reason?: undefined;
|
|
650
|
-
} | {
|
|
651
|
-
ok: boolean;
|
|
652
|
-
skipped: boolean;
|
|
653
|
-
reason: string;
|
|
654
|
-
};
|
|
655
|
-
queue: {
|
|
656
|
-
ok: boolean;
|
|
657
|
-
skipped: boolean;
|
|
658
|
-
reason: string;
|
|
659
|
-
messageId?: undefined;
|
|
660
|
-
detail?: undefined;
|
|
661
|
-
attempts?: undefined;
|
|
662
|
-
} | {
|
|
663
|
-
ok: boolean;
|
|
664
|
-
skipped: boolean;
|
|
665
|
-
reason: string;
|
|
666
|
-
messageId: string;
|
|
667
|
-
detail: string;
|
|
668
|
-
attempts?: undefined;
|
|
669
|
-
} | {
|
|
670
|
-
ok: boolean;
|
|
671
|
-
reason: string;
|
|
672
|
-
skipped?: undefined;
|
|
673
|
-
messageId?: undefined;
|
|
674
|
-
detail?: undefined;
|
|
675
|
-
attempts?: undefined;
|
|
676
|
-
} | {
|
|
677
|
-
ok: boolean;
|
|
678
|
-
messageId: string;
|
|
679
|
-
attempts: number;
|
|
680
|
-
skipped?: undefined;
|
|
681
|
-
reason?: undefined;
|
|
682
|
-
detail?: undefined;
|
|
683
|
-
} | {
|
|
684
|
-
ok: boolean;
|
|
685
|
-
skipped: boolean;
|
|
686
|
-
reason: string;
|
|
687
|
-
};
|
|
688
643
|
pages: {
|
|
689
644
|
ok: boolean;
|
|
690
645
|
status: number | null;
|
|
@@ -736,6 +691,54 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
736
691
|
skipped: boolean;
|
|
737
692
|
reason: string;
|
|
738
693
|
};
|
|
694
|
+
r2: {
|
|
695
|
+
ok: boolean;
|
|
696
|
+
skipped: boolean;
|
|
697
|
+
reason: string;
|
|
698
|
+
objectKey?: undefined;
|
|
699
|
+
} | {
|
|
700
|
+
ok: boolean;
|
|
701
|
+
objectKey: string;
|
|
702
|
+
skipped?: undefined;
|
|
703
|
+
reason?: undefined;
|
|
704
|
+
} | {
|
|
705
|
+
ok: boolean;
|
|
706
|
+
skipped: boolean;
|
|
707
|
+
reason: string;
|
|
708
|
+
};
|
|
709
|
+
queue: {
|
|
710
|
+
ok: boolean;
|
|
711
|
+
skipped: boolean;
|
|
712
|
+
reason: string;
|
|
713
|
+
messageId?: undefined;
|
|
714
|
+
detail?: undefined;
|
|
715
|
+
attempts?: undefined;
|
|
716
|
+
} | {
|
|
717
|
+
ok: boolean;
|
|
718
|
+
skipped: boolean;
|
|
719
|
+
reason: string;
|
|
720
|
+
messageId: string;
|
|
721
|
+
detail: string;
|
|
722
|
+
attempts?: undefined;
|
|
723
|
+
} | {
|
|
724
|
+
ok: boolean;
|
|
725
|
+
reason: string;
|
|
726
|
+
skipped?: undefined;
|
|
727
|
+
messageId?: undefined;
|
|
728
|
+
detail?: undefined;
|
|
729
|
+
attempts?: undefined;
|
|
730
|
+
} | {
|
|
731
|
+
ok: boolean;
|
|
732
|
+
messageId: string;
|
|
733
|
+
attempts: number;
|
|
734
|
+
skipped?: undefined;
|
|
735
|
+
reason?: undefined;
|
|
736
|
+
detail?: undefined;
|
|
737
|
+
} | {
|
|
738
|
+
ok: boolean;
|
|
739
|
+
skipped: boolean;
|
|
740
|
+
reason: string;
|
|
741
|
+
};
|
|
739
742
|
scaleProbe: {
|
|
740
743
|
ok: boolean;
|
|
741
744
|
mocked: boolean;
|
|
@@ -812,6 +815,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
812
815
|
command: string;
|
|
813
816
|
cwd: any;
|
|
814
817
|
publicBaseUrl: any;
|
|
818
|
+
timings: TreeseedTimingEntry[];
|
|
815
819
|
runtimeConfiguration?: undefined;
|
|
816
820
|
} | {
|
|
817
821
|
service: any;
|
|
@@ -819,6 +823,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
819
823
|
command: string;
|
|
820
824
|
cwd: any;
|
|
821
825
|
publicBaseUrl: any;
|
|
826
|
+
timings: TreeseedTimingEntry[];
|
|
822
827
|
runtimeConfiguration: {
|
|
823
828
|
updated: boolean;
|
|
824
829
|
healthcheckPath: string | null;
|
|
@@ -1320,6 +1320,7 @@ async function deployProjectPlatform(options) {
|
|
|
1320
1320
|
const selectedServices = validation.services.filter(
|
|
1321
1321
|
(service) => service.key === "api" ? selectedSystems.has("api") : selectedSystems.has("agents")
|
|
1322
1322
|
);
|
|
1323
|
+
const sequentialRailwayDeploys = String(env.TREESEED_RAILWAY_DEPLOY_SEQUENTIAL ?? "").trim() === "1";
|
|
1323
1324
|
let previousRailwayDeployNodeId = null;
|
|
1324
1325
|
for (const service of selectedServices) {
|
|
1325
1326
|
const system = service.key === "api" ? "api" : "agents";
|
|
@@ -1329,7 +1330,8 @@ async function deployProjectPlatform(options) {
|
|
|
1329
1330
|
id: nodeId,
|
|
1330
1331
|
dependencies: resolveRailwayServiceDeployDependencies({
|
|
1331
1332
|
includeDataDependency: selectedSystems.has("data"),
|
|
1332
|
-
previousRailwayDeployNodeId
|
|
1333
|
+
previousRailwayDeployNodeId,
|
|
1334
|
+
sequentialRailwayDeploys
|
|
1333
1335
|
}),
|
|
1334
1336
|
run: async () => {
|
|
1335
1337
|
const result = await deployRailwayService(options.tenantRoot, service, {
|
|
@@ -1347,7 +1349,9 @@ async function deployProjectPlatform(options) {
|
|
|
1347
1349
|
return result;
|
|
1348
1350
|
}
|
|
1349
1351
|
});
|
|
1350
|
-
|
|
1352
|
+
if (sequentialRailwayDeploys) {
|
|
1353
|
+
previousRailwayDeployNodeId = nodeId;
|
|
1354
|
+
}
|
|
1351
1355
|
}
|
|
1352
1356
|
}
|
|
1353
1357
|
const managesRailwaySchedules = options.scope === "staging" || options.scope === "prod";
|
|
@@ -1381,6 +1385,9 @@ async function deployProjectPlatform(options) {
|
|
|
1381
1385
|
}
|
|
1382
1386
|
await runTreeseedBootstrapDag({ nodes, execution, write, timings });
|
|
1383
1387
|
const serviceResults = selectedRailwayServiceKeys.map((serviceKey) => serviceResultsByKey.get(serviceKey)).filter(Boolean);
|
|
1388
|
+
for (const result of serviceResults) {
|
|
1389
|
+
timings.push(...result.timings ?? []);
|
|
1390
|
+
}
|
|
1384
1391
|
if (options.scope !== "local" && !options.dryRun && (selectedSystems.has("web") || serviceResults.length > 0)) {
|
|
1385
1392
|
finalizeDeploymentState(options.tenantRoot, {
|
|
1386
1393
|
target: createPersistentDeployTarget(options.scope),
|
|
@@ -1434,11 +1441,12 @@ async function deployProjectPlatform(options) {
|
|
|
1434
1441
|
}
|
|
1435
1442
|
function resolveRailwayServiceDeployDependencies({
|
|
1436
1443
|
includeDataDependency,
|
|
1437
|
-
previousRailwayDeployNodeId
|
|
1444
|
+
previousRailwayDeployNodeId,
|
|
1445
|
+
sequentialRailwayDeploys = false
|
|
1438
1446
|
}) {
|
|
1439
1447
|
return [
|
|
1440
1448
|
...includeDataDependency ? ["data:d1-migrate"] : [],
|
|
1441
|
-
...previousRailwayDeployNodeId ? [previousRailwayDeployNodeId] : []
|
|
1449
|
+
...sequentialRailwayDeploys && previousRailwayDeployNodeId ? [previousRailwayDeployNodeId] : []
|
|
1442
1450
|
];
|
|
1443
1451
|
}
|
|
1444
1452
|
async function publishProjectContent(options) {
|
|
@@ -1458,7 +1466,7 @@ async function monitorProjectPlatform(options) {
|
|
|
1458
1466
|
const webProbeUrl = resolveImmediatePagesProbeUrl(siteConfig, state, target);
|
|
1459
1467
|
const apiBaseUrl = resolveImmediateApiProbeUrl(siteConfig, state, target);
|
|
1460
1468
|
const apiMonitorEndpoints = resolveApiMonitorEndpoints(siteConfig, apiBaseUrl);
|
|
1461
|
-
const
|
|
1469
|
+
const railwayResourcesPromise = options.scope === "local" || !apiSelected && !agentsSelected ? { ok: true, skipped: true, reason: options.scope === "local" ? "local_scope" : "railway_not_selected" } : timedPhase(timings, "monitor:railway-resources", () => verifyRailwayManagedResources(options.tenantRoot, options.scope, {
|
|
1462
1470
|
env,
|
|
1463
1471
|
settleDeployments: true,
|
|
1464
1472
|
onProgress: options.write
|
|
@@ -1467,15 +1475,15 @@ async function monitorProjectPlatform(options) {
|
|
|
1467
1475
|
const skippedAgentCheck = agentsSelected ? { ok: false, skipped: true, reason: "api_url_unconfigured" } : { ok: true, skipped: true, reason: "agents_not_selected" };
|
|
1468
1476
|
const skippedD1Check = apiMonitorEndpoints.processingAgentApi ? { ok: true, skipped: true, reason: "processing_agent_api" } : skippedApiCheck;
|
|
1469
1477
|
const checks = {
|
|
1470
|
-
pages:
|
|
1471
|
-
apiHealth: apiSelected && apiMonitorEndpoints.apiHealth ?
|
|
1472
|
-
apiReady: apiSelected && apiMonitorEndpoints.apiReady ?
|
|
1473
|
-
d1Health: apiSelected && apiMonitorEndpoints.d1Health ?
|
|
1474
|
-
agentHealth: agentsSelected && apiMonitorEndpoints.agentHealth ?
|
|
1475
|
-
r2: options.dryRun ? { ok: true, skipped: true, reason: "dry_run" } : timedPhase(timings, "monitor:probe-r2", () => probeR2(options.tenantRoot, siteConfig, state, target)),
|
|
1478
|
+
pages: timedPhase(timings, "monitor:probe-pages", () => probeHttp(webProbeUrl, { attempts: 3, delayMs: 5e3 })),
|
|
1479
|
+
apiHealth: apiSelected && apiMonitorEndpoints.apiHealth ? timedPhase(timings, "monitor:probe-api-health", () => probeHttp(apiMonitorEndpoints.apiHealth, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedApiCheck),
|
|
1480
|
+
apiReady: apiSelected && apiMonitorEndpoints.apiReady ? timedPhase(timings, "monitor:probe-api-ready", () => probeHttp(apiMonitorEndpoints.apiReady, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedApiCheck),
|
|
1481
|
+
d1Health: apiSelected && apiMonitorEndpoints.d1Health ? timedPhase(timings, "monitor:probe-d1-health", () => probeHttp(apiMonitorEndpoints.d1Health, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedD1Check),
|
|
1482
|
+
agentHealth: agentsSelected && apiMonitorEndpoints.agentHealth ? timedPhase(timings, "monitor:probe-agent-health", () => probeHttp(apiMonitorEndpoints.agentHealth, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedAgentCheck),
|
|
1483
|
+
r2: options.dryRun ? Promise.resolve({ ok: true, skipped: true, reason: "dry_run" }) : timedPhase(timings, "monitor:probe-r2", () => probeR2(options.tenantRoot, siteConfig, state, target)),
|
|
1476
1484
|
queue: options.dryRun ? Promise.resolve({ ok: true, skipped: true, reason: "dry_run" }) : timedPhase(timings, "monitor:probe-queue", () => probeQueue(siteConfig, state)),
|
|
1477
|
-
scaleProbe:
|
|
1478
|
-
railwayResources,
|
|
1485
|
+
scaleProbe: timedPhase(timings, "monitor:probe-scale", () => probeScaleConfiguration(siteConfig, state)),
|
|
1486
|
+
railwayResources: Promise.resolve(railwayResourcesPromise),
|
|
1479
1487
|
readiness: state.readiness,
|
|
1480
1488
|
apiMonitor: {
|
|
1481
1489
|
ok: true,
|
|
@@ -1485,8 +1493,15 @@ async function monitorProjectPlatform(options) {
|
|
|
1485
1493
|
};
|
|
1486
1494
|
const resolvedChecks = {
|
|
1487
1495
|
...checks,
|
|
1496
|
+
pages: await checks.pages,
|
|
1497
|
+
apiHealth: await checks.apiHealth,
|
|
1498
|
+
apiReady: await checks.apiReady,
|
|
1499
|
+
d1Health: await checks.d1Health,
|
|
1500
|
+
agentHealth: await checks.agentHealth,
|
|
1488
1501
|
r2: await checks.r2,
|
|
1489
|
-
queue: await checks.queue
|
|
1502
|
+
queue: await checks.queue,
|
|
1503
|
+
scaleProbe: await checks.scaleProbe,
|
|
1504
|
+
railwayResources: await checks.railwayResources
|
|
1490
1505
|
};
|
|
1491
1506
|
const ok = [
|
|
1492
1507
|
resolvedChecks.pages,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type TreeseedBootstrapTaskPrefix, type TreeseedBootstrapWriter } from './bootstrap-runner.ts';
|
|
2
|
+
import { type TreeseedTimingEntry } from '../../timing.ts';
|
|
2
3
|
export declare function deriveRailwayWorkerRunnerServiceName(projectSlug: any, index?: number): string;
|
|
3
4
|
export declare function deriveRailwayMarketOperationsRunnerServiceName(baseServiceName: any, index?: number): string;
|
|
4
5
|
export declare function deriveRailwayWorkerRunnerVolumeName(serviceName: any, environmentName?: string): string;
|
|
@@ -211,6 +212,7 @@ export declare function deployRailwayService(tenantRoot: any, service: any, { dr
|
|
|
211
212
|
command: string;
|
|
212
213
|
cwd: any;
|
|
213
214
|
publicBaseUrl: any;
|
|
215
|
+
timings: TreeseedTimingEntry[];
|
|
214
216
|
runtimeConfiguration?: undefined;
|
|
215
217
|
} | {
|
|
216
218
|
service: any;
|
|
@@ -218,6 +220,7 @@ export declare function deployRailwayService(tenantRoot: any, service: any, { dr
|
|
|
218
220
|
command: string;
|
|
219
221
|
cwd: any;
|
|
220
222
|
publicBaseUrl: any;
|
|
223
|
+
timings: TreeseedTimingEntry[];
|
|
221
224
|
runtimeConfiguration: {
|
|
222
225
|
updated: boolean;
|
|
223
226
|
healthcheckPath: string | null;
|