fix(backend): write full ODM note only on first column, short marker on the rest#1264
Merged
Conversation
max-voloshyn
approved these changes
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Preview
Summary
When a Data Mart is imported into a Google Sheet, the full "Imported via OWOX
Data Marts" provenance block (timestamp, Data Mart name, Data Mart page link)
was duplicated into the note of every column header. Combined with the
per-column description, this buried the user's own column descriptions under
repeated technical metadata.
This change keeps the ODM ownership signal on every imported column while
showing the full metadata block only once:
blank line, then the ODM metadata block (
--- Imported via OWOX Data Marts ---,import timestamp, Data Mart name, Data Mart page link).
--- Imported via OWOX Data Marts ---,enough to show the column is ODM-managed without repeating the metadata.
Data Mart. This already held —
report.dataMartis always the main mart, andjoinable marts only affect the column alias, never the note — and is now
documented in the writer.
Changes
sheet-metadata-formatter.tsbuildImportedColumnMarker(isCommunityEdition)returning the short marker.buildOdmMarker()so the full note and the short markerread identically.
buildImportedColumnNote(): the marker is now the header lineof the metadata block (
Imported at <timestamp>instead ofImported via OWOX Data Marts at <timestamp>), and the description isseparated from the block by a blank line so the two never read as one
paragraph.
google-sheets-report-writer.tswriteHeaders(), branch onidx === 0: the first column gets the fullnote, every other column gets the short marker.
Notes
detection and imported-range delineation rely on developer metadata
(
OWOX_COLUMNS/OWOX_REPORT_META), not on note text, so behavior isunaffected.
rewrites all header notes — they self-heal on the next import.
Testing
sheet-metadata-formatter.spec.tsfor the new note format and addedcoverage for
buildImportedColumnMarker.DoD
metadata block (timestamp, Data Mart name, Data Mart page link)
(
--- Imported via OWOX Data Marts ---)Mart, without joinable marts
between them)