@cat-factory/contracts 0.64.0 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/environments.d.ts +679 -0
- package/dist/environments.d.ts.map +1 -1
- package/dist/environments.js +32 -1
- package/dist/environments.js.map +1 -1
- package/dist/routes/auth.d.ts +16 -0
- package/dist/routes/auth.d.ts.map +1 -1
- package/dist/routes/auth.js +8 -0
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/environmentUserHandlers.d.ts +6 -0
- package/dist/routes/environmentUserHandlers.d.ts.map +1 -1
- package/dist/routes/environments.d.ts +358 -0
- package/dist/routes/environments.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/environments.d.ts
CHANGED
|
@@ -403,6 +403,12 @@ export declare const kubernetesEnvironmentConfigSchema: v.ObjectSchema<{
|
|
|
403
403
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
404
404
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
405
405
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
406
|
+
/**
|
|
407
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
408
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Only the
|
|
409
|
+
* container-backed render path honors it; absent ⇒ the harness default (180s).
|
|
410
|
+
*/
|
|
411
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
406
412
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
407
413
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
408
414
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -560,6 +566,193 @@ export declare const kubernetesSecretInjectionSchema: v.VariantSchema<"mode", [v
|
|
|
560
566
|
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
561
567
|
}, undefined>], undefined>;
|
|
562
568
|
export type KubernetesSecretInjection = v.InferOutput<typeof kubernetesSecretInjectionSchema>;
|
|
569
|
+
/**
|
|
570
|
+
* The full Kubernetes provision config the deploy adapter consumes: the combined cluster +
|
|
571
|
+
* URL + manifest-source config PLUS the kustomize/helm render inputs (image overrides, helm
|
|
572
|
+
* releases, secret injections). It is assembled at provision time by MERGING the workspace
|
|
573
|
+
* kube engine config (the "how": apiserver, sizing, shared helm releases) with the service's
|
|
574
|
+
* own provisioning (the "what/where": manifest source, per-environment helm releases, image
|
|
575
|
+
* overrides, secret injections) — so the provider reads everything it needs from one place.
|
|
576
|
+
* The native in-Worker REST adapter ignores the render fields (raw manifests only); the
|
|
577
|
+
* container-backed deploy adapter consumes them. Carries secret KEYS, never values.
|
|
578
|
+
*/
|
|
579
|
+
export declare const kubernetesProvisionConfigSchema: v.ObjectSchema<{
|
|
580
|
+
/** Human label for the connection (shown in the UI). */
|
|
581
|
+
readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
582
|
+
/** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
|
|
583
|
+
readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
584
|
+
/** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
|
|
585
|
+
readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
586
|
+
/** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
|
|
587
|
+
readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
588
|
+
/**
|
|
589
|
+
* Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
|
|
590
|
+
* Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
|
|
591
|
+
* default derived from the PR number / block id.
|
|
592
|
+
*/
|
|
593
|
+
readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
594
|
+
/** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
|
|
595
|
+
readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
|
|
596
|
+
readonly type: v.LiteralSchema<"colocated", undefined>;
|
|
597
|
+
/** File or directory path within the PR repo (read at the PR head branch). */
|
|
598
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
599
|
+
readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
|
|
600
|
+
}, undefined>, v.ObjectSchema<{
|
|
601
|
+
readonly type: v.LiteralSchema<"separate", undefined>;
|
|
602
|
+
/** `owner/repo` of the manifests repo. */
|
|
603
|
+
readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
|
|
604
|
+
/** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
|
|
605
|
+
readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
606
|
+
/** File or directory path within the manifests repo. */
|
|
607
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
608
|
+
readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
|
|
609
|
+
}, undefined>], undefined>;
|
|
610
|
+
/** How the environment URL is derived once applied. */
|
|
611
|
+
readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
|
|
612
|
+
readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
|
|
613
|
+
/** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
|
|
614
|
+
readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
615
|
+
readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
|
|
616
|
+
}, undefined>, v.ObjectSchema<{
|
|
617
|
+
readonly source: v.LiteralSchema<"ingressStatus", undefined>;
|
|
618
|
+
/** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
|
|
619
|
+
readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
620
|
+
readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
|
|
621
|
+
}, undefined>, v.ObjectSchema<{
|
|
622
|
+
readonly source: v.LiteralSchema<"serviceStatus", undefined>;
|
|
623
|
+
/** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
|
|
624
|
+
readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
625
|
+
readonly port: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 65535, undefined>]>, undefined>;
|
|
626
|
+
readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
|
|
627
|
+
}, undefined>, v.ObjectSchema<{
|
|
628
|
+
readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
|
|
629
|
+
/** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
|
|
630
|
+
readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
631
|
+
readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
|
|
632
|
+
}, undefined>, v.ObjectSchema<{
|
|
633
|
+
readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
|
|
634
|
+
/** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
|
|
635
|
+
readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
636
|
+
readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
|
|
637
|
+
}, undefined>], undefined>;
|
|
638
|
+
/**
|
|
639
|
+
* Optional image reference made available to the manifests as `{{image}}` (e.g. a
|
|
640
|
+
* CI-built image tagged by branch/sha). Itself a template over the provision vars.
|
|
641
|
+
*/
|
|
642
|
+
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
643
|
+
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
644
|
+
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
645
|
+
/**
|
|
646
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
647
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Only the
|
|
648
|
+
* container-backed render path honors it; absent ⇒ the harness default (180s).
|
|
649
|
+
*/
|
|
650
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
651
|
+
/** Extra labels stamped on the namespace + every applied resource. */
|
|
652
|
+
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
653
|
+
/** Extra annotations stamped on the namespace. */
|
|
654
|
+
readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
655
|
+
/** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
|
|
656
|
+
readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
657
|
+
/** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
|
|
658
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
659
|
+
/** Optional replacement repo, templated; absent ⇒ keep the original repo. */
|
|
660
|
+
readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
661
|
+
/** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
|
|
662
|
+
readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
663
|
+
/** Replacement digest, templated; alternative to a tag. */
|
|
664
|
+
readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
665
|
+
}, undefined>, v.CheckAction<{
|
|
666
|
+
name: string;
|
|
667
|
+
newNameTemplate?: string | undefined;
|
|
668
|
+
newTagTemplate?: string | undefined;
|
|
669
|
+
digestTemplate?: string | undefined;
|
|
670
|
+
}, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
|
|
671
|
+
name: string;
|
|
672
|
+
newNameTemplate?: string | undefined;
|
|
673
|
+
newTagTemplate?: string | undefined;
|
|
674
|
+
digestTemplate?: string | undefined;
|
|
675
|
+
}, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
|
|
676
|
+
/** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
|
|
677
|
+
readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
678
|
+
/** Release name. */
|
|
679
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
680
|
+
/** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
|
|
681
|
+
readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
682
|
+
/** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
|
|
683
|
+
readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
684
|
+
/** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
|
|
685
|
+
readonly version: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "version must be a pinned semver (e.g. 1.2.3), not a floating tag like latest or ^1.0.">]>;
|
|
686
|
+
/** Namespace to install into, templated; absent ⇒ the environment namespace. */
|
|
687
|
+
readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
688
|
+
/** Inline `--values` overrides. */
|
|
689
|
+
readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
690
|
+
/** Templated `--set` overrides. */
|
|
691
|
+
readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
692
|
+
/** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
|
|
693
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
694
|
+
/** The value, templated over the provision vars. */
|
|
695
|
+
readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
696
|
+
}, undefined>, undefined>, undefined>;
|
|
697
|
+
/** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
|
|
698
|
+
readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
699
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
700
|
+
readonly secretRef: v.ObjectSchema<{
|
|
701
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
702
|
+
}, undefined>;
|
|
703
|
+
}, undefined>, undefined>, undefined>;
|
|
704
|
+
readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
|
|
705
|
+
}, undefined>, undefined>, undefined>;
|
|
706
|
+
/** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
|
|
707
|
+
readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
708
|
+
readonly mode: v.LiteralSchema<"secret", undefined>;
|
|
709
|
+
/** Target Secret name in the namespace. */
|
|
710
|
+
readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
711
|
+
/** Secret `type`; absent ⇒ `Opaque`. */
|
|
712
|
+
readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
713
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
714
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
715
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
716
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
717
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
718
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
719
|
+
}, undefined>, undefined>;
|
|
720
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
721
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
722
|
+
}, undefined>, v.CheckAction<{
|
|
723
|
+
key: string;
|
|
724
|
+
secretRef?: {
|
|
725
|
+
key: string;
|
|
726
|
+
} | undefined;
|
|
727
|
+
valueTemplate?: string | undefined;
|
|
728
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
729
|
+
}, undefined>, v.ObjectSchema<{
|
|
730
|
+
readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
|
|
731
|
+
/**
|
|
732
|
+
* Repo-relative path within the overlay tree to write the `KEY=value` env file the
|
|
733
|
+
* overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
|
|
734
|
+
* overlay names the Secret.
|
|
735
|
+
*/
|
|
736
|
+
readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
737
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
738
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
739
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
740
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
741
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
742
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
743
|
+
}, undefined>, undefined>;
|
|
744
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
745
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
746
|
+
}, undefined>, v.CheckAction<{
|
|
747
|
+
key: string;
|
|
748
|
+
secretRef?: {
|
|
749
|
+
key: string;
|
|
750
|
+
} | undefined;
|
|
751
|
+
valueTemplate?: string | undefined;
|
|
752
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
753
|
+
}, undefined>], undefined>, undefined>, undefined>;
|
|
754
|
+
}, undefined>;
|
|
755
|
+
export type KubernetesProvisionConfig = v.InferOutput<typeof kubernetesProvisionConfigSchema>;
|
|
563
756
|
/** Built-in environment backend kinds the contract knows by name. */
|
|
564
757
|
export declare const RESERVED_ENVIRONMENT_BACKEND_KINDS: readonly ['manifest', 'kubernetes'];
|
|
565
758
|
/**
|
|
@@ -780,10 +973,115 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
|
|
|
780
973
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
781
974
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
782
975
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
976
|
+
/**
|
|
977
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
978
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Only the
|
|
979
|
+
* container-backed render path honors it; absent ⇒ the harness default (180s).
|
|
980
|
+
*/
|
|
981
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
783
982
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
784
983
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
785
984
|
/** Extra annotations stamped on the namespace. */
|
|
786
985
|
readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
986
|
+
/** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
|
|
987
|
+
readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
988
|
+
/** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
|
|
989
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
990
|
+
/** Optional replacement repo, templated; absent ⇒ keep the original repo. */
|
|
991
|
+
readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
992
|
+
/** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
|
|
993
|
+
readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
994
|
+
/** Replacement digest, templated; alternative to a tag. */
|
|
995
|
+
readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
996
|
+
}, undefined>, v.CheckAction<{
|
|
997
|
+
name: string;
|
|
998
|
+
newNameTemplate?: string | undefined;
|
|
999
|
+
newTagTemplate?: string | undefined;
|
|
1000
|
+
digestTemplate?: string | undefined;
|
|
1001
|
+
}, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
|
|
1002
|
+
name: string;
|
|
1003
|
+
newNameTemplate?: string | undefined;
|
|
1004
|
+
newTagTemplate?: string | undefined;
|
|
1005
|
+
digestTemplate?: string | undefined;
|
|
1006
|
+
}, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
|
|
1007
|
+
/** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
|
|
1008
|
+
readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1009
|
+
/** Release name. */
|
|
1010
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
1011
|
+
/** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
|
|
1012
|
+
readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
1013
|
+
/** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
|
|
1014
|
+
readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
1015
|
+
/** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
|
|
1016
|
+
readonly version: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "version must be a pinned semver (e.g. 1.2.3), not a floating tag like latest or ^1.0.">]>;
|
|
1017
|
+
/** Namespace to install into, templated; absent ⇒ the environment namespace. */
|
|
1018
|
+
readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
1019
|
+
/** Inline `--values` overrides. */
|
|
1020
|
+
readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
1021
|
+
/** Templated `--set` overrides. */
|
|
1022
|
+
readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1023
|
+
/** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
|
|
1024
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
1025
|
+
/** The value, templated over the provision vars. */
|
|
1026
|
+
readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
1027
|
+
}, undefined>, undefined>, undefined>;
|
|
1028
|
+
/** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
|
|
1029
|
+
readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
1030
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
1031
|
+
readonly secretRef: v.ObjectSchema<{
|
|
1032
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
1033
|
+
}, undefined>;
|
|
1034
|
+
}, undefined>, undefined>, undefined>;
|
|
1035
|
+
readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
|
|
1036
|
+
}, undefined>, undefined>, undefined>;
|
|
1037
|
+
/** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
|
|
1038
|
+
readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
1039
|
+
readonly mode: v.LiteralSchema<"secret", undefined>;
|
|
1040
|
+
/** Target Secret name in the namespace. */
|
|
1041
|
+
readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
1042
|
+
/** Secret `type`; absent ⇒ `Opaque`. */
|
|
1043
|
+
readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
1044
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
1045
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
1046
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
1047
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
1048
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
1049
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
1050
|
+
}, undefined>, undefined>;
|
|
1051
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
1052
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
1053
|
+
}, undefined>, v.CheckAction<{
|
|
1054
|
+
key: string;
|
|
1055
|
+
secretRef?: {
|
|
1056
|
+
key: string;
|
|
1057
|
+
} | undefined;
|
|
1058
|
+
valueTemplate?: string | undefined;
|
|
1059
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
1060
|
+
}, undefined>, v.ObjectSchema<{
|
|
1061
|
+
readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
|
|
1062
|
+
/**
|
|
1063
|
+
* Repo-relative path within the overlay tree to write the `KEY=value` env file the
|
|
1064
|
+
* overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
|
|
1065
|
+
* overlay names the Secret.
|
|
1066
|
+
*/
|
|
1067
|
+
readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
1068
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
1069
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
1070
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
1071
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
1072
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
1073
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
1074
|
+
}, undefined>, undefined>;
|
|
1075
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
1076
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
1077
|
+
}, undefined>, v.CheckAction<{
|
|
1078
|
+
key: string;
|
|
1079
|
+
secretRef?: {
|
|
1080
|
+
key: string;
|
|
1081
|
+
} | undefined;
|
|
1082
|
+
valueTemplate?: string | undefined;
|
|
1083
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
1084
|
+
}, undefined>], undefined>, undefined>, undefined>;
|
|
787
1085
|
}, undefined>;
|
|
788
1086
|
}, undefined>, v.ObjectSchema<{
|
|
789
1087
|
readonly kind: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">, v.CheckAction<string, "reserved backend kind">]>;
|
|
@@ -1108,6 +1406,12 @@ export declare const kubernetesEngineConfigSchema: v.ObjectSchema<{
|
|
|
1108
1406
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
1109
1407
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
1110
1408
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
1409
|
+
/**
|
|
1410
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
1411
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
1412
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
1413
|
+
*/
|
|
1414
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
1111
1415
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
1112
1416
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
1113
1417
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -1337,6 +1641,12 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
|
|
|
1337
1641
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
1338
1642
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
1339
1643
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
1644
|
+
/**
|
|
1645
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
1646
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
1647
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
1648
|
+
*/
|
|
1649
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
1340
1650
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
1341
1651
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
1342
1652
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -1427,6 +1737,12 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
|
|
|
1427
1737
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
1428
1738
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
1429
1739
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
1740
|
+
/**
|
|
1741
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
1742
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
1743
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
1744
|
+
*/
|
|
1745
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
1430
1746
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
1431
1747
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
1432
1748
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -1818,6 +2134,12 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
|
|
|
1818
2134
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
1819
2135
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
1820
2136
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
2137
|
+
/**
|
|
2138
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
2139
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
2140
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
2141
|
+
*/
|
|
2142
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
1821
2143
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
1822
2144
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
1823
2145
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -1908,6 +2230,12 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
|
|
|
1908
2230
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
1909
2231
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
1910
2232
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
2233
|
+
/**
|
|
2234
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
2235
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
2236
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
2237
|
+
*/
|
|
2238
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
1911
2239
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
1912
2240
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
1913
2241
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -2274,6 +2602,12 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
|
|
|
2274
2602
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
2275
2603
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
2276
2604
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
2605
|
+
/**
|
|
2606
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
2607
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
2608
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
2609
|
+
*/
|
|
2610
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
2277
2611
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
2278
2612
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
2279
2613
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -2364,6 +2698,12 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
|
|
|
2364
2698
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
2365
2699
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
2366
2700
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
2701
|
+
/**
|
|
2702
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
2703
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
2704
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
2705
|
+
*/
|
|
2706
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
2367
2707
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
2368
2708
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
2369
2709
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -2731,6 +3071,12 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
|
|
|
2731
3071
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
2732
3072
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
2733
3073
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
3074
|
+
/**
|
|
3075
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
3076
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
3077
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
3078
|
+
*/
|
|
3079
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
2734
3080
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
2735
3081
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
2736
3082
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -2821,6 +3167,12 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
|
|
|
2821
3167
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
2822
3168
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
2823
3169
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
3170
|
+
/**
|
|
3171
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
3172
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
3173
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
3174
|
+
*/
|
|
3175
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
2824
3176
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
2825
3177
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
2826
3178
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -3196,6 +3548,12 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
|
|
|
3196
3548
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
3197
3549
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
3198
3550
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
3551
|
+
/**
|
|
3552
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
3553
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
3554
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
3555
|
+
*/
|
|
3556
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
3199
3557
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
3200
3558
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
3201
3559
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -3286,6 +3644,12 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
|
|
|
3286
3644
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
3287
3645
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
3288
3646
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
3647
|
+
/**
|
|
3648
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
3649
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Absent ⇒ the
|
|
3650
|
+
* harness default (180s). Merged into the provision config via `...kube` at provision time.
|
|
3651
|
+
*/
|
|
3652
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
3289
3653
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
3290
3654
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
3291
3655
|
/** Extra annotations stamped on the namespace. */
|
|
@@ -3732,10 +4096,115 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
|
|
|
3732
4096
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
3733
4097
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
3734
4098
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
4099
|
+
/**
|
|
4100
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
4101
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Only the
|
|
4102
|
+
* container-backed render path honors it; absent ⇒ the harness default (180s).
|
|
4103
|
+
*/
|
|
4104
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
3735
4105
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
3736
4106
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
3737
4107
|
/** Extra annotations stamped on the namespace. */
|
|
3738
4108
|
readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
4109
|
+
/** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
|
|
4110
|
+
readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
4111
|
+
/** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
|
|
4112
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4113
|
+
/** Optional replacement repo, templated; absent ⇒ keep the original repo. */
|
|
4114
|
+
readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4115
|
+
/** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
|
|
4116
|
+
readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4117
|
+
/** Replacement digest, templated; alternative to a tag. */
|
|
4118
|
+
readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4119
|
+
}, undefined>, v.CheckAction<{
|
|
4120
|
+
name: string;
|
|
4121
|
+
newNameTemplate?: string | undefined;
|
|
4122
|
+
newTagTemplate?: string | undefined;
|
|
4123
|
+
digestTemplate?: string | undefined;
|
|
4124
|
+
}, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
|
|
4125
|
+
name: string;
|
|
4126
|
+
newNameTemplate?: string | undefined;
|
|
4127
|
+
newTagTemplate?: string | undefined;
|
|
4128
|
+
digestTemplate?: string | undefined;
|
|
4129
|
+
}, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
|
|
4130
|
+
/** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
|
|
4131
|
+
readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4132
|
+
/** Release name. */
|
|
4133
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4134
|
+
/** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
|
|
4135
|
+
readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4136
|
+
/** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
|
|
4137
|
+
readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
4138
|
+
/** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
|
|
4139
|
+
readonly version: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "version must be a pinned semver (e.g. 1.2.3), not a floating tag like latest or ^1.0.">]>;
|
|
4140
|
+
/** Namespace to install into, templated; absent ⇒ the environment namespace. */
|
|
4141
|
+
readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4142
|
+
/** Inline `--values` overrides. */
|
|
4143
|
+
readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
4144
|
+
/** Templated `--set` overrides. */
|
|
4145
|
+
readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4146
|
+
/** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
|
|
4147
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4148
|
+
/** The value, templated over the provision vars. */
|
|
4149
|
+
readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
4150
|
+
}, undefined>, undefined>, undefined>;
|
|
4151
|
+
/** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
|
|
4152
|
+
readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4153
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4154
|
+
readonly secretRef: v.ObjectSchema<{
|
|
4155
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
4156
|
+
}, undefined>;
|
|
4157
|
+
}, undefined>, undefined>, undefined>;
|
|
4158
|
+
readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
|
|
4159
|
+
}, undefined>, undefined>, undefined>;
|
|
4160
|
+
/** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
|
|
4161
|
+
readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
4162
|
+
readonly mode: v.LiteralSchema<"secret", undefined>;
|
|
4163
|
+
/** Target Secret name in the namespace. */
|
|
4164
|
+
readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4165
|
+
/** Secret `type`; absent ⇒ `Opaque`. */
|
|
4166
|
+
readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
4167
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
4168
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
4169
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
4170
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
4171
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
4172
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
4173
|
+
}, undefined>, undefined>;
|
|
4174
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
4175
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
4176
|
+
}, undefined>, v.CheckAction<{
|
|
4177
|
+
key: string;
|
|
4178
|
+
secretRef?: {
|
|
4179
|
+
key: string;
|
|
4180
|
+
} | undefined;
|
|
4181
|
+
valueTemplate?: string | undefined;
|
|
4182
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
4183
|
+
}, undefined>, v.ObjectSchema<{
|
|
4184
|
+
readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
|
|
4185
|
+
/**
|
|
4186
|
+
* Repo-relative path within the overlay tree to write the `KEY=value` env file the
|
|
4187
|
+
* overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
|
|
4188
|
+
* overlay names the Secret.
|
|
4189
|
+
*/
|
|
4190
|
+
readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
4191
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
4192
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
4193
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
4194
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
4195
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
4196
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
4197
|
+
}, undefined>, undefined>;
|
|
4198
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
4199
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
4200
|
+
}, undefined>, v.CheckAction<{
|
|
4201
|
+
key: string;
|
|
4202
|
+
secretRef?: {
|
|
4203
|
+
key: string;
|
|
4204
|
+
} | undefined;
|
|
4205
|
+
valueTemplate?: string | undefined;
|
|
4206
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
4207
|
+
}, undefined>], undefined>, undefined>, undefined>;
|
|
3739
4208
|
}, undefined>;
|
|
3740
4209
|
}, undefined>, v.ObjectSchema<{
|
|
3741
4210
|
readonly kind: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">, v.CheckAction<string, "reserved backend kind">]>;
|
|
@@ -4079,10 +4548,115 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
|
|
|
4079
4548
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4080
4549
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
4081
4550
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
4551
|
+
/**
|
|
4552
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
4553
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Only the
|
|
4554
|
+
* container-backed render path honors it; absent ⇒ the harness default (180s).
|
|
4555
|
+
*/
|
|
4556
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
4082
4557
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
4083
4558
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
4084
4559
|
/** Extra annotations stamped on the namespace. */
|
|
4085
4560
|
readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
4561
|
+
/** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
|
|
4562
|
+
readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
4563
|
+
/** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
|
|
4564
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4565
|
+
/** Optional replacement repo, templated; absent ⇒ keep the original repo. */
|
|
4566
|
+
readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4567
|
+
/** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
|
|
4568
|
+
readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4569
|
+
/** Replacement digest, templated; alternative to a tag. */
|
|
4570
|
+
readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4571
|
+
}, undefined>, v.CheckAction<{
|
|
4572
|
+
name: string;
|
|
4573
|
+
newNameTemplate?: string | undefined;
|
|
4574
|
+
newTagTemplate?: string | undefined;
|
|
4575
|
+
digestTemplate?: string | undefined;
|
|
4576
|
+
}, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
|
|
4577
|
+
name: string;
|
|
4578
|
+
newNameTemplate?: string | undefined;
|
|
4579
|
+
newTagTemplate?: string | undefined;
|
|
4580
|
+
digestTemplate?: string | undefined;
|
|
4581
|
+
}, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
|
|
4582
|
+
/** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
|
|
4583
|
+
readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4584
|
+
/** Release name. */
|
|
4585
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4586
|
+
/** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
|
|
4587
|
+
readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4588
|
+
/** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
|
|
4589
|
+
readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
4590
|
+
/** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
|
|
4591
|
+
readonly version: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "version must be a pinned semver (e.g. 1.2.3), not a floating tag like latest or ^1.0.">]>;
|
|
4592
|
+
/** Namespace to install into, templated; absent ⇒ the environment namespace. */
|
|
4593
|
+
readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4594
|
+
/** Inline `--values` overrides. */
|
|
4595
|
+
readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
4596
|
+
/** Templated `--set` overrides. */
|
|
4597
|
+
readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4598
|
+
/** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
|
|
4599
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4600
|
+
/** The value, templated over the provision vars. */
|
|
4601
|
+
readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
4602
|
+
}, undefined>, undefined>, undefined>;
|
|
4603
|
+
/** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
|
|
4604
|
+
readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
4605
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4606
|
+
readonly secretRef: v.ObjectSchema<{
|
|
4607
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
4608
|
+
}, undefined>;
|
|
4609
|
+
}, undefined>, undefined>, undefined>;
|
|
4610
|
+
readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
|
|
4611
|
+
}, undefined>, undefined>, undefined>;
|
|
4612
|
+
/** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
|
|
4613
|
+
readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
4614
|
+
readonly mode: v.LiteralSchema<"secret", undefined>;
|
|
4615
|
+
/** Target Secret name in the namespace. */
|
|
4616
|
+
readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
4617
|
+
/** Secret `type`; absent ⇒ `Opaque`. */
|
|
4618
|
+
readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
4619
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
4620
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
4621
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
4622
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
4623
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
4624
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
4625
|
+
}, undefined>, undefined>;
|
|
4626
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
4627
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
4628
|
+
}, undefined>, v.CheckAction<{
|
|
4629
|
+
key: string;
|
|
4630
|
+
secretRef?: {
|
|
4631
|
+
key: string;
|
|
4632
|
+
} | undefined;
|
|
4633
|
+
valueTemplate?: string | undefined;
|
|
4634
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
4635
|
+
}, undefined>, v.ObjectSchema<{
|
|
4636
|
+
readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
|
|
4637
|
+
/**
|
|
4638
|
+
* Repo-relative path within the overlay tree to write the `KEY=value` env file the
|
|
4639
|
+
* overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
|
|
4640
|
+
* overlay names the Secret.
|
|
4641
|
+
*/
|
|
4642
|
+
readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
4643
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
4644
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
4645
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
4646
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
4647
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
4648
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
4649
|
+
}, undefined>, undefined>;
|
|
4650
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
4651
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
4652
|
+
}, undefined>, v.CheckAction<{
|
|
4653
|
+
key: string;
|
|
4654
|
+
secretRef?: {
|
|
4655
|
+
key: string;
|
|
4656
|
+
} | undefined;
|
|
4657
|
+
valueTemplate?: string | undefined;
|
|
4658
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
4659
|
+
}, undefined>], undefined>, undefined>, undefined>;
|
|
4086
4660
|
}, undefined>;
|
|
4087
4661
|
}, undefined>, v.ObjectSchema<{
|
|
4088
4662
|
readonly kind: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">, v.CheckAction<string, "reserved backend kind">]>;
|
|
@@ -4428,10 +5002,115 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
|
|
|
4428
5002
|
readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
4429
5003
|
/** Fallback TTL (ms) after which the env is swept + torn down. */
|
|
4430
5004
|
readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
|
|
5005
|
+
/**
|
|
5006
|
+
* How long (seconds) the container deploy adapter waits for each Deployment to roll out
|
|
5007
|
+
* before reporting the env still `provisioning` (the backend keeps polling). Only the
|
|
5008
|
+
* container-backed render path honors it; absent ⇒ the harness default (180s).
|
|
5009
|
+
*/
|
|
5010
|
+
readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
4431
5011
|
/** Extra labels stamped on the namespace + every applied resource. */
|
|
4432
5012
|
readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
4433
5013
|
/** Extra annotations stamped on the namespace. */
|
|
4434
5014
|
readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
5015
|
+
/** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
|
|
5016
|
+
readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
5017
|
+
/** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
|
|
5018
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
5019
|
+
/** Optional replacement repo, templated; absent ⇒ keep the original repo. */
|
|
5020
|
+
readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
5021
|
+
/** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
|
|
5022
|
+
readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
5023
|
+
/** Replacement digest, templated; alternative to a tag. */
|
|
5024
|
+
readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
5025
|
+
}, undefined>, v.CheckAction<{
|
|
5026
|
+
name: string;
|
|
5027
|
+
newNameTemplate?: string | undefined;
|
|
5028
|
+
newTagTemplate?: string | undefined;
|
|
5029
|
+
digestTemplate?: string | undefined;
|
|
5030
|
+
}, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
|
|
5031
|
+
name: string;
|
|
5032
|
+
newNameTemplate?: string | undefined;
|
|
5033
|
+
newTagTemplate?: string | undefined;
|
|
5034
|
+
digestTemplate?: string | undefined;
|
|
5035
|
+
}, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
|
|
5036
|
+
/** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
|
|
5037
|
+
readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
5038
|
+
/** Release name. */
|
|
5039
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
5040
|
+
/** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
|
|
5041
|
+
readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
5042
|
+
/** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
|
|
5043
|
+
readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
5044
|
+
/** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
|
|
5045
|
+
readonly version: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "version must be a pinned semver (e.g. 1.2.3), not a floating tag like latest or ^1.0.">]>;
|
|
5046
|
+
/** Namespace to install into, templated; absent ⇒ the environment namespace. */
|
|
5047
|
+
readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
5048
|
+
/** Inline `--values` overrides. */
|
|
5049
|
+
readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
5050
|
+
/** Templated `--set` overrides. */
|
|
5051
|
+
readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
5052
|
+
/** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
|
|
5053
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
5054
|
+
/** The value, templated over the provision vars. */
|
|
5055
|
+
readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
|
|
5056
|
+
}, undefined>, undefined>, undefined>;
|
|
5057
|
+
/** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
|
|
5058
|
+
readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
5059
|
+
readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
5060
|
+
readonly secretRef: v.ObjectSchema<{
|
|
5061
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
5062
|
+
}, undefined>;
|
|
5063
|
+
}, undefined>, undefined>, undefined>;
|
|
5064
|
+
readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
|
|
5065
|
+
}, undefined>, undefined>, undefined>;
|
|
5066
|
+
/** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
|
|
5067
|
+
readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
5068
|
+
readonly mode: v.LiteralSchema<"secret", undefined>;
|
|
5069
|
+
/** Target Secret name in the namespace. */
|
|
5070
|
+
readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
5071
|
+
/** Secret `type`; absent ⇒ `Opaque`. */
|
|
5072
|
+
readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
5073
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
5074
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
5075
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
5076
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
5077
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
5078
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
5079
|
+
}, undefined>, undefined>;
|
|
5080
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
5081
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
5082
|
+
}, undefined>, v.CheckAction<{
|
|
5083
|
+
key: string;
|
|
5084
|
+
secretRef?: {
|
|
5085
|
+
key: string;
|
|
5086
|
+
} | undefined;
|
|
5087
|
+
valueTemplate?: string | undefined;
|
|
5088
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
5089
|
+
}, undefined>, v.ObjectSchema<{
|
|
5090
|
+
readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
|
|
5091
|
+
/**
|
|
5092
|
+
* Repo-relative path within the overlay tree to write the `KEY=value` env file the
|
|
5093
|
+
* overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
|
|
5094
|
+
* overlay names the Secret.
|
|
5095
|
+
*/
|
|
5096
|
+
readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
5097
|
+
readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
5098
|
+
/** Key inside the rendered Secret / `.env`. */
|
|
5099
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
|
|
5100
|
+
/** Resolve the value from the workspace encrypted bundle by key. */
|
|
5101
|
+
readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
|
|
5102
|
+
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
|
|
5103
|
+
}, undefined>, undefined>;
|
|
5104
|
+
/** OR a non-secret value, templated over the provision vars. */
|
|
5105
|
+
readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
5106
|
+
}, undefined>, v.CheckAction<{
|
|
5107
|
+
key: string;
|
|
5108
|
+
secretRef?: {
|
|
5109
|
+
key: string;
|
|
5110
|
+
} | undefined;
|
|
5111
|
+
valueTemplate?: string | undefined;
|
|
5112
|
+
}, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
|
|
5113
|
+
}, undefined>], undefined>, undefined>, undefined>;
|
|
4435
5114
|
}, undefined>;
|
|
4436
5115
|
}, undefined>, v.ObjectSchema<{
|
|
4437
5116
|
readonly kind: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">, v.CheckAction<string, "reserved backend kind">]>;
|