docs-builder
Loading

Applies to

Starting with Elastic Stack 9.0, ECE 4.0, and ECK 3.0, documentation follows a cumulative approach: instead of creating separate pages for each product and release, we update a single page with product- and version-specific details over time.

To support this, source files use a tagging system to indicate:

  • Which Elastic products and deployment models the content applies to.
  • When a feature changes state relative to the base version.

This is what the applies_to metadata is for. It can be used at the page, section, or inline level to specify applicability with precision.

Note

For detailed guidance, refer to Write cumulative documentation.

The applies_to metadata supports an exhaustive list of keys.

When you write or edit documentation, only specify the keys that apply to that content. Each key accepts values with the following syntax:

<key>: <lifecycle> [version], <lifecycle> [version], ...
		

Where:

  • The lifecycle is mandatory.
  • The version is optional.

Versions can be specified using several formats to indicate different applicability scenarios:

Description Syntax Example Badge Display
Greater than or equal to (default) x.x+ x.x x.x.x+ x.x.x ga 9.1 or ga 9.1+ 9.1+
Range (inclusive) x.x-y.y x.x.x-y.y.y preview 9.0-9.2 9.0-9.2 or 9.0+*
Exact version =x.x =x.x.x beta =9.1 9.1

* Range display depends on release status of the second version.

Important notes:

  • Versions are always displayed as Major.Minor (e.g., 9.1) in badges, regardless of whether you specify patch versions in the source.
  • Each version statement corresponds to the latest patch of the specified minor version (e.g., 9.1 represents 9.1.0, 9.1.1, 9.1.6, etc.).
  • When critical patch-level differences exist, use plain text descriptions alongside the badge rather than specifying patch versions.

The build process enforces the following validation rules:

  • One version per lifecycle: Each lifecycle (GA, Preview, Beta, etc.) can only have one version declaration.
    • stack: ga 9.2+, beta 9.0-9.1
    • stack: ga 9.2, ga 9.3
  • One "greater than" per key: Only one lifecycle per product key can use the + (greater than or equal to) syntax.
    • stack: ga 9.2+, beta 9.0-9.1
    • stack: ga 9.2+, beta 9.0+
  • Valid range order: In ranges, the first version must be less than or equal to the second version.
    • stack: preview 9.0-9.2
    • stack: preview 9.2-9.0
  • No version overlaps: Versions for the same key cannot overlap (ranges are inclusive).
    • stack: ga 9.2+, beta 9.0-9.1
    • stack: ga 9.2+, beta 9.0-9.2

Page level annotations are added in the YAML frontmatter, starting with the applies_to key and following the key-value reference. For example:

---
applies_to:
  stack: ga
  deployment:
    ece: ga
---
		

For more examples, refer to Page annotation examples.

Important

All documentation pages must include an applies_to tag in the YAML frontmatter.

A header can be followed by an {applies_to} directive which contextualizes the applicability of the section further.

Section-level {applies_to} directives require triple backticks because their content is literal. Refer to Directives > Exception: Literal blocks for more information.

```{applies_to}
stack: ga 9.1
```
		

To play even better with Markdown editors the following is also supported:

```yaml {applies_to}
stack: ga 9.1
```
		

This allows the YAML inside the {applies_to} directive to be fully highlighted.

For more examples, refer to Section annotation examples.

Note

Section-level {applies_to} directives must be preceded by a heading directly.

You can add inline applies annotations to any line using the following syntax:

This can live inline {applies_to}`section: <life-cycle> [version]`
		

A specialized {preview} role exists to quickly mark something as a technical preview. It takes a required version number as an argument.

Property {preview}`<version>`
:   definition body
		

For more examples, refer to Inline annotation examples.

Several components have built-in support for applies_to and allow to surface version information in an optimized way:

Refer to these component pages to learn about the required applies_to syntax.

Use the following key-value reference to find the appropriate key and value for your applicability statements.

applies_to accepts the following keys in this structure.

Note

The product key and its subkeys are used to indicate feature availability and applicability. The similarly named products frontmatter field is used to drive elastic.co search filters.

applies_to accepts the following lifecycle states:

  • preview
  • beta
  • ga
  • deprecated
  • removed
  • unavailable

applies_to accepts the following version formats:

You can use version specifiers to precisely control how versions are interpreted:

