@cat-factory/contracts 0.283.0 → 0.284.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.
@@ -1,12 +1,4 @@
1
1
  import * as v from 'valibot';
2
- /**
3
- * A reference to a credential by logical key. Resolves against the workspace's
4
- * encrypted secret bundle (supplied at registration), not an env var.
5
- */
6
- export declare const environmentSecretRefSchema: v.ObjectSchema<{
7
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
8
- }, undefined>;
9
- export type EnvironmentSecretRef = v.InferOutput<typeof environmentSecretRefSchema>;
10
2
  /**
11
3
  * How the worker authenticates to the org's *management* API (the one we call to
12
4
  * provision/status/teardown). Covers the common schemes; each references its
@@ -260,733 +252,82 @@ export declare const environmentManifestSchema: v.ObjectSchema<{
260
252
  readonly tokenPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
261
253
  readonly usernamePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
262
254
  readonly passwordPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
263
- readonly headerName: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
264
- readonly headerValuePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
265
- }, undefined>, undefined>;
266
- }, undefined>;
267
- /** Fallback TTL (ms) when the response carries no explicit expiry. */
268
- readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
269
- /**
270
- * Opaque, provider-specific configuration for a CUSTOM backend (e.g. a project
271
- * reference, link-selection key, status map). The generic HttpEnvironmentProvider ignores it
272
- * entirely; a custom backend — registered by reference into the app-owned
273
- * `EnvironmentBackendRegistry` (see `backend/docs/native-environment-adapter.md`) — reads
274
- * + validates it off the per-call
275
- * `manifest`. This is the per-WORKSPACE config carrier: a custom backend rides the generic
276
- * manifest member of `environmentBackendConfigSchema`, so its bespoke settings live here and
277
- * its credentials in the secret bundle. NOT covered by the manifest URL/SSRF checks (which
278
- * only guard `baseUrl`/`tokenUrl`); a backend that puts a URL here must guard it itself
279
- * (reuse the exported `UrlSafetyPolicy`).
280
- */
281
- readonly providerConfig: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
282
- }, undefined>;
283
- export type EnvironmentManifest = v.InferOutput<typeof environmentManifestSchema>;
284
- /**
285
- * The provision type a service declares — the INPUT SHAPE it produces. `infraless` means
286
- * the service stands up no environment (the Tester runs with no infra). A `custom` service
287
- * additionally pins a `manifestId` (see {@link serviceProvisioningSchema}).
288
- *
289
- * `cloudflare` is the per-PR Cloudflare Workers preview: unlike every other type the service
290
- * declares NOTHING repo-specific here, because the recipe lives in the repo's own preview
291
- * workflow rather than in a compose file or a manifest tree the platform reads. Declaring the
292
- * type is the whole service side of it.
293
- */
294
- export declare const provisionTypeSchema: v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>;
295
- export type ProvisionType = v.InferOutput<typeof provisionTypeSchema>;
296
- /**
297
- * Machine-readable cause of an environment-provisioning failure, surfaced on the run's
298
- * {@link AgentFailure.reason} so the SPA can render precise, actionable guidance instead of
299
- * string-matching the provider prose (the failure analogue of {@link ConflictReason}).
300
- * - `deploy_runner_unwired` — the service's provider needs a container-backed deploy (a real
301
- * render/apply) but no deploy runner is wired on this deployment. The fix is deployment-level
302
- * config (a runner pool / `LOCAL_DEPLOY_RUNTIME` / the Cloudflare DeployContainer binding), so
303
- * the SPA gates its runtime-specific hint on this reason rather than on the prose.
304
- */
305
- export declare const environmentFailureReasonSchema: v.PicklistSchema<["deploy_runner_unwired"], undefined>;
306
- export type EnvironmentFailureReason = v.InferOutput<typeof environmentFailureReasonSchema>;
307
- /**
308
- * The engine a workspace/user handler uses to stand up / connect to an environment for a
309
- * provision type. `none` is the synthetic engine for `infraless`. `local-docker` runs a
310
- * compose stack locally; `local-k3s`/`remote-kubernetes` drive a kube apiserver;
311
- * `cloudflare` drives a repo's preview workflow over the VCS deployments API;
312
- * `remote-custom` is the generic BYO HTTP management API.
313
- */
314
- export declare const infraEngineSchema: v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>;
315
- export type InfraEngine = v.InferOutput<typeof infraEngineSchema>;
316
- /** A custom-manifest-type identifier (lower-kebab slug). */
317
- export declare const manifestIdSchema: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
318
- export type ManifestId = v.InferOutput<typeof manifestIdSchema>;
319
- /** The secret-bundle key the Kubernetes env backend reads the ServiceAccount token from. */
320
- export declare const KUBERNETES_ENV_TOKEN_SECRET_KEY = "apiToken";
321
- /**
322
- * How the manifests at `path` are turned into apiserver-ready resources. `raw` (the
323
- * default, and the only one the in-Worker native REST adapter handles) treats `path` as
324
- * a single manifest file or a flat directory of already-valid YAML docs. `kustomize`
325
- * treats `path` as an overlay directory (`kustomization.yaml` + `resources`/`components`/
326
- * `bases`) that must be `kustomize build`-rendered before apply — which only the
327
- * container-backed deploy adapter can do (it shells out to real `kustomize`/`helm`).
328
- */
329
- export declare const kubernetesRendererSchema: v.PicklistSchema<["raw", "kustomize"], undefined>;
330
- export type KubernetesRenderer = v.InferOutput<typeof kubernetesRendererSchema>;
331
- /**
332
- * Where the per-PR manifests are read from. `colocated` reads them from the block's
333
- * own repo at the PR head branch; `separate` reads them from a different repo (the
334
- * Kubernetes definition often lives outside the service repo). `renderer` (absent ⇒
335
- * `raw`) selects how `path` is turned into resources; `kustomize` requires the
336
- * container-backed deploy adapter.
337
- */
338
- export declare const kubernetesManifestSourceSchema: v.VariantSchema<"type", [v.ObjectSchema<{
339
- readonly type: v.LiteralSchema<"colocated", undefined>;
340
- /** File or directory path within the PR repo (read at the PR head branch). */
341
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
342
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
343
- }, undefined>, v.ObjectSchema<{
344
- readonly type: v.LiteralSchema<"separate", undefined>;
345
- /** `owner/repo` of the manifests repo. */
346
- readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
347
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
348
- readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
349
- /** File or directory path within the manifests repo. */
350
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
351
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
352
- }, undefined>], undefined>;
353
- export type KubernetesManifestSource = v.InferOutput<typeof kubernetesManifestSourceSchema>;
354
- /** How the environment URL is derived once the manifests are applied. */
355
- export declare const kubernetesUrlSourceSchema: v.VariantSchema<"source", [v.ObjectSchema<{
356
- readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
357
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
358
- readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
359
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
360
- }, undefined>, v.ObjectSchema<{
361
- readonly source: v.LiteralSchema<"ingressStatus", undefined>;
362
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
363
- readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
364
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
365
- }, undefined>, v.ObjectSchema<{
366
- readonly source: v.LiteralSchema<"serviceStatus", undefined>;
367
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
368
- readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
369
- 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>;
370
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
371
- }, undefined>, v.ObjectSchema<{
372
- readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
373
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
374
- readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
375
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
376
- }, undefined>, v.ObjectSchema<{
377
- readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
378
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
379
- readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
380
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
381
- }, undefined>], undefined>;
382
- export type KubernetesUrlSource = v.InferOutput<typeof kubernetesUrlSourceSchema>;
383
- export declare const kubernetesEnvironmentConfigSchema: v.ObjectSchema<{
384
- /** Human label for the connection (shown in the UI). */
385
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
386
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
387
- readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
388
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
389
- readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
390
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
391
- readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
392
- /**
393
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
394
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
395
- * default derived from the PR number / block id.
396
- */
397
- readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
398
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
399
- readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
400
- readonly type: v.LiteralSchema<"colocated", undefined>;
401
- /** File or directory path within the PR repo (read at the PR head branch). */
402
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
403
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
404
- }, undefined>, v.ObjectSchema<{
405
- readonly type: v.LiteralSchema<"separate", undefined>;
406
- /** `owner/repo` of the manifests repo. */
407
- readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
408
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
409
- readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
410
- /** File or directory path within the manifests repo. */
411
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
412
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
413
- }, undefined>], undefined>;
414
- /** How the environment URL is derived once applied. */
415
- readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
416
- readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
417
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
418
- readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
419
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
420
- }, undefined>, v.ObjectSchema<{
421
- readonly source: v.LiteralSchema<"ingressStatus", undefined>;
422
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
423
- readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
424
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
425
- }, undefined>, v.ObjectSchema<{
426
- readonly source: v.LiteralSchema<"serviceStatus", undefined>;
427
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
428
- readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
429
- 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>;
430
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
431
- }, undefined>, v.ObjectSchema<{
432
- readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
433
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
434
- readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
435
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
436
- }, undefined>, v.ObjectSchema<{
437
- readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
438
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
439
- readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
440
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
441
- }, undefined>], undefined>;
442
- /**
443
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
444
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
445
- */
446
- readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
447
- /** Fallback TTL (ms) after which the env is swept + torn down. */
448
- readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
449
- /**
450
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
451
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
452
- * container-backed render path honors it; absent ⇒ the harness default (180s).
453
- */
454
- readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
455
- /** Extra labels stamped on the namespace + every applied resource. */
456
- readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
457
- /** Extra annotations stamped on the namespace. */
458
- readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
459
- }, undefined>;
460
- export type KubernetesEnvironmentConfig = v.InferOutput<typeof kubernetesEnvironmentConfigSchema>;
461
- /**
462
- * A structured image override (the kustomize `images:` equivalent, generalizing the
463
- * legacy `{{image}}` text substitution). Matches a container image by `name` and
464
- * overrides its repo and/or tag/digest; the override values are templated over the
465
- * provision vars (e.g. `newTagTemplate: '{{branch}}'`).
466
- */
467
- export declare const kubernetesImageOverrideSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
468
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
469
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
470
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
471
- readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
472
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
473
- readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
474
- /** Replacement digest, templated; alternative to a tag. */
475
- readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
476
- }, undefined>, v.CheckAction<{
477
- name: string;
478
- newNameTemplate?: string | undefined;
479
- newTagTemplate?: string | undefined;
480
- digestTemplate?: string | undefined;
481
- }, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
482
- name: string;
483
- newNameTemplate?: string | undefined;
484
- newTagTemplate?: string | undefined;
485
- digestTemplate?: string | undefined;
486
- }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>;
487
- export type KubernetesImageOverride = v.InferOutput<typeof kubernetesImageOverrideSchema>;
488
- /** A single templated `--set path=value` for a helm release. */
489
- export declare const kubernetesHelmSetSchema: v.ObjectSchema<{
490
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
491
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
492
- /** The value, templated over the provision vars. */
493
- readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
494
- }, undefined>;
495
- export type KubernetesHelmSet = v.InferOutput<typeof kubernetesHelmSetSchema>;
496
- /**
497
- * A helm release the deploy adapter installs/upgrades (`helm upgrade --install`).
498
- * `scope: 'shared'` is a cluster singleton (installed once, never torn down per-PR —
499
- * e.g. an ingress/gateway controller); `per-environment` (the default) re-installs in
500
- * each per-PR namespace. The `version` pin is required so provisioning is deterministic.
501
- */
502
- export declare const kubernetesHelmReleaseSchema: v.ObjectSchema<{
503
- /** Release name. */
504
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
505
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
506
- readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
507
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
508
- readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
509
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
510
- 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.">]>;
511
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
512
- readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
513
- /** Inline `--values` overrides. */
514
- readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
515
- /** Templated `--set` overrides. */
516
- readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
517
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
518
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
519
- /** The value, templated over the provision vars. */
520
- readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
521
- }, undefined>, undefined>, undefined>;
522
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
523
- readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
524
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
525
- readonly secretRef: v.ObjectSchema<{
526
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
527
- }, undefined>;
528
- }, undefined>, undefined>, undefined>;
529
- readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
530
- }, undefined>;
531
- export type KubernetesHelmRelease = v.InferOutput<typeof kubernetesHelmReleaseSchema>;
532
- /** One entry inside an injected Secret: a logical key mapped to a secret-bundle ref OR a templated value. */
533
- export declare const kubernetesSecretEntrySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
534
- /** Key inside the rendered Secret / `.env`. */
535
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
536
- /** Resolve the value from the workspace encrypted bundle by key. */
537
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
538
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
539
- }, undefined>, undefined>;
540
- /** OR a non-secret value, templated over the provision vars. */
541
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
542
- }, undefined>, v.CheckAction<{
543
- key: string;
544
- secretRef?: {
545
- key: string;
546
- } | undefined;
547
- valueTemplate?: string | undefined;
548
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>;
549
- export type KubernetesSecretEntry = v.InferOutput<typeof kubernetesSecretEntrySchema>;
550
- /**
551
- * How the deploy adapter feeds resolved secret values in before apply, discriminated by
552
- * `mode`. The mapping of logical keys is in-repo intent; the values resolve from the
553
- * encrypted bundle at provision time (the config carries secret KEYS, never values).
554
- *
555
- * - `secret`: materialize a `Secret` resource named `secretName` directly in the namespace.
556
- * - `generatorEnvFile`: write the entries as a `KEY=value` `.env` file at `envFilePath`
557
- * (repo-relative, inside the overlay tree) BEFORE `kustomize build`, so the overlay's own
558
- * existing `secretGenerator` consumes it. This is the common ephemeral-environment shape
559
- * where a Component declares `secretGenerator: { envs: ['.env'] }`, the Secret is named by
560
- * the overlay, and the real `.env` is supplied at deploy time (e.g. from a secrets manager).
561
- * Use this instead of `secret` when the manifests already declare a `secretGenerator`, so
562
- * the two don't collide.
563
- */
564
- export declare const kubernetesSecretInjectionSchema: v.VariantSchema<"mode", [v.ObjectSchema<{
565
- readonly mode: v.LiteralSchema<"secret", undefined>;
566
- /** Target Secret name in the namespace. */
567
- readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
568
- /** Secret `type`; absent ⇒ `Opaque`. */
569
- readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
570
- readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
571
- /** Key inside the rendered Secret / `.env`. */
572
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
573
- /** Resolve the value from the workspace encrypted bundle by key. */
574
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
575
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
576
- }, undefined>, undefined>;
577
- /** OR a non-secret value, templated over the provision vars. */
578
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
579
- }, undefined>, v.CheckAction<{
580
- key: string;
581
- secretRef?: {
582
- key: string;
583
- } | undefined;
584
- valueTemplate?: string | undefined;
585
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
586
- }, undefined>, v.ObjectSchema<{
587
- readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
588
- /**
589
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
590
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
591
- * overlay names the Secret.
592
- */
593
- readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
594
- readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
595
- /** Key inside the rendered Secret / `.env`. */
596
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
597
- /** Resolve the value from the workspace encrypted bundle by key. */
598
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
599
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
600
- }, undefined>, undefined>;
601
- /** OR a non-secret value, templated over the provision vars. */
602
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
603
- }, undefined>, v.CheckAction<{
604
- key: string;
605
- secretRef?: {
606
- key: string;
607
- } | undefined;
608
- valueTemplate?: string | undefined;
609
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
610
- }, undefined>], undefined>;
611
- export type KubernetesSecretInjection = v.InferOutput<typeof kubernetesSecretInjectionSchema>;
612
- /**
613
- * The full Kubernetes provision config the deploy adapter consumes: the combined cluster +
614
- * URL + manifest-source config PLUS the kustomize/helm render inputs (image overrides, helm
615
- * releases, secret injections). It is assembled at provision time by MERGING the workspace
616
- * kube engine config (the "how": apiserver, sizing, shared helm releases) with the service's
617
- * own provisioning (the "what/where": manifest source, per-environment helm releases, image
618
- * overrides, secret injections) — so the provider reads everything it needs from one place.
619
- * The native in-Worker REST adapter ignores the render fields (raw manifests only); the
620
- * container-backed deploy adapter consumes them. Carries secret KEYS, never values.
621
- */
622
- export declare const kubernetesProvisionConfigSchema: v.ObjectSchema<{
623
- /** Human label for the connection (shown in the UI). */
624
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
625
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
626
- readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
627
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
628
- readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
629
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
630
- readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
631
- /**
632
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
633
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
634
- * default derived from the PR number / block id.
635
- */
636
- readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
637
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
638
- readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
639
- readonly type: v.LiteralSchema<"colocated", undefined>;
640
- /** File or directory path within the PR repo (read at the PR head branch). */
641
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
642
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
643
- }, undefined>, v.ObjectSchema<{
644
- readonly type: v.LiteralSchema<"separate", undefined>;
645
- /** `owner/repo` of the manifests repo. */
646
- readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
647
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
648
- readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
649
- /** File or directory path within the manifests repo. */
650
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
651
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
652
- }, undefined>], undefined>;
653
- /** How the environment URL is derived once applied. */
654
- readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
655
- readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
656
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
657
- readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
658
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
659
- }, undefined>, v.ObjectSchema<{
660
- readonly source: v.LiteralSchema<"ingressStatus", undefined>;
661
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
662
- readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
663
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
664
- }, undefined>, v.ObjectSchema<{
665
- readonly source: v.LiteralSchema<"serviceStatus", undefined>;
666
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
667
- readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
668
- 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>;
669
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
670
- }, undefined>, v.ObjectSchema<{
671
- readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
672
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
673
- readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
674
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
675
- }, undefined>, v.ObjectSchema<{
676
- readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
677
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
678
- readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
679
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
680
- }, undefined>], undefined>;
681
- /**
682
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
683
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
684
- */
685
- readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
686
- /** Fallback TTL (ms) after which the env is swept + torn down. */
687
- readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
688
- /**
689
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
690
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
691
- * container-backed render path honors it; absent ⇒ the harness default (180s).
692
- */
693
- readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
694
- /** Extra labels stamped on the namespace + every applied resource. */
695
- readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
696
- /** Extra annotations stamped on the namespace. */
697
- readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
698
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
699
- readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
700
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
701
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
702
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
703
- readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
704
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
705
- readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
706
- /** Replacement digest, templated; alternative to a tag. */
707
- readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
708
- }, undefined>, v.CheckAction<{
709
- name: string;
710
- newNameTemplate?: string | undefined;
711
- newTagTemplate?: string | undefined;
712
- digestTemplate?: string | undefined;
713
- }, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
714
- name: string;
715
- newNameTemplate?: string | undefined;
716
- newTagTemplate?: string | undefined;
717
- digestTemplate?: string | undefined;
718
- }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
719
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
720
- readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
721
- /** Release name. */
722
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
723
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
724
- readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
725
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
726
- readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
727
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
728
- 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.">]>;
729
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
730
- readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
731
- /** Inline `--values` overrides. */
732
- readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
733
- /** Templated `--set` overrides. */
734
- readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
735
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
736
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
737
- /** The value, templated over the provision vars. */
738
- readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
739
- }, undefined>, undefined>, undefined>;
740
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
741
- readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
742
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
743
- readonly secretRef: v.ObjectSchema<{
744
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
745
- }, undefined>;
746
- }, undefined>, undefined>, undefined>;
747
- readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
748
- }, undefined>, undefined>, undefined>;
749
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
750
- readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
751
- readonly mode: v.LiteralSchema<"secret", undefined>;
752
- /** Target Secret name in the namespace. */
753
- readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
754
- /** Secret `type`; absent ⇒ `Opaque`. */
755
- readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
756
- readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
757
- /** Key inside the rendered Secret / `.env`. */
758
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
759
- /** Resolve the value from the workspace encrypted bundle by key. */
760
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
761
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
762
- }, undefined>, undefined>;
763
- /** OR a non-secret value, templated over the provision vars. */
764
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
765
- }, undefined>, v.CheckAction<{
766
- key: string;
767
- secretRef?: {
768
- key: string;
769
- } | undefined;
770
- valueTemplate?: string | undefined;
771
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
772
- }, undefined>, v.ObjectSchema<{
773
- readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
774
- /**
775
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
776
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
777
- * overlay names the Secret.
778
- */
779
- readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
780
- readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
781
- /** Key inside the rendered Secret / `.env`. */
782
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
783
- /** Resolve the value from the workspace encrypted bundle by key. */
784
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
785
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
786
- }, undefined>, undefined>;
787
- /** OR a non-secret value, templated over the provision vars. */
788
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
789
- }, undefined>, v.CheckAction<{
790
- key: string;
791
- secretRef?: {
792
- key: string;
793
- } | undefined;
794
- valueTemplate?: string | undefined;
795
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
796
- }, undefined>], undefined>, undefined>, undefined>;
797
- }, undefined>;
798
- export type KubernetesProvisionConfig = v.InferOutput<typeof kubernetesProvisionConfigSchema>;
799
- /**
800
- * The AWS EKS provision config: the full Kubernetes provision config (an EKS apiserver is a
801
- * standard apiserver, so per-PR namespaces + manifest apply are identical) PLUS the AWS
802
- * `region` + `clusterName` needed to mint the IAM apiserver token. The AWS credentials ride
803
- * the secret bundle; the SigV4/STS minting lives in `@cat-factory/eks`.
804
- */
805
- export declare const eksProvisionConfigSchema: v.ObjectSchema<{
806
- readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be an AWS region slug">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
807
- readonly clusterName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
808
- readonly stsHost: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be a bare host or host:port">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
809
- /** Human label for the connection (shown in the UI). */
810
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
811
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
812
- readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
813
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
814
- readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
815
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
816
- readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
817
- /**
818
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
819
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
820
- * default derived from the PR number / block id.
821
- */
822
- readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
823
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
824
- readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
825
- readonly type: v.LiteralSchema<"colocated", undefined>;
826
- /** File or directory path within the PR repo (read at the PR head branch). */
827
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
828
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
829
- }, undefined>, v.ObjectSchema<{
830
- readonly type: v.LiteralSchema<"separate", undefined>;
831
- /** `owner/repo` of the manifests repo. */
832
- readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
833
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
834
- readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
835
- /** File or directory path within the manifests repo. */
836
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
837
- readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
838
- }, undefined>], undefined>;
839
- /** How the environment URL is derived once applied. */
840
- readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
841
- readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
842
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
843
- readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
844
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
845
- }, undefined>, v.ObjectSchema<{
846
- readonly source: v.LiteralSchema<"ingressStatus", undefined>;
847
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
848
- readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
849
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
850
- }, undefined>, v.ObjectSchema<{
851
- readonly source: v.LiteralSchema<"serviceStatus", undefined>;
852
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
853
- readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
854
- 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>;
855
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
856
- }, undefined>, v.ObjectSchema<{
857
- readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
858
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
859
- readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
860
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
861
- }, undefined>, v.ObjectSchema<{
862
- readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
863
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
864
- readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
865
- readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
866
- }, undefined>], undefined>;
867
- /**
868
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
869
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
870
- */
871
- readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
872
- /** Fallback TTL (ms) after which the env is swept + torn down. */
873
- readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
874
- /**
875
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
876
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
877
- * container-backed render path honors it; absent ⇒ the harness default (180s).
878
- */
879
- readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
880
- /** Extra labels stamped on the namespace + every applied resource. */
881
- readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
882
- /** Extra annotations stamped on the namespace. */
883
- readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
884
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
885
- readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
886
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
887
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
888
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
889
- readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
890
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
891
- readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
892
- /** Replacement digest, templated; alternative to a tag. */
893
- readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
894
- }, undefined>, v.CheckAction<{
895
- name: string;
896
- newNameTemplate?: string | undefined;
897
- newTagTemplate?: string | undefined;
898
- digestTemplate?: string | undefined;
899
- }, "an image override must set at least one of newNameTemplate, newTagTemplate, or digestTemplate.">, v.CheckAction<{
900
- name: string;
901
- newNameTemplate?: string | undefined;
902
- newTagTemplate?: string | undefined;
903
- digestTemplate?: string | undefined;
904
- }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
905
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
906
- readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
907
- /** Release name. */
908
- readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
909
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
910
- readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
911
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
912
- readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
913
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
914
- 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.">]>;
915
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
916
- readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
917
- /** Inline `--values` overrides. */
918
- readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
919
- /** Templated `--set` overrides. */
920
- readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
921
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
922
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
923
- /** The value, templated over the provision vars. */
924
- readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
925
- }, undefined>, undefined>, undefined>;
926
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
927
- readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
928
- readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
929
- readonly secretRef: v.ObjectSchema<{
930
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
931
- }, undefined>;
932
- }, undefined>, undefined>, undefined>;
933
- readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
934
- }, undefined>, undefined>, undefined>;
935
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
936
- readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
937
- readonly mode: v.LiteralSchema<"secret", undefined>;
938
- /** Target Secret name in the namespace. */
939
- readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
940
- /** Secret `type`; absent ⇒ `Opaque`. */
941
- readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
942
- readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
943
- /** Key inside the rendered Secret / `.env`. */
944
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
945
- /** Resolve the value from the workspace encrypted bundle by key. */
946
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
947
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
948
- }, undefined>, undefined>;
949
- /** OR a non-secret value, templated over the provision vars. */
950
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
951
- }, undefined>, v.CheckAction<{
952
- key: string;
953
- secretRef?: {
954
- key: string;
955
- } | undefined;
956
- valueTemplate?: string | undefined;
957
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
958
- }, undefined>, v.ObjectSchema<{
959
- readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
960
- /**
961
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
962
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
963
- * overlay names the Secret.
964
- */
965
- readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
966
- readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
967
- /** Key inside the rendered Secret / `.env`. */
968
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
969
- /** Resolve the value from the workspace encrypted bundle by key. */
970
- readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
971
- readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
972
- }, undefined>, undefined>;
973
- /** OR a non-secret value, templated over the provision vars. */
974
- readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
975
- }, undefined>, v.CheckAction<{
976
- key: string;
977
- secretRef?: {
978
- key: string;
979
- } | undefined;
980
- valueTemplate?: string | undefined;
981
- }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
982
- }, undefined>], undefined>, undefined>, undefined>;
255
+ readonly headerName: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
256
+ readonly headerValuePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
257
+ }, undefined>, undefined>;
258
+ }, undefined>;
259
+ /** Fallback TTL (ms) when the response carries no explicit expiry. */
260
+ readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
261
+ /**
262
+ * Opaque, provider-specific configuration for a CUSTOM backend (e.g. a project
263
+ * reference, link-selection key, status map). The generic HttpEnvironmentProvider ignores it
264
+ * entirely; a custom backend — registered by reference into the app-owned
265
+ * `EnvironmentBackendRegistry` (see `backend/docs/native-environment-adapter.md`) — reads
266
+ * + validates it off the per-call
267
+ * `manifest`. This is the per-WORKSPACE config carrier: a custom backend rides the generic
268
+ * manifest member of `environmentBackendConfigSchema`, so its bespoke settings live here and
269
+ * its credentials in the secret bundle. NOT covered by the manifest URL/SSRF checks (which
270
+ * only guard `baseUrl`/`tokenUrl`); a backend that puts a URL here must guard it itself
271
+ * (reuse the exported `UrlSafetyPolicy`).
272
+ */
273
+ readonly providerConfig: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
983
274
  }, undefined>;
