Files
grafana/pkg/registry/apis/secret/contracts/data_key.go
T
Dana Axinte b1b9cc43a8 SecretsManager: Adding ability to disable all DEKs (#108444)
* Adding dek deactivation and rename list dek

* disable data keys from manager

* separate interface and don't use in encryption manager
2025-07-25 17:11:17 +01:00

41 lines
1.2 KiB
Go

package contracts
import (
"context"
"errors"
"time"
"github.com/grafana/grafana/pkg/registry/apis/secret/encryption"
)
var (
ErrDataKeyNotFound = errors.New("data key not found")
)
// SecretDataKey does not have a mirrored K8s resource
type SecretDataKey struct {
UID string
Active bool
Namespace string
Label string
Provider encryption.ProviderID
EncryptedData []byte
Created time.Time
Updated time.Time
}
// DataKeyStorage is the interface for wiring and dependency injection.
type DataKeyStorage interface {
CreateDataKey(ctx context.Context, dataKey *SecretDataKey) error
GetDataKey(ctx context.Context, namespace, uid string) (*SecretDataKey, error)
GetCurrentDataKey(ctx context.Context, namespace, label string) (*SecretDataKey, error)
ListDataKeys(ctx context.Context, namespace string) ([]*SecretDataKey, error)
DisableDataKeys(ctx context.Context, namespace string) error
DeleteDataKey(ctx context.Context, namespace, uid string) error
}
// GlobalDataKeyStorage is an interface for namespace unbounded operations.
type GlobalDataKeyStorage interface {
DisableAllDataKeys(ctx context.Context) error
}