* 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>
* remove unwanted semantic rule and supported more playwright test
* fix data product filter not working and added playwright test for it
* fix test and some sonar issue
* fix the sonar issue
* fix the timeout issue