984
- export type EksProvisionConfig = v.InferOutput<typeof eksProvisionConfigSchema>;
275
+ export type EnvironmentManifest = v.InferOutput<typeof environmentManifestSchema>;
276
+ /**
277
+ * The provision type a service declares — the INPUT SHAPE it produces. `infraless` means
278
+ * the service stands up no environment (the Tester runs with no infra). A `custom` service
279
+ * additionally pins a `manifestId` (see {@link serviceProvisioningSchema}).
280
+ *
281
+ * `cloudflare` is the per-PR Cloudflare Workers preview: unlike every other type the service
282
+ * declares NOTHING repo-specific here, because the recipe lives in the repo's own preview
283
+ * workflow rather than in a compose file or a manifest tree the platform reads. Declaring the
284
+ * type is the whole service side of it.
285
+ */
286
+ export declare const provisionTypeSchema: v.PicklistSchema<["kubernetes", "docker-compose", "cloudflare", "custom", "infraless"], undefined>;
287
+ export type ProvisionType = v.InferOutput<typeof provisionTypeSchema>;
288
+ /**
289
+ * Machine-readable cause of an environment-provisioning failure, surfaced on the run's
290
+ * {@link AgentFailure.reason} so the SPA can render precise, actionable guidance instead of
291
+ * string-matching the provider prose (the failure analogue of {@link ConflictReason}).
292
+ * - `deploy_runner_unwired` — the service's provider needs a container-backed deploy (a real
293
+ * render/apply) but no deploy runner is wired on this deployment. The fix is deployment-level
294
+ * config (a runner pool / `LOCAL_DEPLOY_RUNTIME` / the Cloudflare DeployContainer binding), so
295
+ * the SPA gates its runtime-specific hint on this reason rather than on the prose.
296
+ */
297
+ export declare const environmentFailureReasonSchema: v.PicklistSchema<["deploy_runner_unwired"], undefined>;
298
+ export type EnvironmentFailureReason = v.InferOutput<typeof environmentFailureReasonSchema>;
299
+ /**
300
+ * The engine a workspace/user handler uses to stand up / connect to an environment for a
301
+ * provision type. `none` is the synthetic engine for `infraless`. `local-docker` runs a
302
+ * compose stack locally; `local-k3s`/`remote-kubernetes` drive a kube apiserver;
303
+ * `cloudflare` drives a repo's preview workflow over the VCS deployments API;
304
+ * `remote-custom` is the generic BYO HTTP management API.
305
+ */
306
+ export declare const infraEngineSchema: v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "cloudflare", "remote-custom", "none"], undefined>;
307
+ export type InfraEngine = v.InferOutput<typeof infraEngineSchema>;
308
+ /** A custom-manifest-type identifier (lower-kebab slug). */
309
+ export declare const manifestIdSchema: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
310
+ export type ManifestId = v.InferOutput<typeof manifestIdSchema>;
985
311
  /** The secret-bundle key the Cloudflare env backend reads its VCS API token from. */
