mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
This PR adds endpoints for saving and retrieving a public dashboard configuration and and api endpoint to retrieve the public dashboard. All of this is highly experimental and APIs will change. Notably, we will be removing isPublic from the dashboard model and moving it over to the public dashboard table in the next release. Further context can be found here: https://github.com/grafana/grafana/pull/49131#issuecomment-1145456952
34 lines
1.3 KiB
Go
34 lines
1.3 KiB
Go
package migrations
|
|
|
|
import (
|
|
. "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
|
)
|
|
|
|
func addPublicDashboardMigration(mg *Migrator) {
|
|
var dashboardPublicCfgV1 = Table{
|
|
Name: "dashboard_public_config",
|
|
Columns: []*Column{
|
|
{Name: "uid", Type: DB_NVarchar, Length: 40, IsPrimaryKey: true},
|
|
{Name: "dashboard_uid", Type: DB_NVarchar, Length: 40, Nullable: false},
|
|
{Name: "org_id", Type: DB_BigInt, Nullable: false},
|
|
{Name: "time_settings", Type: DB_Text, Nullable: false},
|
|
{Name: "refresh_rate", Type: DB_Int, Nullable: false, Default: "30"},
|
|
{Name: "template_variables", Type: DB_MediumText, Nullable: true},
|
|
},
|
|
Indices: []*Index{
|
|
{Cols: []string{"uid"}, Type: UniqueIndex},
|
|
{Cols: []string{"org_id", "dashboard_uid"}},
|
|
},
|
|
}
|
|
mg.AddMigration("create dashboard public config v1", NewAddTableMigration(dashboardPublicCfgV1))
|
|
|
|
// table has no dependencies and was created with incorrect pkey type.
|
|
// drop then recreate with correct values
|
|
addDropAllIndicesMigrations(mg, "v1", dashboardPublicCfgV1)
|
|
mg.AddMigration("Drop old dashboard public config table", NewDropTableMigration("dashboard_public_config"))
|
|
|
|
// recreate table with proper primary key type
|
|
mg.AddMigration("recreate dashboard public config v1", NewAddTableMigration(dashboardPublicCfgV1))
|
|
addTableIndicesMigrations(mg, "v1", dashboardPublicCfgV1)
|
|
}
|