## Overview
This adds new CRUDL folder endpoints that include `folder_type` as URL
parameter. These new endpoints can be used to
create/read/update/delete/list folders of the type specified in the
`folder_type` URL parameter.
The older CRUDL folder endpoints only worked on dashboard folders. They
are being deprecated in this PR. Once the UI stops calling these
endpoints they can be removed entirely.
## URL path design
he URLs for the new endpoints generally follow the pattern
`{org_id}/folders/{folder_type}/{folder_id}`. The position of the
`{folder_type}` parameter in these URLs is specifically intended to
represent the place of "folder types" within the hierarchy of
resources/concepts in the URL. Specifically the hierarchy is as
follows...
- `{org_id}` - represents an org which owns many folders
- `folders` - represents all folders
- `{folder_type}` - represents a class or subset of folders
- `{folder_id}` - identifies a single folder; this ID is only uniquely
identifying in the context of all concepts higher in the hierarchy,
including `{folder_type}`
## Alternatives
An alternative approach to this PR would be to update the existing
endpoints so that either
- `{folder_type}` is an optional final URL parameter (after
`{folder_id}`) that defaults to `dashboards`
- `{folder_type}` is an optional query parameter that defaults to
`dashboards`
Although pursuing one of these approaches would have reduced the need to
add new routes and deprecate old ones, I think the design of the URL
path would suffer and be less clear with either of these approaches
since in either of these approaches the path would not actually be
formatted to represent the resource hierarchy described above.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new `FolderType` enum for folder data categorization.
- Enhanced folder management API with new functions that include a
`folder_type` parameter.
- **Bug Fixes**
- Deprecated old folder-related functions while maintaining backward
compatibility.
- **Documentation**
- Updated API documentation to reflect changes in folder management
functions, including new deprecated endpoints and the `FolderType`
schema.
- **Chores**
- Added deprecation warnings for the `folders` module to inform users
about outdated methods.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
#5253
The overall goal of this PR is to migrate alerts data out of `meta`
table into `alerts` table. To accomplish this three main changes are
made. Unfortunately, all three of these changes need to be synchronized
and submitted in the same PR.
1. A new migration script is added to
- Parse alerts JSON currently stored in the `meta` table into Rust
models for alerts. These Rust models are isolated to the migration
script since they represent the schema of alerts as they are stored in
the `meta` table before this migration executes.
- Convert those Rust models into Sea ORM entities for alerts.
- Insert all the Sea ORM entities for alerts into the new `alerts`
table.
2. Create get/put/delete/list methods for accessing the data in the
`alerts` table
- These functions use SeaORM to query and update the database.
- These functions must also convert between SeaORM alert entities and
the application's current data model for alerts (as defined in
`config::meta::alerts`.
- It's entirely expected that the models inside `config::meta::alerts`
will change over time. When this happens in the future, developers will
need to update the transformation functions between SeaORM alert
entities and the models in `config::meta::alerts`. Luckily, the compiler
should help to direct developers to where these transformation functions
need to be updated.
3. Update the old logic in `/src/service/db/alerts.rs` that previously
read and wrote alerts to the `meta` table so that it now reads and
writes alerts to the `alerts` table.
- The methods for accessing the `meta` table included logic for
triggering "cache update events" to the cluster coordinator and for
sending events to the super cluster queue. Since the new logic accesses
the `alerts` table rather than the `meta` table, this logic for emitting
events had to be reproduced.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new `ListAlertsParams` struct for flexible querying of
alerts.
- Enhanced `TriggerCondition` struct with new timing parameters.
- Added new error variants for improved error handling in alert
management.
- Created a comprehensive alert management system with CRUD operations.
- Added integration tests for various functionalities related to alerts
and dashboards.
- Introduced a new `Alerts` variant in the `FolderType` enum for better
folder management.
- **Bug Fixes**
- Improved error handling for folder deletion when alerts are present.
- **Documentation**
- Updated documentation for several functions to clarify their scope and
functionality.
- **Chores**
- Added new dependencies to support additional functionality.
- Introduced migration scripts for database schema changes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced management of enrichment tables with the addition of a method
to reset stream types.
- **Bug Fixes**
- Improved error handling for fetching and deleting lookup tables,
ensuring only relevant errors trigger notifications.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR introduces a feature to exempt data form the normal data
retention cycle and allows it to be stored for a longer period of time.
This time period is configurable via a global environment variable.
- [x] Add new feature: extend data retention
- [x] Fix issue #5418
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a new field for extended data retention days in the
compacting process.
- Added a flexible update settings structure for managing stream
settings.
- Implemented a new time range management feature for deletion tasks.
- Enhanced configuration response to include retention days.
- **Bug Fixes**
- Improved error handling for stream settings related to retention days.
- **Tests**
- Expanded test suite with new tests for time range functionality.
- **Documentation**
- Updated OpenAPI documentation to reflect changes in stream settings
structures.
- Removed outdated components from OpenAPI definition.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
impl #4281
- [x] Add total records
- [x] Add total index_size
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced the organization summary with new metrics: total records and
total index size.
- **Bug Fixes**
- Improved data accuracy in the organization summary by incorporating
additional stream statistics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- #4885
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced refresh button functionality in dashboard panels, providing
visual feedback when variable data changes.
- Introduced a new utility function to check if variables are fully
loaded before updates.
- Added computed properties and event emissions to improve user
interaction and responsiveness to variable updates.
- Improved error handling and logging in dashboard components for better
user visibility.
- Introduced new methods for handling user interactions in variable
selection components.
- **Bug Fixes**
- Improved test case flows for dashboard settings and variable settings,
ensuring smoother interactions in automated tests.
- **Documentation**
- Updated tooltips and button states for better user guidance regarding
variable changes.
- **Chores**
- Streamlined test cases by removing redundant steps, enhancing clarity
and efficiency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
- #5194
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced new logging options in drilldown functionality, allowing
users to select between "Auto" and "Custom" logs modes.
- Added a new query editor for custom log queries.
- Enhanced drilldown navigation to logs with improved error handling and
logging.
- Added optional fields for logging configurations in the drilldown data
structure.
- Improved responsiveness of the dashboard component with new computed
properties and watch functions.
- **Bug Fixes**
- Improved validation logic for drilldown forms to accommodate new
logging options.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- #5193

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced PromQL mode handling in the dashboard panel.
- Enhanced metrics page layout with new components:
DateTimePickerDashboard, AutoRefreshInterval, ChartSelection,
CustomHTMLEditor, CustomMarkdownEditor, DashboardQueryBuilder,
DashboardErrorsComponent, PanelSchemaRenderer, PanelSidebar,
RelativeTime, and QueryInspector.
- Added localization support for metrics in the search context.
- **Bug Fixes**
- Improved error handling for loading stream fields and validating panel
configurations.
- Stream type selection visibility now adapts based on dashboard panel
data type.
- Enhanced user interaction by simulating keyboard input for
organization selection.
- Reduced validation requirements for the metrics page.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- #5196
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Enhanced dashboard data fetching and error handling for improved user
experience.
- Introduced a new reactive variable to manage the fetched dashboards
more effectively.
- Added a new method for retrieving dashboard data by ID.
- Improved form validation for drilldown operations.
- **Bug Fixes**
- Enhanced error handling logic to display appropriate messages based on
dashboard data retrieval conditions.
- **Chores**
- Refactored various functions for better maintainability and clarity in
dashboard management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new suite of Playwright tests for validating enrichment
table functionality.
- Added new functions for enhanced navigation and interaction within the
pipeline UI.
- Added tests to assert the data in every derived stream with condition,
function and only source + derived stream
- Added tests to assert if user clicks on any menu option and cancel on
dialog box, user stays on pipeline page
- Added tests to assert if user clicks on dashboard menu option and
accept on dialog box, user navigates to dashboard page
- **Bug Fixes**
- Improved error handling in tests to ensure accurate feedback during
interactions.
- **Chores**
- Updated the GitHub Actions workflow to include additional integration
tests.
- Removed outdated test files related to function management, Kinesis
ingestion, and reporting functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Removed automated UI tests for managing service accounts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
#5378
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Enhanced error handling for invalid stream names during ingestion,
ensuring appropriate logging and response for empty or invalid entries.
- Updated assertions in tests to reflect the correct handling of invalid
bulk payloads by the API, ensuring errors are present for invalid
submissions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: hengfei yang <hengfei.yang@gmail.com>
This PR fixes the #5400
both sorting issues and duplicate entries being created are solved
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced row identification in the LogStream table with a dynamic key
generation method.
- **Bug Fixes**
- Improved handling of row selection and updates in the LogStream
component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added `data-test` attributes to various components for improved
testability.
- **Bug Fixes**
- Enhanced error handling logic to suppress notifications for 403 status
responses across multiple components, improving user experience during
error scenarios.
- **Chores**
- Minor formatting adjustments and code structure refinements for
clarity in several components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
There are 3 types of partial responses:
1. VRL error
2. Super cluster error
3. Range error (max_query_limit)
Cache partial results only if there is a range error.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced search functionality with improved error handling for query
ranges.
- Introduced caching logic for partial results based on specific error
conditions.
- **Bug Fixes**
- Streamlined response generation and error reporting in search-related
functions, ensuring clarity and efficiency.
- **Documentation**
- Updated method signatures to reflect the latest changes in
functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: oasisk <ashish.j.kolhe@gmail.com>
In this [other PR
](https://github.com/openobserve/openobserve/pull/5390) I need to be
able to add logic to create a default "alerts" folder.
In order to do that, we first need to enable callers to pass a
`folder_type` parameter to different internal methods for
getting/creating/updating/deleting/listing folders. Previously those
methods assumed that the folder type was always `Dashboards` since thus
far that was the only folder type that existed.
This fixes two bugs -
1. The _values api used `Count(*)` function in query to get count.
However in case of distinct streams we already aggregate the count in
`count` field. Thus we need to use `sum(count)` instead.
2. In https://github.com/openobserve/openobserve/pull/5220 , the logic
which adds/removes the distinct values when dashboard is added/deleted
was removed accidentally. This Also re-adds that logic back.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced bulk deletion of dashboards with associated distinct
values.
- Added new methods for managing distinct fields in dashboards.
- Enhanced search functionality with improved handling of distinct
streams.
- **Bug Fixes**
- Improved error handling for dashboard operations and search requests,
including new error messages.
- **Documentation**
- Updated documentation for methods to clarify functionality and usage.
- **Refactor**
- Streamlined query variable extraction logic for dashboards.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new endpoint for listing user roles, excluding certain
roles.
- Added a new endpoint for token exchange requests for service accounts.
- **Enhancements**
- Improved role management logic and error handling in user management
functions.
- Enhanced error handling for authentication and token validation
processes.
- Updated the handling of claims and user roles based on login flow.
- Enhanced the logic for retrieving login URLs and managing
authentication states.
- **Bug Fixes**
- Prevented unauthorized updates and retrievals for external service
accounts.
- **Documentation**
- Updated method signatures to reflect new parameters and functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Tests**
- Introduced a new end-to-end test for pipeline creation, enabling, and
disabling.
- Utilized parameterization to test various scenarios with different
pipeline names, actions, and expected HTTP status codes.
- Removed the previous end-to-end tests related to user token
management, which included user token retrieval and email verification
processes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
#4871#5127
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a new "sankey" chart type in the chart selection.
- Added a configuration section for trellis layouts in dashboard panel
settings.
- Enhanced error handling and data validation for various panel types.
- New utility function `deepCopy` for creating deep copies of objects.
- Enhanced grid management capabilities for trellis layouts.
- Improved rendering logic for charts and dynamic height adjustments.
- Introduced new computed properties for dynamic chart panel height and
trellis configuration.
- New parameter `chartPanelStyle` added for enhanced customization in
data conversion.
- Improved handling of no data scenarios for metric and heatmap panel
types.
- Added new localization keys for layout and dashboard settings.
- **Bug Fixes**
- Improved error messages for dashboard retrieval and data validation
logic.
- **Documentation**
- Expanded localization options for layout and dashboard settings.
- **Chores**
- Minor formatting and consistency improvements across multiple files.
- Added trailing commas for improved code consistency in various files.
- Updated import paths to reflect codebase restructuring.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR fixes the #5323 issue that is related to adding create
destination button in add alert page
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added buttons for refreshing and creating destinations in the alert
creation interface.
- Introduced a new event for refreshing destinations and a method to
navigate to the destination creation page.
- **Improvements**
- Enhanced filtering logic for destinations and refined validation for
the alert form.
- Improved error handling for asynchronous operations in the alert
management system.
- Streamlined the filtering process in the destination list.
- Implemented lifecycle hook to ensure route updates on component mount.
- **Bug Fixes**
- Adjusted layout and styling for better usability and consistency
across components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Updated the locator for the management menu item to enhance navigation
reliability.
- Streamlined the control flow by removing unnecessary wait times in the
management navigation process.
- **New Features**
- Added methods for managing service accounts, including adding,
validating, and deleting service accounts.
- Introduced a new test suite for validating service account
functionality, covering error handling and successful operations during
creation.
- Added a new method for automatic login based on visibility of the
login option.
- **Improvements**
- Updated the login method to ensure it waits for the correct login page
URL before proceeding.
- Simplified the login process in UI tests by removing unnecessary
parameters and wait times.
- Enhanced test scripts with improved structure and clarity, including
comments for better understanding.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new migration for creating an alerts table, enhancing the
database capabilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced end-to-end testing for bulk ingestion with comprehensive
coverage.
- Enhanced functionality for managing enrichment tables, including
adding, uploading, and deleting entries.
- **Bug Fixes**
- Improved error handling and user interaction checks in the enrichment
table upload process.
- **Tests**
- Added multiple new test cases for enrichment table functionality,
including upload and error handling scenarios.
- Updated existing test cases for consistency and improved logic.
- **Chores**
- Standardized import statements and improved overall test structure for
clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced log display functionality with improved query context
handling for multiple streams.
- Improved error handling for filter validity when selecting multiple
streams.
- Adjusted pagination logic for accurate total fields display.
- Added new buttons and toggles in the search bar for better control
over query results.
- Introduced confirmation dialog for switching between visualization and
log modes.
- **Bug Fixes**
- Refined logic for updating field values to ensure correct aggregation
and display.
- Enhanced error handling for download attempts in the search bar.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
#5370
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **Bug Fixes**
- Improved error handling for the Monaco editor's element retrieval
process.
- Ensured proper disposal of auto-completion providers to prevent memory
leaks.
- **New Features**
- Enhanced lifecycle management for the Monaco editor's auto-completion
functionality.
- Added new SQL completion items and improved filtering of suggestions
based on user input.
- **Style**
- Updated code formatting for consistency in `watch` statements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced access control by preventing the removal of root users from
organizations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
#5330#5343
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new method for handling stream exploration based on the
stream type.
- Added props for error messaging, timestamp highlighting, and default
column settings in the table component.
- **Improvements**
- Enhanced responsiveness and usability of the table component with
better column resizing and row management.
- Improved readability and maintainability of the `schema` component
through formatting adjustments.
- Updated error handling for data retention days in the schema
component.
- Added a new asynchronous method to calculate the time range for stream
exploration.
- **Bug Fixes**
- Refined error handling in stream deletion methods for consistency.
- **Documentation**
- Updated method signatures for clarity and improved functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fix the env variable name for the HASH URL
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Updated the environment variable name for improved accuracy regarding
the ASN database.
- **Documentation**
- Clarified the naming of the configuration fields to better reflect
their purposes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Add k8s cluster name to helm chart. This will allow separating data from
multiple k8s clusters in same streams.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Updated installation commands for the OpenObserve collector to specify
the Kubernetes cluster name.
- **Bug Fixes**
- Enhanced specificity of commands related to the OpenObserve collector
installation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced precision for storage size metrics across various components
by updating data types to floating-point numbers.
- **Bug Fixes**
- Adjusted calculations for size metrics to ensure accurate
floating-point operations.
- **Chores**
- Updated test cases to reflect new floating-point type handling for
storage metrics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
# Summary
This is preparatory work for migrating Alerts into folders as part of
#5253 .
# Context
The migration logic inside `/src/common/migration/schema.rs` currently
references a number of data structures and logic that are defined
outside of this migration module. Specifically...
- The migration script references various `set...` functions and a
`delete...` functions from the `service::db` module which serialize
alerts (and other data structures) into JSON and write them to the
`meta` table in the DB.
- The migration script references various data structures from the
`config::meta` module and uses the JSON serialization and
deserialization logic derived on those structs to read and write the
data structures to the `meta` table as part of the migration.
This poses a number of risks:
1. Most immediate: The behavior of the referenced `set..` and
`delete...` functions from the `service::db` module will be changing
extremely soon as part of my work to migrate Alerts out of the `meta`
table and into their own `alerts` table. These functions will be changed
to interact with the `alerts` table rather than the `meta` table.
Therefore, if this migration script continues to reference those
functions then it's behavior will be completely changed - leading to
inconsistent and likely unpredictable results when different clients run
the migration starting from different application versions.
2. Less immediate:
- Since the migration currently uses the serialization/deserialization
logic derived on structs defined in `config::meta`, any change to those
structs (even non-breaking API changes like the addition of a new field)
could result in changes to the behavior of the migration script
itself....
- ...And I think it's important for long-term stability and
maintainability that developers be able to make non-breaking API changes
to those data structures without accidentally breaking an existing
migration, especially since the compiler would not be able to catch any
such errors.
- ...More practically, my understanding is that we plan to overhaul the
structure of `Alert`s at some point in the future. If the logic in this
migration module continues to reference that data structure then that
change could also break this migration script.
# Alternatives
I realize that a main point of concern with this PR may be the fact that
we are copying all structs that are serialized or deserialized into this
module. If we still strongly object to including this additional code in
the migration script I think there are two alternatives, outlined below.
**Alternative 1 - Don't worry about the referenced structs and continue
referencing the data structs in `config::meta`**
The first alternative is that we can just keep referencing the data
structs in `config::meta`. Personally, I think this is risky for reasons
outlined above, but it could work as long as we are careful that those
structs do not change. (Though, as mentioned, this seems like it will
happen eventually.)
**Alternative 2 - Serialize/deserialize the objects into
`serde_json::Value` rather than `Alert` or other structs**
If we want to mitigate the risks I described while avoiding copying a
large chunk of code into this module, we could refactor the migration
logic so that rather than deserializing/serializing to/from structs in
`config::meta` we could instead deserialize/serialize to/from the
`serde_json::Value` type. We would have to update the logic in the
migration script a bit to account for the reduced type guarantees due to
working with JSON objects rather than an actual Rust structs, but I
think this could definitely work. (And this is probably what I would do
if I were writing a migration like this from scratch.)
My one concern with this approach is just I'm more worried about
introducing a change/bug into the logic of this script with this
approach than I would be with copying the currently referenced structs
into a submodule. However this isn't an extremely large concern.
# Update 2024-12-13
As of `v0.14.0` this migration script has been deprecated. It will
remain in the codebase until it is removed in `v0.17.0`. Therefore, I
feel like the particular approach we decide to take here will have less
long-term ramifications than I originally imagined.
My own bias continues to be to go with the approach in this PR since
this PR is now blocking another task I'm working on, all the extra code
and structs that are added in this PR will be removed in `v0.17.0`, and
this continues to be the lowest-risk approach I can think of (though
given the upcoming deletion of this script, the other approaches may
have limited risk as well).
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a new `meta` module for improved migration logic.
- Added methods for managing alerts, destinations, and templates,
enhancing migration capabilities.
- **Documentation**
- Added detailed comments in the `meta` module to clarify function
purposes and data structures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced SQL autocomplete with fuzzy matching suggestions.
- Updated syntax guide to include fuzzy matching instructions for SQL
queries.
- **Bug Fixes**
- Maintained existing logic for other completion items, ensuring
seamless integration of new features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR fixes the issue #5339
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced schema details interface with dynamic theme support.
- Improved filtering capabilities for schema fields.
- Updated pagination logic for better row display based on user
selections.
- Validation for data retention days in submission process.
- **Bug Fixes**
- Improved error handling for field deletion operations, providing
clearer feedback to users.
- **Style**
- Adjusted table scrollbar behavior and hover effects for rows.
- Enhanced visual differentiation between dark and light themes.
- Improved rendering of selection checkboxes in the table.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced error handling and logic improvements in SQL query parsing
for the `useLogs` composable.
- Improved functionality of the search bar component, including better
handling of SQL queries and user notifications.
- **Bug Fixes**
- Refined logic for managing selected streams and improved feedback for
download attempts in the search bar.
- **Style**
- Adjusted button classes and added scoped styles to improve the visual
layout of the search bar component.
- **Chores**
- Updated GitHub Actions workflow configuration for Playwright UI tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR fixes#5198
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced search functionality with a toggle to search across folders
or within the current folder.
- New methods for fetching search results and debouncing input for
efficient searching.
- Added support for dynamic filtering of dashboards based on the search
context.
- New localization entries for improved user interface text related to
dashboard searches.
- Added methods for managing permissions and fetching dashboards within
role management.
- Enhanced report creation with improved handling of dashboard options
and scheduling.
- **Bug Fixes**
- Improved error handling for dashboard management functions to prevent
runtime errors.
- **Chores**
- Streamlined dashboard state updates after modifications to ensure
consistency.
- Added `data-test` attributes to components for better testability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com>