Blueprint Developer Manual / Version 2512.1
Table Of ContentsThe Variant Model and Variant Service form the shared foundation. How each component delivers and queries variants varies; the details are documented in the respective manuals:
Unified API — Baselines and variants share the same document type model and support the same operations. Three tasks become more specific: analyzing content structures via referrers, accessing content items via observed properties, and navigating between sites in a multi-site setup. For these, the API adds baseline-only accessors (for example,
getBaselineReferrersWithDescriptor,getBaselineContentsWithValue, and thegetAllVariantsvariants of theContentSiteAspectmethods), and theContent.isVariant/Content.isBaselineflags. See the Unified API Developer Manual for details.CAE — The CAE uses a client-side JavaScript library to replace baseline fragments with variant fragments dynamically, using metadata
divelements and thep13n-dynamic-includebrick. The Content Application Engine Developer Manual describes the extension points (BodyDetector,ContentVariantProcessor,VariantConditionPredicate), the programming model, and the FreeMarker library.Headless Server — Each content object exposes a contentVariants field (and contentVariantsAndBaseline) that lists the possible variants in descending priority order, together with their conditionStrings and parsed conditions. The Headless Server Developer Manual describes the variant-selection algorithm and example GraphQL queries.
Search and Feeder — The Content Feeder indexes variants like baseline content and adds variant metadata (for example, variantBase, variantSegments, variantAbTestCase) to Solr. The CAE Feeder does not process variants, so a website search finds baseline content only.
Studio, tools and configuration — Studio maintains the variant folder location and enforces the variant meta-model through validators. The command line tools handle baselines and variants uniformly (see the variant marker in cm serverexport/cm serverimport), and cm cleanvariants removes left-over variants of deleted or destroyed baselines.
Note
When you apply bulk updates through the Unified API, remember that you must create variants at their designated location and move them along with their baseline. Studio ensures this automatically; Unified API clients must take care of it explicitly.


