What's New in Etcha: v2024.03

Release notes for Etcha v2024.03.


Push Targets

targets can now be configured to create groups of push endpoints, similar to Ansible inventories or Puppet targets.

Sub Commands

Commands can now contain sub Commands. These Commands are executed within their own scope for onChange/Fail/Remove.


  • Added sysinfo to vars, containing useful system information for Patterns and configurations to utilize.
  • Changed the ordering of change and remove. By default, all removes will now happen before changes. A Command can be configured for the old behavior (remove after change) using the property removeAfter.
  • Changed Commands to trigger a remove and change cycle if the change value is modified for an ID. See changeIgnore for details on how to disable this.
  • Changed exec.env to be a map of strings.
  • Changed onChange, onFail, and onRemove to support RegExp values.
  • Changed etcha init to remove unrecognized files from lib/etcha.
  • Changed etcha local, etcha push, and etcha test to allow filtering for parent Command IDs for targeting and testing.
  • Changed etcha local to support rendering and running ad-hoc Jsonnet. See Render and Run for more information.
  • Changed etcha push and etcha run to include the raw JWT as a var.
  • Fixed etcha lint not excluding directories correctly.


  • Removed sources.runAll toggle, Patterns will always run all Commands by default.