Encryption: Start move to data keys
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package sqlstore
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
func (ss *SqlStore) GetDataKey(name string) (*models.DataKey, error) {
|
||||
return getDataKey(name, ss.engine)
|
||||
}
|
||||
|
||||
func getDataKey(name string, engine *xorm.Engine) (*models.DataKey, error) {
|
||||
dataKey := &models.DataKey{Name: name}
|
||||
exists, err := engine.Get(dataKey)
|
||||
|
||||
if err != nil {
|
||||
sqlog.Error("Failed getting data key", "err", err, "name", name)
|
||||
return nil, fmt.Errorf("failed getting data key: %w", err)
|
||||
}
|
||||
if !exists {
|
||||
return nil, models.ErrDataKeyNotFound
|
||||
}
|
||||
|
||||
return dataKey, nil
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package migrations
|
||||
|
||||
import "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
||||
|
||||
func addDataKeysMigrations(mg *migrator.Migrator) {
|
||||
dataKeysV1 := migrator.Table{
|
||||
Name: "data_keys",
|
||||
Columns: []*migrator.Column{
|
||||
{Name: "name", Type: migrator.DB_NVarchar, Length: 50, IsPrimaryKey: true},
|
||||
{Name: "active", Type: migrator.DB_Bool},
|
||||
{Name: "provider", Type: migrator.DB_NVarchar, Length: 50, Nullable: true},
|
||||
{Name: "encrypted_data", Type: migrator.DB_Blob, Nullable: false},
|
||||
{Name: "created", Type: migrator.DB_DateTime, Nullable: false},
|
||||
{Name: "updated", Type: migrator.DB_DateTime, Nullable: false},
|
||||
},
|
||||
Indices: []*migrator.Index{},
|
||||
}
|
||||
|
||||
mg.AddMigration("create data keys table", migrator.NewAddTableMigration(dataKeysV1))
|
||||
}
|
||||
@@ -34,6 +34,7 @@ func AddMigrations(mg *Migrator) {
|
||||
addServerlockMigrations(mg)
|
||||
addUserAuthTokenMigrations(mg)
|
||||
addCacheMigration(mg)
|
||||
addDataKeysMigrations(mg)
|
||||
}
|
||||
|
||||
func addMigrationLogMigrations(mg *Migrator) {
|
||||
|
||||
Reference in New Issue
Block a user