Skip to content

WIP: Restructure DataMapper documentation with updated screenshots in…#228

Merged
PVinaches merged 1 commit into
KaotoIO:mainfrom
mmelko:docs/datamapper
Apr 10, 2026
Merged

WIP: Restructure DataMapper documentation with updated screenshots in…#228
PVinaches merged 1 commit into
KaotoIO:mainfrom
mmelko:docs/datamapper

Conversation

@mmelko

@mmelko mmelko commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Restructures DataMapper documentation following current documentation style.

  • Reorganized into 6 numbered subfolders
  • Improved Getting Started with better explanations and tips
  • Converted shortcodes to image-sh for consistency

Summary by CodeRabbit

  • Documentation
    • Added comprehensive DataMapper user guides covering getting started, attaching schemas, creating and managing mappings, conditional logic, and advanced transformations with the XPath editor.
    • Restructured the main DataMapper documentation as a landing page with clear navigation to detailed topic guides.

@coderabbitai

coderabbitai Bot commented Apr 7, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR reorganizes and expands DataMapper documentation by creating five dedicated feature-focused pages (getting started, schemas, mappings, conditional logic, XPath editor) and refactoring the main DataMapper page into a landing page with navigation links. Two outdated VTT subtitle files are removed, and one VTT file's timestamps are adjusted.

Changes

Cohort / File(s) Summary
DataMapper Feature Documentation
content/docs/datamapper/01-getting-started/_index.md, content/docs/datamapper/02-attaching-schemas/_index.md, content/docs/datamapper/03-creating-mappings/_index.md, content/docs/datamapper/04-conditional-mappings/_index.md, content/docs/datamapper/05-xpath-editor/_index.md
Added five new documentation pages covering DataMapper workflow: interface overview with parameter handling, schema attachment/detachment, drag-and-drop and manual mapping creation, conditional mapping types, and XPath editor functionality.
DataMapper Landing Page
content/docs/datamapper/_index.md
Replaced detailed inline documentation with condensed overview (~19 lines) highlighting capabilities and navigation links to newly created feature-specific pages.
DataMapper Media Files
content/docs/datamapper/04-conditional-mappings/dm_multiplemappings.vtt, content/docs/datamapper/dm_chooserootelement.vtt, content/docs/datamapper/dm_json.vtt
Adjusted VTT cue timestamps for conditional mappings tutorial; removed two obsolete subtitle files covering root element selection and JSON support workflows.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • PVinaches
  • lhein

Poem

🐰 With whiskers twitching, I've hopped through the docs,
Reorganizing DataMapper with care and wide talk.
Five shiny pages now guide the journey complete,
From schemas to mappings—a DataMapper treat! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is vague and incomplete, using truncation ('in…') that obscures the actual content and objectives. Complete the title with the full scope (e.g., 'Restructure DataMapper documentation with updated screenshots and 6 numbered sections') to clearly convey the restructuring and reorganization work.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@PVinaches PVinaches left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a good progress! Thanks!

Comment thread content/docs/datamapper/_index.md Outdated
Comment thread content/docs/datamapper/02-attaching-schemas/_index.md
Comment thread content/docs/datamapper/02-attaching-schemas/_index.md Outdated
Comment thread content/docs/datamapper/02-attaching-schemas/_index.md Outdated
Comment thread content/docs/datamapper/04-conditional-mappings/_index.md Outdated
Comment thread content/docs/datamapper/04-conditional-mappings/_index.md Outdated
Comment thread content/docs/datamapper/06-managing-resources/_index.md Outdated
Comment thread content/docs/datamapper/06-managing-resources/_index.md Outdated
…kstart style

- Reorganized monolithic documentation into 5 numbered sections
- Converted all shortcodes from figure to image-sh for consistency
- Improved writing style to match Designer documentation
- Added Welcome and Getting Started sections
- Unified XML and JSON schema attachment process
- Enhanced XPath Editor section with comprehensive function reference
- Integrated resource management (delete/detach) into relevant sections
- Removed section 06 (integrated into other sections)
- Added inline icons for UI elements (trash, detach, layer icons)
- Cleaned up 20+ unused images and old files
- All internal links verified and updated

