mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 00:25:46 -06:00
This PR completes public dashboards v1 functionality and simplifies public dashboard conventions. It exists as a large PR so that we are not making constant changes to the database schema. models.PublicDashboardConfig model replaced with models.PublicDashboard directly dashboard_public_config table renamed to dashboard_public models.Dashboard.IsPublic removed from the dashboard and replaced with models.PublicDashboard.isEnabled Routing now uses a uuid v4 as an access token for viewing a public dashboard anonymously, PublicDashboard.Uid only used as database identifier Frontend utilizes uuid for auth'd operations and access token for anonymous access Default to time range defined on dashboard when viewing public dashboard Add audit fields to public dashboard Co-authored-by: Owen Smallwood <owen.smallwood@grafana.com>, Ezequiel Victorero <ezequiel.victorero@grafana.com>, Jesse Weaver <jesse.weaver@grafana.com>
78 lines
3.1 KiB
Go
78 lines
3.1 KiB
Go
package dtos
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
)
|
|
|
|
type DashboardMeta struct {
|
|
IsStarred bool `json:"isStarred,omitempty"`
|
|
IsHome bool `json:"isHome,omitempty"`
|
|
IsSnapshot bool `json:"isSnapshot,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
CanSave bool `json:"canSave"`
|
|
CanEdit bool `json:"canEdit"`
|
|
CanAdmin bool `json:"canAdmin"`
|
|
CanStar bool `json:"canStar"`
|
|
CanDelete bool `json:"canDelete"`
|
|
Slug string `json:"slug"`
|
|
Url string `json:"url"`
|
|
Expires time.Time `json:"expires"`
|
|
Created time.Time `json:"created"`
|
|
Updated time.Time `json:"updated"`
|
|
UpdatedBy string `json:"updatedBy"`
|
|
CreatedBy string `json:"createdBy"`
|
|
Version int `json:"version"`
|
|
HasAcl bool `json:"hasAcl"`
|
|
IsFolder bool `json:"isFolder"`
|
|
FolderId int64 `json:"folderId"`
|
|
FolderUid string `json:"folderUid"`
|
|
FolderTitle string `json:"folderTitle"`
|
|
FolderUrl string `json:"folderUrl"`
|
|
Provisioned bool `json:"provisioned"`
|
|
ProvisionedExternalId string `json:"provisionedExternalId"`
|
|
AnnotationsPermissions *AnnotationPermission `json:"annotationsPermissions"`
|
|
PublicDashboardAccessToken string `json:"publicDashboardAccessToken"`
|
|
}
|
|
type AnnotationPermission struct {
|
|
Dashboard AnnotationActions `json:"dashboard"`
|
|
Organization AnnotationActions `json:"organization"`
|
|
}
|
|
|
|
type AnnotationActions struct {
|
|
CanAdd bool `json:"canAdd"`
|
|
CanEdit bool `json:"canEdit"`
|
|
CanDelete bool `json:"canDelete"`
|
|
}
|
|
|
|
type DashboardFullWithMeta struct {
|
|
Meta DashboardMeta `json:"meta"`
|
|
Dashboard *simplejson.Json `json:"dashboard"`
|
|
}
|
|
|
|
type TrimDashboardFullWithMeta struct {
|
|
Meta *simplejson.Json `json:"meta"`
|
|
Dashboard *simplejson.Json `json:"dashboard"`
|
|
}
|
|
|
|
type DashboardRedirect struct {
|
|
RedirectUri string `json:"redirectUri"`
|
|
}
|
|
|
|
type CalculateDiffOptions struct {
|
|
Base CalculateDiffTarget `json:"base" binding:"Required"`
|
|
New CalculateDiffTarget `json:"new" binding:"Required"`
|
|
DiffType string `json:"diffType" binding:"Required"`
|
|
}
|
|
|
|
type CalculateDiffTarget struct {
|
|
DashboardId int64 `json:"dashboardId"`
|
|
Version int `json:"version"`
|
|
UnsavedDashboard *simplejson.Json `json:"unsavedDashboard"`
|
|
}
|
|
|
|
type RestoreDashboardVersionCommand struct {
|
|
Version int `json:"version" binding:"Required"`
|
|
}
|