Differentiate long-lived and short-lived environments

Release notes

Problem to solve

As an application owner, I want to easily promote versions across environments.

As an application owner, I don't want to accidentally stop long-running environments.

Proposal

  • Extend the environment model with an attribute to mark them as "long-lived"/"non-stoppable".
  • When a new environment is created in CI using environment.deployment_tier: staging | production set it as "long-lived" by default
  • Make the "play"/deploy button the primary action when available
  • If the environment is long-lived, remove the stop button completely
  • If the environment is ephemeral, hide the stop button under the actions
  • When a "long-lived" environment is stopped (e.g. through the API), reject the request
    • The user first needs to edit the environment, and remove the long-lived flag

Intended users

Feature Usage Metrics

  • Share of long-lived / short-lived environments

Does this feature require an audit event?

No