mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 17:32:47 +08:00

* Adding dek deactivation and rename list dek * disable data keys from manager * separate interface and don't use in encryption manager
174 lines
3.8 KiB
Go
174 lines
3.8 KiB
Go
package encryption
|
|
|
|
import (
|
|
"testing"
|
|
"text/template"
|
|
"time"
|
|
|
|
"github.com/grafana/grafana/pkg/registry/apis/secret/contracts"
|
|
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate/mocks"
|
|
)
|
|
|
|
func TestEncryptedValueQueries(t *testing.T) {
|
|
mocks.CheckQuerySnapshots(t, mocks.TemplateTestSetup{
|
|
RootDir: "testdata",
|
|
Templates: map[*template.Template][]mocks.TemplateTestCase{
|
|
sqlEncryptedValueCreate: {
|
|
{
|
|
Name: "create",
|
|
Data: &createEncryptedValue{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Row: &EncryptedValue{
|
|
Namespace: "ns",
|
|
Name: "n1",
|
|
Version: 1,
|
|
EncryptedData: []byte("secret"),
|
|
Created: 1234,
|
|
Updated: 5678,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
sqlEncryptedValueRead: {
|
|
{
|
|
Name: "read",
|
|
Data: &readEncryptedValue{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
Name: "n1",
|
|
Version: 1,
|
|
},
|
|
},
|
|
},
|
|
sqlEncryptedValueUpdate: {
|
|
{
|
|
Name: "update",
|
|
Data: &updateEncryptedValue{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
Name: "n1",
|
|
Version: 1,
|
|
EncryptedData: []byte("secret"),
|
|
Updated: 5679,
|
|
},
|
|
},
|
|
},
|
|
sqlEncryptedValueDelete: {
|
|
{
|
|
Name: "delete",
|
|
Data: &deleteEncryptedValue{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
Name: "n1",
|
|
Version: 1,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func TestDataKeyQueries(t *testing.T) {
|
|
mocks.CheckQuerySnapshots(t, mocks.TemplateTestSetup{
|
|
RootDir: "testdata",
|
|
Templates: map[*template.Template][]mocks.TemplateTestCase{
|
|
sqlDataKeyCreate: {
|
|
{
|
|
Name: "create",
|
|
Data: &createDataKey{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Row: &contracts.SecretDataKey{
|
|
UID: "abc123",
|
|
Active: true,
|
|
Namespace: "ns",
|
|
Label: "label",
|
|
Provider: "provider",
|
|
EncryptedData: []byte("secret"),
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Name: "create-not-active",
|
|
Data: &createDataKey{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Row: &contracts.SecretDataKey{
|
|
UID: "abc123",
|
|
Active: false,
|
|
Namespace: "ns",
|
|
Label: "label",
|
|
Provider: "provider",
|
|
EncryptedData: []byte("secret"),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
sqlDataKeyRead: {
|
|
{
|
|
Name: "read",
|
|
Data: &readDataKey{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
UID: "abc123",
|
|
},
|
|
},
|
|
},
|
|
sqlDataKeyReadCurrent: {
|
|
{
|
|
Name: "read_current",
|
|
Data: &readCurrentDataKey{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
Label: "label",
|
|
},
|
|
},
|
|
},
|
|
sqlDataKeyList: {
|
|
{
|
|
Name: "list",
|
|
Data: &listDataKeys{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
},
|
|
},
|
|
},
|
|
sqlDataKeyDisable: {
|
|
{
|
|
Name: "disable",
|
|
Data: &disableDataKeys{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
Updated: time.Unix(1735689600, 0).UTC(),
|
|
},
|
|
},
|
|
},
|
|
sqlDataKeyDelete: {
|
|
{
|
|
Name: "delete",
|
|
Data: &deleteDataKey{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
UID: "abc123",
|
|
},
|
|
},
|
|
{
|
|
Name: "delete-no-uid",
|
|
Data: &deleteDataKey{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Namespace: "ns",
|
|
UID: "",
|
|
},
|
|
},
|
|
},
|
|
sqlDataKeyDisableAll: {
|
|
{
|
|
Name: "disable",
|
|
Data: &disableAllDataKeys{
|
|
SQLTemplate: mocks.NewTestingSQLTemplate(),
|
|
Updated: time.Unix(1735689600, 0).UTC(),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|