986
312
  export declare const CLOUDFLARE_ENV_TOKEN_SECRET_KEY = "githubToken";
987
313
  /** Default templates, exported so the provider, the UI hints and the docs cannot drift apart. */
988
314
  export declare const CLOUDFLARE_DEFAULT_WORKER_NAME_TEMPLATE = "cat-factory-pr-{{pullNumber}}";
989
315
  export declare const CLOUDFLARE_DEFAULT_ENVIRONMENT_NAME_TEMPLATE = "pr-{{pullNumber}}";
316
+ /**
317
+ * What it takes to REACH the VCS API this backend drives, split out of the full config for the
318
+ * reason {@link kubernetesConnectionConfigSchema} states: teardown posts one `inactive`
319
+ * deployment status and needs nothing else, so a `workersSubdomain` or name template that
320
+ * stopped matching the contract must not be what strands a live preview.
321
+ *
322
+ * `apiBaseUrl` stays validated because the fallback is the PUBLIC API root: silently posting a
323
+ * GitHub Enterprise deployment's teardown to `api.github.com` is a wrong-host write, not a
324
+ * degradation. Absent is fine (that IS the documented default); present but unusable is not.
325
+ */
326
+ export declare const cloudflareConnectionConfigSchema: v.ObjectSchema<{
327
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
328
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
329
+ }, undefined>;
330
+ export type CloudflareConnectionConfig = v.InferOutput<typeof cloudflareConnectionConfigSchema>;
990
331
  /**
991
332
  * The Cloudflare preview engine connection (the "how"). Everything here is non-secret; the
992
333
  * VCS API token rides the encrypted secret bundle under
@@ -999,6 +340,8 @@ export declare const CLOUDFLARE_DEFAULT_ENVIRONMENT_NAME_TEMPLATE = "pr-{{pullNu
999
340
  * deployment that copied `deploy/preview` unmodified sets neither.
1000
341
  */
1001
342
  export declare const cloudflareEnvironmentConfigSchema: v.ObjectSchema<{
343
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
344
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1002
345
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1003
346
  /**
1004
347
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -1007,8 +350,6 @@ export declare const cloudflareEnvironmentConfigSchema: v.ObjectSchema<{
1007
350
  * takes minutes.
1008
351
  */
1009
352
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
1010
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
1011
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1012
353
  /**
1013
354
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
1014
355
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -1178,90 +519,53 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1178
519
  }, undefined>, v.ObjectSchema<{
1179
520
  readonly kind: v.LiteralSchema<"kubernetes", undefined>;
1180
521
  readonly kubernetes: v.ObjectSchema<{
1181
- /** Human label for the connection (shown in the UI). */
1182
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1183
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
1184
522
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1185
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
1186
523
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1187
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
1188
524
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1189
- /**
1190
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
1191
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
1192
- * default derived from the PR number / block id.
1193
- */
525
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1194
526
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1195
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
1196
527
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
1197
528
  readonly type: v.LiteralSchema<"colocated", undefined>;
1198
- /** File or directory path within the PR repo (read at the PR head branch). */
1199
529
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1200
530
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
1201
531
  }, undefined>, v.ObjectSchema<{
1202
532
  readonly type: v.LiteralSchema<"separate", undefined>;
1203
- /** `owner/repo` of the manifests repo. */
1204
533
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
1205
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
1206
534
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1207
- /** File or directory path within the manifests repo. */
1208
535
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1209
536
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
1210
537
  }, undefined>], undefined>;
1211
- /** How the environment URL is derived once applied. */
1212
538
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
1213
539
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
1214
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
1215
540
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1216
541
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1217
542
  }, undefined>, v.ObjectSchema<{
1218
543
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
1219
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
1220
544
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1221
545
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1222
546
  }, undefined>, v.ObjectSchema<{
1223
547
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
1224
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
1225
548
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
1226
549
  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>;
1227
550
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1228
551
  }, undefined>, v.ObjectSchema<{
1229
552
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
1230
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
1231
553
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1232
554
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1233
555
  }, undefined>, v.ObjectSchema<{
1234
556
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
1235
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
1236
557
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1237
558
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1238
559
  }, undefined>], undefined>;
1239
- /**
1240
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
1241
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
1242
- */
1243
560
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1244
- /** Fallback TTL (ms) after which the env is swept + torn down. */
1245
561
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
1246
- /**
1247
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
1248
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
1249
- * container-backed render path honors it; absent ⇒ the harness default (180s).
1250
- */
1251
562
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
1252
- /** Extra labels stamped on the namespace + every applied resource. */
1253
563
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
1254
- /** Extra annotations stamped on the namespace. */
1255
564
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
1256
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
1257
565
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1258
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
1259
566
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1260
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
1261
567
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1262
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
1263
568
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1264
- /** Replacement digest, templated; alternative to a tag. */
1265
569
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1266
570
  }, undefined>, v.CheckAction<{
1267
571
  name: string;
@@ -1274,28 +578,17 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1274
578
  newTagTemplate?: string | undefined;
1275
579
  digestTemplate?: string | undefined;
1276
580
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
1277
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
1278
581
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1279
- /** Release name. */
1280
582
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1281
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
1282
583
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1283
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
1284
584
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1285
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
1286
585
  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.">]>;
1287
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
1288
586
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1289
- /** Inline `--values` overrides. */
1290
587
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
1291
- /** Templated `--set` overrides. */
1292
588
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1293
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
1294
589
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1295
- /** The value, templated over the provision vars. */
1296
590
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
1297
591
  }, undefined>, undefined>, undefined>;
1298
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
1299
592
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1300
593
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1301
594
  readonly secretRef: v.ObjectSchema<{
@@ -1304,21 +597,15 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1304
597
  }, undefined>, undefined>, undefined>;
1305
598
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
1306
599
  }, undefined>, undefined>, undefined>;
1307
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
1308
600
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
1309
601
  readonly mode: v.LiteralSchema<"secret", undefined>;
1310
- /** Target Secret name in the namespace. */
1311
602
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1312
- /** Secret `type`; absent ⇒ `Opaque`. */
1313
603
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1314
604
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1315
- /** Key inside the rendered Secret / `.env`. */
1316
605
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
1317
- /** Resolve the value from the workspace encrypted bundle by key. */
1318
606
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
1319
607
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1320
608
  }, undefined>, undefined>;
1321
- /** OR a non-secret value, templated over the provision vars. */
1322
609
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1323
610
  }, undefined>, v.CheckAction<{
1324
611
  key: string;
@@ -1329,20 +616,12 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1329
616
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
1330
617
  }, undefined>, v.ObjectSchema<{
1331
618
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
1332
- /**
1333
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
1334
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
1335
- * overlay names the Secret.
1336
- */
1337
619
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1338
620
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1339
- /** Key inside the rendered Secret / `.env`. */
1340
621
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
1341
- /** Resolve the value from the workspace encrypted bundle by key. */
1342
622
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
1343
623
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1344
624
  }, undefined>, undefined>;
1345
- /** OR a non-secret value, templated over the provision vars. */
1346
625
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1347
626
  }, undefined>, v.CheckAction<{
1348
627
  key: string;
@@ -1359,90 +638,53 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1359
638
  readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be an AWS region slug">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1360
639
  readonly clusterName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1361
640
  readonly stsHost: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be a bare host or host:port">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
1362
- /** Human label for the connection (shown in the UI). */
1363
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1364
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
1365
641
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1366
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
1367
642
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1368
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
1369
643
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1370
- /**
1371
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
1372
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
1373
- * default derived from the PR number / block id.
1374
- */
644
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1375
645
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
1376
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
1377
646
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
1378
647
  readonly type: v.LiteralSchema<"colocated", undefined>;
1379
- /** File or directory path within the PR repo (read at the PR head branch). */
1380
648
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1381
649
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
1382
650
  }, undefined>, v.ObjectSchema<{
1383
651
  readonly type: v.LiteralSchema<"separate", undefined>;
1384
- /** `owner/repo` of the manifests repo. */
1385
652
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
1386
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
1387
653
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1388
- /** File or directory path within the manifests repo. */
1389
654
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1390
655
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
1391
656
  }, undefined>], undefined>;
1392
- /** How the environment URL is derived once applied. */
1393
657
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
1394
658
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
1395
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
1396
659
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1397
660
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1398
661
  }, undefined>, v.ObjectSchema<{
1399
662
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
1400
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
1401
663
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1402
664
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1403
665
  }, undefined>, v.ObjectSchema<{
1404
666
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
1405
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
1406
667
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
1407
668
  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>;
1408
669
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1409
670
  }, undefined>, v.ObjectSchema<{
1410
671
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
1411
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
1412
672
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1413
673
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1414
674
  }, undefined>, v.ObjectSchema<{
1415
675
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
1416
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
1417
676
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1418
677
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1419
678
  }, undefined>], undefined>;
1420
- /**
1421
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
1422
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
1423
- */
1424
679
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1425
- /** Fallback TTL (ms) after which the env is swept + torn down. */
1426
680
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
1427
- /**
1428
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
1429
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
1430
- * container-backed render path honors it; absent ⇒ the harness default (180s).
1431
- */
1432
681
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
1433
- /** Extra labels stamped on the namespace + every applied resource. */
1434
682
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
1435
- /** Extra annotations stamped on the namespace. */
1436
683
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
1437
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
1438
684
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1439
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
1440
685
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1441
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
1442
686
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1443
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
1444
687
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1445
- /** Replacement digest, templated; alternative to a tag. */
1446
688
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1447
689
  }, undefined>, v.CheckAction<{
1448
690
  name: string;
@@ -1455,28 +697,17 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1455
697
  newTagTemplate?: string | undefined;
1456
698
  digestTemplate?: string | undefined;
1457
699
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
1458
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
1459
700
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1460
- /** Release name. */
1461
701
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1462
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
1463
702
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1464
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
1465
703
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1466
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
1467
704
  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.">]>;
1468
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
1469
705
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1470
- /** Inline `--values` overrides. */
1471
706
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
1472
- /** Templated `--set` overrides. */
1473
707
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1474
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
1475
708
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1476
- /** The value, templated over the provision vars. */
1477
709
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
1478
710
  }, undefined>, undefined>, undefined>;
1479
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
1480
711
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1481
712
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1482
713
  readonly secretRef: v.ObjectSchema<{
@@ -1485,21 +716,15 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1485
716
  }, undefined>, undefined>, undefined>;
1486
717
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
1487
718
  }, undefined>, undefined>, undefined>;
1488
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
1489
719
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
1490
720
  readonly mode: v.LiteralSchema<"secret", undefined>;
1491
- /** Target Secret name in the namespace. */
1492
721
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1493
- /** Secret `type`; absent ⇒ `Opaque`. */
1494
722
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1495
723
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1496
- /** Key inside the rendered Secret / `.env`. */
1497
724
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
1498
- /** Resolve the value from the workspace encrypted bundle by key. */
1499
725
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
1500
726
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1501
727
  }, undefined>, undefined>;
1502
- /** OR a non-secret value, templated over the provision vars. */
1503
728
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1504
729
  }, undefined>, v.CheckAction<{
1505
730
  key: string;
@@ -1510,20 +735,12 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1510
735
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
1511
736
  }, undefined>, v.ObjectSchema<{
1512
737
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
1513
- /**
1514
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
1515
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
1516
- * overlay names the Secret.
1517
- */
1518
738
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1519
739
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1520
- /** Key inside the rendered Secret / `.env`. */
1521
740
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
1522
- /** Resolve the value from the workspace encrypted bundle by key. */
1523
741
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
1524
742
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1525
743
  }, undefined>, undefined>;
