@intentius/chant-lexicon-cpln 0.124.40 → 0.124.41

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.
@@ -11,8 +11,8 @@ resource_type: Cpln::Core::Secret
11
11
  ## Properties
12
12
 
13
13
  - `name` (`string`, required)
14
- - `type` (`"aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass"`, required)
15
- - `data` (`SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair`, optional)
14
+ - `type` (`"aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass"`, required): The kind of secret, which determines the shape of data
15
+ - `data` (`SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair`, optional): The secret contents, shaped according to type
16
16
  - `description` (`string`, optional)
17
17
  - `tags` (`Record<string, string>`, optional)
18
18
 
@@ -94,7 +94,9 @@ export declare class Policy {
94
94
  export declare class Secret {
95
95
  constructor(props: {
96
96
  name: string;
97
+ /** The kind of secret, which determines the shape of data */
97
98
  type: "aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass";
99
+ /** The secret contents, shaped according to type */
98
100
  data?: SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair;
99
101
  description?: string;
100
102
  tags?: Record<string, string>;
@@ -658,40 +660,55 @@ export declare class QuerySpecTerms {
658
660
 
659
661
  export declare class SecretAwskey {
660
662
  constructor(props: {
663
+ /** AWS access key ID */
661
664
  accessKey?: string;
665
+ /** External ID for the role-assumption trust policy */
662
666
  externalId?: string;
667
+ /** Optional IAM role ARN to assume using the access key */
663
668
  roleArn?: string;
669
+ /** AWS secret access key */
664
670
  secretKey?: string;
665
671
  });
666
672
  }
667
673
 
668
674
  export declare class SecretKeypair {
669
675
  constructor(props: {
676
+ /** Passphrase protecting the private key */
670
677
  passphrase?: string;
678
+ /** Public key */
671
679
  publicKey?: string;
680
+ /** Private key */
672
681
  secretKey?: string;
673
682
  });
674
683
  }
675
684
 
676
685
  export declare class SecretOpaque {
677
686
  constructor(props: {
687
+ /** How payload is encoded */
678
688
  encoding?: "base64" | "plain";
689
+ /** The secret value */
679
690
  payload?: string;
680
691
  });
681
692
  }
682
693
 
683
694
  export declare class SecretTls {
684
695
  constructor(props: {
696
+ /** Certificate, PEM-encoded */
685
697
  cert?: string;
698
+ /** Certificate chain, PEM-encoded */
686
699
  chain?: string;
700
+ /** Private key, PEM-encoded */
687
701
  key?: string;
688
702
  });
689
703
  }
690
704
 
691
705
  export declare class SecretUserpass {
692
706
  constructor(props: {
707
+ /** Declared encoding of the username/password; not decoded (values are stored as provided) */
693
708
  encoding?: "base64" | "plain";
709
+ /** Password */
694
710
  password?: string;
711
+ /** Username */
695
712
  username?: string;
696
713
  });
697
714
  }
@@ -786,6 +803,8 @@ export declare class WorkloadSpec {
786
803
  containers?: WorkloadSpecContainers[];
787
804
  /** Set defaultOptions for the workload in all Control Plane Locations. */
788
805
  defaultOptions?: WorkloadSpecDefaultOptions;
806
+ /** Limits how many replicas voluntary disruptions (node drains, cluster autoscaler scale-down, node upgrades) can evict at once. Set either minAvailable or maxUnavailable. A minAvailable that would allow no evictions at the minScale of defaultOptions or any localOptions is rejected. Not supported for cron or vm workloads. When omitted, workloads with minScale 4 or more allow 20% of replicas to be unavailable. */
807
+ disruptionBudget?: WorkloadSpecDisruptionBudget;
789
808
  /** Additional Kubernetes customizations for BYOK */
790
809
  extras?: WorkloadSpecExtras;
791
810
  /** Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default. */
@@ -804,7 +823,7 @@ export declare class WorkloadSpec {
804
823
  requestRetryPolicy?: WorkloadSpecRequestRetryPolicy;
805
824
  /** Configuration for how workload updates are rolled out */
806
825
  rolloutOptions?: WorkloadSpecRolloutOptions;
807
- /** Dev-session configuration marking this stateful workload as a sandbox. */
826
+ /** Marks this workload as a sandbox and carries its settings. Two types: dev (a human devbox: browser IDE and terminal behind a Control Plane sign-in, the connect permission on the workload) and worker (an agent box: the devboxd API behind a token, hosting agent sessions, many per box). Both are stateful workloads with a home volume that scale to zero when idle and resume on the next request; when spec.type is omitted the server sets stateful. A sandbox is created in one call with just this section: when spec.containers is omitted the server injects the standard container for the profile (dev: build.cpln.io/public/sandbox-base:v1 with the browser IDE; worker: build.cpln.io/public/agentbox-base:v1 running devboxd; 1 CPU, 2 GiB), when a worker token is omitted the server generates it, and the server creates and owns the home volumeset <name>-state, mounted at /home/devuser and deleted with the sandbox. Size the box on spec.containers[0].cpu and memory (a container that omits them gets 1 CPU, 2 GiB). The firewall defaults open in both directions; the sign-in (dev) or the token (worker) is what gates access. Idle sandboxes scale to zero after scaleToZeroDelay (default 300 s) and run as a single replica. The URL is status.endpoint on the workload deployment: for dev the IDE at /_ide/, terminal at /_term/, your app at /; for worker the devboxd API. The server also stamps the tags cpln/sandbox, cpln/kata, cpln/kataPrivileged (privileged root inside the microVM, which is the isolation boundary), cpln/scaleToZero and, for dev, cpln/dev-type (read by cpln sandbox connect); do not set them yourself. Read a worker token back from this section after create. */
808
827
  sandbox?: WorkloadSpecSandbox;
809
828
  /** Security context for the workload */
810
829
  securityOptions?: WorkloadSpecSecurityOptions;
@@ -829,6 +848,8 @@ export declare class WorkloadSpecContainers {
829
848
  cpu?: string;
830
849
  /** Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD */
831
850
  env?: WorkloadSpecContainersEnv[];
851
+ /** Inject all key/value pairs of the referenced dictionary secrets as environment variables. An explicit spec.env variable overrides an envFrom key of the same name; later envFrom entries override earlier ones. Keys that are not valid environment variable names are skipped. */
852
+ envFrom?: WorkloadSpecContainersEnvFrom[];
832
853
  /** Reserved GPU resources for the workload. */
833
854
  gpu?: WorkloadSpecContainersGpu;
834
855
  /** The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud). Required for all workload types except 'vm', which boots from spec.vm.bootDisk.source instead. */
@@ -869,6 +890,20 @@ export declare class WorkloadSpecContainersEnv {
869
890
  });
870
891
  }
871
892
 
893
+ export declare class WorkloadSpecContainersEnvFrom {
894
+ constructor(props: {
895
+ /** References a dictionary secret whose key/value pairs are injected as environment variables */
896
+ secretRef?: WorkloadSpecContainersEnvFromSecretRef;
897
+ });
898
+ }
899
+
900
+ export declare class WorkloadSpecContainersEnvFromSecretRef {
901
+ constructor(props: {
902
+ /** Name of a dictionary (opaque key/value) secret whose keys are injected as environment variables */
903
+ name?: string;
904
+ });
905
+ }
906
+
872
907
  export declare class WorkloadSpecContainersGpu {
873
908
  constructor(props: {
874
909
  /** Custom GPU resource specification for non-NVIDIA GPUs */
@@ -1282,6 +1317,15 @@ export declare class WorkloadSpecDefaultOptionsMultiZone {
1282
1317
  });
1283
1318
  }
1284
1319
 
1320
+ export declare class WorkloadSpecDisruptionBudget {
1321
+ constructor(props: {
1322
+ /** Maximum number or percentage of replicas that can be unavailable during voluntary disruptions such as node drains */
1323
+ maxUnavailable?: string;
1324
+ /** Minimum number or percentage of replicas that must stay available during voluntary disruptions such as node drains */
1325
+ minAvailable?: string;
1326
+ });
1327
+ }
1328
+
1285
1329
  export declare class WorkloadSpecExtras {
1286
1330
  constructor(props: {
1287
1331
  /** Kubernetes pod affinity and anti-affinity rules */
@@ -1624,10 +1668,18 @@ export declare class WorkloadSpecLocalOptionsMultiZone {
1624
1668
 
1625
1669
  export declare class WorkloadSpecNetworking {
1626
1670
  constructor(props: {
1627
- /** When enabled, requests to <workload>.<gvc>.cpln.local from the same GVC fail over to the workload's canonical endpoint
1628
- (the nearest healthy location) when no local replica can serve them. Cross-location traffic is billed as egress.
1629
- Defaults to true for workloads created after this field was introduced; absent means disabled. */
1630
- interGvcFailover?: boolean;
1671
+ /** Routing of internal (cpln.local) requests */
1672
+ internal?: WorkloadSpecNetworkingInternal;
1673
+ });
1674
+ }
1675
+
1676
+ export declare class WorkloadSpecNetworkingInternal {
1677
+ constructor(props: {
1678
+ /** How requests to <workload>.<gvc>.cpln.local from the same GVC are routed.
1679
+ locationEndpoint: served only by replicas in the caller's location.
1680
+ gvcEndpoint: fail over to the workload's canonical endpoint (the nearest healthy location) when no local replica can serve them. Cross-location traffic is billed as egress.
1681
+ Defaults to gvcEndpoint for workloads created after this field was introduced; absent means locationEndpoint. */
1682
+ routing?: "gvcEndpoint" | "locationEndpoint";
1631
1683
  });
1632
1684
  }
1633
1685
 
@@ -1648,6 +1700,8 @@ export declare class WorkloadSpecRolloutOptions {
1648
1700
  maxUnavailableReplicas?: string;
1649
1701
  /** The minimum number of seconds a container must run without crashing to be considered available */
1650
1702
  minReadySeconds?: number;
1703
+ /** When true, replicas are rolled out whenever a secret or the identity referenced by the workload is modified */
1704
+ rolloutOnReferenceChange?: boolean;
1651
1705
  /** Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel) */
1652
1706
  scalingPolicy?: "OrderedReady" | "Parallel";
1653
1707
  /** The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.
@@ -1660,20 +1714,27 @@ export declare class WorkloadSpecSandbox {
1660
1714
  constructor(props: {
1661
1715
  /** The port the primary application inside the dev container listens on. The sandbox gateway proxies the endpoint root to it. */
1662
1716
  appPort?: number;
1663
- /** The IDE this sandbox is primarily connected with. */
1717
+ /** dev type: the IDE the owner primarily connects with. Informational: clients use it to pick a default connect flow; the server does not act on it. */
1664
1718
  ide?: "browser" | "cursor" | "ssh" | "vscode";
1665
- /** Enables scale-to-zero: idle for this many seconds scales the sandbox to 0 and the next request wakes it. The workload autoscaling field alone cannot enable this (it always carries a default), so enablement lives here and is stamped as the cpln/scaleToZero tag. */
1719
+ /** Deprecated and ignored: the browser IDE admits callers whose Control Plane token holds connect on this workload; no password exists. */
1720
+ password?: string;
1721
+ /** Idle seconds before the sandbox scales to zero; the next request to its endpoint wakes it (a suspended box resumes in place, so the request that claims a worker is also what wakes it). Every sandbox scales to zero (the overlay stamps cpln/scaleToZero and pins autoscaling to one replica); this sets how long it stays up idle. Default 300. */
1666
1722
  scaleToZeroDelay?: number;
1667
- /** The maximum lifetime of the sandbox. This string should contain a floating point number followed by either d, h, or m. For example, "10d" would delete the sandbox after 10 days. */
1723
+ /** worker type: the bearer token that secures the devboxd HTTP API. Generated by the server when omitted on create and kept on later writes; set it to choose your own. Injected into the dev container as DEVBOXD_TOKEN. */
1724
+ token?: string;
1725
+ /** Deprecated and ignored: TTL enforcement moves to fleet-level tooling. */
1668
1726
  ttl?: string;
1727
+ /** dev: a human sandbox - browser IDE and terminal served on the workload endpoint behind a Control Plane sign-in (connect permission on the workload; gateway port 8888, IDE at /_ide/, terminal at /_term/, your app at /). worker: an agent box - the devboxd HTTP API on port 49983 is the only listener, secured by the token, and the workload endpoint is that API; no IDE, no password; agents run in devboxd sessions on it, many per box. Both keep a home volume, scale to zero when idle and resume on the next request. */
1728
+ type?: "dev" | "worker";
1729
+ /** The home volume. The server creates and owns a shared-filesystem volumeset named <workload>-state and deletes it with the sandbox. */
1669
1730
  volume?: WorkloadSpecSandboxVolume;
1670
1731
  });
1671
1732
  }
1672
1733
 
1673
1734
  export declare class WorkloadSpecSandboxVolume {
1674
1735
  constructor(props: {
1675
- /** The size in GB of the volume backing the sandbox home directory. */
1676
- size?: number;
1736
+ /** Initial size in GB of the home volumeset the server creates for this sandbox (mounted at /home/devuser). Immutable after create: resize the volumeset itself. */
1737
+ initialCapacity?: number;
1677
1738
  });
1678
1739
  }
1679
1740
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-cpln",
3
- "version": "0.124.40",
3
+ "version": "0.124.41",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "src/",
@@ -49,7 +49,7 @@
49
49
  "typescript": "^5.9.3"
50
50
  },
51
51
  "peerDependencies": {
52
- "@intentius/chant": "^0.124.40"
52
+ "@intentius/chant": "^0.124.41"
53
53
  },
54
54
  "description": "Control Plane (cpln) lexicon for chant — declarative IaC in TypeScript",
55
55
  "license": "Apache-2.0",
@@ -94,7 +94,9 @@ export declare class Policy {
94
94
  export declare class Secret {
95
95
  constructor(props: {
96
96
  name: string;
97
+ /** The kind of secret, which determines the shape of data */
97
98
  type: "aws" | "azure-connector" | "azure-sdk" | "dictionary" | "docker" | "ecr" | "gcp" | "keypair" | "nats-account" | "opaque" | "tls" | "userpass";
99
+ /** The secret contents, shaped according to type */
98
100
  data?: SecretOpaque | SecretTls | string | SecretAwskey | Record<string, unknown> | SecretUserpass | SecretKeypair;
99
101
  description?: string;
100
102
  tags?: Record<string, string>;
@@ -658,40 +660,55 @@ export declare class QuerySpecTerms {
658
660
 
659
661
  export declare class SecretAwskey {
660
662
  constructor(props: {
663
+ /** AWS access key ID */
661
664
  accessKey?: string;
665
+ /** External ID for the role-assumption trust policy */
662
666
  externalId?: string;
667
+ /** Optional IAM role ARN to assume using the access key */
663
668
  roleArn?: string;
669
+ /** AWS secret access key */
664
670
  secretKey?: string;
665
671
  });
666
672
  }
667
673
 
668
674
  export declare class SecretKeypair {
669
675
  constructor(props: {
676
+ /** Passphrase protecting the private key */
670
677
  passphrase?: string;
678
+ /** Public key */
671
679
  publicKey?: string;
680
+ /** Private key */
672
681
  secretKey?: string;
673
682
  });
674
683
  }
675
684
 
676
685
  export declare class SecretOpaque {
677
686
  constructor(props: {
687
+ /** How payload is encoded */
678
688
  encoding?: "base64" | "plain";
689
+ /** The secret value */
679
690
  payload?: string;
680
691
  });
681
692
  }
682
693
 
683
694
  export declare class SecretTls {
684
695
  constructor(props: {
696
+ /** Certificate, PEM-encoded */
685
697
  cert?: string;
698
+ /** Certificate chain, PEM-encoded */
686
699
  chain?: string;
700
+ /** Private key, PEM-encoded */
687
701
  key?: string;
688
702
  });
689
703
  }
690
704
 
691
705
  export declare class SecretUserpass {
692
706
  constructor(props: {
707
+ /** Declared encoding of the username/password; not decoded (values are stored as provided) */
693
708
  encoding?: "base64" | "plain";
709
+ /** Password */
694
710
  password?: string;
711
+ /** Username */
695
712
  username?: string;
696
713
  });
697
714
  }
@@ -786,6 +803,8 @@ export declare class WorkloadSpec {
786
803
  containers?: WorkloadSpecContainers[];
787
804
  /** Set defaultOptions for the workload in all Control Plane Locations. */
788
805
  defaultOptions?: WorkloadSpecDefaultOptions;
806
+ /** Limits how many replicas voluntary disruptions (node drains, cluster autoscaler scale-down, node upgrades) can evict at once. Set either minAvailable or maxUnavailable. A minAvailable that would allow no evictions at the minScale of defaultOptions or any localOptions is rejected. Not supported for cron or vm workloads. When omitted, workloads with minScale 4 or more allow 20% of replicas to be unavailable. */
807
+ disruptionBudget?: WorkloadSpecDisruptionBudget;
789
808
  /** Additional Kubernetes customizations for BYOK */
790
809
  extras?: WorkloadSpecExtras;
791
810
  /** Optional control of inbound and outbound access to the workload for external (public) and internal (service to service) traffic. Access is restricted by default. */
@@ -804,7 +823,7 @@ export declare class WorkloadSpec {
804
823
  requestRetryPolicy?: WorkloadSpecRequestRetryPolicy;
805
824
  /** Configuration for how workload updates are rolled out */
806
825
  rolloutOptions?: WorkloadSpecRolloutOptions;
807
- /** Dev-session configuration marking this stateful workload as a sandbox. */
826
+ /** Marks this workload as a sandbox and carries its settings. Two types: dev (a human devbox: browser IDE and terminal behind a Control Plane sign-in, the connect permission on the workload) and worker (an agent box: the devboxd API behind a token, hosting agent sessions, many per box). Both are stateful workloads with a home volume that scale to zero when idle and resume on the next request; when spec.type is omitted the server sets stateful. A sandbox is created in one call with just this section: when spec.containers is omitted the server injects the standard container for the profile (dev: build.cpln.io/public/sandbox-base:v1 with the browser IDE; worker: build.cpln.io/public/agentbox-base:v1 running devboxd; 1 CPU, 2 GiB), when a worker token is omitted the server generates it, and the server creates and owns the home volumeset <name>-state, mounted at /home/devuser and deleted with the sandbox. Size the box on spec.containers[0].cpu and memory (a container that omits them gets 1 CPU, 2 GiB). The firewall defaults open in both directions; the sign-in (dev) or the token (worker) is what gates access. Idle sandboxes scale to zero after scaleToZeroDelay (default 300 s) and run as a single replica. The URL is status.endpoint on the workload deployment: for dev the IDE at /_ide/, terminal at /_term/, your app at /; for worker the devboxd API. The server also stamps the tags cpln/sandbox, cpln/kata, cpln/kataPrivileged (privileged root inside the microVM, which is the isolation boundary), cpln/scaleToZero and, for dev, cpln/dev-type (read by cpln sandbox connect); do not set them yourself. Read a worker token back from this section after create. */
808
827
  sandbox?: WorkloadSpecSandbox;
809
828
  /** Security context for the workload */
810
829
  securityOptions?: WorkloadSpecSecurityOptions;
@@ -829,6 +848,8 @@ export declare class WorkloadSpecContainers {
829
848
  cpu?: string;
830
849
  /** Environment variables for the container at runtime. Default environment variables are also provided: CPLN_GVC, CPLN_LOCATION, CPLN_ORG, CPLN_PROVIDER, CPLN_WORKLOAD */
831
850
  env?: WorkloadSpecContainersEnv[];
851
+ /** Inject all key/value pairs of the referenced dictionary secrets as environment variables. An explicit spec.env variable overrides an envFrom key of the same name; later envFrom entries override earlier ones. Keys that are not valid environment variable names are skipped. */
852
+ envFrom?: WorkloadSpecContainersEnvFrom[];
832
853
  /** Reserved GPU resources for the workload. */
833
854
  gpu?: WorkloadSpecContainersGpu;
834
855
  /** The full image and tag path for a public or private docker registry. Private container images must have valid credentials configured in 'pullSecretLinks' on the GVC (Global Virtual Cloud). Required for all workload types except 'vm', which boots from spec.vm.bootDisk.source instead. */
@@ -869,6 +890,20 @@ export declare class WorkloadSpecContainersEnv {
869
890
  });
870
891
  }
871
892
 
893
+ export declare class WorkloadSpecContainersEnvFrom {
894
+ constructor(props: {
895
+ /** References a dictionary secret whose key/value pairs are injected as environment variables */
896
+ secretRef?: WorkloadSpecContainersEnvFromSecretRef;
897
+ });
898
+ }
899
+
900
+ export declare class WorkloadSpecContainersEnvFromSecretRef {
901
+ constructor(props: {
902
+ /** Name of a dictionary (opaque key/value) secret whose keys are injected as environment variables */
903
+ name?: string;
904
+ });
905
+ }
906
+
872
907
  export declare class WorkloadSpecContainersGpu {
873
908
  constructor(props: {
874
909
  /** Custom GPU resource specification for non-NVIDIA GPUs */
@@ -1282,6 +1317,15 @@ export declare class WorkloadSpecDefaultOptionsMultiZone {
1282
1317
  });
1283
1318
  }
1284
1319
 
1320
+ export declare class WorkloadSpecDisruptionBudget {
1321
+ constructor(props: {
1322
+ /** Maximum number or percentage of replicas that can be unavailable during voluntary disruptions such as node drains */
1323
+ maxUnavailable?: string;
1324
+ /** Minimum number or percentage of replicas that must stay available during voluntary disruptions such as node drains */
1325
+ minAvailable?: string;
1326
+ });
1327
+ }
1328
+
1285
1329
  export declare class WorkloadSpecExtras {
1286
1330
  constructor(props: {
1287
1331
  /** Kubernetes pod affinity and anti-affinity rules */
@@ -1624,10 +1668,18 @@ export declare class WorkloadSpecLocalOptionsMultiZone {
1624
1668
 
1625
1669
  export declare class WorkloadSpecNetworking {
1626
1670
  constructor(props: {
1627
- /** When enabled, requests to <workload>.<gvc>.cpln.local from the same GVC fail over to the workload's canonical endpoint
1628
- (the nearest healthy location) when no local replica can serve them. Cross-location traffic is billed as egress.
1629
- Defaults to true for workloads created after this field was introduced; absent means disabled. */
1630
- interGvcFailover?: boolean;
1671
+ /** Routing of internal (cpln.local) requests */
1672
+ internal?: WorkloadSpecNetworkingInternal;
1673
+ });
1674
+ }
1675
+
1676
+ export declare class WorkloadSpecNetworkingInternal {
1677
+ constructor(props: {
1678
+ /** How requests to <workload>.<gvc>.cpln.local from the same GVC are routed.
1679
+ locationEndpoint: served only by replicas in the caller's location.
1680
+ gvcEndpoint: fail over to the workload's canonical endpoint (the nearest healthy location) when no local replica can serve them. Cross-location traffic is billed as egress.
1681
+ Defaults to gvcEndpoint for workloads created after this field was introduced; absent means locationEndpoint. */
1682
+ routing?: "gvcEndpoint" | "locationEndpoint";
1631
1683
  });
1632
1684
  }
1633
1685
 
@@ -1648,6 +1700,8 @@ export declare class WorkloadSpecRolloutOptions {
1648
1700
  maxUnavailableReplicas?: string;
1649
1701
  /** The minimum number of seconds a container must run without crashing to be considered available */
1650
1702
  minReadySeconds?: number;
1703
+ /** When true, replicas are rolled out whenever a secret or the identity referenced by the workload is modified */
1704
+ rolloutOnReferenceChange?: boolean;
1651
1705
  /** Determines whether replicas are scaled in order (OrderedReady) or in parallel (Parallel) */
1652
1706
  scalingPolicy?: "OrderedReady" | "Parallel";
1653
1707
  /** The amount of time in seconds a workload has to gracefully terminate before forcefully terminating it.
@@ -1660,20 +1714,27 @@ export declare class WorkloadSpecSandbox {
1660
1714
  constructor(props: {
1661
1715
  /** The port the primary application inside the dev container listens on. The sandbox gateway proxies the endpoint root to it. */
1662
1716
  appPort?: number;
1663
- /** The IDE this sandbox is primarily connected with. */
1717
+ /** dev type: the IDE the owner primarily connects with. Informational: clients use it to pick a default connect flow; the server does not act on it. */
1664
1718
  ide?: "browser" | "cursor" | "ssh" | "vscode";
1665
- /** Enables scale-to-zero: idle for this many seconds scales the sandbox to 0 and the next request wakes it. The workload autoscaling field alone cannot enable this (it always carries a default), so enablement lives here and is stamped as the cpln/scaleToZero tag. */
1719
+ /** Deprecated and ignored: the browser IDE admits callers whose Control Plane token holds connect on this workload; no password exists. */
1720
+ password?: string;
1721
+ /** Idle seconds before the sandbox scales to zero; the next request to its endpoint wakes it (a suspended box resumes in place, so the request that claims a worker is also what wakes it). Every sandbox scales to zero (the overlay stamps cpln/scaleToZero and pins autoscaling to one replica); this sets how long it stays up idle. Default 300. */
1666
1722
  scaleToZeroDelay?: number;
1667
- /** The maximum lifetime of the sandbox. This string should contain a floating point number followed by either d, h, or m. For example, "10d" would delete the sandbox after 10 days. */
1723
+ /** worker type: the bearer token that secures the devboxd HTTP API. Generated by the server when omitted on create and kept on later writes; set it to choose your own. Injected into the dev container as DEVBOXD_TOKEN. */
1724
+ token?: string;
1725
+ /** Deprecated and ignored: TTL enforcement moves to fleet-level tooling. */
1668
1726
  ttl?: string;
1727
+ /** dev: a human sandbox - browser IDE and terminal served on the workload endpoint behind a Control Plane sign-in (connect permission on the workload; gateway port 8888, IDE at /_ide/, terminal at /_term/, your app at /). worker: an agent box - the devboxd HTTP API on port 49983 is the only listener, secured by the token, and the workload endpoint is that API; no IDE, no password; agents run in devboxd sessions on it, many per box. Both keep a home volume, scale to zero when idle and resume on the next request. */
1728
+ type?: "dev" | "worker";
1729
+ /** The home volume. The server creates and owns a shared-filesystem volumeset named <workload>-state and deletes it with the sandbox. */
1669
1730
  volume?: WorkloadSpecSandboxVolume;
1670
1731
  });
1671
1732
  }
1672
1733
 
1673
1734
  export declare class WorkloadSpecSandboxVolume {
1674
1735
  constructor(props: {
1675
- /** The size in GB of the volume backing the sandbox home directory. */
1676
- size?: number;
1736
+ /** Initial size in GB of the home volumeset the server creates for this sandbox (mounted at /home/devuser). Immutable after create: resize the volumeset itself. */
1737
+ initialCapacity?: number;
1677
1738
  });
1678
1739
  }
1679
1740
 
@@ -79,6 +79,8 @@ export const VolumeSetSpecSnapshots = /* @__PURE__ */ createProperty("Cpln::Core
79
79
  export const WorkloadSpec = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpec", "cpln");
80
80
  export const WorkloadSpecContainers = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainers", "cpln");
81
81
  export const WorkloadSpecContainersEnv = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersEnv", "cpln");
82
+ export const WorkloadSpecContainersEnvFrom = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersEnvFrom", "cpln");
83
+ export const WorkloadSpecContainersEnvFromSecretRef = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersEnvFromSecretRef", "cpln");
82
84
  export const WorkloadSpecContainersGpu = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersGpu", "cpln");
83
85
  export const WorkloadSpecContainersGpuCustom = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersGpuCustom", "cpln");
84
86
  export const WorkloadSpecContainersGpuNvidia = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecContainersGpuNvidia", "cpln");
@@ -118,6 +120,7 @@ export const WorkloadSpecDefaultOptionsAutoscalingKedaTriggers = /* @__PURE__ */
118
120
  export const WorkloadSpecDefaultOptionsAutoscalingKedaTriggersAuthenticationRef = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDefaultOptionsAutoscalingKedaTriggersAuthenticationRef", "cpln");
119
121
  export const WorkloadSpecDefaultOptionsAutoscalingMulti = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDefaultOptionsAutoscalingMulti", "cpln");
120
122
  export const WorkloadSpecDefaultOptionsMultiZone = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDefaultOptionsMultiZone", "cpln");
123
+ export const WorkloadSpecDisruptionBudget = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecDisruptionBudget", "cpln");
121
124
  export const WorkloadSpecExtras = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecExtras", "cpln");
122
125
  export const WorkloadSpecExtrasMetadata = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecExtrasMetadata", "cpln");
123
126
  export const WorkloadSpecFirewallConfig = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecFirewallConfig", "cpln");
@@ -149,6 +152,7 @@ export const WorkloadSpecLocalOptionsAutoscalingKedaTriggersAuthenticationRef =
149
152
  export const WorkloadSpecLocalOptionsAutoscalingMulti = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecLocalOptionsAutoscalingMulti", "cpln");
150
153
  export const WorkloadSpecLocalOptionsMultiZone = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecLocalOptionsMultiZone", "cpln");
151
154
  export const WorkloadSpecNetworking = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecNetworking", "cpln");
155
+ export const WorkloadSpecNetworkingInternal = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecNetworkingInternal", "cpln");
152
156
  export const WorkloadSpecRequestRetryPolicy = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecRequestRetryPolicy", "cpln");
153
157
  export const WorkloadSpecRolloutOptions = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecRolloutOptions", "cpln");
154
158
  export const WorkloadSpecSandbox = /* @__PURE__ */ createProperty("Cpln::Core::WorkloadSpecSandbox", "cpln");