v1.0.0-rc.2
Pre-release
Pre-release
·
8 commits
to main
since this release
Features
- Source-mutating steps (starting with
mutate) now refuse to run until a person has explicitly approved them, using a newliftoff approve <key>command — an assistant driving the CLI is detected and can't grant this approval itself. The approval covers only the exact operation shown and is spent on first use, so it can't be reused or replayed against a batch that has since changed. - Several steps (including
discoverandmutate) now also require proof that their guidance was actually read:liftoff skills <topic>prints a proof token at the end of the page, and the gated command accepts it via a new--proof-tokenflag. A refusal always names the exact command to run next. - Publishing changes has moved onto the same model: the old
--apply-tokenflag is gone. Applying a plan now takes--confirmtogether with--proof-token(proof the plan was read) and, like other mutating steps, requires a person's approval before it proceeds. - A source can now put its own extra approval or read-proof requirement in front of specific commands, so a vendor-specific risky operation can be protected without changes to the generic CLI.
- Discover and audit now surface a source's policies and policy sets (informational findings only). Since policy rule bodies can't be mechanically translated to Spacelift's policy language, nothing is auto-generated — each finding names the policy's kind and enforcement level, or the policy set's scope and coverage, with guidance on recreating it by hand.
- Stacks whose Terraform/OpenTofu version isn't one of Spacelift's built-in runner versions can now generate onto a custom workflow tool backed by your own runner image, instead of failing to generate a runnable stack. A new
custom_runner_imagesetting controls the image reference, andaudit --repairfills it in (tagging it per-stack by version unless you've pinned your own tag). Audit also gained findings that flag a stack missing its runner image, or an unsupported/unparseable version string, before generation would produce something that can't run.
Fixes
- Configuring settings with
configure --setno longer writes already-resolved secret values into the saved configuration file — a${VAR}-style secret reference is now preserved as a reference on every save, instead of being replaced by the plaintext value it resolves to. - Discover no longer records an agent pool's live connected-agent count, which fluctuates independently of the estate and was making repeated discovers register spurious changes. Discover is idempotent again for accounts using agent pools.