1526
- /** OR a non-secret value, templated over the provision vars. */
1527
744
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1528
745
  }, undefined>, v.CheckAction<{
1529
746
  key: string;
@@ -1537,6 +754,8 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1537
754
  }, undefined>, v.ObjectSchema<{
1538
755
  readonly kind: v.LiteralSchema<"cloudflare", undefined>;
1539
756
  readonly cloudflare: v.ObjectSchema<{
757
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
758
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1540
759
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1541
760
  /**
1542
761
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -1545,8 +764,6 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
1545
764
  * takes minutes.
1546
765
  */
1547
766
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
1548
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
1549
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1550
767
  /**
1551
768
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
1552
769
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -1705,16 +922,12 @@ export declare const serviceProvisioningSchema: v.ObjectSchema<{
1705
922
  /** `kubernetes`: where the per-PR manifests live (colocated in the PR repo, or a separate repo). */
1706
923
  readonly manifestSource: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
1707
924
  readonly type: v.LiteralSchema<"colocated", undefined>;
1708
- /** File or directory path within the PR repo (read at the PR head branch). */
1709
925
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1710
926
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
1711
927
  }, undefined>, v.ObjectSchema<{
1712
928
  readonly type: v.LiteralSchema<"separate", undefined>;
1713
- /** `owner/repo` of the manifests repo. */
1714
929
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
1715
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
1716
930
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1717
- /** File or directory path within the manifests repo. */
1718
931
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1719
932
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
1720
933
  }, undefined>], undefined>, undefined>;
@@ -1890,13 +1103,9 @@ export declare const serviceProvisioningSchema: v.ObjectSchema<{
1890
1103
  * native REST adapter ignores these (raw manifests). See the schemas above.
1891
1104
  */
1892
1105
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1893
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
1894
1106
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1895
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
1896
1107
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1897
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
1898
1108
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1899
- /** Replacement digest, templated; alternative to a tag. */
1900
1109
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1901
1110
  }, undefined>, v.CheckAction<{
1902
1111
  name: string;
@@ -1910,26 +1119,16 @@ export declare const serviceProvisioningSchema: v.ObjectSchema<{
1910
1119
  digestTemplate?: string | undefined;
1911
1120
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
1912
1121
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1913
- /** Release name. */
1914
1122
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1915
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
1916
1123
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1917
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
1918
1124
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1919
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
1920
1125
  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.">]>;
1921
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
1922
1126
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1923
- /** Inline `--values` overrides. */
1924
1127
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
1925
- /** Templated `--set` overrides. */
1926
1128
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1927
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
1928
1129
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1929
- /** The value, templated over the provision vars. */
1930
1130
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
1931
1131
  }, undefined>, undefined>, undefined>;
1932
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
1933
1132
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1934
1133
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1935
1134
  readonly secretRef: v.ObjectSchema<{
@@ -1940,18 +1139,13 @@ export declare const serviceProvisioningSchema: v.ObjectSchema<{
1940
1139
  }, undefined>, undefined>, undefined>;
1941
1140
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
1942
1141
  readonly mode: v.LiteralSchema<"secret", undefined>;
1943
- /** Target Secret name in the namespace. */
1944
1142
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1945
- /** Secret `type`; absent ⇒ `Opaque`. */
1946
1143
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
1947
1144
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1948
- /** Key inside the rendered Secret / `.env`. */
1949
1145
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
1950
- /** Resolve the value from the workspace encrypted bundle by key. */
1951
1146
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
1952
1147
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1953
1148
  }, undefined>, undefined>;
1954
- /** OR a non-secret value, templated over the provision vars. */
1955
1149
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1956
1150
  }, undefined>, v.CheckAction<{
1957
1151
  key: string;
@@ -1962,20 +1156,12 @@ export declare const serviceProvisioningSchema: v.ObjectSchema<{
1962
1156
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
1963
1157
  }, undefined>, v.ObjectSchema<{
1964
1158
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
1965
- /**
1966
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
1967
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
1968
- * overlay names the Secret.
1969
- */
1970
1159
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
1971
1160
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
1972
- /** Key inside the rendered Secret / `.env`. */
1973
1161
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
1974
- /** Resolve the value from the workspace encrypted bundle by key. */
1975
1162
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
1976
1163
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1977
1164
  }, undefined>, undefined>;
1978
- /** OR a non-secret value, templated over the provision vars. */
1979
1165
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1980
1166
  }, undefined>, v.CheckAction<{
1981
1167
  key: string;
@@ -2012,28 +1198,23 @@ export declare const kubernetesEngineConfigSchema: v.ObjectSchema<{
2012
1198
  /** How the environment URL is derived once applied. */
2013
1199
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
2014
1200
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
2015
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
2016
1201
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2017
1202
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2018
1203
  }, undefined>, v.ObjectSchema<{
2019
1204
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
2020
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
2021
1205
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2022
1206
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2023
1207
  }, undefined>, v.ObjectSchema<{
2024
1208
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
2025
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
2026
1209
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
2027
1210
  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>;
2028
1211
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2029
1212
  }, undefined>, v.ObjectSchema<{
2030
1213
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
2031
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
2032
1214
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2033
1215
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2034
1216
  }, undefined>, v.ObjectSchema<{
2035
1217
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
2036
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
2037
1218
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2038
1219
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2039
1220
  }, undefined>], undefined>;
@@ -2058,26 +1239,16 @@ export declare const kubernetesEngineConfigSchema: v.ObjectSchema<{
2058
1239
  * with the service's own (per-environment) `helmReleases` at provision time.
2059
1240
  */
2060
1241
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2061
- /** Release name. */
2062
1242
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2063
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
2064
1243
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2065
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
2066
1244
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2067
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
2068
1245
  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.">]>;
2069
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
2070
1246
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2071
- /** Inline `--values` overrides. */
2072
1247
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
2073
- /** Templated `--set` overrides. */
2074
1248
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2075
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
2076
1249
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2077
- /** The value, templated over the provision vars. */
2078
1250
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
2079
1251
  }, undefined>, undefined>, undefined>;
2080
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
2081
1252
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2082
1253
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2083
1254
  readonly secretRef: v.ObjectSchema<{
@@ -2247,28 +1418,23 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
2247
1418
  /** How the environment URL is derived once applied. */
2248
1419
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
2249
1420
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
2250
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
2251
1421
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2252
1422
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2253
1423
  }, undefined>, v.ObjectSchema<{
2254
1424
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
2255
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
2256
1425
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2257
1426
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2258
1427
  }, undefined>, v.ObjectSchema<{
2259
1428
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
2260
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
2261
1429
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
2262
1430
  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>;
2263
1431
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2264
1432
  }, undefined>, v.ObjectSchema<{
2265
1433
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
2266
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
2267
1434
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2268
1435
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2269
1436
  }, undefined>, v.ObjectSchema<{
2270
1437
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
2271
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
2272
1438
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2273
1439
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2274
1440
  }, undefined>], undefined>;
@@ -2293,26 +1459,16 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
2293
1459
  * with the service's own (per-environment) `helmReleases` at provision time.
2294
1460
  */
2295
1461
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2296
- /** Release name. */
2297
1462
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2298
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
2299
1463
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2300
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
2301
1464
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2302
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
2303
1465
  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.">]>;
2304
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
2305
1466
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2306
- /** Inline `--values` overrides. */
2307
1467
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
2308
- /** Templated `--set` overrides. */
2309
1468
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2310
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
2311
1469
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2312
- /** The value, templated over the provision vars. */
2313
1470
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
2314
1471
  }, undefined>, undefined>, undefined>;
2315
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
2316
1472
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2317
1473
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2318
1474
  readonly secretRef: v.ObjectSchema<{
@@ -2343,28 +1499,23 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
2343
1499
  /** How the environment URL is derived once applied. */
2344
1500
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
2345
1501
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
2346
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
2347
1502
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2348
1503
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2349
1504
  }, undefined>, v.ObjectSchema<{
2350
1505
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
2351
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
2352
1506
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2353
1507
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2354
1508
  }, undefined>, v.ObjectSchema<{
2355
1509
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
2356
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
2357
1510
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
2358
1511
  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>;
2359
1512
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2360
1513
  }, undefined>, v.ObjectSchema<{
2361
1514
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
2362
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
2363
1515
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2364
1516
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2365
1517
  }, undefined>, v.ObjectSchema<{
2366
1518
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
2367
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
2368
1519
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2369
1520
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2370
1521
  }, undefined>], undefined>;
@@ -2389,26 +1540,16 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
2389
1540
  * with the service's own (per-environment) `helmReleases` at provision time.
2390
1541
  */
2391
1542
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2392
- /** Release name. */
2393
1543
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2394
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
2395
1544
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2396
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
2397
1545
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2398
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
2399
1546
  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.">]>;
2400
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
2401
1547
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2402
- /** Inline `--values` overrides. */
2403
1548
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
2404
- /** Templated `--set` overrides. */
2405
1549
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2406
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
2407
1550
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2408
- /** The value, templated over the provision vars. */
2409
1551
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
2410
1552
  }, undefined>, undefined>, undefined>;
2411
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
2412
1553
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2413
1554
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2414
1555
  readonly secretRef: v.ObjectSchema<{
@@ -2421,6 +1562,8 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
2421
1562
  }, undefined>, v.ObjectSchema<{
2422
1563
  readonly engine: v.LiteralSchema<"cloudflare", undefined>;
2423
1564
  readonly cloudflare: v.ObjectSchema<{
1565
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
1566
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2424
1567
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
2425
1568
  /**
2426
1569
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -2429,8 +1572,6 @@ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.Obje
2429
1572
  * takes minutes.
2430
1573
  */
2431
1574
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
2432
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
2433
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2434
1575
  /**
2435
1576
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
2436
1577
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -2787,28 +1928,23 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
2787
1928
  /** How the environment URL is derived once applied. */
2788
1929
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
2789
1930
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
2790
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
2791
1931
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2792
1932
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2793
1933
  }, undefined>, v.ObjectSchema<{
2794
1934
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
2795
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
2796
1935
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2797
1936
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2798
1937
  }, undefined>, v.ObjectSchema<{
2799
1938
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
2800
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
2801
1939
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
2802
1940
  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>;
2803
1941
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2804
1942
  }, undefined>, v.ObjectSchema<{
2805
1943
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
2806
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
2807
1944
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2808
1945
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2809
1946
  }, undefined>, v.ObjectSchema<{
2810
1947
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
2811
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
2812
1948
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2813
1949
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2814
1950
  }, undefined>], undefined>;
@@ -2833,26 +1969,16 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
2833
1969
  * with the service's own (per-environment) `helmReleases` at provision time.
2834
1970
  */
2835
1971
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2836
- /** Release name. */
2837
1972
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2838
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
2839
1973
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2840
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
2841
1974
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2842
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
2843
1975
  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.">]>;
2844
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
2845
1976
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2846
- /** Inline `--values` overrides. */
2847
1977
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
2848
- /** Templated `--set` overrides. */
2849
1978
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2850
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
2851
1979
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2852
- /** The value, templated over the provision vars. */
2853
1980
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
2854
1981
  }, undefined>, undefined>, undefined>;
2855
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
2856
1982
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2857
1983
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2858
1984
  readonly secretRef: v.ObjectSchema<{
@@ -2883,28 +2009,23 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
2883
2009
  /** How the environment URL is derived once applied. */
2884
2010
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
2885
2011
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
2886
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
2887
2012
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
2888
2013
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2889
2014
  }, undefined>, v.ObjectSchema<{
2890
2015
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
2891
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
2892
2016
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2893
2017
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2894
2018
  }, undefined>, v.ObjectSchema<{
2895
2019
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
2896
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
2897
2020
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
2898
2021
  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>;
2899
2022
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2900
2023
  }, undefined>, v.ObjectSchema<{
2901
2024
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
2902
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
2903
2025
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2904
2026
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2905
2027
  }, undefined>, v.ObjectSchema<{
2906
2028
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
2907
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
2908
2029
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
2909
2030
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
2910
2031
  }, undefined>], undefined>;
@@ -2929,26 +2050,16 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
2929
2050
  * with the service's own (per-environment) `helmReleases` at provision time.
2930
2051
  */
2931
2052
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2932
- /** Release name. */
2933
2053
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2934
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
2935
2054
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2936
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
2937
2055
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2938
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
2939
2056
  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.">]>;
2940
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
2941
2057
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
2942
- /** Inline `--values` overrides. */
2943
2058
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
2944
- /** Templated `--set` overrides. */
2945
2059
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2946
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
2947
2060
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2948
- /** The value, templated over the provision vars. */
2949
2061
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
2950
2062
  }, undefined>, undefined>, undefined>;
2951
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
2952
2063
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2953
2064
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
2954
2065
  readonly secretRef: v.ObjectSchema<{
@@ -2961,6 +2072,8 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
2961
2072
  }, undefined>, v.ObjectSchema<{
2962
2073
  readonly engine: v.LiteralSchema<"cloudflare", undefined>;
2963
2074
  readonly cloudflare: v.ObjectSchema<{
2075
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
2076
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2964
2077
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
2965
2078
  /**
2966
2079
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -2969,8 +2082,6 @@ export declare const environmentHandlerViewSchema: v.ObjectSchema<{
2969
2082
  * takes minutes.
2970
2083
  */
2971
2084
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
2972
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
2973
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
2974
2085
  /**
2975
2086
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
2976
2087
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -3281,28 +2392,23 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
3281
2392
  /** How the environment URL is derived once applied. */
3282
2393
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
3283
2394
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
3284
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
3285
2395
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
3286
2396
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3287
2397
  }, undefined>, v.ObjectSchema<{
3288
2398
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
3289
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
3290
2399
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3291
2400
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3292
2401
  }, undefined>, v.ObjectSchema<{
3293
2402
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
3294
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
3295
2403
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
3296
2404
  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>;
3297
2405
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3298
2406
  }, undefined>, v.ObjectSchema<{
3299
2407
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
3300
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
3301
2408
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3302
2409
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3303
2410
  }, undefined>, v.ObjectSchema<{
3304
2411
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
3305
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
3306
2412
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3307
2413
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3308
2414
  }, undefined>], undefined>;
@@ -3327,26 +2433,16 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
3327
2433
  * with the service's own (per-environment) `helmReleases` at provision time.
