opentide

Deployment lifecycle

Defines rule deployment statuses, promotion strategy, proxy settings, and debug configuration. Shipped in bundled `deployment.toml`; clients MAY override via `.opentide/configurations/deployment.toml`.

Requirements

  • Every rule status value MUST match a configured status name in merged deployment.toml.
  • The set of statuses is configuration, not specification: implementations MUST NOT assume the bundled status names exist.
  • Status ordering is NOT normative. No transition graph is defined or enforced; any configured status MAY be set directly.
  • Status promotion MUST respect [promotion] settings when promotion.enabled is true.
  • Deprecated statuses MUST NOT be used for new rules (opentide emits warnings).
  • Platform-specific status on configuration blocks MUST also be valid deployment statuses when set.

Definition

Status entries ([[statuses]])

FieldTypeRequiredDescription
namestringyesStatus identifier (e.g. STAGING)
descriptionstringyesHuman-readable description
strategystringyesDeployment strategy enum

Bundled statuses

NameStrategyDescription
DESIGNINERTUnder active functional design, without technical translation
DEVELOPMENTPREVIEWUnder active technical implementation
IMPROVINGPREVIEWFunctionally qualified, undergoing refinement
STAGINGPREVIEWDeployed in staging for operational testing
ACCEPTANCEPREVIEWReady for production; analyst validates alert and playbook
PRODUCTIONRELEASEActive production deployment
DISABLEDDISABLEMENTAccessible but not active
REMOVEDDELETIONFully deprecated, archival flag only

Strategy semantics

The strategy on a status determines what opentide deploy does with a rule in that status:

StrategyDeploy behaviour
INERTRule is not deployed to any platform
PREVIEWRule is deployed to staging/preview targets only
RELEASERule is deployed to production targets
DISABLEMENTAny active deployment of the rule is disabled (kept but inactive)
DELETIONThe rule is removed from platforms

Status changes and promotion

There is no lifecycle state machine. Statuses are a flat, configurable set: the only constraint enforced on a rule is that its status matches a configured status name. Any status MAY be set directly in YAML, in any order, and no transition is validated.

Promotion, when promotion.enabled is true, is a single jump — not a step along a progression:

Status strategyEffect of promotion
RELEASE, DISABLEMENT, DELETIONNon-promotable; the status is left unchanged
Any other strategy (e.g. INERT, PREVIEW)Rewritten directly to promotion.promotion_target
flowchart LR
  D["opentide deploy<br/>promotion.enabled = true"] --> Q{"status strategy"}
  Q -->|"RELEASE / DISABLEMENT / DELETION"| U["status unchanged"]
  Q -->|"any other strategy"| T["status := promotion_target<br/>(default PRODUCTION)"]

Intermediate statuses are not stepped through: a rule in the bundled DESIGN status promotes straight to PRODUCTION. Promotion rewrites the status values inside a rule's platform configurations blocks.

The bundled status names in the table above suggest an editorial workflow (design → build → stage → release → retire), but that ordering is convention only and applies solely to the bundled configuration. Clients that override deployment.toml define their own statuses, and any progression between them is enforced by their own process, not by OpenTide.

[promotion]

FieldTypeDefaultDescription
enabledbooleantrueWhether status promotion is allowed
promotion_targetstringPRODUCTIONDefault target status for promotion

[proxy]

FieldDescription
proxy_userOptional; use with proxy_password for auth
proxy_passwordOptional proxy password (env var substitution supported)
proxy_hostProxy hostname
proxy_portProxy port

When both proxy_user and proxy_password are present, authenticated proxy is used; otherwise host:port only.

[debug]

FieldTypeDescription
mdr_test_uuidslist[string]UUIDs of rules usable for debugging
proxy_enabledbooleanEnable proxy in debug mode
ssl_enabledbooleanEnable SSL in debug mode

Top-level

FieldDefaultDescription
default_responders""Default responder team when not set on rule

Relationships

Defaults & overrides

Bundled deployment.toml ships in opentide. Override via .opentide/configurations/deployment.toml. Deep merge applies.

Examples

Default rule status in fixtures: STAGING — see fixtures/valid/rule-1.0.yaml.

History

VersionDateNotes
1.02026-06-25Initial spec from opentide deployment.toml

On this page