Sections:
01. Getting Started - Interface overview, parameters
02. Attaching Schemas - XML/JSON schema attachment
03. Creating Mappings - Drag-and-drop, XPath expressions
04. Conditional Mappings - if, choose-when-otherwise, for-each
05. XPath Editor - Expression editor with function reference"
@mmelko mmelko marked this pull request as ready for review April 10, 2026 12:54

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/docs/datamapper/01-getting-started/_index.md`:
- Around line 75-80: The blockquote starting with the [!TIP] and the subsequent
[!NOTE] contains an extra blank line (the blank line after the image shortcode)
which violates markdownlint MD028; remove that empty line so the blockquote
lines remain contiguous (i.e., keep the [!TIP], the image shortcode {{< image-sh
... >}} and the following [!NOTE] directly adjacent with no blank line between
them) to satisfy the no-blanks-blockquote rule.

In `@content/docs/datamapper/05-xpath-editor/_index.md`:
- Around line 65-68: Update the documentation where conditional constructs are
listed: replace the misleading entry `choose()` with `choose-when-otherwise`
and/or add a clarifying note that this is an XSLT-style instruction pattern
(multi-branch conditional) rather than a native XPath function; ensure the
nearby `if()` entry remains as-is and mention that `choose-when-otherwise` is a
conditional mapping construct used alongside `if()` for multi-branch logic.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7aa4ec74-dfcd-4e28-a185-e343c6ca156d

📥 Commits

Reviewing files that changed from the base of the PR and between 51d4449 and 938e3bd.

⛔ Files ignored due to path filters (96)
  • content/docs/datamapper/01-getting-started/catalog-datamapper-tile.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-add-parameter-confirm.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-add-parameter.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-blank.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-configure-button.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-delete-param-confirm.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-delete-param-trash.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-hide-parameters.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-source-target.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/datamapper-zoom.png is excluded by !**/*.png
  • content/docs/datamapper/01-getting-started/kaoto-datamapper-step.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-attach-multiple.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-attach-schema-attach.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-attach-schema-file-btn.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-attach-schema.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-collection-field.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-detach-button.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-json-array-field.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-json-fields.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-json-mappings-all.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-schema-attached.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-select-root-element.png is excluded by !**/*.png
  • content/docs/datamapper/02-attaching-schemas/datamapper-select-schema.png is excluded by !**/*.png
  • content/docs/datamapper/03-creating-mappings/datamapper-add-selector.png is excluded by !**/*.png
  • content/docs/datamapper/03-creating-mappings/datamapper-delete-mapping-btn.png is excluded by !**/*.png
  • content/docs/datamapper/03-creating-mappings/datamapper-delete-mapping-confirm.png is excluded by !**/*.png
  • content/docs/datamapper/03-creating-mappings/datamapper-delete-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/03-creating-mappings/datamapper-drag-name.mp4 is excluded by !**/*.mp4
  • content/docs/datamapper/03-creating-mappings/datamapper-type-xpath.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-choose-add-when.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-choose-choose.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-choose-otherwise-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-for-each-condition.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-for-each-for-each.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-for-each-mappings.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-if-condition.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-if-if.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-if-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-layer.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-map-2nd-for-each-children.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/datamapper-wrap-with-for-each.png is excluded by !**/*.png
  • content/docs/datamapper/04-conditional-mappings/dm_multiplemappings.mp4 is excluded by !**/*.mp4
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-close.png is excluded by !**/*.png
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-dnd-fields.png is excluded by !**/*.png
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-done.png is excluded by !**/*.png
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-editor.png is excluded by !**/*.png
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-functions-dnd.png is excluded by !**/*.png
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-functions.png is excluded by !**/*.png
  • content/docs/datamapper/05-xpath-editor/datamapper-xpath-pencil.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-add-conditional-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-add-more-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-add-parameter-confirm.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-add-parameter.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-add-selector.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-attach-schema-attach.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-attach-schema.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-blank.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-choose-add-when.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-choose-choose.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-choose-otherwise-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-choose-when-added.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-choose-when-condition.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-choose-when-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-delete-param-trash.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-detach-confirm.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-done.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-drag-name.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-drop-name.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-for-each-condition.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-for-each-for-each.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-for-each-mappings.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-if-3dots.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-if-condition.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-if-if.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-if-mapping.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-array-field.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-attach-schema-attach.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-field-label-accountid.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-field-label-object.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-mappings-all.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-schema-attached.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-json-select-schema.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-map-2nd-for-each-children.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-map-2nd-for-each.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-schema-attached.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-select-root-element.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-source-target.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-type-xpath.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-wrap-with-for-each.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-xpath-dnd-fields.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-xpath-done.png is excluded by !**/*.png
  • content/docs/datamapper/datamapper-xpath-pencil.png is excluded by !**/*.png
  • content/docs/datamapper/dm_chooserootelement.mp4 is excluded by !**/*.mp4
  • content/docs/datamapper/dm_json.mp4 is excluded by !**/*.mp4
  • content/docs/datamapper/dm_multiplemappings.mp4 is excluded by !**/*.mp4
  • content/docs/datamapper/kaoto-datamapper-step.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • content/docs/datamapper/01-getting-started/_index.md
  • content/docs/datamapper/02-attaching-schemas/_index.md
  • content/docs/datamapper/03-creating-mappings/_index.md
  • content/docs/datamapper/04-conditional-mappings/_index.md
  • content/docs/datamapper/04-conditional-mappings/dm_multiplemappings.vtt
  • content/docs/datamapper/05-xpath-editor/_index.md
  • content/docs/datamapper/_index.md
  • content/docs/datamapper/dm_chooserootelement.vtt
  • content/docs/datamapper/dm_json.vtt
💤 Files with no reviewable changes (2)
  • content/docs/datamapper/dm_json.vtt
  • content/docs/datamapper/dm_chooserootelement.vtt

Comment thread content/docs/datamapper/01-getting-started/_index.md
Comment on lines +65 to +68
**Conditional Functions:**
- `if()` - Inline conditional logic
- `choose()` - Multi-branch conditionals

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

In XPath 3.1 / XSLT 3.0, is there a standard choose() function? What is the canonical syntax for conditional expressions?

💡 Result:

Web search failed: Server error: no LLM provider could handle the message


🏁 Script executed:

# First, locate and examine the file
find . -name "_index.md" -path "*datamapper*" -path "*xpath-editor*" | head -5

Repository: KaotoIO/kaoto.io

Length of output: 111


🏁 Script executed:

# Search for any references to "choose" in the codebase to understand its usage
rg "choose" --type md --type ts --type js --type yaml -i -C 3 | head -100

Repository: KaotoIO/kaoto.io

Length of output: 9005


🏁 Script executed:

# Search for function definitions or function lists in the DataMapper documentation/code
rg "Conditional" --type md -A 5 -B 2 | grep -A 5 -B 2 "choose\|if()"

Repository: KaotoIO/kaoto.io

Length of output: 2863


🏁 Script executed:

# View the actual file content around the flagged lines (65-68)
sed -n '50,80p' content/docs/datamapper/05-xpath-editor/_index.md

Repository: KaotoIO/kaoto.io

Length of output: 1127


🏁 Script executed:

# Search for any DataMapper-specific function definitions that might define choose()
rg "choose" content/docs/datamapper/ -B 2 -A 2

Repository: KaotoIO/kaoto.io

Length of output: 5698


🏁 Script executed:

# Look for implementation files that might define these functions
find . -type f \( -name "*.ts" -o -name "*.js" -o -name "*.tsx" -o -name "*.jsx" \) | xargs grep -l "choose" | grep -i xpath | head -10

Repository: KaotoIO/kaoto.io

Length of output: 42


choose() should be clarified as choose-when-otherwise (XSLT instruction, not a function).

Line 67 lists choose() as a conditional function, but standard XPath has no choose() function. The DataMapper documentation elsewhere correctly refers to this construct as choose-when-otherwise, which is an XSLT instruction pattern used for multi-branch conditionals. The XPath editor section should align with this terminology to avoid misleading users about function syntax. Replace choose() with choose-when-otherwise or clarify that this refers to the conditional mapping construct, not a direct XPath function call.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/docs/datamapper/05-xpath-editor/_index.md` around lines 65 - 68,
Update the documentation where conditional constructs are listed: replace the
misleading entry `choose()` with `choose-when-otherwise` and/or add a clarifying
note that this is an XSLT-style instruction pattern (multi-branch conditional)
rather than a native XPath function; ensure the nearby `if()` entry remains
as-is and mention that `choose-when-otherwise` is a conditional mapping
construct used alongside `if()` for multi-branch logic.

Comment thread content/docs/datamapper/04-conditional-mappings/_index.md

@igarashitm igarashitm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@PVinaches PVinaches merged commit ff8a2cc into KaotoIO:main Apr 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants