Skip to content

Commit

Permalink
Release/v0.50 (#2556)
Browse files Browse the repository at this point in the history
* Release v0.50.0-rc.0 (#2515)

* Release v0.50.0-rc.0

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* fix comment

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

---------

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* [DOC] Align plugin doc with the migration revamp (#2516)

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* [ENHANCEMENT] Table panel: editor text fields are debounced  (#2470)

* [FEATURE] Add debounce to TextField

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* forwardRef

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* fix tests

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* [ENHANCEMENT] Table panel: text field inputs are debounced

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* Fix tests

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

---------

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* [BUGFIX] Table panel: fix cell mapping for range condition (#2517)

* [BUGFIX] Table panel: fix cell mapping when for range condition

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* More pretty

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* Fix range not removable

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* Ignore more domains

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

---------

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* [ENHANCEMENT] Use Perses logo for the app loader (#2518)

* [ENHANCEMENT] Use Perses logo for the app loader

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* Only one loader 🔥

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* Fix header 🐛

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* fix e2e

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

---------

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* [BUGFIX] Fix preview display name with prefix (#2520)

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* [ENHANCEMENT] DaC CUE SDK: add datasource param to the var group builder (#2524)

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* [ENHANCEMENT] DaC CUE SDK: accurate constraints for duration attributes (#2525)

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* [ENHANCEMENT] `percli dac diff`: add output + avoid early return when processing a directory (#2500)

* [ENHANCEMENT] `percli dac diff`: avoid early return when processing a directory

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* add a proper output to the diff command

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* improve error handling as suggested

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

---------

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* [ENHANCEMENT] : percli plugin lint: improve the way to find the schema files (#2526)

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* [BUGFIX] DaC CUE SDK: Fix inconsistencies in mandatory vs optional attributes in dashboard lib (#2540)

* DaC CUE SDK: Fix inconsistencies in mandatory vs optional attributes in dashboard lib

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* misc: reorder params for clarity

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

---------

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* Release v0.50.0-rc.1 (#2543)

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* BUGFIX: `percli dac setup`: fix useless requirement of go CLI when using CUE (#2544)

Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>

* [IGNORE] Correctly type useQuery fetch hooks error (#2546)

Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>

* [BUGFIX] Redirect to the desired page after login success (#2354)

* [BUGFIX] Redirect to the desired page after login success

Signed-off-by: Célian Garcia <celian.garcia@amadeus.com>

* [BUGFIX] Redirect to the desired page after login success

Signed-off-by: Célian Garcia <celian.garcia@amadeus.com>

* [BUGFIX] Redirect after login keeping query params

Signed-off-by: Célian Garcia <celian.garcia@amadeus.com>

---------

Signed-off-by: Célian Garcia <celian.garcia@amadeus.com>

* [BUGFIX] Fixes tooltip display in EDGE / IE (#2547)

Signed-off-by: Maxim KOTELNIKOV <maxim.kotelnikov@amadeus.com>

* [BUGFIX] GaugeChartPanel: fix empty state (#2548)

Show "No data" instead of "null" when the Gauge has no data.

Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>

* [BUGFIX] Update unit's migration (#2519)

* update unit's migrtaion (add decimal unit as default, when it's not defined in mapping list)

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* Update dashboard test's output for migration changes

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* fix unit+decimal migration

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* fix decimals migration

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* update migration tests

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* update dashboard migration output file

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* remove extra spaces from barchart test output

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

---------

Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>

* Release v0.50.0 (#2553)

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

---------

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
Signed-off-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>
Signed-off-by: Guillaume LADORME <Gladorme@users.noreply.github.com>
Signed-off-by: Célian Garcia <celian.garcia@amadeus.com>
Signed-off-by: Maxim KOTELNIKOV <maxim.kotelnikov@amadeus.com>
Signed-off-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Signed-off-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>
Co-authored-by: Antoine THEBAUD <antoine.thebaud@yahoo.fr>
Co-authored-by: Guillaume LADORME <Gladorme@users.noreply.github.com>
Co-authored-by: Célian GARCIA <celian.garcia@amadeus.com>
Co-authored-by: Maxim Kotelnikov <info@impy.us>
Co-authored-by: Andreas Gerstmayr <agerstmayr@redhat.com>
Co-authored-by: Alexander Mukhin <67650646+lomobot@users.noreply.github.com>
  • Loading branch information
7 people authored Jan 15, 2025
2 parents c19e71d + 339855b commit a128b78
Show file tree
Hide file tree
Showing 39 changed files with 618 additions and 358 deletions.
6 changes: 6 additions & 0 deletions .mdox.validate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,10 @@ validators:
type: 'ignore'
# code 502
- regex: 'storybook\.js\.com'
type: 'ignore'
# timeout
- regex: 'tanstack\.com'
type: 'ignore'
# timeout
- regex: 'github\.com'
type: 'ignore'
59 changes: 59 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,64 @@
# Changelog

## 0.50.0 / 2025-01-15

This release significantly enhances the migration feature with better performance and reduced disruptions, thanks to a complete overhaul of its logic.
We’ve also addressed numerous updates to the migration process itself, incorporating fixes and enhancements to better cover use cases raised by the community - thank you for your contributions!
Additionally, we’ve begun implementing new CLI commands to lay the groundwork for future plugin development, as part of the updated plugin design we’re actively working on.
Finally, thanks to the community again we’re introducing a new Status History panel, and the Table panel has been enriched with multiple improvements.

- [FEATURE] Status History panel (#2403)
- [FEATURE] new CLI command for plugins development (#2410) (#2459) (#2471) (#2526)
- [FEATURE] Table panel: columns can be reordered (#2392)
- [ENHANCEMENT] `percli dac diff`: add output + avoid early return when processing a directory (#2500)
- [ENHANCEMENT] DaC CUE SDK: accurate constraints for duration attributes (#2525)
- [ENHANCEMENT] DaC CUE SDK: add datasource param to the var group builder (#2524)
- [ENHANCEMENT] Use Perses logo for the app loader (#2518)
- [ENHANCEMENT] Table panel: editor text fields are debounced (#2470)
- [ENHANCEMENT] Add yellow mapping from grafana (#2461)
- [ENHANCEMENT] Update text migration (#2465)
- [ENHANCEMENT] Full rewrite of the migration script (#2481)
- [ENHANCEMENT] Migrate defaultValue (#2406)
- [ENHANCEMENT] Table: add default column sorting (#2482)
- [ENHANCEMENT] Table panel: migrate custom column ordering via "organize" transformation (#2419)
- [ENHANCEMENT] Add search in metric finder + new option for a hiding panel (#2466)
- [ENHANCEMENT] Add sparkline migration (#2463)
- [ENHANCEMENT] CLI/DAC: return a success message after writing a diff files (#2464)
- [ENHANCEMENT] Table: add default column width setting (#2446)
- [ENHANCEMENT] Prefix dashboard display name when using dac preview command (#2460)
- [ENHANCEMENT] Add PieChart migration (#2449)
- [ENHANCEMENT] Table: add column sorting (#2450)
- [ENHANCEMENT] Table: best-effort migration of fieldConfig.overrides to columnSettings (#2443)
- [ENHANCEMENT] Table: Add cell focus on hover (#2442)
- [ENHANCEMENT] Update kubebuilder validation (#2437)
- [ENHANCEMENT] add kubebuilder annotations to all duration types (#2433)
- [ENHANCEMENT] RoleBinding prechecking if user and role exist has been removed (#2430)
- [ENHANCEMENT] Refactor struct field names and add validation for duration fields (#2360)
- [ENHANCEMENT] More user-friendly helpers for prometheus built-in variables (#2407)
- [BREAKINGCHANGE] copy duration type from prometheus/common (#2440)
- [BUGFIX] Update unit's migration (#2519)
- [BUGFIX] GaugeChartPanel: fix empty state (#2548)
- [BUGFIX] Fixes tooltip display in EDGE / IE (#2547)
- [BUGFIX] Redirect to the desired page after login success (#2354)
- [BUGFIX] DaC CUE SDK: Fix inconsistencies in mandatory vs optional attributes in dashboard lib (#2540)
- [BUGFIX] Fix preview display name with prefix (#2520)
- [BUGFIX] Fix for migration of decimal units (#2493)
- [BUGFIX] Table panel: fix cell mapping for range condition (#2517)
- [BUGFIX] `percli dac setup`: fix useless requirement of go CLI when using CUE (#2544)
- [BUGFIX] `percli dac diff`: fix output folder not found (#2484)
- [BUGFIX] Table: mapping with min range 0 not working (#2472)
- [BUGFIX] Table: fix migration of joinByField transform (#2458)
- [BUGFIX] Fix Panel JSON validation (#2456)
- [BUGFIX] Fix tree view broken when using prometheus built-in vars (#2405)
- [BUGFIX] TimeSeriesChart: fix migration for the format attribute (#2432)
- [BUGFIX] PromQL Tree view: stop firing the parse query before the show button gets clicked (#2427)
- [BUGFIX] Fix login command avoiding reusing previous config (#2416)
- [BUGFIX] Remove some SX props leaking (#2408)
- [BUGFIX] Edit mode not working after clicking on the resource row (#2404)
- [DOC] Align plugin doc with the migration revamp (#2516)
- [DOC] Adjustments in CLI doc (#2480)
- [DOC] Adjust markdown syntax following issues spotted on website (#2397)

## 0.49.0 / 2024-11-05

This update introduces a toggleable Tree view in the PromQL editor (Prom 3.0-like), as well as new customization options for the Table panel.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.49.0
0.50.0
2 changes: 1 addition & 1 deletion docs/dac/cue/variable/group.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,4 @@ import (
}
]
}}.variables
```
```
40 changes: 40 additions & 0 deletions docs/images/perses_logo_cropped_animated.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
133 changes: 95 additions & 38 deletions docs/plugins/cue.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,7 @@ it should define:

## Migration from Grafana

A Perses plugin can optionally embed a `migrate.cue`\* file at its root, that is basically describing in CUE language how to convert a given Grafana object into an instance of this plugin. In such case your plugin is considered as the Perses equivalent of this Grafana object type, i.e it will be used as part of the translation process when a Grafana dashboard is received on the `/api/migrate` endpoint.

*\* this is mandatory to have it named that way. We put in place this constraint because it makes sense to have a single file containing the remapping logic, with the benefit of making the backend logic easier (no need to search for the file). It's also easier to check the migration file of the different plugins, because you know which one to look for.*
A Perses plugin can optionally embed a `migrate` folder file at its root, that contains a `migrate.cue` file. This file is basically describing in CUE language how to convert a given Grafana object into an instance of this plugin. In such case your plugin is considered as the Perses equivalent of this Grafana object type, i.e it will be used as part of the translation process when a Grafana dashboard is received on the `/api/migrate` endpoint.

!!! warning
If ever you come to the situation where you have 2 or more plugins describing a migration logic for the same Grafana panel type, be aware that the first one encountered by alphabetical order will take priority.
Expand All @@ -102,58 +100,117 @@ if #var.type == "custom" || #var.type == "interval" {
- `#var` references a variable object from Grafana. You can access the different fields with like `#var.field.subfield`. To know the list of fields available, check the Grafana datamodel for the considered variable type (from Grafana repo, or by inspecting the JSON of the dashboard on the Grafana UI).
- You most certainly want a check on the `#var.type` value like shown in above example.
- Each conditional block contains a list of fields & assignments, meeting the requirements of the considered Perses variable plugin. Use the `#var.field.subfield` syntax to access the values from the Grafana variable, thus achieve its remapping into Perses.
If ever you come to the situation where you have 2 or more plugins describing a migration logic for the same Grafana object, be aware that the last one encountered by alphabetical order will take priority.

### Panel

A panel migration file looks like the following:

```cue
if #panel.type == "timeseries" || #panel.type == "graph" {
kind: "TimeSeriesChart"
spec: {
legend: {
position: #panel.options.legend.placement
}
}
},
```
package migrate
- The file is named `migrate.cue`.
- The file content is made of **one or more conditional block(s)**, separated by commas (even if you have only one).
- Each conditional block defines one or more matches on attributes from the `#panel` definition.
- `#panel` references a panel object from Grafana. You can access the different fields with like `#panel.field.subfield`. To know the list of fields available, check the Grafana datamodel for the considered panel type (from Grafana repo, or by inspecting the JSON of the dashboard on the Grafana UI).
- You most certainly want a check on the `#panel.type` value like shown in above example.
- Each conditional block contains a list of fields & assignments, meeting the requirements of the considered Perses panel plugin. Use the `#panel.field.subfield` syntax to access the values from the Grafana panel, thus achieve its remapping into Perses.
import (
commonMigrate "github.com/perses/perses/cue/schemas/common/migrate"
)
#### Utilities
#grafanaType: "bargauge"
#panel: _
There are some utilities that you can use in your plugin migration logic:
kind: "BarChart"
spec: {
calculation: *commonMigrate.#mapping.calc[#panel.options.reduceOptions.calcs[0]] | commonMigrate.#defaultCalc // only consider [0] here as Perses's GaugeChart doesn't support individual calcs
- `#mapping.unit`: mapping table for the `unit` attribute (key = grafana unit, value = perses equivalent).
- `#mapping.calc`: mapping table for the `calculation` attribute (key = grafana unit, value = perses equivalent).
- `#mapping.sort`: mapping array for the sort attribute (index = grafana sort id, value = perses equivalent).
- `#defaultCalc`: standard default value for the `calculation` attribute.
#unit: *commonMigrate.#mapping.unit[#panel.fieldConfig.defaults.unit] | null
if #unit != null {
format: unit: #unit
}
#decimal: *#panel.fieldConfig.defaults.decimal | null
if #decimal != null {
format: decimalPlaces: #decimal
}
}
```

- The file must be named `migrate.cue`.
- `#grafanaType` is a mandatory definition to provide, whose string value must match the `type` of the Grafana panel you want to migrate.
- `#panel` is the reference used by Perses to inject the Grafana panel objects to migrate.
- You can access the different fields via the `#panel.field.subfield` syntax. To find the list of available fields, refer to the Grafana data model for the relevant panel type (from Grafana repo, or by inspecting the JSON of the dashboard on the Grafana UI).
- Declaring `#panel: _` like in the above example is optional, it's just there to enable standalone validation of the file (`_` means "any" in CUE).
- The file consists of field assignments, using the content of `#panel`. The end result must match the model of the considered Perses panel plugin.
- Optionally, you can use the `github.com/perses/perses/cue/schemas/common/migrate` package that Perses provides in order to remap some of the attributes:
- `#mapping.unit`: mapping table for the `unit` attribute (key = grafana unit, value = perses equivalent).
- `#mapping.calc`: mapping table for the `calculation` attribute (key = grafana unit, value = perses equivalent).
- `#mapping.color`: mapping table for the "standard" colors used by Grafana (key = color name, value = hex code).
- `#defaultCalc`: standard default value for the `calculation` attribute.

### Query

A query migration file looks like the following:

```cue
if #target.datasource.type != _|_ if #target.datasource.type == "prometheus" {
kind: "PrometheusTimeSeriesQuery"
package migrate
#target: _
// NB we would need `if` to support short-circuit in order to avoid code duplication here.
// See https://github.com/cue-lang/cue/issues/2232
if (*#target.datasource.type | null) == "prometheus" && #target.expr != _|_ {
kind: "PrometheusTimeSeriesQuery"
spec: {
datasource: {
kind: "PrometheusDatasource"
name: #target.datasource.uid
}
query: #target.expr
#legendFormat: *#target.legendFormat | "__auto"
if #legendFormat != "__auto" {
seriesNameFormat: #legendFormat
}
if #target.interval != _|_ {
minStep: #target.interval
}
}
},
```

- The file must be named `migrate.cue`.
- `#target` is the reference used by Perses to inject the Grafana target objects to migrate.
- You can access the different fields via the `#target.field.subfield` syntax. To find the list of available fields, refer to the Grafana data model for the targets (from Grafana repo, or by inspecting the JSON of the dashboard on the Grafana UI).
- Declaring `#target: _` like in the above example is optional, it's just there to enable standalone validation of the file (`_` means "any" in CUE).
- The migration logic must be wrapped into **one or more conditional block(s)**. For each of them:
- The condition is about one or more attributes from the `#target` definition. You most certainly want a check on the `#target.datasource.type` value like shown in above example.
- The body consists of field assignments, using the content of `#target`. The end result must match the model of the considered Perses query plugin.

!!! warning
Ensure that your file evaluates to an empty result if the provided `#target` value does not match the expected type.

### Variable

A variable migration file looks like the following:

```cue
package migrate
import "strings"
#var: _
if #var.type == "custom" || #var.type == "interval" {
kind: "StaticListVariable"
spec: {
datasource: {
kind: "PrometheusDatasource"
name: #target.datasource.uid
}
query: #target.expr
values: strings.Split(#var.query, ",")
}
},
}
```

- The file is named `migrate.cue`.
- The file content is made of **one or more conditional block(s)**, separated by commas (even if you have only one).
- Each conditional block defines one or more matches on attributes from the `#target` definition.
- `#target` references a target object from Grafana. You can access the different fields with like `#target.field.subfield`. To know the list of fields available, check the Grafana datamodel for the targets (from Grafana repo, or by inspecting the JSON of the dashboard on the Grafana UI).
- You most certainly want a check on the `#target.datasource.type` value like shown in above example.
- Each conditional block contains a list of fields & assignments, meeting the requirements of the considered Perses query plugin. Use the `#target.field.subfield` syntax to access the values from the Grafana target, thus achieve its remapping into Perses.
- The file must be named `migrate.cue`.
- `#var` is the reference used by Perses to inject the Grafana variable objects to migrate.
- You can access the different fields via the `#var.field.subfield` syntax. To find the list of available fields, refer to the Grafana data model for the relevant variable type (from Grafana repo, or by inspecting the JSON of the dashboard on the Grafana UI).
- Declaring `#var: _` like in the above example is optional, it's just there to enable standalone validation of the file (`_` means "any" in CUE).
- The migration logic must be wrapped into **one or more conditional block(s)**. For each of them:
- The condition is about one or more attributes from the `#var` definition. You most certainly want a check on the `#var.type` value like shown in above example.
- The body consists of field assignments, using the content of `#var`. The end result must match the model of the considered Perses variable plugin.

!!! warning
Ensure that your file evaluates to an empty result if the provided `#var` value does not match the expected type.
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"kind":"Dashboard",
"kind": "Dashboard",
"metadata": {
"createdAt":"0001-01-01T00:00:00Z",
"name":"ddgn9k36v60owc",
"project":"",
"updatedAt":"0001-01-01T00:00:00Z",
"version":0
},
"createdAt": "0001-01-01T00:00:00Z",
"name": "ddgn9k36v60owc",
"project": "",
"updatedAt": "0001-01-01T00:00:00Z",
"version": 0
},
"spec": {
"display":{
"name":"test dashboard"
},
"duration":"1h",
"layouts":[],
"panels":{}
"display": {
"name": "test dashboard"
},
"duration": "1h",
"layouts": [],
"panels": {}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1285,4 +1285,4 @@
],
"duration": "1h"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,4 @@
],
"duration": "1h"
}
}
}
2 changes: 1 addition & 1 deletion internal/cli/cmd/dac/preview/preview.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ func (o *option) Execute() error {
project := resource.GetProject(dashboard.GetMetadata(), o.Project)
name := o.computeEphemeralDashboardName(dashboard.Metadata.Name)
if dashboard.Spec.Display != nil && len(o.prefix) > 0 {
dashboard.Spec.Display.Name = fmt.Sprintf("%s-", dashboard.Spec.Display.Name)
dashboard.Spec.Display.Name = fmt.Sprintf("%s-%s", o.prefix, dashboard.Spec.Display.Name)
}
ephemeralDashboard := newEphemeralDashboard(project, name, o.ttl, dashboard)
svc, svcErr := service.New(modelV1.KindEphemeralDashboard, project, o.apiClient)
Expand Down
18 changes: 9 additions & 9 deletions ui/app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@perses-dev/app",
"version": "0.49.0",
"version": "0.50.0",
"private": true,
"scripts": {
"clean": "rimraf dist/",
Expand All @@ -20,14 +20,14 @@
"@mui/material": "^6.1.10",
"@mui/x-data-grid": "^7.23.1",
"@nexucis/kvsearch": "^0.9.1",
"@perses-dev/components": "0.49.0",
"@perses-dev/core": "0.49.0",
"@perses-dev/dashboards": "0.49.0",
"@perses-dev/explore": "0.49.0",
"@perses-dev/panels-plugin": "0.49.0",
"@perses-dev/plugin-system": "0.49.0",
"@perses-dev/prometheus-plugin": "0.49.0",
"@perses-dev/tempo-plugin": "0.49.0",
"@perses-dev/components": "0.50.0",
"@perses-dev/core": "0.50.0",
"@perses-dev/dashboards": "0.50.0",
"@perses-dev/explore": "0.50.0",
"@perses-dev/panels-plugin": "0.50.0",
"@perses-dev/plugin-system": "0.50.0",
"@perses-dev/prometheus-plugin": "0.50.0",
"@perses-dev/tempo-plugin": "0.50.0",
"@tanstack/react-query": "^4.7.1",
"date-fns": "^2.29.3",
"immer": "^9.0.15",
Expand Down
Loading

0 comments on commit a128b78

Please sign in to comment.