cwic sandbox profile create -f and cwic sandbox profile edit accept in a sandbox profile. The control-plane API names the persisted resource ProfileTemplate. The CLI exposes the same concept under cwic sandbox profile, so “profile” and “profile template” refer to the same thing throughout the documentation. For task-oriented configuration help, see Configure a sandbox profile.
The following shape is the structured YAML the CoreWeave Intelligent CLI accepts as input and renders for editing. The control plane stores three sub-blocks (spec.namespace, spec.network, spec.pod) as JSON-encoded strings. The CLI translates between the two at the client boundary. See Wire format mapping.
CoreWeave sandboxes are in public preview. For access, contact your CoreWeave account team, CoreWeave Support, or email support@coreweave.com.
Top-level fields
The following fields appear at the root of a profile document.
The server rejects output-only fields (
id, organization_id, created_at, updated_at) on create.
Spec fields
Thespec block defines the runtime shape every sandbox launched from this profile inherits. The following sections describe each subsection in detail.
All spec fields are optional.
ResourceDefaults
Default Kubernetes resource requests and limits. Values use standard Kubernetes quantity syntax.
Sandboxes can override these at launch. The service rejects overrides that exceed the organization’s per-sandbox resource quota.
namespace
Controls how the service places each sandbox into a Kubernetes namespace.
Strategies
network
Controls outbound (egress) and inbound (ingress) traffic for sandboxes launched from the profile.
network is omitted entirely, sandboxes default to no outbound connectivity and no exposed ports.
network.egress
EgressMode
Egress types
network.ingress
Keyed by exposure level name. Common names are internal and public. Any non-empty string is accepted except none, which is reserved.
IngressLevel
ServiceConfig
IngressConfig
AnnotationPair
pod
A partial Kubernetes PodSpec plus pod metadata and placement hints. Use this for fields the structured profile shape does not model.
If you only need to pin instance types or set a runtime class, prefer the top-level fields. Reserve
spec.pod for cases that need PodSpec depth.
Related runner field: profile_bindings
A profile binding attaches a profile to a runner so the runner enforces that profile’s policies and guardrails for sandboxes it places. Bindings live in the runner object’s top-level profile_bindings list, not as standalone resources. They are managed with cwic sandbox runner edit.
Validation rules
The control plane enforces the following rules when you create or edit a profile.display_namemust be unique within the organization. Conflicts surface as anAlreadyExistserror.staticNamespaceand any generated namespace name must satisfy DNS-1123 label rules: up to 63 characters, lowercase alphanumeric, hyphens allowed, no leading or trailing hyphens.- When
network.egressis present,egress.modesmust contain at least one mode. egress.defaultis required whenegress.modesdefines more than one mode. When set, it must reference a key present inmodes.- Each entry in an
allowlistmode’scidrsmust parse as a valid CIDR. resource_defaultsvalues must parse as Kubernetes resource quantities.runtime_class, when set, is only verified at sandbox-schedule time. A profile referencing a runtime class that isn’t installed on the target cluster fails at sandbox launch, not at profile validation.- The service rejects payloads that mix a structured key (
spec.namespace,spec.network,spec.pod) with its proto alias (spec.namespace_config_json,spec.network_config_json,spec.pod_template_json) at the same path. - The service rejects duplicate keys anywhere in the YAML payload.
- You can’t delete a profile while it is bound to a runner. Detach the binding with
cwic sandbox runner editbefore retrying the delete.
Wire format mapping
The CoreWeave Intelligent CLI accepts the structured shape documented in the preceding sections and rewrites three sub-blocks to JSON-encoded string fields before sending to the control plane. Both forms are valid input.cwic sandbox profile edit renders the structured form so you don’t have to hand-edit escaped JSON strings. cwic sandbox profile get -o json returns the proto-facing shape with the JSON-encoded sub-blocks intact.
Tools that talk to the control plane directly (for example, generated SDK clients) see the proto-facing aliases. CoreWeave Intelligent CLI users do not need to construct these strings manually.
See also
- Configure a sandbox profile for task-oriented examples.
- Get started for the end-to-end setup walkthrough.