Skip to main content
stack-spec.yaml is the desired-intent document for one StackKits workspace. Let the released CLI create the complete document, then change only the intent you understand.
The released CLI writes a complete native StackSpec and establishes local owner custody outside it. Keep the generated apiVersion: the installed release’s CUE contracts supply its fields, defaults and constraints.

Common fields to review

This is an excerpt, not a replacement for the complete generated document:

Select the released Files workload

The Basement and Cloud Kit contracts expose files as an optional workload for the Documents & Files use case; the use-case catalog lists the components declared by the published release. This selection was validated and generated with the released CLI:
Merge the workloads object into the complete StackSpec produced by init. The home site and main node are the released Basement defaults; use identifiers already present in your generated document. Since v0.21.11, the placement block is optional. A workload selected without one receives the governed empty-placement defaults from the embedded CUE contracts, so programmatic StackSpec authors no longer need CLI-specific boilerplate.
Do not copy this selection for Photos or Vault and invent secret values. Those workloads require owner-bound secret custody. Since v0.21.11, run stackkit secrets materialize after selecting such a workload and before generate to establish that custody explicitly.

Validate every change

validate checks the current StackSpec, generate creates governed output, and plan inspects the exact resolved plan without invoking an executor. If any command fails, fix the StackSpec; do not patch files below deploy/. Continue with Review, apply, and verify.