Skip to content

Applicability attributes

Standard DITA filtering attributes on any map entry, topic or element decide which readers see it. One rule covers both the reader's release and what their organization is entitled to.

The attributes

AttributeValuesA reader sees the content when
producttokens declared in opend.config.yamltheir organization holds at least one listed product
featuretokens declared in opend.config.yamltheir organization holds at least one listed feature
releaseversions and ranges such as 0.1, 2, 2.0.., ..1.9, 1.2..1.9their version matches at least one listed range
audience, platform, otherprops, props, deliveryTargettokens declared in opend.config.yamlthe build-time DITAVAL does not exclude them

For example, this site declares product: [core, hosted, embed]. The self-hosting guides carry product="core", the embedded-help section carries product="embed", and the architecture overview carries product="core hosted" because it matters to anyone with either.

How conditions combine

These are DITAVAL semantics:

  • Values within one attribute are alternatives: product="core hosted" shows to a reader holding either.
  • Separate attributes must all pass: product="embed" release="0.2.." needs the embed product and release 0.2 or later.
  • A condition on an ancestor applies to everything inside it: an element, a topic, a topicref or a topichead.
  • A topic is published to a reader only when a navigation entry they can see points at it and the topic's own root passes.
<topichead navtitle="Embedded help" product="embed">   <!-- whole section -->
  <topicref href="../topics/help/tokens.dita"/>
</topichead>
<p product="core">Set OPEND_EMBED_SECRET on the server.</p>   <!-- one paragraph -->
<step release="..0.1">...</step>                             <!-- up to 0.1.x -->

Reader attributes and build attributes

product, feature and release are reader attributes: they are kept in the release snapshot and decided for each reader at request time. The other attributes are build attributes: the build-time DITAVAL decides them once for everyone, and readers are never gated by them. So audience="admin" labels content, but does not hide it from anyone unless the DITAVAL excludes that value. Use product or feature to gate readers.

What readers never see

  • Content their filter excludes, in pages, navigation, search, the help panel or PDFs.
  • The title of a hidden topic: a link to it renders as its authored text only. See Links, and links to hidden topics.
  • Filtering attributes themselves: they are stripped from the HTML.

A page the reader cannot see returns the same 404 as a page that does not exist, so guessing URLs reveals nothing.

More