Skip to content

feat: display Iceberg field documentation - #274

Merged
v-kessler merged 3 commits into
lakekeeper:mainfrom
willemijn-zeno:feat/iceberg-field-documentation
Aug 13, 2026
Merged

feat: display Iceberg field documentation#274
v-kessler merged 3 commits into
lakekeeper:mainfrom
willemijn-zeno:feat/iceberg-field-documentation

Conversation

@willemijn-zeno

@willemijn-zeno willemijn-zeno commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Display optional Iceberg field documentation beneath field names in the Structure & governance view.
  • Propagate documentation from the current schema to top-level and nested struct fields.
  • Wrap long documentation without changing rows that have no documentation.
  • Add regression coverage for current-schema selection and nested fields.

Testing

  • npm test
  • just reviewable
  • Manually verified with a documented Iceberg schema in the locally linked Console, see screenshot below.
image

Closes #273

BEGIN_COMMIT_OVERRIDE
feat(ui): display Iceberg field documentation
END_COMMIT_OVERRIDE

Summary by CodeRabbit

  • New Features

    • Added field documentation to the table column profiler for top-level and nested schema fields.
    • Documentation appears beneath field names when navigating nested structures.
    • Long documentation text now wraps for improved readability.
  • Tests

    • Added coverage verifying documentation is shown for the active schema and nested fields.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@v-kessler, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 64 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 00081ae8-82fc-4d3d-882b-3a5b9979c4d5

📥 Commits

Reviewing files that changed from the base of the PR and between a31c365 and 6120963.

📒 Files selected for processing (2)
  • src/components/TableColumnProfiler.test.ts
  • src/components/TableColumnProfiler.vue

Walkthrough

TableColumnProfiler now propagates Iceberg field documentation through top-level and nested schema nodes. The component renders documentation below field names, wraps long text, and includes tests for schema selection and nested-field navigation.

Changes

Schema documentation display

Layer / File(s) Summary
Documentation propagation
src/components/TableColumnProfiler.vue
SchemaNode stores optional documentation. Schema traversal preserves documentation for top-level and nested StructField entries.
Documentation rendering and validation
src/components/TableColumnProfiler.vue, src/components/TableColumnProfiler.test.ts
The component renders documentation below field names with wrapping styles. Tests verify current-schema metadata and nested-field documentation.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant IcebergSchema
  participant TableColumnProfiler
  participant SchemaTable
  IcebergSchema->>TableColumnProfiler: Provide field documentation
  TableColumnProfiler->>TableColumnProfiler: Propagate documentation through schema nodes
  TableColumnProfiler->>SchemaTable: Render documentation below field names
Loading

Suggested reviewers: v-kessler

Poem

A rabbit hops through fields so bright,
With docs beneath each name in sight.
Nested paths now share the view,
Long words wrap as they should do.
The schema table blooms anew.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: displaying Iceberg field documentation.
Linked Issues check ✅ Passed The changes implement top-level and nested documentation display, schema selection, text wrapping, and regression coverage for issue [#273].
Out of Scope Changes check ✅ Passed The changes are limited to the requested component behavior and regression tests; no unrelated or backend changes are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ 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.

@willemijn-zeno
willemijn-zeno marked this pull request as ready for review August 11, 2026 09:56

@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.

🧹 Nitpick comments (1)
src/components/TableColumnProfiler.test.ts (1)

97-104: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Scope the assertions to field documentation nodes.

wrapper.text() does not verify that the documentation renders beneath the field name. Query .field-doc so the test verifies the new display contract before and after expansion.

Proposed test update
-    expect(wrapper.text()).toContain('Current customer record');
-    expect(wrapper.text()).not.toContain('Legacy field');
-    expect(wrapper.text()).not.toContain('Primary contact address');
+    const fieldDocs = () => wrapper.findAll('.field-doc').map((node) => node.text());
+    expect(fieldDocs()).toEqual(['Current customer record']);
 
     await wrapper.get('button[data-icon="mdi-chevron-right"]').trigger('click');
     await nextTick();
 
-    expect(wrapper.text()).toContain('Primary contact address');
+    expect(fieldDocs()).toEqual(['Current customer record', 'Primary contact address']);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/TableColumnProfiler.test.ts` around lines 97 - 104, Update the
assertions in the TableColumnProfiler test to query `.field-doc` elements
instead of using `wrapper.text()`, both before and after triggering the
expansion button. Verify the expected documentation is present or absent within
those field documentation nodes while preserving the existing expansion flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@src/components/TableColumnProfiler.test.ts`:
- Around line 97-104: Update the assertions in the TableColumnProfiler test to
query `.field-doc` elements instead of using `wrapper.text()`, both before and
after triggering the expansion button. Verify the expected documentation is
present or absent within those field documentation nodes while preserving the
existing expansion flow.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9ac7c5a4-d794-4b01-84d9-69ceb6ef6058

📥 Commits

Reviewing files that changed from the base of the PR and between ca75793 and a31c365.

📒 Files selected for processing (2)
  • src/components/TableColumnProfiler.test.ts
  • src/components/TableColumnProfiler.vue

coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 11, 2026
@v-kessler
v-kessler merged commit 5c05592 into lakekeeper:main Aug 13, 2026
5 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.

[Feature]: Display Iceberg field documentation in the table schema view

2 participants