* refactor: remove testCaseSummary prop from TableProfiler components and related interfaces
* feat: add Data Observability Tab component and integrate into TableUtils
* feat: add TabFilters component and integrate with DataObservabilityTab; update styles and replace no-data icon
* feat: enhance NoProfilerBanner with improved layout and styling; add SummaryCardV1 component and update translations
* feat: add new SVG icons for add-item, red-circle-with-dash, success-ticket, and yellow-calendar; update SummaryCardV1 to support icon and extra props
* feat(ui): Refactor DataObservabilityTab and SummaryCardV1 for improved styling and layout
* remove commented code
* feat(ui): Update Profiler components for improved styling and functionality
* feat(ui): Enhance ProfilerDetailsCard chart axes styling
* feat(ui): Update color constants and enhance Profiler components with new tooltip and chart features
* feat(ui): Enhance Profiler components with new metrics, improved styling, and additional color constants
* feat(ui): Enhance Profiler components with additional props and improve layout using Grid
* feat(ui): Enhance Data Observability components with new features, improve layout, and integrate test case result aggregation
* feat(ui): Refactor Table Profiler to enhance test case summary handling and improve data quality metrics display
* fix: improve application robustness and UI consistency
- Set default value for plugins in AppRouter to prevent potential errors.
- Add conditional rendering for ProfilerLatestValue to avoid rendering issues when props are undefined.
- Make profilerLatestValueProps optional in ProfilerStateWrapper interface for better flexibility.
- Refactor ColumnProfileTable to remove unused imports and optimize rendering logic.
- Replace Button with Typography for better styling in ColumnProfileTable.
- Update SingleColumnProfile to use Stack for layout consistency and include ColumnSummary when available.
- Enhance CardinalityDistributionChart and DataDistributionHistogram with new styling and layout using MUI components.
- Introduce DataPill styled component for consistent data display.
- Update color constants for improved visual consistency across charts.
- Modify data insight tooltip to conditionally display date in header for better clarity.
* refactor: update UI components for improved styling and layout consistency
* minor fix
* feat: Enhance column profiling with data quality test metrics and visualizations
* feat: Remove SummaryPanel component and tests; replace with SummaryCardV1 in QualityTab
* feat: Refactor QualityTab component layout and enhance test case filtering options
* feat: Enhance QualityTab with search and filter options; refactor DataQualityTab and update styles
* feat: Refactor theme creation and integrate global styles
- Updated createMuiTheme.ts to improve theme structure and organization.
- Added GlobalStyles to App.tsx for consistent font sizing across the application.
- Introduced InlineTestCaseIncidentStatus component for better handling of test case statuses.
- Modified TestCaseIncidentManagerStatus to conditionally render InlineTestCaseIncidentStatus based on props.
- Enhanced DataQualityTab to include a new column for failed/aborted reasons and last run timestamps.
- Updated QualityTab to streamline pagination handling and improve layout.
- Added isInline prop to TestCaseStatusIncidentManagerStatus interface for inline rendering.
* feat: Enhance InlineTestCaseIncidentStatus component with user search and improved UI elements
* feat: Introduce RequiredLabel component for consistent required field styling
* refactor: remove incident column rendering logic from DataQualityTab component
* border style update
* feat: Implement action menu for test case editing and deletion in DataQualityTab
* fix: Correct percentage calculation for null, unique, and distinct proportions in ColumnProfileTable
* fix: Update border color in IncidentManager component for improved visibility
* feat: add InlineSeverity component and integrate it into Severity component
* fix: update font weight for consistency across components
* Refactor Profiler Tab Navigation and Update Related Components
- Replaced TableProfilerTab enum with ProfilerTabPath for better URL path management in the Profiler components.
- Updated DataQualityTab, ColumnProfileTable, and other related components to use the new ProfilerTabPath for navigation.
- Removed unnecessary QueryString imports and refactored navigation logic to streamline URL handling.
- Adjusted tests and utility functions to align with the new tab structure.
- Deleted obsolete TableProfiler component and its associated tests to clean up the codebase.
* Refactor tests to use global MUI mock and update assertions
- Introduced a global mock for Material-UI components to resolve Jest compatibility issues.
- Updated various test files to import the new MUI mock.
- Adjusted assertions in tests to reflect changes in component structure and behavior.
- Added default selected range and epoch time mocks in relevant utility tests.
- Refactored test cases to improve readability and maintainability.
* Add copyright notices and update localization strings
- Added Apache License 2.0 copyright notices to multiple files including TabFilters.tsx, data-observability-tab.less, no-profiler-banner.less, single-column-profiler.less, and SummaryCardV1.tsx.
- Updated localization files (de-de.json, en-us.json, es-es.json, fr-fr.json, gl-es.json, he-he.json, ja-jp.json, ko-kr.json, mr-in.json, nl-nl.json, pr-pr.json, pt-br.json, pt-pt.json, ru-ru.json, th-th.json, tr-tr.json, zh-cn.json, zh-tw.json) to include new keys for pluralized test types and updated messages for profiler insights.
- Added debug.json to .gitignore to prevent tracking of Jest Sonar Reporter debug files.
* Enhance NoProfilerBanner component with data-testid attributes and update related tests
* Refactor TabFilters and ColumnPickerMenu components to use MUI components, add MuiDatePickerMenu, and implement date range utilities
* Refactor date range handling in TabFilters, ColumnProfileTable, and SingleColumnProfile components; update IncidentManager to conditionally render date range picker
* Refactor TabFilters to use getDefaultTabKey for activeTab; clean up unused imports in ProfilerClassBase
* Refactor: Update Profiler tests to use i18n for labels and mock location
* Refactor: Replace Modal with Drawer for Profiler Settings and enhance styling
* Refactor: Update component styles and improve chart rendering logic
* refactor: Replace menuitem role with tab role for improved accessibility in Data Quality tests
* refactor: Add createHorizontalGridLineRenderer mock to chart component tests
* refactor: Update role attributes for accessibility and enhance styling in Data Quality tab
* refactor: Enhance test case interactions and improve UI element accessibility in Incident Manager and Data Quality tests
* refactor: Adjust drawer width in ProfilerSettingsModal for improved layout
* refactor: Update Legend component to use rectangular icons for improved clarity
* refactor: Adjust width of Y-axis based on category visibility in ProfilerDetailsCard
* Add TabFilters component tests and MuiDatePickerMenu implementation
- Created a new test file for the TabFilters component with comprehensive tests covering rendering, permissions, URL parameters, and accessibility.
- Implemented the MuiDatePickerMenu component with an interface for props and added tests to ensure correct functionality and rendering.
- Enhanced the mock for MUI components to include Menu and MenuItem for better testing of dropdown interactions.
- Updated the MuiDatePickerMenu to utilize the new interface for improved type safety and maintainability.
* refactor: Consolidate severity and status color constants, update related components and interfaces
* feat: Add new SVG icons for data quality states and update references in components
* Extend `metadata.sdk.configure` function
* Create convenience classes for existing `TestDefinition`s
* Create `WorkflowConfigBuilder` for data quality
* Create `ResultCapturingProcessor` for data quality
This is so we can intercept results from `TestCaseRunner` and return results to the calling application
* Implement `TestRunner` interface to run test cases as code
* Add an example of the simplified API
Also, fix some static checks errors in `builder_end_to_end.py`
* Setup new client for ES/OS
* Migrated createIndex and addIndexAlias methods
* Migrated createAliases method to new ES/OS client
* Migrated updateIndex and deleteIndex methods
* Updated indexExists methods
* refactor: extract index management operations into dedicated manager classes
* Add tests for ElasticSearch and OpenSearch index managers
* chore: fix code style issues"
* Added integeration tests for ES/OS index manager
* Fix log level
* Fixed priority key mapping for test_case_result_index
* fix test to use field name in the query as domains.id not domain.id
* Migrated createEntity and createEntities method
* Fixed failing tests
* Set headers so 8.x client can work with 7.17x or higher server for ES
* Added OpenSearch compatible stemmer configuration
* Fix java code style
* Fixed java checkstyle issue
* Added support for 7.17.x backward compatibility
* Fixed failing tests
* Migrated createTimeSeriesEntity and deleteEntity methods
* Refactor search client architecture with entity management abstraction
* Updated log level to ERROR form WARN
* deleteEntity method impl removed from ES client
* migrated deleteEntityByFields method to new es/os client
* migrated deleteEntityByFQNPrefix method to use new ES/OS client
* deleteEntityByFQNPrefix method removed
* Migrated deleteByScript method to new ES/OS client
* Removed deleteByScript method from SearchClient
* Migrated softDeleteOrRestoreEntity method to new ES/OS client
* Reverted BulkResponse static import
* Migrated softDeleteOrRestoreChildren method to new ES/OS client
* Migrated updateEntity method to new ES/OS client
* Migrated updateChildren method to new ES/OS client
* Removed unused methods
* Migrated getDocByID method to new ES/OS client
* Added info logging
* Fixed parsing issue while passing string doc
* Migrated updateEntityRelationship method to new ES/OS client
* Migrated reindexWithEntityIds method to new ES/OS client
* Added log to show error message for updateEntityRelationship
* Refactored entity manager methods
* Added async client, fixed null obj parsing issue
* Refactoring
* Refactored duplicate methods createEntity and createTimeSeriesEntity
* Added integration tests for ES/OS entity managers
* Updated client availability checks in both index manager classes to use the consistent !isClientAvailable pattern
* Removed comment
* chore: Fix line formatting in Playwright test files
- Adjusted line length in Domains.spec.ts for better readability
- Fixed indentation and formatting in Lineage.spec.ts
- Added missing newline at end of files
* Added new line
* Migrated other index related methods and add tests
* MIgrated updateByFqnPrefix and updateLineage and deleteByRangeQuery methods
* migrated deleteByRangeAndTerm method
* Added integration tests
* Migrated updateColumnsInUpstreamLineage and deleteColumnsInUpstreamLineage methods
* Migrated updateGlossaryTermByFqnPrefix method
* Removed unused method and updated error handling
* Migrated reindexEntities method to new ES/OS client
* Added integration tests for reindexEntities method
* Added interface and impl for generic methods migration
* added default impl
* Migrated deleteDataStream method
* Migrated deleteILMPolicy method
* Migrated deleteIndexTemplate method
* Migrated deleteComponentTemplate emthod
* migrated dettachIlmPolicyFromIndexes method
* migrated removeILMFromComponentTemplate method
* Migrated cluster metric methods
* Removed from ESClient/OSClient to GenericManager
* Migrated getSearchHealthStatus
* Add integration tests
* Refactor recognizer migration for 1.11.0
This is because in a previous PR I had added this migration without following the standard pattern for Java migrations using `MigrationUtil`s
* Remove seed data for tags without recognizers
* fix: Clean up MUI form component theme overrides and fix component consistency
- Remove redundant MUI default overrides from form theme
- Fix Select focus border styling (notchedOutline border: 0)
- Ensure consistent 40px height for TextField, Select, and Autocomplete (size="small")
- Add MuiAutocomplete dropdown shadow to match Select dropdown
- Update TreeSearchInput to match MUI Autocomplete behavior exactly:
- Apply MUI's exact padding values for root and input
- Use absolute positioning for clear icon (endAdornment)
- Implement hover/focus visibility for clear icon
- Use literal pixel values for chip margins (2px/3px)
- Fix MUITagSuggestion type guards and prop sorting
- Replace all 'any' types with proper TypeScript types
- Fix all ESLint errors (prop sorting, unused vars, type safety)
All changes pass TypeScript compilation and ESLint with zero errors/warnings.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: Replace hardcoded fontSize values with typography constants in navigation-theme
- Import BODY_FONT_SIZES from typography-constants
- Replace '1rem' with BODY_FONT_SIZES.BODY2 (14px) in:
- MuiTab
- MuiPaginationItem
- MuiMenuItem
- MuiTablePagination (selectLabel, displayedRows, select)
- Replace '12px' with BODY_FONT_SIZES.CAPTION in MuiBreadcrumbs separator
- Replace '14px' with BODY_FONT_SIZES.BODY2 in MuiLink
Benefits:
- Consistent typography across theme files
- Single source of truth for font sizes
- Easier maintenance and global adjustments
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Satish <satish@Satishs-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
* Fix Lineage Service Issue
* Revert "Fix Lineage Service Issue"
This reverts commit f74512a5eed8013bc22b2ee1ea1247e9ec3c19e4.
* Use Data asset for lineage
* Setup new client for ES/OS
* Migrated createIndex and addIndexAlias methods
* Migrated createAliases method to new ES/OS client
* Migrated updateIndex and deleteIndex methods
* Updated indexExists methods
* refactor: extract index management operations into dedicated manager classes
* Add tests for ElasticSearch and OpenSearch index managers
* chore: fix code style issues"
* Added integeration tests for ES/OS index manager
* Fix log level
* Fixed priority key mapping for test_case_result_index
* fix test to use field name in the query as domains.id not domain.id
* Migrated createEntity and createEntities method
* Fixed failing tests
* Set headers so 8.x client can work with 7.17x or higher server for ES
* Added OpenSearch compatible stemmer configuration
* Fix java code style
* Fixed java checkstyle issue
* Added support for 7.17.x backward compatibility
* Fixed failing tests
* Migrated createTimeSeriesEntity and deleteEntity methods
* Refactor search client architecture with entity management abstraction
* Updated log level to ERROR form WARN
* deleteEntity method impl removed from ES client
* migrated deleteEntityByFields method to new es/os client
* migrated deleteEntityByFQNPrefix method to use new ES/OS client
* deleteEntityByFQNPrefix method removed
* Migrated deleteByScript method to new ES/OS client
* Removed deleteByScript method from SearchClient
* Migrated softDeleteOrRestoreEntity method to new ES/OS client
* Reverted BulkResponse static import
* Migrated softDeleteOrRestoreChildren method to new ES/OS client
* Migrated updateEntity method to new ES/OS client
* Migrated updateChildren method to new ES/OS client
* Removed unused methods
* Migrated getDocByID method to new ES/OS client
* Added info logging
* Fixed parsing issue while passing string doc
* Migrated updateEntityRelationship method to new ES/OS client
* Migrated reindexWithEntityIds method to new ES/OS client
* Added log to show error message for updateEntityRelationship
* Refactored entity manager methods
* Added async client, fixed null obj parsing issue
* Refactoring
* Refactored duplicate methods createEntity and createTimeSeriesEntity
* Added integration tests for ES/OS entity managers
* Updated client availability checks in both index manager classes to use the consistent !isClientAvailable pattern
* Removed comment
* chore: Fix line formatting in Playwright test files
- Adjusted line length in Domains.spec.ts for better readability
- Fixed indentation and formatting in Lineage.spec.ts
- Added missing newline at end of files
* Added new line
* Migrated other index related methods and add tests
* MIgrated updateByFqnPrefix and updateLineage and deleteByRangeQuery methods
* migrated deleteByRangeAndTerm method
* Added integration tests
* Migrated updateColumnsInUpstreamLineage and deleteColumnsInUpstreamLineage methods
* Migrated updateGlossaryTermByFqnPrefix method
* Removed unused method and updated error handling
* Migrated reindexEntities method to new ES/OS client
* Added integration tests for reindexEntities method
* CI - Add node dependencies
* Add support for Java and NPM versions as a variable in setup test environment
---------
Co-authored-by: Matias Puerta <matias@getcollate.io>
* add fixes for workflow API
* Fix the ingestion runner display name being passed to API
---------
Co-authored-by: Aniket Katkar <aniketkatkar97@gmail.com>
- Centralize all notifications in createEntityWithCoverImage
- Change handleCoverImageUpload to return uploadFailed flag instead of showing notifications
- Remove unused parameters (entityLabel, enqueueSnackbar, t) from UploadCoverImageOptions
- Show warning notification only when uploadFailed = true
- Show success notification only when uploadFailed = false
- Fixes issue where both warning and success notifications appeared when upload failed
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Satish <satish@Satishs-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
* Fix: Showing validation error if user enter duplicate service name
* Fix: validate service name field on field change instead of form submit
* Playwright: Added e2e test for service name field validation errors
* Fix: fixed the services unit tests
* Fix: fixed the ConfigureService unit tests
* Fix: fixed code smells
* Add assets API and deprecate inline assets field for Domain and Dataproduct
* fix mvn test
* fix py test and add new tests
* fix py test
* fix py test
* fix timeout for workflow test
* address pr feedback
* Update generated TypeScript types
* minor- remove unused function
---------
Co-authored-by: Bhanu Agrawal <bhanuagrawal2018@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* refactor: Domain and Data Product UI improvements and architecture enhancements
## Major Changes
### Architecture Improvements
- **Refactored AssetSelectionModal**: Split monolithic component into composable hooks
- Extracted `useAssetSelectionContent` hook (806 lines) for shared selection logic
- Created `AssetSelectionDrawer` component for drawer variant
- Reduced main modal component from 700+ to 18 lines
- Enables reuse across modal and drawer UI patterns
- **Domain component reorganization**:
- Renamed `DomainDetailsPage` → `DomainDetails` for consistency
- Deleted legacy `DomainPage.component.tsx` (336 lines)
- Centralized domain page styles in `DomainPageStyles.ts`
### UI/UX Enhancements
- **Breadcrumbs**: Changed to plural labels across all pages
- "Domain" → "Domains" in listings and detail pages
- "Data Product" → "Data Products" in listings and detail pages
- Updated sidebar navigation labels to match
- **Scroll behavior fixes**:
- Removed fixed height constraints causing nested scrolls in right panels
- Changed from `height: @domain-page-height` to `min-height: 70vh`
- Applied to both Domain (domain.less) and Data Product (data-products-details-page.less) detail pages
- Now uses single body scroll for better UX
- **Visual improvements**:
- Added white text color to MUI tooltips for better contrast on black background
- Enhanced GenericProvider with `muiTags` prop support
- Added new `CoverImage` component for domain/data product headers
- Improved `useBreadcrumbs` hook with 187 lines of enhancements
### Bug Fixes
- **TypeScript errors in NotistackUtils.tsx**:
- Fixed implicit 'any' type for `snackbarId` parameters (4 instances)
- Added type assertion for i18n.t() return value
- All type errors resolved
### Component Improvements
- Enhanced TagsViewer with MUI tooltip support
- Updated TagChip component for better tag display
- Improved EntityAvatar component
- Refined drawer hooks with better type safety
* feat: Add cover image upload with reposition functionality for domains
- Add MUICoverImageUpload component with drag-and-drop support
- Implement vertical reposition functionality for cover images
- Integrate cover image field in AddDomainForm
- Update CoverImage component to support position object format
- Add COVER_IMAGE_UPLOAD_MUI field type to form utils
- Support empty entityLink for uploads during domain creation
- Add translations for cover image upload UI
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: Add cover image display with authenticated loading and test IDs
- Update DomainDetails and DataProductsDetailsPage to pass cover image URL and position to CoverImage component
- Implement authenticated image loading with proper loading states in CoverImage component
- Add gray background during authenticated image loading to prevent 401 error flash
- Implement conditional rendering in MUICoverImageUpload to show loading spinner for authenticated images
- Add comprehensive data-testid attributes for both components to improve testability
- Use theme colors for loading backgrounds instead of hardcoded values
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: Implement generic cover image upload flow and remove dead code
- Create reusable createEntityWithCoverImage utility function
- Refactor domain, subdomain, and data product creation to use generic function
- Fix cover image preview and reposition functionality for client-side handling
- Remove unused AddDomain component and /domain/add route
- Remove dead DomainLeftPanel component
- Reduce code duplication by 77% (344 lines → 79 lines)
- Add proper TypeScript types and ESLint compliance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: Update coverImage structure to match new backend API
- Update CoverImageUploadUtils to send coverImage as nested object
- Change from flat structure (coverImage: url, coverImagePosition: number)
- Change to nested structure (coverImage: { url: string, position: string })
- Update DomainDetails to read from nested coverImage object
- Update DataProductsDetailsPage to read from nested coverImage object
- Convert position between CSS string format ("20px") and pixel number (20)
- Fix DomainRouter test by removing deleted AddDomain component references
- Add type assertions for compatibility until backend types are regenerated
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: Use percentage-based positioning for cover images
Fix cover image display inconsistency between upload field (622x103px)
and detail page (auto x 131px) by using CSS percentage values for
translateY instead of absolute pixels. This ensures the same visual
result regardless of container width.
- Store position as percentage string (e.g., "-16%") instead of pixels
- Convert between pixels (for dragging UX) and percentage (for storage)
- Update CoverImagePosition interface to use string type
- Simplify detail page rendering by removing parseInt conversions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix ts error
* refactor: Extract generic file upload component from cover image upload
- Create MUIFileUpload component with drag-and-drop, validation, and preview support
- Refactor MUICoverImageUpload to use MUIFileUpload (33% code reduction)
- Add 20 i18n keys across all 18 languages for file upload features
- Fix TypeScript types and ESLint formatting issues
- Fix upload zone height to match preview at 103px
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Revert entity-transfer-message change
* Update checkDefaultStateForNavigationTree for 2 domains tree and tree item
* Fix navigation page test
---------
Co-authored-by: Satish <satish@Satishs-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>