3328
2434
  */
3329
2435
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3330
- /** Release name. */
3331
2436
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3332
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
3333
2437
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3334
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
3335
2438
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3336
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
3337
2439
  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.">]>;
3338
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
3339
2440
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
3340
- /** Inline `--values` overrides. */
3341
2441
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3342
- /** Templated `--set` overrides. */
3343
2442
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3344
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
3345
2443
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3346
- /** The value, templated over the provision vars. */
3347
2444
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
3348
2445
  }, undefined>, undefined>, undefined>;
3349
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
3350
2446
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3351
2447
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3352
2448
  readonly secretRef: v.ObjectSchema<{
@@ -3377,28 +2473,23 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
3377
2473
  /** How the environment URL is derived once applied. */
3378
2474
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
3379
2475
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
3380
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
3381
2476
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
3382
2477
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3383
2478
  }, undefined>, v.ObjectSchema<{
3384
2479
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
3385
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
3386
2480
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3387
2481
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3388
2482
  }, undefined>, v.ObjectSchema<{
3389
2483
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
3390
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
3391
2484
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
3392
2485
  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>;
3393
2486
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3394
2487
  }, undefined>, v.ObjectSchema<{
3395
2488
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
3396
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
3397
2489
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3398
2490
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3399
2491
  }, undefined>, v.ObjectSchema<{
3400
2492
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
3401
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
3402
2493
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3403
2494
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3404
2495
  }, undefined>], undefined>;
@@ -3423,26 +2514,16 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
3423
2514
  * with the service's own (per-environment) `helmReleases` at provision time.
3424
2515
  */
3425
2516
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3426
- /** Release name. */
3427
2517
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3428
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
3429
2518
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3430
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
3431
2519
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3432
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
3433
2520
  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.">]>;
3434
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
3435
2521
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
3436
- /** Inline `--values` overrides. */
3437
2522
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3438
- /** Templated `--set` overrides. */
3439
2523
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3440
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
3441
2524
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3442
- /** The value, templated over the provision vars. */
3443
2525
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
3444
2526
  }, undefined>, undefined>, undefined>;
3445
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
3446
2527
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3447
2528
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3448
2529
  readonly secretRef: v.ObjectSchema<{
@@ -3455,6 +2536,8 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
3455
2536
  }, undefined>, v.ObjectSchema<{
3456
2537
  readonly engine: v.LiteralSchema<"cloudflare", undefined>;
3457
2538
  readonly cloudflare: v.ObjectSchema<{
2539
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
2540
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3458
2541
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
3459
2542
  /**
3460
2543
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -3463,8 +2546,6 @@ export declare const registerEnvironmentHandlerSchema: v.ObjectSchema<{
3463
2546
  * takes minutes.
3464
2547
  */
3465
2548
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
3466
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
3467
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3468
2549
  /**
3469
2550
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
3470
2551
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -3775,28 +2856,23 @@ export declare const testEnvironmentHandlerSchema: v.ObjectSchema<{
3775
2856
  /** How the environment URL is derived once applied. */
3776
2857
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
3777
2858
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
3778
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
3779
2859
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
3780
2860
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3781
2861
  }, undefined>, v.ObjectSchema<{
3782
2862
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
3783
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
3784
2863
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3785
2864
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3786
2865
  }, undefined>, v.ObjectSchema<{
3787
2866
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
3788
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
3789
2867
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
3790
2868
  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>;
3791
2869
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3792
2870
  }, undefined>, v.ObjectSchema<{
3793
2871
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
3794
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
3795
2872
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3796
2873
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3797
2874
  }, undefined>, v.ObjectSchema<{
3798
2875
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
3799
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
3800
2876
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3801
2877
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3802
2878
  }, undefined>], undefined>;
@@ -3821,26 +2897,16 @@ export declare const testEnvironmentHandlerSchema: v.ObjectSchema<{
3821
2897
  * with the service's own (per-environment) `helmReleases` at provision time.
3822
2898
  */
3823
2899
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3824
- /** Release name. */
3825
2900
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3826
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
3827
2901
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3828
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
3829
2902
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3830
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
3831
2903
  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.">]>;
3832
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
3833
2904
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
3834
- /** Inline `--values` overrides. */
3835
2905
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3836
- /** Templated `--set` overrides. */
3837
2906
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3838
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
3839
2907
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3840
- /** The value, templated over the provision vars. */
3841
2908
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
3842
2909
  }, undefined>, undefined>, undefined>;
3843
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
3844
2910
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3845
2911
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3846
2912
  readonly secretRef: v.ObjectSchema<{
@@ -3871,28 +2937,23 @@ export declare const testEnvironmentHandlerSchema: v.ObjectSchema<{
3871
2937
  /** How the environment URL is derived once applied. */
3872
2938
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
3873
2939
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
3874
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
3875
2940
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
3876
2941
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3877
2942
  }, undefined>, v.ObjectSchema<{
3878
2943
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
3879
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
3880
2944
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3881
2945
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3882
2946
  }, undefined>, v.ObjectSchema<{
3883
2947
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
3884
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
3885
2948
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
3886
2949
  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>;
3887
2950
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3888
2951
  }, undefined>, v.ObjectSchema<{
3889
2952
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
3890
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
3891
2953
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3892
2954
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3893
2955
  }, undefined>, v.ObjectSchema<{
3894
2956
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
3895
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
3896
2957
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
3897
2958
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
3898
2959
  }, undefined>], undefined>;
@@ -3917,26 +2978,16 @@ export declare const testEnvironmentHandlerSchema: v.ObjectSchema<{
3917
2978
  * with the service's own (per-environment) `helmReleases` at provision time.
3918
2979
  */
3919
2980
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3920
- /** Release name. */
3921
2981
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3922
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
3923
2982
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3924
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
3925
2983
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3926
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
3927
2984
  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.">]>;
3928
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
3929
2985
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
3930
- /** Inline `--values` overrides. */
3931
2986
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3932
- /** Templated `--set` overrides. */
3933
2987
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3934
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
3935
2988
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3936
- /** The value, templated over the provision vars. */
3937
2989
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
3938
2990
  }, undefined>, undefined>, undefined>;
3939
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
3940
2991
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
3941
2992
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3942
2993
  readonly secretRef: v.ObjectSchema<{
@@ -3949,6 +3000,8 @@ export declare const testEnvironmentHandlerSchema: v.ObjectSchema<{
3949
3000
  }, undefined>, v.ObjectSchema<{
3950
3001
  readonly engine: v.LiteralSchema<"cloudflare", undefined>;
3951
3002
  readonly cloudflare: v.ObjectSchema<{
3003
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
3004
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3952
3005
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
3953
3006
  /**
3954
3007
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -3957,8 +3010,6 @@ export declare const testEnvironmentHandlerSchema: v.ObjectSchema<{
3957
3010
  * takes minutes.
3958
3011
  */
3959
3012
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
3960
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
3961
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
3962
3013
  /**
3963
3014
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
3964
3015
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -4270,28 +3321,23 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
4270
3321
  /** How the environment URL is derived once applied. */
4271
3322
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
4272
3323
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
4273
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
4274
3324
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4275
3325
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4276
3326
  }, undefined>, v.ObjectSchema<{
4277
3327
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
4278
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
4279
3328
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4280
3329
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4281
3330
  }, undefined>, v.ObjectSchema<{
4282
3331
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
4283
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
4284
3332
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
4285
3333
  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>;
4286
3334
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4287
3335
  }, undefined>, v.ObjectSchema<{
4288
3336
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
4289
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
4290
3337
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4291
3338
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4292
3339
  }, undefined>, v.ObjectSchema<{
4293
3340
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
4294
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
4295
3341
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4296
3342
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4297
3343
  }, undefined>], undefined>;
@@ -4316,26 +3362,16 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
4316
3362
  * with the service's own (per-environment) `helmReleases` at provision time.
4317
3363
  */
4318
3364
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4319
- /** Release name. */
4320
3365
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4321
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
4322
3366
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4323
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
4324
3367
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4325
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
4326
3368
  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.">]>;
4327
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
4328
3369
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
4329
- /** Inline `--values` overrides. */
4330
3370
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
4331
- /** Templated `--set` overrides. */
4332
3371
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4333
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
4334
3372
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4335
- /** The value, templated over the provision vars. */
4336
3373
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
4337
3374
  }, undefined>, undefined>, undefined>;
4338
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
4339
3375
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4340
3376
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4341
3377
  readonly secretRef: v.ObjectSchema<{
@@ -4366,28 +3402,23 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
4366
3402
  /** How the environment URL is derived once applied. */
4367
3403
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
4368
3404
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
4369
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
4370
3405
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4371
3406
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4372
3407
  }, undefined>, v.ObjectSchema<{
4373
3408
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
4374
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
4375
3409
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4376
3410
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4377
3411
  }, undefined>, v.ObjectSchema<{
4378
3412
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
4379
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
4380
3413
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
4381
3414
  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>;
4382
3415
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4383
3416
  }, undefined>, v.ObjectSchema<{
4384
3417
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
4385
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
4386
3418
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4387
3419
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4388
3420
  }, undefined>, v.ObjectSchema<{
4389
3421
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
4390
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
4391
3422
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4392
3423
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4393
3424
  }, undefined>], undefined>;
@@ -4412,26 +3443,16 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
4412
3443
  * with the service's own (per-environment) `helmReleases` at provision time.
4413
3444
  */
4414
3445
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4415
- /** Release name. */
4416
3446
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4417
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
4418
3447
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4419
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
4420
3448
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4421
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
4422
3449
  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.">]>;
4423
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
4424
3450
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
4425
- /** Inline `--values` overrides. */
4426
3451
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
4427
- /** Templated `--set` overrides. */
4428
3452
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4429
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
4430
3453
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4431
- /** The value, templated over the provision vars. */
4432
3454
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
4433
3455
  }, undefined>, undefined>, undefined>;
4434
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
4435
3456
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4436
3457
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4437
3458
  readonly secretRef: v.ObjectSchema<{
@@ -4444,6 +3465,8 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
4444
3465
  }, undefined>, v.ObjectSchema<{
4445
3466
  readonly engine: v.LiteralSchema<"cloudflare", undefined>;
4446
3467
  readonly cloudflare: v.ObjectSchema<{
3468
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
3469
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4447
3470
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
4448
3471
  /**
4449
3472
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -4452,8 +3475,6 @@ export declare const upsertEnvironmentUserHandlerBodySchema: v.ObjectSchema<{
4452
3475
  * takes minutes.
4453
3476
  */
4454
3477
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
4455
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
4456
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4457
3478
  /**
4458
3479
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
4459
3480
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -4780,28 +3801,23 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
4780
3801
  /** How the environment URL is derived once applied. */
4781
3802
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
4782
3803
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
4783
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
4784
3804
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4785
3805
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4786
3806
  }, undefined>, v.ObjectSchema<{
4787
3807
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
4788
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
4789
3808
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4790
3809
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4791
3810
  }, undefined>, v.ObjectSchema<{
4792
3811
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
4793
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
4794
3812
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
4795
3813
  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>;
4796
3814
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4797
3815
  }, undefined>, v.ObjectSchema<{
4798
3816
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
4799
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
4800
3817
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4801
3818
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4802
3819
  }, undefined>, v.ObjectSchema<{
4803
3820
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
4804
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
4805
3821
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4806
3822
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4807
3823
  }, undefined>], undefined>;
@@ -4826,26 +3842,16 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
4826
3842
  * with the service's own (per-environment) `helmReleases` at provision time.
4827
3843
  */
4828
3844
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4829
- /** Release name. */
4830
3845
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4831
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
4832
3846
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4833
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
4834
3847
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4835
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
4836
3848
  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.">]>;
4837
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
4838
3849
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
4839
- /** Inline `--values` overrides. */
4840
3850
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
4841
- /** Templated `--set` overrides. */
4842
3851
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4843
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
4844
3852
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4845
- /** The value, templated over the provision vars. */
4846
3853
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
4847
3854
  }, undefined>, undefined>, undefined>;
4848
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
4849
3855
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4850
3856
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4851
3857
  readonly secretRef: v.ObjectSchema<{
@@ -4876,28 +3882,23 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
4876
3882
  /** How the environment URL is derived once applied. */
4877
3883
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
4878
3884
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
4879
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
4880
3885
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
4881
3886
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4882
3887
  }, undefined>, v.ObjectSchema<{
4883
3888
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
4884
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
4885
3889
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4886
3890
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4887
3891
  }, undefined>, v.ObjectSchema<{
4888
3892
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
4889
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
4890
3893
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
4891
3894
  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>;
4892
3895
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4893
3896
  }, undefined>, v.ObjectSchema<{
4894
3897
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
4895
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
4896
3898
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4897
3899
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4898
3900
  }, undefined>, v.ObjectSchema<{
4899
3901
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
4900
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
4901
3902
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
4902
3903
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4903
3904
  }, undefined>], undefined>;
@@ -4922,26 +3923,16 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
4922
3923
  * with the service's own (per-environment) `helmReleases` at provision time.
4923
3924
  */
4924
3925
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4925
- /** Release name. */
4926
3926
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4927
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
4928
3927
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4929
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
4930
3928
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4931
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
4932
3929
  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.">]>;
4933
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
4934
3930
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
4935
- /** Inline `--values` overrides. */
4936
3931
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
4937
- /** Templated `--set` overrides. */
4938
3932
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4939
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
4940
3933
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4941
- /** The value, templated over the provision vars. */
4942
3934
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
4943
3935
  }, undefined>, undefined>, undefined>;
