mirror of
https://github.com/grafana/grafana.git
synced 2025-01-18 20:43:26 -06:00
719af24235
* Refactor: Add UID endpoint for dashboard versions and restore
* Fix: User dashID instead of dash.id
* 💩
* Move apiCmd error handling outside of dashUID check
* fix the panic in test
* Fix handler and update docs
Co-authored-by: Kat Yang <yangkb09@users.noreply.github.com>
* Docs: add deprecated warning to restore and version docs
* Fix hyperlink text
* Add swagger endpoints for restore and versions
* Add deprecated tag on swagger for both endpoints
* Fix: Update access control to be dashboards
* Return UID in response; Update docs to reflect this; Implement Ying suggestion
* Update docs/sources/http_api/dashboard_versions.md
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Update pkg/models/dashboard_version.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Update pkg/models/dashboard_version.go
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Update query to refer to DashboardUID
Co-authored-by: Ying WANG <ying.wang@grafana.com>
Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
Co-authored-by: Kat Yang <yangkb09@users.noreply.github.com>
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
90 lines
2.4 KiB
Go
90 lines
2.4 KiB
Go
package models
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
)
|
|
|
|
var (
|
|
ErrDashboardVersionNotFound = errors.New("dashboard version not found")
|
|
ErrNoVersionsForDashboardId = errors.New("no dashboard versions found for the given DashboardId")
|
|
)
|
|
|
|
// A DashboardVersion represents the comparable data in a dashboard, allowing
|
|
// diffs of the dashboard to be performed.
|
|
type DashboardVersion struct {
|
|
Id int64 `json:"id"`
|
|
DashboardId int64 `json:"dashboardId"`
|
|
ParentVersion int `json:"parentVersion"`
|
|
RestoredFrom int `json:"restoredFrom"`
|
|
Version int `json:"version"`
|
|
|
|
Created time.Time `json:"created"`
|
|
CreatedBy int64 `json:"createdBy"`
|
|
|
|
Message string `json:"message"`
|
|
Data *simplejson.Json `json:"data"`
|
|
}
|
|
|
|
// DashboardVersionMeta extends the dashboard version model with the names
|
|
// associated with the UserIds, overriding the field with the same name from
|
|
// the DashboardVersion model.
|
|
type DashboardVersionMeta struct {
|
|
Id int64 `json:"id"`
|
|
DashboardId int64 `json:"dashboardId"`
|
|
DashboardUID string `json:"uid"`
|
|
ParentVersion int `json:"parentVersion"`
|
|
RestoredFrom int `json:"restoredFrom"`
|
|
Version int `json:"version"`
|
|
Created time.Time `json:"created"`
|
|
Message string `json:"message"`
|
|
Data *simplejson.Json `json:"data"`
|
|
CreatedBy string `json:"createdBy"`
|
|
}
|
|
|
|
// DashboardVersionDTO represents a dashboard version, without the dashboard
|
|
// map.
|
|
type DashboardVersionDTO struct {
|
|
Id int64 `json:"id"`
|
|
DashboardId int64 `json:"dashboardId"`
|
|
DashboardUID string `json:"dashboardUid"`
|
|
ParentVersion int `json:"parentVersion"`
|
|
RestoredFrom int `json:"restoredFrom"`
|
|
Version int `json:"version"`
|
|
Created time.Time `json:"created"`
|
|
CreatedBy string `json:"createdBy"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
//
|
|
// Queries
|
|
//
|
|
|
|
type GetDashboardVersionQuery struct {
|
|
DashboardId int64
|
|
OrgId int64
|
|
Version int
|
|
|
|
Result *DashboardVersion
|
|
}
|
|
|
|
type GetDashboardVersionsQuery struct {
|
|
DashboardId int64
|
|
DashboardUID string
|
|
OrgId int64
|
|
Limit int
|
|
Start int
|
|
|
|
Result []*DashboardVersionDTO
|
|
}
|
|
|
|
//
|
|
// Commands
|
|
//
|
|
|
|
type DeleteExpiredVersionsCommand struct {
|
|
DeletedRows int64
|
|
}
|