> Production API availability: use /api/v1/help?view=guides and the resource operations catalog before following a recipe. Some localhost capabilities are not deployed yet; an absent operation is unavailable.
Source on the right, target on the left
Each mapping pair has a target path at key 0 and a source path at key 1. The mapping entry's name is a label; the paths determine what is connected.
{
"presentation": {
"0": ["header"],
"1": ["databoard", "menu", "docs_home", "header"]
},
"publication": {
"0": ["publication"],
"1": ["docs"]
}
}Here the board owns the presentation header. Docs owns the published collections, pages, chapter order, rendered article content and heading index. Publication is the template's input field for that Docs snapshot. It is not a second content module.
Inspect the connection in the mapper
Open the page, select its section and open Data Mapper. Expand Docs · Published content. You should see the bound collections and their public chapters. The publication target should connect to the docs source root.
The mapper loads saved collection bindings. Save a binding change before refreshing this source. Refresh reads content; it does not deploy the website.
The template target must match what the renderer reads. A line between two arbitrary objects does not make them compatible. Check the fields, cardinality and expected types.
Whole-section and nested targets
The common renderer preserves an exact api_data target as a whole-section wrapper. Nested targets beginning with api_data are normalized before placement. Mixing a whole-section wrapper with sibling mappings can hide the siblings when the renderer unwraps the section.
For the Docs template, use header and publication directly as shown above. Preserve the conventions of other established templates rather than changing every mapping to this shape.
Avoid a second source of truth
Do not copy a chapter into a board description when Docs already owns it. Do not replace a mapped form with handwritten markup just to make a preview look right. Fix the source record, mapping or shared renderer at the boundary that owns the problem.
Custom HTML can be legitimate content. Layout wrappers, embedded scripts and repeated component markup deserve a closer look: is an existing structured field or shared renderer missing?
Validate the result
Check that the source exists, the target is supported, and the selected owner can publish the data. Verify that a private chapter is absent and that regeneration uses an updated source value. Inspect the generated page after the structural checks.
Repository references: data_mapper.module.js, dataSourceDefaults.module.js, DocsPublication.php and common_init_modern.volt.