Loading

products.yml

The products.yml file specifies metadata regarding the projects in the organization that use the V3 docs system.

products:
  apm-agent-dotnet:
    display: 'APM .NET Agent'
    versioning: 'apm-agent-dotnet'
  edot-collector:
    display: 'Elastic Agent'
    versioning: 'stack'
    repository: 'elastic-edot-collector'
  docs-builder:
    display: 'Elastic Docs Builder'
    repository: 'docs-builder'
    features:
      public-reference: false
#...
		
products

A YAML mapping where each key is an Elastic product.

  • display: A friendly name for the product.
  • versioning: The versioning system used by the project. The value for this field must match one of the versioning systems defined in versions.yml. Optional for products that only participate in release notes.
  • repository: The repository name for the product. It's optional and primarily intended for handling edge cases where there is a mismatch between the repository name and the product identifier.
  • features: An optional mapping that controls which docs-builder subsystems the product participates in. When omitted, all features are enabled (backward compatible). When present, all features default to true and individual features can be opted out by setting them to false. The available features are:
  • public-reference: The product can be referenced in applies_to blocks, page frontmatter products, and gets {{ product.<id> }} substitutions. This is what "being a documentation product" means today.
  • release-notes: The product's participation in the changelog and release notes system, and which onboarding path it follows (see the release-notes onboarding decision flowchart). Accepts booleans and path names:
Value Meaning
Omitted Defaults to on-release, preserving the default participation behavior
true Backward-compatible alias for on-release
false Product does not participate in release notes automation
prestage Release bundles are reviewed and committed to the repository before release
on-release Final bundles are built and uploaded at release time
Note

Products without a features mapping behave exactly as before -- they participate in all subsystems. The features mapping uses opt-out semantics: all features are enabled by default, and you only need to set a feature to false to disable it. For example, internal tools that need release notes but don't have public-facing documentation can set public-reference: false.

Writing {{ product.<product-id> }} renders the friendly name of the product in the documentation. Substitutions are generated only for products with the public-reference feature (or no explicit features mapping). For example:

Substitution Result
{{ product.apm-agent-dotnet }} APM .NET Agent
{{ product.edot-collector }} Elastic Agent

You can also use the shorthand notation {{ .<product_id> }}. For example:

Substitution Result
{{ .apm-agent-dotnet }} APM .NET Agent
{{ .edot-collector }} Elastic Agent
Note

While the recommended separator is a hyphen (-) to promote cohesion, underscores (_) are also supported, and internally read as hyphens.

versions.yml Legacy URL mappings