4944
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
4945
3936
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
4946
3937
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4947
3938
  readonly secretRef: v.ObjectSchema<{
@@ -4954,6 +3945,8 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
4954
3945
  }, undefined>, v.ObjectSchema<{
4955
3946
  readonly engine: v.LiteralSchema<"cloudflare", undefined>;
4956
3947
  readonly cloudflare: v.ObjectSchema<{
3948
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
3949
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4957
3950
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
4958
3951
  /**
4959
3952
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -4962,8 +3955,6 @@ export declare const environmentHandlersBundleSchema: v.ObjectSchema<{
4962
3955
  * takes minutes.
4963
3956
  */
4964
3957
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
4965
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
4966
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
4967
3958
  /**
4968
3959
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
4969
3960
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -5338,90 +4329,53 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5338
4329
  }, undefined>, v.ObjectSchema<{
5339
4330
  readonly kind: v.LiteralSchema<"kubernetes", undefined>;
5340
4331
  readonly kubernetes: v.ObjectSchema<{
5341
- /** Human label for the connection (shown in the UI). */
5342
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
5343
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
5344
4332
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
5345
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
5346
4333
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
5347
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
5348
4334
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
5349
- /**
5350
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
5351
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
5352
- * default derived from the PR number / block id.
5353
- */
4335
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
5354
4336
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
5355
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
5356
4337
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
5357
4338
  readonly type: v.LiteralSchema<"colocated", undefined>;
5358
- /** File or directory path within the PR repo (read at the PR head branch). */
5359
4339
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5360
4340
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
5361
4341
  }, undefined>, v.ObjectSchema<{
5362
4342
  readonly type: v.LiteralSchema<"separate", undefined>;
5363
- /** `owner/repo` of the manifests repo. */
5364
4343
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
5365
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
5366
4344
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5367
- /** File or directory path within the manifests repo. */
5368
4345
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5369
4346
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
5370
4347
  }, undefined>], undefined>;
5371
- /** How the environment URL is derived once applied. */
5372
4348
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
5373
4349
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
5374
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
5375
4350
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5376
4351
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5377
4352
  }, undefined>, v.ObjectSchema<{
5378
4353
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
5379
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
5380
4354
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5381
4355
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5382
4356
  }, undefined>, v.ObjectSchema<{
5383
4357
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
5384
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
5385
4358
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
5386
4359
  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>;
5387
4360
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5388
4361
  }, undefined>, v.ObjectSchema<{
5389
4362
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
5390
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
5391
4363
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5392
4364
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5393
4365
  }, undefined>, v.ObjectSchema<{
5394
4366
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
5395
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
5396
4367
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5397
4368
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5398
4369
  }, undefined>], undefined>;
5399
- /**
5400
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
5401
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
5402
- */
5403
4370
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5404
- /** Fallback TTL (ms) after which the env is swept + torn down. */
5405
4371
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
5406
- /**
5407
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
5408
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
5409
- * container-backed render path honors it; absent ⇒ the harness default (180s).
5410
- */
5411
4372
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
5412
- /** Extra labels stamped on the namespace + every applied resource. */
5413
4373
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
5414
- /** Extra annotations stamped on the namespace. */
5415
4374
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
5416
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
5417
4375
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
5418
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
5419
4376
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5420
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
5421
4377
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5422
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
5423
4378
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5424
- /** Replacement digest, templated; alternative to a tag. */
5425
4379
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5426
4380
  }, undefined>, v.CheckAction<{
5427
4381
  name: string;
@@ -5434,28 +4388,17 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5434
4388
  newTagTemplate?: string | undefined;
5435
4389
  digestTemplate?: string | undefined;
5436
4390
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
5437
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
5438
4391
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5439
- /** Release name. */
5440
4392
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5441
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
5442
4393
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5443
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
5444
4394
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5445
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
5446
4395
  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.">]>;
5447
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
5448
4396
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5449
- /** Inline `--values` overrides. */
5450
4397
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
5451
- /** Templated `--set` overrides. */
5452
4398
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5453
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
5454
4399
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5455
- /** The value, templated over the provision vars. */
5456
4400
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
5457
4401
  }, undefined>, undefined>, undefined>;
5458
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
5459
4402
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5460
4403
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5461
4404
  readonly secretRef: v.ObjectSchema<{
@@ -5464,21 +4407,15 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5464
4407
  }, undefined>, undefined>, undefined>;
5465
4408
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
5466
4409
  }, undefined>, undefined>, undefined>;
5467
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
5468
4410
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
5469
4411
  readonly mode: v.LiteralSchema<"secret", undefined>;
5470
- /** Target Secret name in the namespace. */
5471
4412
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5472
- /** Secret `type`; absent ⇒ `Opaque`. */
5473
4413
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5474
4414
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
5475
- /** Key inside the rendered Secret / `.env`. */
5476
4415
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
5477
- /** Resolve the value from the workspace encrypted bundle by key. */
5478
4416
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
5479
4417
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
5480
4418
  }, undefined>, undefined>;
5481
- /** OR a non-secret value, templated over the provision vars. */
5482
4419
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5483
4420
  }, undefined>, v.CheckAction<{
5484
4421
  key: string;
@@ -5489,20 +4426,12 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5489
4426
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
5490
4427
  }, undefined>, v.ObjectSchema<{
5491
4428
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
5492
- /**
5493
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
5494
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
5495
- * overlay names the Secret.
5496
- */
5497
4429
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5498
4430
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
5499
- /** Key inside the rendered Secret / `.env`. */
5500
4431
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
5501
- /** Resolve the value from the workspace encrypted bundle by key. */
5502
4432
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
5503
4433
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
5504
4434
  }, undefined>, undefined>;
5505
- /** OR a non-secret value, templated over the provision vars. */
5506
4435
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5507
4436
  }, undefined>, v.CheckAction<{
5508
4437
  key: string;
@@ -5519,90 +4448,53 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5519
4448
  readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be an AWS region slug">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
5520
4449
  readonly clusterName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
5521
4450
  readonly stsHost: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be a bare host or host:port">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
5522
- /** Human label for the connection (shown in the UI). */
5523
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
5524
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
5525
4451
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
5526
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
5527
4452
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
5528
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
5529
4453
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
5530
- /**
5531
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
5532
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
5533
- * default derived from the PR number / block id.
5534
- */
4454
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
5535
4455
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
5536
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
5537
4456
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
5538
4457
  readonly type: v.LiteralSchema<"colocated", undefined>;
5539
- /** File or directory path within the PR repo (read at the PR head branch). */
5540
4458
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5541
4459
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
5542
4460
  }, undefined>, v.ObjectSchema<{
5543
4461
  readonly type: v.LiteralSchema<"separate", undefined>;
5544
- /** `owner/repo` of the manifests repo. */
5545
4462
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
5546
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
5547
4463
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5548
- /** File or directory path within the manifests repo. */
5549
4464
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5550
4465
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
5551
4466
  }, undefined>], undefined>;
5552
- /** How the environment URL is derived once applied. */
5553
4467
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
5554
4468
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
5555
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
5556
4469
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5557
4470
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5558
4471
  }, undefined>, v.ObjectSchema<{
5559
4472
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
5560
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
5561
4473
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5562
4474
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5563
4475
  }, undefined>, v.ObjectSchema<{
5564
4476
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
5565
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
5566
4477
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
5567
4478
  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>;
5568
4479
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5569
4480
  }, undefined>, v.ObjectSchema<{
5570
4481
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
5571
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
5572
4482
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5573
4483
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5574
4484
  }, undefined>, v.ObjectSchema<{
5575
4485
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
5576
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
5577
4486
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5578
4487
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
5579
4488
  }, undefined>], undefined>;
5580
- /**
5581
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
5582
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
5583
- */
5584
4489
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5585
- /** Fallback TTL (ms) after which the env is swept + torn down. */
5586
4490
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
5587
- /**
5588
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
5589
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
5590
- * container-backed render path honors it; absent ⇒ the harness default (180s).
5591
- */
5592
4491
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
5593
- /** Extra labels stamped on the namespace + every applied resource. */
5594
4492
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
5595
- /** Extra annotations stamped on the namespace. */
5596
4493
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
5597
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
5598
4494
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
5599
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
5600
4495
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5601
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
5602
4496
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5603
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
5604
4497
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5605
- /** Replacement digest, templated; alternative to a tag. */
5606
4498
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5607
4499
  }, undefined>, v.CheckAction<{
5608
4500
  name: string;
@@ -5615,28 +4507,17 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5615
4507
  newTagTemplate?: string | undefined;
5616
4508
  digestTemplate?: string | undefined;
5617
4509
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
5618
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
5619
4510
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5620
- /** Release name. */
5621
4511
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5622
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
5623
4512
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5624
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
5625
4513
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5626
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
5627
4514
  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.">]>;
5628
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
5629
4515
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
5630
- /** Inline `--values` overrides. */
5631
4516
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
5632
- /** Templated `--set` overrides. */
5633
4517
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5634
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
5635
4518
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5636
- /** The value, templated over the provision vars. */
5637
4519
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
5638
4520
  }, undefined>, undefined>, undefined>;
5639
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
5640
4521
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
5641
4522
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5642
4523
  readonly secretRef: v.ObjectSchema<{
@@ -5645,21 +4526,15 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5645
4526
  }, undefined>, undefined>, undefined>;
5646
4527
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
5647
4528
  }, undefined>, undefined>, undefined>;
5648
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
5649
4529
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
5650
4530
  readonly mode: v.LiteralSchema<"secret", undefined>;
5651
- /** Target Secret name in the namespace. */
5652
4531
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5653
- /** Secret `type`; absent ⇒ `Opaque`. */
5654
4532
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
5655
4533
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
5656
- /** Key inside the rendered Secret / `.env`. */
5657
4534
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
5658
- /** Resolve the value from the workspace encrypted bundle by key. */
5659
4535
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
5660
4536
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
5661
4537
  }, undefined>, undefined>;
5662
- /** OR a non-secret value, templated over the provision vars. */
5663
4538
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5664
4539
  }, undefined>, v.CheckAction<{
5665
4540
  key: string;
@@ -5670,20 +4545,12 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5670
4545
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
5671
4546
  }, undefined>, v.ObjectSchema<{
5672
4547
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
5673
- /**
5674
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
5675
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
5676
- * overlay names the Secret.
5677
- */
5678
4548
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
5679
4549
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
5680
- /** Key inside the rendered Secret / `.env`. */
5681
4550
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
5682
- /** Resolve the value from the workspace encrypted bundle by key. */
5683
4551
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
5684
4552
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
5685
4553
  }, undefined>, undefined>;
5686
- /** OR a non-secret value, templated over the provision vars. */
5687
4554
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5688
4555
  }, undefined>, v.CheckAction<{
5689
4556
  key: string;
@@ -5697,6 +4564,8 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5697
4564
  }, undefined>, v.ObjectSchema<{
5698
4565
  readonly kind: v.LiteralSchema<"cloudflare", undefined>;
5699
4566
  readonly cloudflare: v.ObjectSchema<{
4567
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
4568
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5700
4569
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
5701
4570
  /**
5702
4571
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -5705,8 +4574,6 @@ export declare const environmentConnectionSchema: v.ObjectSchema<{
5705
4574
  * takes minutes.
5706
4575
  */
5707
4576
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
5708
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
5709
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
5710
4577
  /**
5711
4578
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
5712
4579
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -5997,90 +4864,53 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
5997
4864
  }, undefined>, v.ObjectSchema<{
5998
4865
  readonly kind: v.LiteralSchema<"kubernetes", undefined>;
5999
4866
  readonly kubernetes: v.ObjectSchema<{
6000
- /** Human label for the connection (shown in the UI). */
6001
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6002
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
6003
4867
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
6004
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
6005
4868
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
6006
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
6007
4869
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
6008
- /**
6009
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
6010
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
6011
- * default derived from the PR number / block id.
6012
- */
4870
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6013
4871
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
6014
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
6015
4872
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
6016
4873
  readonly type: v.LiteralSchema<"colocated", undefined>;
6017
- /** File or directory path within the PR repo (read at the PR head branch). */
6018
4874
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6019
4875
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6020
4876
  }, undefined>, v.ObjectSchema<{
6021
4877
  readonly type: v.LiteralSchema<"separate", undefined>;
6022
- /** `owner/repo` of the manifests repo. */
6023
4878
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
6024
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
6025
4879
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6026
- /** File or directory path within the manifests repo. */
6027
4880
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6028
4881
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6029
4882
  }, undefined>], undefined>;
6030
- /** How the environment URL is derived once applied. */
6031
4883
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
6032
4884
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
6033
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
6034
4885
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6035
4886
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6036
4887
  }, undefined>, v.ObjectSchema<{
6037
4888
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
6038
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
6039
4889
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6040
4890
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6041
4891
  }, undefined>, v.ObjectSchema<{
6042
4892
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
6043
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
6044
4893
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
6045
4894
  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>;
6046
4895
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6047
4896
  }, undefined>, v.ObjectSchema<{
6048
4897
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
6049
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
6050
4898
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6051
4899
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6052
4900
  }, undefined>, v.ObjectSchema<{
6053
4901
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
6054
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
6055
4902
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6056
4903
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6057
4904
  }, undefined>], undefined>;
6058
- /**
6059
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
6060
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
6061
- */
6062
4905
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6063
- /** Fallback TTL (ms) after which the env is swept + torn down. */
6064
4906
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
6065
- /**
6066
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
6067
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
6068
- * container-backed render path honors it; absent ⇒ the harness default (180s).
6069
- */
6070
4907
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
6071
- /** Extra labels stamped on the namespace + every applied resource. */
6072
4908
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6073
- /** Extra annotations stamped on the namespace. */
6074
4909
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6075
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
6076
4910
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6077
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
6078
4911
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6079
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
6080
4912
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6081
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
6082
4913
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6083
- /** Replacement digest, templated; alternative to a tag. */
6084
4914
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6085
4915
  }, undefined>, v.CheckAction<{
6086
4916
  name: string;
@@ -6093,28 +4923,17 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6093
4923
  newTagTemplate?: string | undefined;
6094
4924
  digestTemplate?: string | undefined;
6095
4925
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
6096
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
6097
4926
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6098
- /** Release name. */
6099
4927
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6100
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
6101
4928
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6102
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
6103
4929
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6104
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
6105
4930
  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.">]>;
6106
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
6107
4931
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6108
- /** Inline `--values` overrides. */
6109
4932
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
6110
- /** Templated `--set` overrides. */
6111
4933
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6112
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
6113
4934
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6114
- /** The value, templated over the provision vars. */
6115
4935
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
6116
4936
  }, undefined>, undefined>, undefined>;