Specifier Syntax Description Example
Greater than or equal (default) x.x x.x+ x.x.x x.x.x+ Feature available from this version onwards ga 9.2+ or ga 9.2
Range (inclusive) x.x-y.y x.x.x-y.y.y Feature available only in this version range beta 9.0-9.1
Exact version =x.x =x.x.x Feature available only in this specific version preview =9.0

Regardless of the version format used in the source file, the version number is always rendered in the Major.Minor format in badges.

Note

The + suffix is optional for greater-than-or-equal syntax. Both ga 9.2 and ga 9.2+ have the same meaning.

# Greater than or equal (feature available from 9.2 onwards)
stack: ga 9.2
stack: ga 9.2+

# Range (feature was in beta from 9.0 to 9.1, then became GA)
stack: ga 9.2+, beta 9.0-9.1

# Exact version (feature was in preview only in 9.0)
stack: ga 9.1+, preview =9.0
		

When you specify multiple lifecycles with simple versions (without explicit specifiers), the system automatically infers the version ranges:

Input:

stack: preview 9.0, alpha 9.1, beta 9.2, ga 9.4
		

Interpreted as:

stack: preview =9.0, alpha =9.1, beta 9.2-9.3, ga 9.4+
		

The inference rules are:

  1. Consecutive versions: If a lifecycle is immediately followed by another in the next minor version, it's treated as an exact version (=x.x).
  2. Non-consecutive versions: If there's a gap between one lifecycle's version and the next lifecycle's version, it becomes a range from the start version to one version before the next lifecycle.
  3. Last lifecycle: The highest versioned lifecycle is always treated as greater-than-or-equal (x.x+).

This makes it easy to document features that evolve through multiple lifecycle stages. For example, a feature that goes through preview → beta → GA can be written simply as:

stack: preview 9.0, beta 9.1, ga 9.3
		

Which is automatically interpreted as:

stack: preview =9.0, beta 9.1-9.2, ga 9.3+
		
Note

Automatic Version Sorting: When you specify multiple versions for the same product, the build system automatically sorts them in descending order (highest version first) regardless of the order you write them in the source file. For example, stack: ga 9.1, beta 9.0, preview 8.18 will be displayed with the highest priority lifecycle and version first. Items without versions are sorted last.

The following table demonstrates the various version syntax options and their rendered output:

Source Syntax Description Badge Display Notes
stack: ga 9.1 Greater than or equal to 9.1 Stack│9.1+ Default behavior, equivalent to 9.1+
stack: ga 9.1+ Explicit greater than or equal to Stack│9.1+ Explicit + syntax
stack: preview 9.0-9.2 Range from 9.0 to 9.2 (inclusive) Stack│Preview 9.0-9.2 Shows range if 9.2.0 is released
stack: preview 9.0-9.3 Range where end is unreleased Stack│Preview 9.0+ Shows + if 9.3.0 is not released
stack: beta =9.1 Exact version 9.1 only Stack│Beta 9.1 No + symbol for exact versions
stack: ga 9.2+, beta 9.0-9.1 Multiple lifecycles Stack│9.2+ Only highest priority lifecycle shown
stack: ga 9.3, beta 9.1+ Unreleased GA with Preview Stack│Beta 9.1+ Shows Beta when GA unreleased with 2+ lifecycles
serverless: ga No version (base 99999) Serverless No version badge for unversioned products
deployment:<br/> ece: ga 9.0+ Nested deployment syntax ECE│9.0+ Deployment products shown separately

Versioned products require a version tag to be used with the lifecycle tag:

applies_to:
  stack: preview 9.1, ga 9.4
  deployment:
    ece: deprecated 9.2, removed 9.8
		

Unversioned products use lifecycle tags without a version:

applies_to:
  serverless:
    elasticsearch: beta
    observability: removed
		

Applies To Model

The previous model is projected to the following structured YAML.

applies_to badges are displayed in a consistent order regardless of how they appear in your source files. This ensures users always see badges in a predictable hierarchy:

  1. Stack - Elastic Stack
  2. Serverless - Elastic Cloud Serverless offerings
  3. Deployment - Deployment options (ECH, ECK, ECE, Self-Managed)
  4. ProductApplicability - Specialized tools and agents (ECCTL, Curator, EDOT, APM Agents)
  5. Product (generic) - Generic product applicability

Within the ProductApplicability category, EDOT and APM Agent items are sorted alphabetically for better scanning.

Note

Inline applies annotations are rendered in the order they appear in the source file.