@treeseed/sdk 0.4.8 → 0.4.10

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 (73) hide show
  1. package/README.md +1 -1
  2. package/dist/control-plane-client.d.ts +45 -0
  3. package/dist/control-plane-client.js +229 -0
  4. package/dist/control-plane.d.ts +94 -0
  5. package/dist/control-plane.js +125 -0
  6. package/dist/d1-store.d.ts +56 -1
  7. package/dist/d1-store.js +132 -0
  8. package/dist/dispatch.d.ts +4 -0
  9. package/dist/dispatch.js +180 -0
  10. package/dist/index.d.ts +14 -2
  11. package/dist/index.js +94 -4
  12. package/dist/operations/services/config-runtime.d.ts +10 -0
  13. package/dist/operations/services/config-runtime.js +62 -4
  14. package/dist/operations/services/deploy.d.ts +95 -3
  15. package/dist/operations/services/deploy.js +351 -10
  16. package/dist/operations/services/github-automation.d.ts +37 -1
  17. package/dist/operations/services/github-automation.js +71 -14
  18. package/dist/operations/services/project-platform.d.ts +835 -0
  19. package/dist/operations/services/project-platform.js +782 -0
  20. package/dist/operations/services/railway-deploy.d.ts +113 -18
  21. package/dist/operations/services/railway-deploy.js +357 -8
  22. package/dist/operations/services/runtime-tools.d.ts +25 -1
  23. package/dist/operations/services/runtime-tools.js +66 -5
  24. package/dist/operations/services/template-registry.d.ts +1 -1
  25. package/dist/operations/services/template-registry.js +17 -3
  26. package/dist/platform/books-data.d.ts +3 -4
  27. package/dist/platform/books-data.js +30 -4
  28. package/dist/platform/contracts.d.ts +56 -4
  29. package/dist/platform/deploy-config.js +109 -4
  30. package/dist/platform/deploy-runtime.d.ts +2 -0
  31. package/dist/platform/deploy-runtime.js +9 -1
  32. package/dist/platform/env.yaml +677 -0
  33. package/dist/platform/environment.js +57 -2
  34. package/dist/platform/plugin.d.ts +8 -0
  35. package/dist/platform/plugins/constants.d.ts +2 -0
  36. package/dist/platform/plugins/constants.js +2 -0
  37. package/dist/platform/plugins/runtime.d.ts +2 -0
  38. package/dist/platform/plugins/runtime.js +9 -1
  39. package/dist/platform/plugins.d.ts +1 -1
  40. package/dist/platform/plugins.js +4 -0
  41. package/dist/platform/published-content-pipeline.d.ts +84 -0
  42. package/dist/platform/published-content-pipeline.js +543 -0
  43. package/dist/platform/published-content.d.ts +223 -0
  44. package/dist/platform/published-content.js +588 -0
  45. package/dist/platform/tenant/runtime-config.d.ts +1 -1
  46. package/dist/platform/tenant/runtime-config.js +34 -1
  47. package/dist/platform/tenant-config.d.ts +2 -1
  48. package/dist/platform/tenant-config.js +17 -1
  49. package/dist/platform/utils/site-config-schema.js +104 -0
  50. package/dist/plugin-default.d.ts +2 -0
  51. package/dist/plugin-default.js +2 -0
  52. package/dist/remote.d.ts +65 -9
  53. package/dist/remote.js +104 -28
  54. package/dist/scripts/check-build-warnings.js +50 -0
  55. package/dist/scripts/config-treeseed.js +7 -0
  56. package/dist/scripts/tenant-workflow-action.js +71 -0
  57. package/dist/sdk-dispatch.d.ts +12 -0
  58. package/dist/sdk-dispatch.js +142 -0
  59. package/dist/sdk-types.d.ts +579 -7
  60. package/dist/sdk-types.js +53 -1
  61. package/dist/sdk.d.ts +17 -1
  62. package/dist/sdk.js +109 -0
  63. package/dist/stores/operational-store.d.ts +22 -2
  64. package/dist/stores/operational-store.js +235 -0
  65. package/dist/template-catalog.js +8 -1
  66. package/dist/treeseed/template-catalog/templates/starter-basic/template/treeseed.site.yaml +20 -0
  67. package/dist/types/cloudflare.d.ts +23 -0
  68. package/dist/workflow/operations.d.ts +12 -3
  69. package/dist/workflow/policy.d.ts +1 -1
  70. package/dist/workflow-state.js +2 -1
  71. package/package.json +7 -2
  72. package/templates/github/deploy.workflow.yml +442 -0
  73. package/templates/github/hosted-project.workflow.yml +77 -0
