Changelog

Generated and conditional inputs

Stack inputs can now be generated, and they can depend on another answer. generate creates a random secret once per deployment:

alien.ts
signingSecret: alien.secret({
  providedBy: "developer",
  required: true,
  label: "Signing secret",
  generate: { length: 64 },
  env: "ACME_SIGNING_SECRET",
}),

The value is reused across every update. Use it for values nobody should type, like a signing key shared between the deployment and your backend. A value you provide replaces it.

when asks a question only when a yes or no input says so:

alien.ts
snapshotsBucket: alien.string({
  providedBy: "deployer",
  required: true,
  label: "Snapshots bucket",
  when: { input: "snapshotsEnabled", equals: true },
}),

An inactive input is skipped: it isn't required, isn't validated, and sets no environment variable. The setup page, the CLI, CloudFormation, Terraform, and Helm all follow the same rule.

  • Inputs at registration: a deployment set up with the CLI can answer inputs when it registers
  • Terraform: conditional inputs need Terraform 1.9 or newer

Read the docs →