Skip to content

feat: add Iceberg table tag management UI and API#4164

Open
fightBoxing wants to merge 2 commits intoapache:masterfrom
fightBoxing:feature/iceberg-tag-management
Open

feat: add Iceberg table tag management UI and API#4164
fightBoxing wants to merge 2 commits intoapache:masterfrom
fightBoxing:feature/iceberg-tag-management

Conversation

@fightBoxing
Copy link
Copy Markdown

Summary

  • Add createTag and deleteTag API endpoints for Iceberg tables (POST/DELETE /ams/v1/tables/catalogs/{catalog}/dbs/{db}/tables/{table}/tags)
  • Implement tag creation and deletion logic in MixedAndIcebergTableDescriptor using Iceberg TableMetadata API
  • Add CreateTagRequest DTO in TableController to replace unsafe Map<String, Object> deserialization
  • Add createTag / deleteTag service functions in frontend table.service.ts
  • Add Create Tag modal and Delete Tag confirmation in Selector.vue with snapshot ID and optional max-ref-age inputs
  • Extend FormatTableDescriptor interface and ServerTableDescriptor with tag management methods

Test Plan

  • Start Amoro server and open Web UI
  • Navigate to an Iceberg table → Tags tab
  • Click "Create Tag", fill in tag name and snapshot ID, confirm creation succeeds
  • Verify new tag appears in the tag list
  • Click delete icon on a tag, confirm deletion succeeds
  • Verify deleted tag is removed from the list
  • Verify Checkstyle: 0 violations
  • Verify Spotless: BUILD SUCCESS

@github-actions github-actions bot added type:docs Improvements or additions to documentation module:ams-server Ams server module type:infra type:build labels Apr 2, 2026
@czy006
Copy link
Copy Markdown
Contributor

czy006 commented Apr 3, 2026

@fightBoxing Thank you for your contribution. You need to trigger CI after rebasing the branch to proceed to the review stage.

- Backend: Add createTag/deleteTag API endpoints in TableController
- Backend: Add createTag/deleteTag interface in FormatTableDescriptor
- Backend: Implement tag operations in MixedAndIcebergTableDescriptor using Iceberg TableOperations
- Backend: Add unsupported exception for Paimon in PaimonTableDescriptor
- Backend: Register /tags routes in DashboardServer
- Backend: Add createTag/deleteTag methods in ServerTableDescriptor
- Backend: Use CreateTagRequest DTO instead of raw Map for type safety
- Frontend: Add Create Tag dialog with tag name and snapshot ID inputs in Selector.vue
- Frontend: Add Delete Tag confirmation dialog in Selector.vue
- Frontend: Add createTag/deleteTag API calls in table.service.ts
- Frontend: Add i18n translations for tag operations in en.ts and zh.ts
@fightBoxing fightBoxing force-pushed the feature/iceberg-tag-management branch from 3b680f9 to 07a2317 Compare April 9, 2026 11:17
@github-actions github-actions bot added module:ams-dashboard Ams dashboard module module:common and removed type:docs Improvements or additions to documentation type:infra type:build labels Apr 9, 2026
@fightBoxing
Copy link
Copy Markdown
Author

@fightBoxing Thank you for your contribution. You need to trigger CI after rebasing the branch to proceed to the review stage.

Thanks, I updated my PR again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants