Versioning flow

  1. Tick entities (flows, adapters, metadata components, etc) are versioned to allow "rolling back" to an earlier state.
  2. Every entity can exists within several execution environments (test, prod or something custom). An execution environment can supply parameters, such as API tokens and urls, to the entity. One or more versions of the entity can exist per execution environment.
  3. Every entity is in its essence a list of versions (modification sets). The most recent version of the entity, per environment, is the version users interact with; earlier versions only exist for historic and recovery purposes. When a new version of an entity is created, either manually or automatically, existing versions are disabled.
  4. Switching an entity between execution environments essentially disables the current version for the current execution environment, and creates a copy as a new version of the entity for the selected execution environment.
  5. One execution environment is marked as the "production" environment. Impactful edits can not be made on entity versions in production to prevent accidental hiccups. The correct workflow is to create a version in a non-production environment, apply the desired changes, test it, and then manually push it back to production. This ensures quality and consistency of the production environment.
  6. One execution environment is marked as "default for creation". This is the default environment for newly created entities. Note that an execution environment can not be both the default environment for creation and the production environment.