6117
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
6118
4937
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6119
4938
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6120
4939
  readonly secretRef: v.ObjectSchema<{
@@ -6123,21 +4942,15 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6123
4942
  }, undefined>, undefined>, undefined>;
6124
4943
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
6125
4944
  }, undefined>, undefined>, undefined>;
6126
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
6127
4945
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
6128
4946
  readonly mode: v.LiteralSchema<"secret", undefined>;
6129
- /** Target Secret name in the namespace. */
6130
4947
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6131
- /** Secret `type`; absent ⇒ `Opaque`. */
6132
4948
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6133
4949
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6134
- /** Key inside the rendered Secret / `.env`. */
6135
4950
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6136
- /** Resolve the value from the workspace encrypted bundle by key. */
6137
4951
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6138
4952
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6139
4953
  }, undefined>, undefined>;
6140
- /** OR a non-secret value, templated over the provision vars. */
6141
4954
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6142
4955
  }, undefined>, v.CheckAction<{
6143
4956
  key: string;
@@ -6148,20 +4961,12 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6148
4961
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
6149
4962
  }, undefined>, v.ObjectSchema<{
6150
4963
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
6151
- /**
6152
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
6153
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
6154
- * overlay names the Secret.
6155
- */
6156
4964
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6157
4965
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6158
- /** Key inside the rendered Secret / `.env`. */
6159
4966
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6160
- /** Resolve the value from the workspace encrypted bundle by key. */
6161
4967
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6162
4968
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6163
4969
  }, undefined>, undefined>;
6164
- /** OR a non-secret value, templated over the provision vars. */
6165
4970
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6166
4971
  }, undefined>, v.CheckAction<{
6167
4972
  key: string;
@@ -6178,90 +4983,53 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6178
4983
  readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be an AWS region slug">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6179
4984
  readonly clusterName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6180
4985
  readonly stsHost: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be a bare host or host:port">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
6181
- /** Human label for the connection (shown in the UI). */
6182
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6183
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
6184
4986
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
6185
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
6186
4987
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
6187
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
6188
4988
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
6189
- /**
6190
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
6191
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
6192
- * default derived from the PR number / block id.
6193
- */
4989
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6194
4990
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
6195
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
6196
4991
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
6197
4992
  readonly type: v.LiteralSchema<"colocated", undefined>;
6198
- /** File or directory path within the PR repo (read at the PR head branch). */
6199
4993
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6200
4994
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6201
4995
  }, undefined>, v.ObjectSchema<{
6202
4996
  readonly type: v.LiteralSchema<"separate", undefined>;
6203
- /** `owner/repo` of the manifests repo. */
6204
4997
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
6205
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
6206
4998
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6207
- /** File or directory path within the manifests repo. */
6208
4999
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6209
5000
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6210
5001
  }, undefined>], undefined>;
6211
- /** How the environment URL is derived once applied. */
6212
5002
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
6213
5003
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
6214
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
6215
5004
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6216
5005
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6217
5006
  }, undefined>, v.ObjectSchema<{
6218
5007
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
6219
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
6220
5008
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6221
5009
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6222
5010
  }, undefined>, v.ObjectSchema<{
6223
5011
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
6224
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
6225
5012
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
6226
5013
  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>;
6227
5014
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6228
5015
  }, undefined>, v.ObjectSchema<{
6229
5016
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
6230
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
6231
5017
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6232
5018
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6233
5019
  }, undefined>, v.ObjectSchema<{
6234
5020
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
6235
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
6236
5021
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6237
5022
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6238
5023
  }, undefined>], undefined>;
6239
- /**
6240
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
6241
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
6242
- */
6243
5024
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6244
- /** Fallback TTL (ms) after which the env is swept + torn down. */
6245
5025
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
6246
- /**
6247
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
6248
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
6249
- * container-backed render path honors it; absent ⇒ the harness default (180s).
6250
- */
6251
5026
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
6252
- /** Extra labels stamped on the namespace + every applied resource. */
6253
5027
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6254
- /** Extra annotations stamped on the namespace. */
6255
5028
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6256
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
6257
5029
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6258
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
6259
5030
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6260
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
6261
5031
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6262
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
6263
5032
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6264
- /** Replacement digest, templated; alternative to a tag. */
6265
5033
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6266
5034
  }, undefined>, v.CheckAction<{
6267
5035
  name: string;
@@ -6274,28 +5042,17 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6274
5042
  newTagTemplate?: string | undefined;
6275
5043
  digestTemplate?: string | undefined;
6276
5044
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
6277
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
6278
5045
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6279
- /** Release name. */
6280
5046
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6281
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
6282
5047
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6283
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
6284
5048
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6285
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
6286
5049
  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.">]>;
6287
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
6288
5050
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6289
- /** Inline `--values` overrides. */
6290
5051
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
6291
- /** Templated `--set` overrides. */
6292
5052
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6293
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
6294
5053
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6295
- /** The value, templated over the provision vars. */
6296
5054
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
6297
5055
  }, undefined>, undefined>, undefined>;
6298
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
6299
5056
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6300
5057
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6301
5058
  readonly secretRef: v.ObjectSchema<{
@@ -6304,21 +5061,15 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6304
5061
  }, undefined>, undefined>, undefined>;
6305
5062
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
6306
5063
  }, undefined>, undefined>, undefined>;
6307
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
6308
5064
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
6309
5065
  readonly mode: v.LiteralSchema<"secret", undefined>;
6310
- /** Target Secret name in the namespace. */
6311
5066
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6312
- /** Secret `type`; absent ⇒ `Opaque`. */
6313
5067
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6314
5068
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6315
- /** Key inside the rendered Secret / `.env`. */
6316
5069
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6317
- /** Resolve the value from the workspace encrypted bundle by key. */
6318
5070
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6319
5071
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6320
5072
  }, undefined>, undefined>;
6321
- /** OR a non-secret value, templated over the provision vars. */
6322
5073
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6323
5074
  }, undefined>, v.CheckAction<{
6324
5075
  key: string;
@@ -6329,20 +5080,12 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6329
5080
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
6330
5081
  }, undefined>, v.ObjectSchema<{
6331
5082
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
6332
- /**
6333
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
6334
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
6335
- * overlay names the Secret.
6336
- */
6337
5083
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6338
5084
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6339
- /** Key inside the rendered Secret / `.env`. */
6340
5085
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6341
- /** Resolve the value from the workspace encrypted bundle by key. */
6342
5086
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6343
5087
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6344
5088
  }, undefined>, undefined>;
6345
- /** OR a non-secret value, templated over the provision vars. */
6346
5089
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6347
5090
  }, undefined>, v.CheckAction<{
6348
5091
  key: string;
@@ -6356,6 +5099,8 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6356
5099
  }, undefined>, v.ObjectSchema<{
6357
5100
  readonly kind: v.LiteralSchema<"cloudflare", undefined>;
6358
5101
  readonly cloudflare: v.ObjectSchema<{
5102
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
5103
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6359
5104
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6360
5105
  /**
6361
5106
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -6364,8 +5109,6 @@ export declare const registerEnvironmentProviderSchema: v.ObjectSchema<{
6364
5109
  * takes minutes.
6365
5110
  */
6366
5111
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
6367
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
6368
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6369
5112
  /**
6370
5113
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
6371
5114
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -6658,90 +5401,53 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6658
5401
  }, undefined>, v.ObjectSchema<{
6659
5402
  readonly kind: v.LiteralSchema<"kubernetes", undefined>;
6660
5403
  readonly kubernetes: v.ObjectSchema<{
6661
- /** Human label for the connection (shown in the UI). */
6662
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6663
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
6664
5404
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
6665
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
6666
5405
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
6667
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
6668
5406
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
6669
- /**
6670
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
6671
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
6672
- * default derived from the PR number / block id.
6673
- */
5407
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6674
5408
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
6675
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
6676
5409
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
6677
5410
  readonly type: v.LiteralSchema<"colocated", undefined>;
6678
- /** File or directory path within the PR repo (read at the PR head branch). */
6679
5411
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6680
5412
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6681
5413
  }, undefined>, v.ObjectSchema<{
6682
5414
  readonly type: v.LiteralSchema<"separate", undefined>;
6683
- /** `owner/repo` of the manifests repo. */
6684
5415
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
6685
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
6686
5416
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6687
- /** File or directory path within the manifests repo. */
6688
5417
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6689
5418
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6690
5419
  }, undefined>], undefined>;
6691
- /** How the environment URL is derived once applied. */
6692
5420
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
6693
5421
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
6694
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
6695
5422
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6696
5423
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6697
5424
  }, undefined>, v.ObjectSchema<{
6698
5425
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
6699
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
6700
5426
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6701
5427
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6702
5428
  }, undefined>, v.ObjectSchema<{
6703
5429
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
6704
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
6705
5430
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
6706
5431
  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>;
6707
5432
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6708
5433
  }, undefined>, v.ObjectSchema<{
6709
5434
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
6710
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
6711
5435
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6712
5436
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6713
5437
  }, undefined>, v.ObjectSchema<{
6714
5438
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
6715
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
6716
5439
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6717
5440
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6718
5441
  }, undefined>], undefined>;
6719
- /**
6720
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
6721
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
6722
- */
6723
5442
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6724
- /** Fallback TTL (ms) after which the env is swept + torn down. */
6725
5443
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
6726
- /**
6727
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
6728
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
6729
- * container-backed render path honors it; absent ⇒ the harness default (180s).
6730
- */
6731
5444
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
6732
- /** Extra labels stamped on the namespace + every applied resource. */
6733
5445
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6734
- /** Extra annotations stamped on the namespace. */
6735
5446
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6736
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
6737
5447
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6738
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
6739
5448
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6740
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
6741
5449
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6742
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
6743
5450
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6744
- /** Replacement digest, templated; alternative to a tag. */
6745
5451
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6746
5452
  }, undefined>, v.CheckAction<{
6747
5453
  name: string;
@@ -6754,28 +5460,17 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6754
5460
  newTagTemplate?: string | undefined;
6755
5461
  digestTemplate?: string | undefined;
6756
5462
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
6757
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
6758
5463
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6759
- /** Release name. */
6760
5464
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6761
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
6762
5465
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6763
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
6764
5466
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6765
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
6766
5467
  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.">]>;
6767
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
6768
5468
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6769
- /** Inline `--values` overrides. */
6770
5469
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
6771
- /** Templated `--set` overrides. */
6772
5470
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6773
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
6774
5471
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6775
- /** The value, templated over the provision vars. */
6776
5472
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
6777
5473
  }, undefined>, undefined>, undefined>;
6778
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
6779
5474
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6780
5475
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6781
5476
  readonly secretRef: v.ObjectSchema<{
@@ -6784,21 +5479,15 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6784
5479
  }, undefined>, undefined>, undefined>;
6785
5480
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
6786
5481
  }, undefined>, undefined>, undefined>;
6787
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
6788
5482
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
6789
5483
  readonly mode: v.LiteralSchema<"secret", undefined>;
6790
- /** Target Secret name in the namespace. */
6791
5484
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6792
- /** Secret `type`; absent ⇒ `Opaque`. */
6793
5485
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6794
5486
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6795
- /** Key inside the rendered Secret / `.env`. */
6796
5487
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6797
- /** Resolve the value from the workspace encrypted bundle by key. */
6798
5488
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6799
5489
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6800
5490
  }, undefined>, undefined>;
6801
- /** OR a non-secret value, templated over the provision vars. */
6802
5491
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6803
5492
  }, undefined>, v.CheckAction<{
6804
5493
  key: string;
@@ -6809,20 +5498,12 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6809
5498
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
6810
5499
  }, undefined>, v.ObjectSchema<{
6811
5500
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
6812
- /**
6813
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
6814
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
6815
- * overlay names the Secret.
6816
- */
6817
5501
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6818
5502
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6819
- /** Key inside the rendered Secret / `.env`. */
6820
5503
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6821
- /** Resolve the value from the workspace encrypted bundle by key. */
6822
5504
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6823
5505
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6824
5506
  }, undefined>, undefined>;
6825
- /** OR a non-secret value, templated over the provision vars. */
6826
5507
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6827
5508
  }, undefined>, v.CheckAction<{
6828
5509
  key: string;
@@ -6839,90 +5520,53 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6839
5520
  readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be an AWS region slug">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6840
5521
  readonly clusterName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6841
5522
  readonly stsHost: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be a bare host or host:port">, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
6842
- /** Human label for the connection (shown in the UI). */
6843
- readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6844
- /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
6845
5523
  readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
6846
- /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
6847
5524
  readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
6848
- /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
6849
5525
  readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
6850
- /**
6851
- * Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`.
6852
- * Rendered with the provision vars then sanitized to an RFC1123 label; absent ⇒ a
6853
- * default derived from the PR number / block id.
6854
- */
5526
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
6855
5527
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
6856
- /** Where the manifests are read from (co-located in the PR repo, or a separate repo). */
6857
5528
  readonly manifestSource: v.VariantSchema<"type", [v.ObjectSchema<{
6858
5529
  readonly type: v.LiteralSchema<"colocated", undefined>;
6859
- /** File or directory path within the PR repo (read at the PR head branch). */
6860
5530
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6861
5531
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6862
5532
  }, undefined>, v.ObjectSchema<{
6863
5533
  readonly type: v.LiteralSchema<"separate", undefined>;
6864
- /** `owner/repo` of the manifests repo. */
6865
5534
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
6866
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
6867
5535
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6868
- /** File or directory path within the manifests repo. */
6869
5536
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6870
5537
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
6871
5538
  }, undefined>], undefined>;
6872
- /** How the environment URL is derived once applied. */
6873
5539
  readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
6874
5540
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
6875
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
6876
5541
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6877
5542
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6878
5543
  }, undefined>, v.ObjectSchema<{
6879
5544
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
6880
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
6881
5545
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6882
5546
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6883
5547
  }, undefined>, v.ObjectSchema<{
6884
5548
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
6885
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
6886
5549
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
6887
5550
  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>;
6888
5551
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6889
5552
  }, undefined>, v.ObjectSchema<{
6890
5553
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
6891
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
6892
5554
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6893
5555
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6894
5556
  }, undefined>, v.ObjectSchema<{
6895
5557
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
6896
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
6897
5558
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6898
5559
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
6899
5560
  }, undefined>], undefined>;
