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>
#5307
### Summary
From the issue description:
> We would like to deprecate various old migrations. If these migrations
are marked as deprecated in v0.14.0, then they will be officially
removed from the app initialization logic in v0.17.0.
>
> The ramification of this is that users will not be able to upgrade
directly from versions < 0.14.0 to versions >= v0.17.0. Instead, for
example, a user on v0.13.0 would first need to upgrade to v0.14.0, and
then from v0.14.0 they could upgrade to v0.17.0.
>
> Removing these migrations will reduce the risk that the behavior of
some of these migrations, particularly those that reference data
structures or logic in other parts of the application code base,
accidentally changes in the future resulting in inconsistent migration
behavior.
### Technical details
This PR just marks certain sections of the code as deprecated. This
deprecated logic will be removed some time after v0.17.0.
### 📣 Note to reviewers
Please comment on any additional migrations that we would like to
deprecate for v0.14.0 and I can include it in this PR. Or feel free to
commit to this branch to mark additional migrations as deprecated. If
you commit to this branch please use the `#[deprecated]` attribute if
possible or include the word `deprecated` in a comment on the code; I
plan on searching the source code for the word `"deprecated"` after
v0.17.0 to remove the deprecated code, so this would help with that.
### Todo in v0.14.0 release
We will want to include information in our official v0.14.0 release
notes about...
- The deprecation of migration/upgrade logic
- The incompatibility of direct upgrades from < v0.14.0 to >= v0.17.0
- Instructions for upgrading from < v0.14.0 to >= v0.17.0
- Users will first need to upgrade to some version >= v0.14.0 and <
v0.17.0. And then they will be able to upgrade to v0.17.0
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced error handling for the `delete-parquet` command, providing
clearer feedback on deletion success or failure.
- Added deprecation warnings for several commands and functions,
indicating future removals.
- **Bug Fixes**
- Improved feedback for unsupported components in the `view` command.
- **Documentation**
- Added comments clarifying the deprecation status of certain migration
logic and functions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR warns the user when tries to save the pipeline having same input
and output node as that doesnot make any impact
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a confirmation dialog for saving pipelines to enhance user
experience.
- Added validation checks for pipeline nodes before saving.
- **Bug Fixes**
- Improved error handling by ensuring users are prompted before saving
invalid configurations.
- Enhanced user experience with appropriate redirection after dialog
cancellation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
impl #5273
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a method to enrich dashboard-related context in search
events.
- Added a new field to specify the index type in search requests.
- Implemented a new function to retrieve a dashboard and its associated
folder by their IDs.
- Enhanced usage data ingestion for detailed processing of search
events.
- **Bug Fixes**
- Improved error handling for reporting usage data, ensuring robustness.
- **Refactor**
- Updated function signatures for in-place modifications of usage data.
- Minor cosmetic adjustments for clarity in report handling processes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR introduces the service accounts with tokens
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced a new module for managing service accounts, including
functionalities for listing, creating, updating, and deleting service
accounts.
- Added a new tab for "Service Accounts" in the Identity Access
Management interface.
- Enhanced user management interfaces to support service account
operations, including the ability to add and edit service accounts.
- Implemented a new component for managing service accounts within
groups and roles.
- Added new API endpoints for service account management, including
token operations.
- Introduced a comprehensive Vue component for managing service accounts
with enhanced features, including filtering, searching, and token
management.
- Enhanced permission checks and error handling for service accounts
across various functions.
- Added support for external user permissions in service account
operations.
- Enhanced error handling for various components to prevent unnecessary
notifications on permission-related issues.
- Added localization support for service account functionalities,
providing necessary labels for user interface elements.
- **Bug Fixes**
- Improved error handling and validation across user management and
service account functionalities.
- **Documentation**
- Updated localization files to support new service account features and
labels.
- **Style**
- Adjusted styles in various components to enhance usability and
consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: oasisk <ashish.j.kolhe@gmail.com>
Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com>
- #5297
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced query validation process, allowing queries with subqueries to
pass without error.
- **Bug Fixes**
- Adjusted height calculations for elements in the Add Panel component,
improving layout and user interface.
<!-- 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**
- Conditional rendering added for custom logos based on enterprise
configuration.
- Navigation updated from "alerts" to "alertList" in multiple
components.
- **Bug Fixes**
- Removed unnecessary redirect logic from the AppAlerts component.
- **Style**
- Enhanced code readability through formatting adjustments in button
components and layout attributes.
<!-- 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 test case for uploading enrichment tables, enhancing
pipeline functionality validation.
- **Bug Fixes**
- Improved error handling for required fields in existing tests.
- **Tests**
- Organized and structured existing test cases for better execution flow
and added wait times for asynchronous operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Previously the `GetDashboard` and `DeleteDashboard` endpoints required
the client to pass in the `folder_id` query parameter. The query
parameter was actually superfluous because the `org_id` and
`dashboard_id` URL parameters provided to each endpoint already uniquely
identified a dashboard. Therefore, this PR removes `folder_id` as a
query parameter from those endpoints.
This PR solves the issue #5216#5224
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Enhanced user interface for the log stream input fields with improved
layout and visibility, including dynamic width adjustments and clearer
labeling.
- Added a new column to display index size in the log streams table.
- Introduced pagination management for schema fields, allowing for
dynamic updates to the number of rows displayed.
- Added a new prop, `isInSchema`, to enhance component layout based on
schema inclusion.
- **Bug Fixes**
- Improved error messaging for invalid data retention periods.
- **Documentation**
- Updated language localization for clarity in schema field
descriptions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
- **New Features**
- Introduced new stream types: "metrics" and "traces" in the Query
component.
- Added a warning message for unsaved changes in the Pipeline Editor.
- Enhanced user experience with a new informational card in the
Condition component.
- **Improvements**
- Simplified components by removing previous node selection
functionality across multiple components.
- Streamlined drag-and-drop functionality for better user interactions.
- Improved error handling and feedback for SQL query validation.
- **Bug Fixes**
- Reactivated tests for error handling in pipeline functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR introduces the optional `page_size` query parameter to the
`ListDashboards` endpoint. When set this will limit the size of the
result set to the specified value. The client/frontend will be able to
set this query parameter in calls to `ListDashboards` to limit the
number of results returned - specifically in requests to search
dashboards across folders.
This PR only implements limiting the result set size and does not
actually expose pagination as functionality of the `ListDashboards`
endpoint. My hope however is that this implementation will put us in a
good place to easily expose pagination on this endpoint if that's
something we want to do in the future - though it would by no means be
necessary.
There are a couple of idiosyncrasies here.
1. The `ListDashboards` endpoint does not read or use any `page_idx` or
`page_number` query parameter, as one might expect from a paginated
endpoint. Therefore if the client sets the `page_size` parameter to some
number N then the `ListDashboards` endpoint will always return the top N
results. (Considered in a different way, the endpoint always acts as if
the requested page index is `0`.)
- In the future we might want to add an additional `page_idx` query
parameter as well to enable "true" pagination (rather than simply
limiting the result set to the first N results). However there are no
immediate plans for this.
2. The `page_size` query parameter is only read/used by the endpoint
when the `title` parameter is **also** set. This means that when the
`title` parameter is **not** set the endpoint will ignore the
`page_size` parameter and will always return all dashboards that match
the other query parameter, `folder`.
- In the future we could choose to use this parameter any time it is
provided, not just when `title` is also provided. To do that there would
need to first be an update to the UI to address the issue described
below.
- For the time being this is necessary in order to not break the UI.
This is because currently the UI always sends the query parameter
`page_size=1000` to the endpoint, even though before now that query
parameter was never recognized by the endpoint. Additionally, the UI
assumes that the calls it makes to `ListDashboards` in order to show the
dashboards in a selected folder always return **all** dashboards, and in
such requests the frontend sets the `folder` query parameter but not the
`title` query parameter. Therefore, if we actually to use the
`page_size` parameter in **those** requests, then in its current
implementation the UI would fail to show all dashboards when a folder
with over 1000 dashboards is selected.
- #5282
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced dashboard layout and functionality with improved sticky
header positioning.
- Conditional rendering for buttons and components based on user states
(fullscreen and print mode).
- **Bug Fixes**
- Adjusted button visibility and attributes to improve user interaction
based on current dashboard state.
- **Refactor**
- Improved template structure for better readability and maintainability
while preserving existing 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
## Release Notes
- **New Features**
- Introduced new routing for "destinations" and "templates" under the
settings section.
- Added a new `alertList` route, replacing the previous alerts route.
- **User Interface Changes**
- Removed tabbed navigation for alerts, destinations, and templates,
simplifying the layout to direct routing.
- Enhanced styling for icons in the header section for a more polished
appearance.
- Updated the icon for the "organization" tab.
- **Bug Fixes**
- Standardized notification messages during save operations for better
user feedback.
- Updated functionality of back navigation buttons to emit a cancel
event instead of navigating back.
These updates enhance navigation and improve user experience within the
application.
<!-- 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 locator strings for the management menu item to improve
element selection accuracy.
- Ensured correct targeting of the file upload input for logo uploads.
These changes enhance the reliability of the management page
interactions without altering existing functionalities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
This PR only refactors code and should not result in any behavioral
changes.
This PR follows #5220 and creates separate "HTTP Layer" models for each
our dashboard HTTP API endpoints.
By separating the "HTTP Layer" models from the "Service Layer" dashboard
models we will now (in future PRs) be able to...
- add folder name and folder ID fields to each item returned by the
`ListDashboards` endpoint - Step 3 of #5198
- remove dashboard details from the each item returned by the
`ListDashboards` endpoint - Step 1 of #5196
Unfortunately, this PR does not yet accomplish fully decoupling the
"HTTP Layer" dashboard model from the "DB Layer" dashboard model since
both layers still use the same same JSON de/serialization logic defined
on the structs inside `config/meta/dashboards`. So changes to that model
and the corresponding JSON de/serialization logic could still introduce
silent breaking changes into both the interface with the DB and the HTTP
API. This PR moves us closer to decoupling those models, though future
work will be necessary to fully decouple them.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced new data structures for handling dashboard-related HTTP
requests and responses, enhancing clarity and type safety.
- Added support for creating, updating, and listing dashboards with
structured request and response bodies.
- **Documentation**
- Updated OpenAPI documentation to reflect new schemas for dashboard
operations, improving API clarity and specificity.
- **Refactor**
- Removed outdated dashboard structures and streamlined request handling
logic for improved maintainability.
- Updated integration tests to align with the new dashboard 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 layout structure and visual presentation in the MainLayout
component.
- Updated navigation item display properties for improved user
experience.
- Added a tooltip to the Theme Switcher for contextual information on
theme modes.
- Introduced a new language selection entry in the user interface.
- Improved error handling and user feedback in the log search interface.
- Adjusted layout heights in various components for better visual
presentation.
- Added a new method for refreshing timezone in the traces component.
- Improved loading spinner visibility in RUM components.
- **Bug Fixes**
- Corrected localization for "Real User Monitoring" to "RUM" in the
English language file.
- **Refactor**
- Simplified the template structure in the MenuLink component for better
semantic clarity.
- Improved drawer visibility control and responsiveness in the
MainLayout component.
- Enhanced error handling and loading state management in the traces and
logs components.
- Updated height calculations for various components to optimize layout.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
issue #5251
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced search functionality in the Search Bar, including improved
handling of saved views and function management.
- Streamlined methods for saving and deleting views with clearer
notifications.
- **Bug Fixes**
- Improved robustness in applying saved views, ensuring checks for
stream existence.
- **Style**
- Adjusted layout and appearance of buttons and dropdowns for a more
consistent user interface.
<!-- 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**
- Improved handling of logs tab lifecycle and error messages for better
user experience.
- Enhanced responsiveness of table cell styling based on state changes.
- Introduced utility function for validating date and time strings to
enhance error handling.
- Added new enumeration and interface to track UI component states
related to logs and stream exploration.
- **Bug Fixes**
- Adjusted error message display logic for clarity.
- Refined timezone selection handling to ensure correct initial
settings.
- **Refactor**
- Reorganized component methods for better maintainability and
readability.
- Transitioned table cell class management to a reactive reference for
dynamic updates.
- Minor adjustments to the DateTime component for improved code clarity
and functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->