@@ -124,6 +124,683 @@ entries:
124
124
  - machine-config
125
125
  - process-env
126
126
  - treeseed.site.yaml
127
+ TREESEED_CLOUDFLARE_PAGES_PROJECT_NAME:
128
+ label: Cloudflare Pages project name
129
+ group: cloudflare
130
+ description: Production Pages project used for the Treeseed web deployment.
131
+ howToGet: Treeseed can default this from the site slug. Override it if the Cloudflare Pages project should use a different name.
132
+ sensitivity: plain
133
+ targets:
134
+ - local-file
135
+ - github-variable
136
+ scopes:
137
+ - staging
138
+ - prod
139
+ storage: shared
140
+ requirement: required
141
+ purposes:
142
+ - deploy
143
+ - config
144
+ validation:
145
+ kind: nonempty
146
+ sourcePriority:
147
+ - machine-config
148
+ - process-env
149
+ - treeseed.site.yaml
150
+ defaultValueRef: pagesProjectNameDefault
151
+ TREESEED_CLOUDFLARE_PAGES_PREVIEW_PROJECT_NAME:
152
+ label: Cloudflare staging Pages project
153
+ group: cloudflare
154
+ description: Staging Pages project used for non-production Treeseed web deployments.
155
+ howToGet: Treeseed can default this from the production Pages project name with a -staging suffix.
156
+ sensitivity: plain
157
+ targets:
158
+ - local-file
159
+ - github-variable
160
+ scopes:
161
+ - staging
162
+ - prod
163
+ storage: shared
164
+ requirement: required
165
+ purposes:
166
+ - deploy
167
+ - config
168
+ validation:
169
+ kind: nonempty
170
+ sourcePriority:
171
+ - machine-config
172
+ - process-env
173
+ - treeseed.site.yaml
174
+ defaultValueRef: pagesPreviewProjectNameDefault
175
+ TREESEED_CONTENT_BUCKET_NAME:
176
+ label: Cloudflare R2 content bucket
177
+ group: cloudflare
178
+ description: Shared R2 bucket name that stores team-scoped published content, artifacts, and editorial overlays.
179
+ howToGet: Treeseed can default this from the site slug with a -content suffix. Override it if the shared bucket should use a different name.
180
+ sensitivity: plain
181
+ targets:
182
+ - local-file
183
+ - github-variable
184
+ scopes:
185
+ - staging
186
+ - prod
187
+ storage: shared
188
+ requirement: required
189
+ purposes:
190
+ - deploy
191
+ - config
192
+ validation:
193
+ kind: nonempty
194
+ sourcePriority:
195
+ - machine-config
196
+ - process-env
197
+ - treeseed.site.yaml
198
+ defaultValueRef: contentBucketNameDefault
199
+ TREESEED_CONTENT_BUCKET_BINDING:
200
+ label: Cloudflare R2 binding name
201
+ group: cloudflare
202
+ description: Worker binding name used to mount the shared Treeseed content bucket.
203
+ howToGet: Treeseed defaults this to TREESEED_CONTENT_BUCKET unless you need a different binding name.
204
+ sensitivity: plain
205
+ targets:
206
+ - local-file
207
+ - github-variable
208
+ scopes:
209
+ - staging
210
+ - prod
211
+ storage: shared
212
+ requirement: required
213
+ purposes:
214
+ - deploy
215
+ - config
216
+ validation:
217
+ kind: nonempty
218
+ sourcePriority:
219
+ - machine-config
220
+ - process-env
221
+ - treeseed.site.yaml
222
+ defaultValueRef: contentBucketBindingDefault
223
+ TREESEED_EDITORIAL_PREVIEW_SECRET:
224
+ label: Editorial preview signing secret
225
+ group: cloudflare
226
+ description: Shared HMAC secret used to sign and verify temporary editorial preview links and cookies.
227
+ howToGet: Treeseed can generate a strong random secret for you. Reuse the same value across hosted environments so preview links remain valid during staging-to-production promotion.
228
+ sensitivity: secret
229
+ targets:
230
+ - local-file
231
+ - github-secret
232
+ - cloudflare-secret
233
+ scopes:
234
+ - staging
235
+ - prod
236
+ storage: shared
237
+ requirement: required
238
+ purposes:
239
+ - deploy
240
+ - config
241
+ validation:
242
+ kind: nonempty
243
+ sourcePriority:
244
+ - machine-config
245
+ - process-env
246
+ defaultValueRef: generatedSecret
247
+ TREESEED_HOSTING_KIND:
248
+ label: Treeseed hosting kind
249
+ group: hosting
250
+ description: Declares whether this repository is the central market control plane, a Treeseed-hosted project platform, or a self-hosted project platform.
251
+ howToGet: Treeseed can derive this from the hosting block in treeseed.site.yaml. Override it only when the runtime environment must force a different deployment profile.
252
+ sensitivity: plain
253
+ targets:
254
+ - local-file
255
+ - github-variable
256
+ - railway-var
257
+ - config-file
258
+ scopes:
259
+ - local
260
+ - staging
261
+ - prod
262
+ storage: shared
263
+ requirement: required
264
+ purposes:
265
+ - deploy
266
+ - config
267
+ validation:
268
+ kind: enum
269
+ values:
270
+ - market_control_plane
271
+ - hosted_project
272
+ - self_hosted_project
273
+ sourcePriority:
274
+ - machine-config
275
+ - process-env
276
+ - treeseed.site.yaml
277
+ defaultValueRef: hostingKindDefault
278
+ TREESEED_HOSTING_REGISTRATION:
279
+ label: Treeseed hosting registration mode
280
+ group: hosting
281
+ description: Controls whether a self-hosted project should register itself with the market control plane or remain completely standalone.
282
+ howToGet: Treeseed can derive this from the hosting block in treeseed.site.yaml.
283
+ sensitivity: plain
284
+ targets:
285
+ - local-file
286
+ - github-variable
287
+ - railway-var
288
+ - config-file
289
+ scopes:
290
+ - local
291
+ - staging
292
+ - prod
293
+ storage: shared
294
+ requirement: required
295
+ purposes:
296
+ - deploy
297
+ - config
298
+ validation:
299
+ kind: enum
300
+ values:
301
+ - optional
302
+ - none
303
+ sourcePriority:
304
+ - machine-config
305
+ - process-env
306
+ - treeseed.site.yaml
307
+ defaultValueRef: hostingRegistrationDefault
308
+ TREESEED_MARKET_API_BASE_URL:
309
+ label: Treeseed market API base URL
310
+ group: hosting
311
+ description: Base URL for the market control-plane API used by hosted and optionally registered self-hosted project platforms.
312
+ howToGet: Use the hosted market API URL if Treeseed manages the project for you. Self-hosted deployments should only set this when registration with the market control plane is enabled.
313
+ sensitivity: plain
314
+ targets:
315
+ - local-file
316
+ - github-variable
317
+ - railway-var
318
+ scopes:
319
+ - local
320
+ - staging
321
+ - prod
322
+ storage: shared
323
+ requirement: conditional
324
+ purposes:
325
+ - dev
326
+ - deploy
327
+ - config
328
+ validation:
329
+ kind: url
330
+ sourcePriority:
331
+ - machine-config
332
+ - process-env
333
+ - treeseed.site.yaml
334
+ relevanceRef: projectRegistrationEnabled
335
+ requiredWhenRef: projectRegistrationEnabled
336
+ defaultValueRef: marketBaseUrlDefault
337
+ TREESEED_HOSTING_TEAM_ID:
338
+ label: Hosted team ID
339
+ group: hosting
340
+ description: Team identifier used by hosted or registered project platforms when they publish infra metadata, register agent pools, or resolve team-scoped content.
341
+ howToGet: Treeseed can default this from the hosting.teamId value in treeseed.site.yaml or fall back to the site slug.
342
+ sensitivity: plain
343
+ targets:
344
+ - local-file
345
+ - github-variable
346
+ - railway-var
347
+ scopes:
348
+ - local
349
+ - staging
350
+ - prod
351
+ storage: shared
352
+ requirement: conditional
353
+ purposes:
354
+ - dev
355
+ - deploy
356
+ - config
357
+ validation:
358
+ kind: nonempty
359
+ sourcePriority:
360
+ - machine-config
361
+ - process-env
362
+ - treeseed.site.yaml
363
+ relevanceRef: projectRegistrationEnabled
364
+ requiredWhenRef: projectRegistrationEnabled
365
+ defaultValueRef: hostingTeamIdDefault
366
+ TREESEED_PROJECT_ID:
367
+ label: Hosted project ID
368
+ group: hosting
369
+ description: Stable project identifier used by hosted or registered self-hosted project platforms for dispatch, deploy reporting, and agent-pool registration.
370
+ howToGet: Treeseed can default this from hosting.projectId in treeseed.site.yaml or fall back to the site slug.
371
+ sensitivity: plain
372
+ targets:
373
+ - local-file
374
+ - github-variable
375
+ - railway-var
376
+ scopes:
377
+ - local
378
+ - staging
379
+ - prod
380
+ storage: shared
381
+ requirement: conditional
382
+ purposes:
383
+ - dev
384
+ - deploy
385
+ - config
386
+ validation:
387
+ kind: nonempty
388
+ sourcePriority:
389
+ - machine-config
390
+ - process-env
391
+ - treeseed.site.yaml
392
+ relevanceRef: projectRegistrationEnabled
393
+ requiredWhenRef: projectRegistrationEnabled
394
+ defaultValueRef: hostingProjectIdDefault
395
+ TREESEED_PROJECT_RUNNER_TOKEN:
396
+ label: Project runner registration token
397
+ group: hosting
398
+ description: Shared bearer token used by manager, worker, and agents services to authenticate against the market control plane for remote jobs and agent-pool registration.
399
+ howToGet: Generate or rotate this token from the market control plane after connecting a project environment.
400
+ sensitivity: secret
401
+ targets:
402
+ - local-file
403
+ - github-secret
404
+ - railway-secret
405
+ scopes:
406
+ - local
407
+ - staging
408
+ - prod
409
+ storage: scoped
410
+ requirement: conditional
411
+ purposes:
412
+ - dev
413
+ - deploy
414
+ - config
415
+ validation:
416
+ kind: nonempty
417
+ sourcePriority:
418
+ - machine-config
419
+ - process-env
420
+ relevanceRef: projectRegistrationEnabled
421
+ TREESEED_AGENT_POOL_MIN_WORKERS:
422
+ label: Agent pool minimum workers
423
+ group: hosting
424
+ description: Lower autoscaling bound for the Railway worker service for one project environment.
425
+ howToGet: Set this to 0 for scale-to-zero by default unless the project requires warm workers.
426
+ sensitivity: plain
427
+ targets:
428
+ - local-file
429
+ - github-variable
430
+ - railway-var
431
+ scopes:
432
+ - local
433
+ - staging
434
+ - prod
435
+ storage: scoped
436
+ requirement: conditional
437
+ purposes:
438
+ - dev
439
+ - deploy
440
+ - config
441
+ validation:
442
+ kind: number
443
+ sourcePriority:
444
+ - machine-config
445
+ - process-env
446
+ relevanceRef: railwayManagedEnabled
447
+ TREESEED_AGENT_POOL_MAX_WORKERS:
448
+ label: Agent pool maximum workers
449
+ group: hosting
450
+ description: Upper autoscaling bound for the Railway worker service for one project environment.
451
+ howToGet: Choose a value that reflects your budget and expected concurrency ceiling.
452
+ sensitivity: plain
453
+ targets:
454
+ - local-file
455
+ - github-variable
456
+ - railway-var
457
+ scopes:
458
+ - local
459
+ - staging
460
+ - prod
461
+ storage: scoped
462
+ requirement: conditional
463
+ purposes:
464
+ - dev
465
+ - deploy
466
+ - config
467
+ validation:
468
+ kind: number
469
+ sourcePriority:
470
+ - machine-config
471
+ - process-env
472
+ relevanceRef: railwayManagedEnabled
473
+ TREESEED_AGENT_POOL_TARGET_QUEUE_DEPTH:
474
+ label: Agent pool target queue depth
475
+ group: hosting
476
+ description: Desired queue depth per worker instance that the manager uses when computing worker scale.
477
+ howToGet: Start with 1 for conservative scaling, then raise it only after observing stable worker latency.
478
+ sensitivity: plain
479
+ targets:
480
+ - local-file
481
+ - github-variable
482
+ - railway-var
483
+ scopes:
484
+ - local
485
+ - staging
486
+ - prod
487
+ storage: scoped
488
+ requirement: conditional
489
+ purposes:
490
+ - dev
491
+ - deploy
492
+ - config
493
+ validation:
494
+ kind: number
495
+ sourcePriority:
496
+ - machine-config
497
+ - process-env
498
+ relevanceRef: railwayManagedEnabled
499
+ TREESEED_AGENT_POOL_COOLDOWN_SECONDS:
500
+ label: Agent pool cooldown seconds
501
+ group: hosting
502
+ description: Cooldown window the manager uses before scaling the worker pool down after queue activity drops.
503
+ howToGet: Start with 60 seconds to prevent worker thrash in lightly bursty environments.
504
+ sensitivity: plain
505
+ targets:
506
+ - local-file
507
+ - github-variable
508
+ - railway-var
509
+ scopes:
510
+ - local
511
+ - staging
512
+ - prod
513
+ storage: scoped
514
+ requirement: conditional
515
+ purposes:
516
+ - dev
517
+ - deploy
518
+ - config
519
+ validation:
520
+ kind: number
521
+ sourcePriority:
522
+ - machine-config
523
+ - process-env
524
+ relevanceRef: railwayManagedEnabled
525
+ TREESEED_WORKDAY_TIMEZONE:
526
+ label: Workday timezone
527
+ group: hosting
528
+ description: IANA timezone used when evaluating active work windows for the manager.
529
+ howToGet: Use the project team's operating timezone, such as America/New_York.
530
+ sensitivity: plain
531
+ targets:
532
+ - local-file
533
+ - github-variable
534
+ - railway-var
535
+ scopes:
536
+ - local
537
+ - staging
538
+ - prod
539
+ storage: scoped
540
+ requirement: optional
541
+ purposes:
542
+ - dev
543
+ - deploy
544
+ - config
545
+ validation:
546
+ kind: nonempty
547
+ sourcePriority:
548
+ - machine-config
549
+ - process-env
550
+ TREESEED_WORKDAY_WINDOWS_JSON:
551
+ label: Workday schedule JSON
552
+ group: hosting
553
+ description: JSON array of recurring work windows used by the manager to decide when to open or close a workday.
554
+ howToGet: Provide a JSON value like [{"days":[1,2,3,4,5],"startTime":"09:00","endTime":"17:00"}].
555
+ sensitivity: plain
556
+ targets:
557
+ - local-file
558
+ - github-variable
559
+ - railway-var
560
+ scopes:
561
+ - local
562
+ - staging
563
+ - prod
564
+ storage: scoped
565
+ requirement: optional
566
+ purposes:
567
+ - dev
568
+ - deploy
569
+ - config
570
+ validation:
571
+ kind: nonempty
572
+ sourcePriority:
573
+ - machine-config
574
+ - process-env
575
+ TREESEED_WORKDAY_TASK_CREDIT_BUDGET:
576
+ label: Daily task-credit budget
577
+ group: hosting
578
+ description: Maximum task credits the manager may allocate during one workday before it stops seeding new work.
579
+ howToGet: Choose the daily throughput ceiling that matches the team's Copilot and infrastructure budget.
580
+ sensitivity: plain
581
+ targets:
582
+ - local-file
583
+ - github-variable
584
+ - railway-var
585
+ scopes:
586
+ - local
587
+ - staging
588
+ - prod
589
+ storage: scoped
590
+ requirement: optional
591
+ purposes:
592
+ - dev
593
+ - deploy
594
+ - config
595
+ validation:
596
+ kind: number
597
+ sourcePriority:
598
+ - machine-config
599
+ - process-env
600
+ TREESEED_MANAGER_MAX_QUEUED_TASKS:
601
+ label: Manager max queued tasks
602
+ group: hosting
603
+ description: Upper bound on how many runnable tasks the manager will keep queued at one time.
604
+ howToGet: Start small so queue top-ups stay budget-aware and incremental.
605
+ sensitivity: plain
606
+ targets:
607
+ - local-file
608
+ - github-variable
609
+ - railway-var
610
+ scopes:
611
+ - local
612
+ - staging
613
+ - prod
614
+ storage: scoped
615
+ requirement: optional
616
+ purposes:
617
+ - dev
618
+ - deploy
619
+ - config
620
+ validation:
621
+ kind: number
622
+ sourcePriority:
623
+ - machine-config
624
+ - process-env
625
+ TREESEED_MANAGER_MAX_QUEUED_CREDITS:
626
+ label: Manager max queued credits
627
+ group: hosting
628
+ description: Credit ceiling for runnable queued work so the manager never seeds the entire day’s budget at once.
629
+ howToGet: Set this lower than or equal to the daily task-credit budget.
630
+ sensitivity: plain
631
+ targets:
632
+ - local-file
633
+ - github-variable
634
+ - railway-var
635
+ scopes:
636
+ - local
637
+ - staging
638
+ - prod
639
+ storage: scoped
640
+ requirement: optional
641
+ purposes:
642
+ - dev
643
+ - deploy
644
+ - config
645
+ validation:
646
+ kind: number
647
+ sourcePriority:
648
+ - machine-config
649
+ - process-env
650
+ TREESEED_MANAGER_PRIORITY_MODELS:
651
+ label: Manager priority models
652
+ group: hosting
653
+ description: Comma-separated content models the manager should evaluate when building priority snapshots.
654
+ howToGet: Leave unset to use the default objective/question/note/page/book/knowledge set.
655
+ sensitivity: plain
656
+ targets:
657
+ - local-file
658
+ - github-variable
659
+ - railway-var
660
+ scopes:
661
+ - local
662
+ - staging
663
+ - prod
664
+ storage: scoped
665
+ requirement: optional
666
+ purposes:
667
+ - dev
668
+ - deploy
669
+ - config
670
+ validation:
671
+ kind: nonempty
672
+ sourcePriority:
673
+ - machine-config
674
+ - process-env
675
+ TREESEED_TASK_CREDIT_WEIGHTS_JSON:
676
+ label: Task credit weights JSON
677
+ group: hosting
678
+ description: JSON array of task-type or model-specific credit weights used when estimating daily budget consumption.
679
+ howToGet: Provide a JSON value such as [{"type":"question","credits":3}].
680
+ sensitivity: plain
681
+ targets:
682
+ - local-file
683
+ - github-variable
684
+ - railway-var
685
+ scopes:
686
+ - local
687
+ - staging
688
+ - prod
689
+ storage: scoped
690
+ requirement: optional
691
+ purposes:
692
+ - dev
693
+ - deploy
694
+ - config
695
+ validation:
696
+ kind: nonempty
697
+ sourcePriority:
698
+ - machine-config
699
+ - process-env
700
+ TREESEED_WORKER_POOL_SCALER:
701
+ label: Worker pool scaler kind
702
+ group: hosting
703
+ description: Selects the runtime worker scaler adapter. Hosted Railway projects should normally use railway.
704
+ howToGet: Set this to railway for hosted projects or noop/manual for self-hosted environments without automatic scale control.
705
+ sensitivity: plain
706
+ targets:
707
+ - local-file
708
+ - github-variable
709
+ - railway-var
710
+ scopes:
711
+ - local
712
+ - staging
713
+ - prod
714
+ storage: scoped
715
+ requirement: optional
716
+ purposes:
717
+ - dev
718
+ - deploy
719
+ - config
720
+ validation:
721
+ kind: enum
722
+ values:
723
+ - railway
724
+ - noop
725
+ - manual
726
+ sourcePriority:
727
+ - machine-config
728
+ - process-env
729
+ TREESEED_RAILWAY_PROJECT_ID:
730
+ label: Railway project ID
731
+ group: hosting
732
+ description: Railway project identifier used by runtime scaling and reconciliation helpers for the active environment.
733
+ howToGet: Copy the project ID from Railway when automatic worker scaling is enabled.
734
+ sensitivity: plain
735
+ targets:
736
+ - local-file
737
+ - github-variable
738
+ - railway-var
739
+ scopes:
740
+ - local
741
+ - staging
742
+ - prod
743
+ storage: scoped
744
+ requirement: optional
745
+ purposes:
746
+ - dev
747
+ - deploy
748
+ - config
749
+ validation:
750
+ kind: nonempty
751
+ sourcePriority:
752
+ - machine-config
753
+ - process-env
754
+ TREESEED_RAILWAY_ENVIRONMENT_ID:
755
+ label: Railway environment ID
756
+ group: hosting
757
+ description: Railway environment identifier used by the runtime scaler when adjusting worker replicas.
758
+ howToGet: Copy the environment ID from Railway for the matching staging or production environment.
759
+ sensitivity: plain
760
+ targets:
761
+ - local-file
762
+ - github-variable
763
+ - railway-var
764
+ scopes:
765
+ - local
766
+ - staging
767
+ - prod
768
+ storage: scoped
769
+ requirement: optional
770
+ purposes:
771
+ - dev
772
+ - deploy
773
+ - config
774
+ validation:
775
+ kind: nonempty
776
+ sourcePriority:
777
+ - machine-config
778
+ - process-env
779
+ TREESEED_RAILWAY_WORKER_SERVICE_ID:
780
+ label: Railway worker service ID
781
+ group: hosting
782
+ description: Railway service identifier for the scalable worker pool that the manager adjusts at runtime.
783
+ howToGet: Copy the worker service ID from Railway after the hosted project environment is provisioned.
784
+ sensitivity: plain
785
+ targets:
786
+ - local-file
787
+ - github-variable
788
+ - railway-var
789
+ scopes:
790
+ - local
791
+ - staging
792
+ - prod
793
+ storage: scoped
794
+ requirement: optional
795
+ purposes:
796
+ - dev
797
+ - deploy
798
+ - config
799
+ validation:
800
+ kind: nonempty
801
+ sourcePriority:
802
+ - machine-config
803
+ - process-env
127
804
  TREESEED_FORM_TOKEN_SECRET:
128
805
  label: Forms token secret
129
806
  group: forms