6900
- /**
6901
- * Optional image reference made available to the manifests as `{{image}}` (e.g. a
6902
- * CI-built image tagged by branch/sha). Itself a template over the provision vars.
6903
- */
6904
5561
  readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6905
- /** Fallback TTL (ms) after which the env is swept + torn down. */
6906
5562
  readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
6907
- /**
6908
- * How long (seconds) the container deploy adapter waits for each Deployment to roll out
6909
- * before reporting the env still `provisioning` (the backend keeps polling). Only the
6910
- * container-backed render path honors it; absent ⇒ the harness default (180s).
6911
- */
6912
5563
  readonly rolloutTimeoutSeconds: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
6913
- /** Extra labels stamped on the namespace + every applied resource. */
6914
5564
  readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6915
- /** Extra annotations stamped on the namespace. */
6916
5565
  readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
6917
- /** Structured image overrides (the kustomize `images:` shape), templated over provision vars. */
6918
5566
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6919
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
6920
5567
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6921
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
6922
5568
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6923
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
6924
5569
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6925
- /** Replacement digest, templated; alternative to a tag. */
6926
5570
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6927
5571
  }, undefined>, v.CheckAction<{
6928
5572
  name: string;
@@ -6935,28 +5579,17 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6935
5579
  newTagTemplate?: string | undefined;
6936
5580
  digestTemplate?: string | undefined;
6937
5581
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
6938
- /** Helm releases to install — workspace-shared singletons merged with the service's per-env ones. */
6939
5582
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6940
- /** Release name. */
6941
5583
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6942
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
6943
5584
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6944
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
6945
5585
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6946
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
6947
5586
  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.">]>;
6948
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
6949
5587
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
6950
- /** Inline `--values` overrides. */
6951
5588
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
6952
- /** Templated `--set` overrides. */
6953
5589
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6954
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
6955
5590
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6956
- /** The value, templated over the provision vars. */
6957
5591
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
6958
5592
  }, undefined>, undefined>, undefined>;
6959
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
6960
5593
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
6961
5594
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6962
5595
  readonly secretRef: v.ObjectSchema<{
@@ -6965,21 +5598,15 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6965
5598
  }, undefined>, undefined>, undefined>;
6966
5599
  readonly scope: v.OptionalSchema<v.PicklistSchema<["per-environment", "shared"], undefined>, undefined>;
6967
5600
  }, undefined>, undefined>, undefined>;
6968
- /** Secrets fed in before apply (a `Secret` resource or a `secretGenerator` `.env`). */
6969
5601
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
6970
5602
  readonly mode: v.LiteralSchema<"secret", undefined>;
6971
- /** Target Secret name in the namespace. */
6972
5603
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
6973
- /** Secret `type`; absent ⇒ `Opaque`. */
6974
5604
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
6975
5605
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
6976
- /** Key inside the rendered Secret / `.env`. */
6977
5606
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
6978
- /** Resolve the value from the workspace encrypted bundle by key. */
6979
5607
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
6980
5608
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
6981
5609
  }, undefined>, undefined>;
6982
- /** OR a non-secret value, templated over the provision vars. */
6983
5610
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
6984
5611
  }, undefined>, v.CheckAction<{
6985
5612
  key: string;
@@ -6990,20 +5617,12 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
6990
5617
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
6991
5618
  }, undefined>, v.ObjectSchema<{
6992
5619
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
6993
- /**
6994
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
6995
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
6996
- * overlay names the Secret.
6997
- */
6998
5620
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
6999
5621
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
7000
- /** Key inside the rendered Secret / `.env`. */
7001
5622
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
7002
- /** Resolve the value from the workspace encrypted bundle by key. */
7003
5623
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
7004
5624
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
7005
5625
  }, undefined>, undefined>;
7006
- /** OR a non-secret value, templated over the provision vars. */
7007
5626
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
7008
5627
  }, undefined>, v.CheckAction<{
7009
5628
  key: string;
@@ -7017,6 +5636,8 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
7017
5636
  }, undefined>, v.ObjectSchema<{
7018
5637
  readonly kind: v.LiteralSchema<"cloudflare", undefined>;
7019
5638
  readonly cloudflare: v.ObjectSchema<{
5639
+ /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
5640
+ readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
7020
5641
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
7021
5642
  /**
7022
5643
  * The account's `*.workers.dev` subdomain — the preview URL is
@@ -7025,8 +5646,6 @@ export declare const testEnvironmentConnectionSchema: v.ObjectSchema<{
7025
5646
  * takes minutes.
7026
5647
  */
7027
5648
  readonly workersSubdomain: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 63, undefined>, v.RegexAction<string, "must be a bare workers.dev subdomain label, e.g. \"my-account\"">]>;
7028
- /** VCS API root. Absent ⇒ `https://api.github.com`. Set it for GitHub Enterprise Server. */
7029
- readonly apiBaseUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
7030
5649
  /**
7031
5650
  * `owner/repo` carrying the preview workflow. Absent ⇒ THE BLOCK'S OWN REPO, resolved per
7032
5651
  * provision — which is the point of a built-in backend over a pasted manifest: one handler
@@ -7430,16 +6049,12 @@ export declare const provisioningRecommendationSchema: v.ObjectSchema<{
7430
6049
  /** `kubernetes`: where the per-PR manifests live (colocated in the PR repo, or a separate repo). */
7431
6050
  readonly manifestSource: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
7432
6051
  readonly type: v.LiteralSchema<"colocated", undefined>;
7433
- /** File or directory path within the PR repo (read at the PR head branch). */
7434
6052
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
7435
6053
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
7436
6054
  }, undefined>, v.ObjectSchema<{
7437
6055
  readonly type: v.LiteralSchema<"separate", undefined>;
7438
- /** `owner/repo` of the manifests repo. */
7439
6056
  readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
7440
- /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
7441
6057
  readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7442
- /** File or directory path within the manifests repo. */
7443
6058
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
7444
6059
  readonly renderer: v.OptionalSchema<v.PicklistSchema<["raw", "kustomize"], undefined>, undefined>;
7445
6060
  }, undefined>], undefined>, undefined>;
@@ -7615,13 +6230,9 @@ export declare const provisioningRecommendationSchema: v.ObjectSchema<{
7615
6230
  * native REST adapter ignores these (raw manifests). See the schemas above.
7616
6231
  */
7617
6232
  readonly images: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
7618
- /** The image to match (the `name:` in a kustomization `images:` entry), e.g. `registry/app`. */
7619
6233
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7620
- /** Optional replacement repo, templated; absent ⇒ keep the original repo. */
7621
6234
  readonly newNameTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
7622
- /** Replacement tag, templated (e.g. `{{branch}}` / `{{sha}}`); mutually exclusive with digest. */
7623
6235
  readonly newTagTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
7624
- /** Replacement digest, templated; alternative to a tag. */
7625
6236
  readonly digestTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
7626
6237
  }, undefined>, v.CheckAction<{
7627
6238
  name: string;
@@ -7635,26 +6246,16 @@ export declare const provisioningRecommendationSchema: v.ObjectSchema<{
7635
6246
  digestTemplate?: string | undefined;
7636
6247
  }, "newTagTemplate and digestTemplate are mutually exclusive on an image override.">]>, undefined>, undefined>;
7637
6248
  readonly helmReleases: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
7638
- /** Release name. */
7639
6249
  readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7640
- /** Chart ref: an OCI ref (`oci://…`) or, with `repo`, a `repo/chart` name. */
7641
6250
  readonly chart: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7642
- /** Chart repo URL; absent ⇒ `chart` is an OCI ref. */
7643
6251
  readonly repo: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
7644
- /** PINNED chart version, e.g. `1.2.3` / `v1.2.3` (floating tags like `latest`/`^1.0` rejected). */
7645
6252
  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.">]>;
7646
- /** Namespace to install into, templated; absent ⇒ the environment namespace. */
7647
6253
  readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
7648
- /** Inline `--values` overrides. */
7649
6254
  readonly values: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
7650
- /** Templated `--set` overrides. */
7651
6255
  readonly set: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
7652
- /** Dotted `--set` path, e.g. `config.rateLimit.enabled`. */
7653
6256
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7654
- /** The value, templated over the provision vars. */
7655
6257
  readonly valueTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 2000, undefined>]>;
7656
6258
  }, undefined>, undefined>, undefined>;
7657
- /** Secret-bundle-backed values folded in at provision time (`--set <path>=<secret>`). */
7658
6259
  readonly valuesSecretRefs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
7659
6260
  readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7660
6261
  readonly secretRef: v.ObjectSchema<{
@@ -7665,18 +6266,13 @@ export declare const provisioningRecommendationSchema: v.ObjectSchema<{
7665
6266
  }, undefined>, undefined>, undefined>;
7666
6267
  readonly secretInjections: v.OptionalSchema<v.ArraySchema<v.VariantSchema<"mode", [v.ObjectSchema<{
7667
6268
  readonly mode: v.LiteralSchema<"secret", undefined>;
7668
- /** Target Secret name in the namespace. */
7669
6269
  readonly secretName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
7670
- /** Secret `type`; absent ⇒ `Opaque`. */
7671
6270
  readonly secretType: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7672
6271
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
7673
- /** Key inside the rendered Secret / `.env`. */
7674
6272
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
7675
- /** Resolve the value from the workspace encrypted bundle by key. */
7676
6273
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
7677
6274
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
7678
6275
  }, undefined>, undefined>;
7679
- /** OR a non-secret value, templated over the provision vars. */
7680
6276
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
7681
6277
  }, undefined>, v.CheckAction<{
7682
6278
  key: string;
@@ -7687,20 +6283,12 @@ export declare const provisioningRecommendationSchema: v.ObjectSchema<{
7687
6283
  }, "a secret entry must set exactly one of secretRef or valueTemplate.">]>, undefined>;
7688
6284
  }, undefined>, v.ObjectSchema<{
7689
6285
  readonly mode: v.LiteralSchema<"generatorEnvFile", undefined>;
7690
- /**
7691
- * Repo-relative path within the overlay tree to write the `KEY=value` env file the
7692
- * overlay's `secretGenerator` reads (e.g. `overlays/<env>/<component>/.env`). The
7693
- * overlay names the Secret.
7694
- */
7695
6286
  readonly envFilePath: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
7696
6287
  readonly entries: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
7697
- /** Key inside the rendered Secret / `.env`. */
7698
6288
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 256, undefined>]>;
7699
- /** Resolve the value from the workspace encrypted bundle by key. */
7700
6289
  readonly secretRef: v.OptionalSchema<v.ObjectSchema<{
7701
6290
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
7702
6291
  }, undefined>, undefined>;
7703
- /** OR a non-secret value, templated over the provision vars. */
7704
6292
  readonly valueTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
7705
6293
  }, undefined>, v.CheckAction<{
7706
6294
  key: string;
@@ -7714,28 +6302,23 @@ export declare const provisioningRecommendationSchema: v.ObjectSchema<{
7714
6302
  /** Engine-level URL source inferred from the manifest kinds (workspace handler owns it). */
7715
6303
  readonly urlSource: v.OptionalSchema<v.VariantSchema<"source", [v.ObjectSchema<{
7716
6304
  readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
7717
- /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
7718
6305
  readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
7719
6306
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
7720
6307
  }, undefined>, v.ObjectSchema<{
7721
6308
  readonly source: v.LiteralSchema<"ingressStatus", undefined>;
7722
- /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
7723
6309
  readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7724
6310
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
7725
6311
  }, undefined>, v.ObjectSchema<{
7726
6312
  readonly source: v.LiteralSchema<"serviceStatus", undefined>;
7727
- /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
7728
6313
  readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
7729
6314
  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>;
7730
6315
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
7731
6316
  }, undefined>, v.ObjectSchema<{
7732
6317
  readonly source: v.LiteralSchema<"gatewayStatus", undefined>;
7733
- /** Gateway-API `Gateway` to read `.status.addresses[]` from; absent ⇒ the only one applied. */
7734
6318
  readonly gatewayName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7735
6319
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
7736
6320
  }, undefined>, v.ObjectSchema<{
7737
6321
  readonly source: v.LiteralSchema<"httpRouteStatus", undefined>;
7738
- /** `HTTPRoute` whose `parentRefs` resolve to the Gateway address; absent ⇒ the only one applied. */
7739
6322
  readonly httpRouteName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7740
6323
  readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
7741
6324
  }, undefined>], undefined>, undefined>;
@@ -7898,4 +6481,17 @@ export declare const detectServiceProvisioningSchema: v.ObjectSchema<{
7898
6481
  readonly currentManifestPath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
7899
6482
  }, undefined>;
7900
6483
  export type DetectServiceProvisioningInput = v.InferOutput<typeof detectServiceProvisioningSchema>;
6484
+ /**
6485
+ * Re-validate a native backend's config read back off a stored {@link EnvironmentManifest}'s
6486
+ * `providerConfig`, or throw naming what is wrong with it.
6487
+ *
6488
+ * `providerConfig` is `Record<string, unknown>` on the wire, deliberately: it is the carrier
6489
+ * for whatever settings a backend defines. So reading a config back out used to be an
6490
+ * assertion. The connect controller does validate on the way IN, but the value has been through
6491
+ * storage since: a config written before a schema change, or edited in the database, would flow
6492
+ * on as a fake-valid object and only misbehave deep inside a provision. Parsing here names the
6493
+ * offending field at the boundary instead, and every native backend re-reads its config the
6494
+ * same way rather than each picking its own wording.
6495
+ */
6496
+ export declare function parseStoredProviderConfig<T>(schema: v.GenericSchema<unknown, T>, raw: unknown, label: string): T;
7901
6497
  //# sourceMappingURL=environments.d.ts.map