From 2c4bbf8b1d1b31be98ed96e6d5d57be2f51f242b Mon Sep 17 00:00:00 2001 From: Matheus Macabu Date: Wed, 16 Jul 2025 10:56:59 +0200 Subject: [PATCH] Secrets: Reduce amount of feature toggle checks to only app entrypoint (#108110) * Secrets: Reduce amount of feature toggle checks to only app entrypoint * Wire: Fix merge conflict * Wire: Fix merge conflict --- .../secret/encryption/manager/manager_test.go | 16 +++++---------- .../secret/encryption/manager/test_helpers.go | 4 +--- pkg/registry/apis/secret/register.go | 9 +++++---- .../secret/secretkeeper/secretkeeper_test.go | 6 ++---- .../apis/secret/testutils/testutils.go | 13 +++++------- pkg/server/wire_gen.go | 20 +++++++++---------- .../secret/encryption/data_key_store.go | 14 +++---------- .../secret/encryption/data_key_store_test.go | 4 +--- .../encryption/encrypted_value_store.go | 6 ------ pkg/storage/secret/metadata/decrypt_store.go | 7 ------- pkg/storage/secret/metadata/keeper_store.go | 17 ++++++---------- .../secret/metadata/keeper_store_test.go | 11 +++++----- .../secret/metadata/secure_value_store.go | 19 +++++++----------- .../metadata/secure_value_store_test.go | 14 ++++++------- 14 files changed, 56 insertions(+), 104 deletions(-) diff --git a/pkg/registry/apis/secret/encryption/manager/manager_test.go b/pkg/registry/apis/secret/encryption/manager/manager_test.go index b627bc5b187..97166c52267 100644 --- a/pkg/registry/apis/secret/encryption/manager/manager_test.go +++ b/pkg/registry/apis/secret/encryption/manager/manager_test.go @@ -17,7 +17,6 @@ import ( "github.com/grafana/grafana/pkg/registry/apis/secret/encryption" "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/cipher/service" osskmsproviders "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/kmsproviders" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/storage/secret/database" @@ -78,9 +77,8 @@ func TestEncryptionService_EnvelopeEncryption(t *testing.T) { func TestEncryptionService_DataKeys(t *testing.T) { // Initialize data key storage with a fake db testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) tracer := noop.NewTracerProvider().Tracer("test") - store, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, features, nil) + store, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, nil) require.NoError(t, err) ctx := context.Background() @@ -183,10 +181,9 @@ func TestEncryptionService_UseCurrentProvider(t *testing.T) { }, } - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) tracer := noop.NewTracerProvider().Tracer("test") - encryptionStore, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, features, nil) + encryptionStore, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, nil) require.NoError(t, err) usageStats := &usagestats.UsageStatsMock{T: t} @@ -259,9 +256,8 @@ func TestEncryptionService_SecretKeyVersionUpgrade(t *testing.T) { } testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) - features := featuremgmt.WithFeatures(featuremgmt.FlagGrafanaAPIServerWithExperimentalAPIs, featuremgmt.FlagSecretsManagementAppPlatform) tracer := noop.NewTracerProvider().Tracer("test") - encryptionStore, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, features, nil) + encryptionStore, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, nil) require.NoError(t, err) usageStats := &usagestats.UsageStatsMock{T: t} @@ -345,8 +341,7 @@ func TestEncryptionService_SecretKeyVersionUpgrade(t *testing.T) { t.Run("encrypting with v1 then removing the v1 config should cause decryption to fail", func(t *testing.T) { tracer := noop.NewTracerProvider().Tracer("test") testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) - features := featuremgmt.WithFeatures(featuremgmt.FlagGrafanaAPIServerWithExperimentalAPIs, featuremgmt.FlagSecretsManagementAppPlatform) - encryptionStore, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, features, nil) + encryptionStore, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, nil) require.NoError(t, err) usageStats := &usagestats.UsageStatsMock{T: t} @@ -540,7 +535,6 @@ func TestIntegration_SecretsService(t *testing.T) { t.Run(name, func(t *testing.T) { testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) tracer := noop.NewTracerProvider().Tracer("test") - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) cfg := &setting.Cfg{ SecretsManagement: setting.SecretsManagerSettings{ @@ -548,7 +542,7 @@ func TestIntegration_SecretsService(t *testing.T) { ConfiguredKMSProviders: map[string]map[string]string{"secret_key.v1": {"secret_key": "SW2YcwTIb9zpOOhoPsMm"}}, }, } - store, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, features, nil) + store, err := encryptionstorage.ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, nil) require.NoError(t, err) usageStats := &usagestats.UsageStatsMock{T: t} diff --git a/pkg/registry/apis/secret/encryption/manager/test_helpers.go b/pkg/registry/apis/secret/encryption/manager/test_helpers.go index 220e4289852..d8dfe9a0650 100644 --- a/pkg/registry/apis/secret/encryption/manager/test_helpers.go +++ b/pkg/registry/apis/secret/encryption/manager/test_helpers.go @@ -9,7 +9,6 @@ import ( "github.com/grafana/grafana/pkg/infra/usagestats" "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/cipher/service" osskmsproviders "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/kmsproviders" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/storage/secret/database" @@ -24,7 +23,6 @@ func setupTestService(tb testing.TB) *EncryptionManager { tracer := noop.NewTracerProvider().Tracer("test") database := database.ProvideDatabase(testDB, tracer) - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) defaultKey := "SdlklWklckeLS" cfg := &setting.Cfg{ SecretsManagement: setting.SecretsManagerSettings{ @@ -32,7 +30,7 @@ func setupTestService(tb testing.TB) *EncryptionManager { ConfiguredKMSProviders: map[string]map[string]string{"secret_key.v1": {"secret_key": defaultKey}}, }, } - store, err := encryptionstorage.ProvideDataKeyStorage(database, tracer, features, nil) + store, err := encryptionstorage.ProvideDataKeyStorage(database, tracer, nil) require.NoError(tb, err) usageStats := &usagestats.UsageStatsMock{T: tb} diff --git a/pkg/registry/apis/secret/register.go b/pkg/registry/apis/secret/register.go index 89ad9cd9f4e..60aa3896d50 100644 --- a/pkg/registry/apis/secret/register.go +++ b/pkg/registry/apis/secret/register.go @@ -19,15 +19,16 @@ func RegisterDependencies( secretDBMigrator contracts.SecretDBMigrator, accessControlService accesscontrol.Service, ) (*DependencyRegisterer, error) { - if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { - return nil, nil - } - // Permissions for requests in multi-tenant mode will come from HG. if err := registerAccessControlRoles(accessControlService); err != nil { return nil, fmt.Errorf("registering access control roles: %w", err) } + // TODO: Remove once the DB schema is more stable. + if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { + return nil, nil + } + // We shouldn't need to create the DB in HG, as that will use the MT api server. if cfg.StackID == "" { // Some DBs that claim to be MySQL/Postgres-compatible might not support table locking. diff --git a/pkg/registry/apis/secret/secretkeeper/secretkeeper_test.go b/pkg/registry/apis/secret/secretkeeper/secretkeeper_test.go index e3e288cf2f6..84baaf207b0 100644 --- a/pkg/registry/apis/secret/secretkeeper/secretkeeper_test.go +++ b/pkg/registry/apis/secret/secretkeeper/secretkeeper_test.go @@ -12,7 +12,6 @@ import ( osskmsproviders "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/kmsproviders" "github.com/grafana/grafana/pkg/registry/apis/secret/encryption/manager" "github.com/grafana/grafana/pkg/registry/apis/secret/secretkeeper/sqlkeeper" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/storage/secret/database" @@ -49,12 +48,11 @@ func setupTestService(t *testing.T, cfg *setting.Cfg) (*OSSKeeperService, error) testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) tracer := noop.NewTracerProvider().Tracer("test") database := database.ProvideDatabase(testDB, tracer) - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) - dataKeyStore, err := encryptionstorage.ProvideDataKeyStorage(database, tracer, features, nil) + dataKeyStore, err := encryptionstorage.ProvideDataKeyStorage(database, tracer, nil) require.NoError(t, err) - encValueStore, err := encryptionstorage.ProvideEncryptedValueStorage(database, tracer, features) + encValueStore, err := encryptionstorage.ProvideEncryptedValueStorage(database, tracer) require.NoError(t, err) usageStats := &usagestats.UsageStatsMock{T: t} diff --git a/pkg/registry/apis/secret/testutils/testutils.go b/pkg/registry/apis/secret/testutils/testutils.go index a0d547a52f4..e0afd0ab855 100644 --- a/pkg/registry/apis/secret/testutils/testutils.go +++ b/pkg/registry/apis/secret/testutils/testutils.go @@ -24,7 +24,6 @@ import ( "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" "github.com/grafana/grafana/pkg/services/accesscontrol" "github.com/grafana/grafana/pkg/services/accesscontrol/actest" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/storage/secret/database" @@ -64,12 +63,10 @@ func Setup(t *testing.T, opts ...func(*SetupConfig)) Sut { database := database.ProvideDatabase(testDB, tracer) - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) - - keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(database, tracer, features, nil) + keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(database, tracer, nil) require.NoError(t, err) - secureValueMetadataStorage, err := metadata.ProvideSecureValueMetadataStorage(database, tracer, features, nil) + secureValueMetadataStorage, err := metadata.ProvideSecureValueMetadataStorage(database, tracer, nil) require.NoError(t, err) // Initialize access client + access control @@ -86,7 +83,7 @@ func Setup(t *testing.T, opts ...func(*SetupConfig)) Sut { ConfiguredKMSProviders: map[string]map[string]string{"secret_key.v1": {"secret_key": defaultKey}}, }, } - store, err := encryptionstorage.ProvideDataKeyStorage(database, tracer, features, nil) + store, err := encryptionstorage.ProvideDataKeyStorage(database, tracer, nil) require.NoError(t, err) usageStats := &usagestats.UsageStatsMock{T: t} @@ -107,7 +104,7 @@ func Setup(t *testing.T, opts ...func(*SetupConfig)) Sut { require.NoError(t, err) // Initialize encrypted value storage with a fake db - encryptedValueStorage, err := encryptionstorage.ProvideEncryptedValueStorage(database, tracer, features) + encryptedValueStorage, err := encryptionstorage.ProvideEncryptedValueStorage(database, tracer) require.NoError(t, err) sqlKeeper := sqlkeeper.NewSQLKeeper(tracer, encryptionManager, encryptedValueStorage, nil) @@ -122,7 +119,7 @@ func Setup(t *testing.T, opts ...func(*SetupConfig)) Sut { decryptAuthorizer := decrypt.ProvideDecryptAuthorizer(tracer) - decryptStorage, err := metadata.ProvideDecryptStorage(features, tracer, keeperService, keeperMetadataStorage, secureValueMetadataStorage, decryptAuthorizer, nil) + decryptStorage, err := metadata.ProvideDecryptStorage(tracer, keeperService, keeperMetadataStorage, secureValueMetadataStorage, decryptAuthorizer, nil) require.NoError(t, err) decryptService := decrypt.ProvideDecryptService(decryptStorage) diff --git a/pkg/server/wire_gen.go b/pkg/server/wire_gen.go index cf5ca670c22..7aa73fabe62 100644 --- a/pkg/server/wire_gen.go +++ b/pkg/server/wire_gen.go @@ -738,19 +738,19 @@ func Initialize(cfg *setting.Cfg, opts Options, apiOpts api.ServerOptions) (*Ser factory := github.ProvideFactory() legacyMigrator := legacy.ProvideLegacyMigrator(sqlStore, provisioningServiceImpl, libraryPanelService, accessControl) databaseDatabase := database5.ProvideDatabase(sqlStore, tracer) - secureValueMetadataStorage, err := metadata.ProvideSecureValueMetadataStorage(databaseDatabase, tracer, featureToggles, registerer) + secureValueMetadataStorage, err := metadata.ProvideSecureValueMetadataStorage(databaseDatabase, tracer, registerer) if err != nil { return nil, err } - keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(databaseDatabase, tracer, featureToggles, registerer) + keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(databaseDatabase, tracer, registerer) if err != nil { return nil, err } - encryptedValueStorage, err := encryption.ProvideEncryptedValueStorage(databaseDatabase, tracer, featureToggles) + encryptedValueStorage, err := encryption.ProvideEncryptedValueStorage(databaseDatabase, tracer) if err != nil { return nil, err } - dataKeyStorage, err := encryption.ProvideDataKeyStorage(databaseDatabase, tracer, featureToggles, registerer) + dataKeyStorage, err := encryption.ProvideDataKeyStorage(databaseDatabase, tracer, registerer) if err != nil { return nil, err } @@ -772,7 +772,7 @@ func Initialize(cfg *setting.Cfg, opts Options, apiOpts api.ServerOptions) (*Ser } secureValueService := service12.ProvideSecureValueService(tracer, accessClient, databaseDatabase, secureValueMetadataStorage, keeperMetadataStorage, ossKeeperService) decryptAuthorizer := decrypt.ProvideDecryptAuthorizer(tracer) - decryptStorage, err := metadata.ProvideDecryptStorage(featureToggles, tracer, ossKeeperService, keeperMetadataStorage, secureValueMetadataStorage, decryptAuthorizer, registerer) + decryptStorage, err := metadata.ProvideDecryptStorage(tracer, ossKeeperService, keeperMetadataStorage, secureValueMetadataStorage, decryptAuthorizer, registerer) if err != nil { return nil, err } @@ -1287,19 +1287,19 @@ func InitializeForTest(t sqlutil.ITestDB, testingT interface { factory := github.ProvideFactory() legacyMigrator := legacy.ProvideLegacyMigrator(sqlStore, provisioningServiceImpl, libraryPanelService, accessControl) databaseDatabase := database5.ProvideDatabase(sqlStore, tracer) - secureValueMetadataStorage, err := metadata.ProvideSecureValueMetadataStorage(databaseDatabase, tracer, featureToggles, registerer) + secureValueMetadataStorage, err := metadata.ProvideSecureValueMetadataStorage(databaseDatabase, tracer, registerer) if err != nil { return nil, err } - keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(databaseDatabase, tracer, featureToggles, registerer) + keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(databaseDatabase, tracer, registerer) if err != nil { return nil, err } - encryptedValueStorage, err := encryption.ProvideEncryptedValueStorage(databaseDatabase, tracer, featureToggles) + encryptedValueStorage, err := encryption.ProvideEncryptedValueStorage(databaseDatabase, tracer) if err != nil { return nil, err } - dataKeyStorage, err := encryption.ProvideDataKeyStorage(databaseDatabase, tracer, featureToggles, registerer) + dataKeyStorage, err := encryption.ProvideDataKeyStorage(databaseDatabase, tracer, registerer) if err != nil { return nil, err } @@ -1321,7 +1321,7 @@ func InitializeForTest(t sqlutil.ITestDB, testingT interface { } secureValueService := service12.ProvideSecureValueService(tracer, accessClient, databaseDatabase, secureValueMetadataStorage, keeperMetadataStorage, ossKeeperService) decryptAuthorizer := decrypt.ProvideDecryptAuthorizer(tracer) - decryptStorage, err := metadata.ProvideDecryptStorage(featureToggles, tracer, ossKeeperService, keeperMetadataStorage, secureValueMetadataStorage, decryptAuthorizer, registerer) + decryptStorage, err := metadata.ProvideDecryptStorage(tracer, ossKeeperService, keeperMetadataStorage, secureValueMetadataStorage, decryptAuthorizer, registerer) if err != nil { return nil, err } diff --git a/pkg/storage/secret/encryption/data_key_store.go b/pkg/storage/secret/encryption/data_key_store.go index 08fc1875491..aa94333b629 100644 --- a/pkg/storage/secret/encryption/data_key_store.go +++ b/pkg/storage/secret/encryption/data_key_store.go @@ -5,13 +5,12 @@ import ( "fmt" "time" - "github.com/grafana/grafana/pkg/infra/log" - "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" - "github.com/grafana/grafana/pkg/services/featuremgmt" - "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" "github.com/prometheus/client_golang/prometheus" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" + + "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" + "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" ) // encryptionStoreImpl is the actual implementation of the data key storage. @@ -19,25 +18,18 @@ type encryptionStoreImpl struct { db contracts.Database dialect sqltemplate.Dialect tracer trace.Tracer - log log.Logger metrics *DataKeyMetrics } func ProvideDataKeyStorage( db contracts.Database, tracer trace.Tracer, - features featuremgmt.FeatureToggles, registerer prometheus.Registerer, ) (contracts.DataKeyStorage, error) { - if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { - return &encryptionStoreImpl{}, nil - } - store := &encryptionStoreImpl{ db: db, dialect: sqltemplate.DialectForDriver(db.DriverName()), tracer: tracer, - log: log.New("encryption.store"), metrics: NewDataKeyMetrics(registerer), } diff --git a/pkg/storage/secret/encryption/data_key_store_test.go b/pkg/storage/secret/encryption/data_key_store_test.go index 89b38ceac61..134be881231 100644 --- a/pkg/storage/secret/encryption/data_key_store_test.go +++ b/pkg/storage/secret/encryption/data_key_store_test.go @@ -10,7 +10,6 @@ import ( "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" "github.com/grafana/grafana/pkg/registry/apis/secret/encryption" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/storage/secret/database" "github.com/grafana/grafana/pkg/storage/secret/migrator" @@ -30,8 +29,7 @@ func TestEncryptionStoreImpl_DataKeyLifecycle(t *testing.T) { // Initialize data key storage with a fake db testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) tracer := noop.NewTracerProvider().Tracer("test") - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) - store, err := ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, features, nil) + store, err := ProvideDataKeyStorage(database.ProvideDatabase(testDB, tracer), tracer, nil) require.NoError(t, err) ctx := context.Background() diff --git a/pkg/storage/secret/encryption/encrypted_value_store.go b/pkg/storage/secret/encryption/encrypted_value_store.go index 44cb5dd1d07..cd298591b31 100644 --- a/pkg/storage/secret/encryption/encrypted_value_store.go +++ b/pkg/storage/secret/encryption/encrypted_value_store.go @@ -10,7 +10,6 @@ import ( "go.opentelemetry.io/otel/trace" "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/storage/unified/sql" "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" ) @@ -24,12 +23,7 @@ var ( func ProvideEncryptedValueStorage( db contracts.Database, tracer trace.Tracer, - features featuremgmt.FeatureToggles, ) (contracts.EncryptedValueStorage, error) { - if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { - return &encryptedValStorage{}, nil - } - return &encryptedValStorage{ db: db, dialect: sqltemplate.DialectForDriver(db.DriverName()), diff --git a/pkg/storage/secret/metadata/decrypt_store.go b/pkg/storage/secret/metadata/decrypt_store.go index 3b1b7973438..c1b402b2224 100644 --- a/pkg/storage/secret/metadata/decrypt_store.go +++ b/pkg/storage/secret/metadata/decrypt_store.go @@ -16,13 +16,10 @@ import ( secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/storage/secret/metadata/metrics" ) -// TODO: this should be a "decrypt" service rather, so that other services can wire and call it. func ProvideDecryptStorage( - features featuremgmt.FeatureToggles, tracer trace.Tracer, keeperService contracts.KeeperService, keeperMetadataStorage contracts.KeeperMetadataStorage, @@ -30,10 +27,6 @@ func ProvideDecryptStorage( decryptAuthorizer contracts.DecryptAuthorizer, reg prometheus.Registerer, ) (contracts.DecryptStorage, error) { - if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { - return &decryptStorage{}, nil - } - if decryptAuthorizer == nil { return nil, fmt.Errorf("a decrypt authorizer is required") } diff --git a/pkg/storage/secret/metadata/keeper_store.go b/pkg/storage/secret/metadata/keeper_store.go index 656ac404577..92707351ba7 100644 --- a/pkg/storage/secret/metadata/keeper_store.go +++ b/pkg/storage/secret/metadata/keeper_store.go @@ -5,16 +5,16 @@ import ( "fmt" "time" - secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" - "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" - "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" - "github.com/grafana/grafana/pkg/services/featuremgmt" - "github.com/grafana/grafana/pkg/storage/secret/metadata/metrics" - "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" "github.com/prometheus/client_golang/prometheus" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/trace" + + secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" + "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" + "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" + "github.com/grafana/grafana/pkg/storage/secret/metadata/metrics" + "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" ) // keeperMetadataStorage is the actual implementation of the keeper metadata storage. @@ -30,13 +30,8 @@ var _ contracts.KeeperMetadataStorage = (*keeperMetadataStorage)(nil) func ProvideKeeperMetadataStorage( db contracts.Database, tracer trace.Tracer, - features featuremgmt.FeatureToggles, reg prometheus.Registerer, ) (contracts.KeeperMetadataStorage, error) { - if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { - return &keeperMetadataStorage{}, nil - } - return &keeperMetadataStorage{ db: db, dialect: sqltemplate.DialectForDriver(db.DriverName()), diff --git a/pkg/storage/secret/metadata/keeper_store_test.go b/pkg/storage/secret/metadata/keeper_store_test.go index 4d61422b15f..f21fbdaa575 100644 --- a/pkg/storage/secret/metadata/keeper_store_test.go +++ b/pkg/storage/secret/metadata/keeper_store_test.go @@ -4,17 +4,17 @@ import ( "context" "testing" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/trace/noop" + "k8s.io/utils/ptr" + secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/storage/secret/database" "github.com/grafana/grafana/pkg/storage/secret/metadata" "github.com/grafana/grafana/pkg/storage/secret/migrator" - "github.com/stretchr/testify/require" - "go.opentelemetry.io/otel/trace/noop" - "k8s.io/utils/ptr" ) func Test_KeeperMetadataStorage_GetKeeperConfig(t *testing.T) { @@ -333,10 +333,9 @@ func initStorage(t *testing.T) contracts.KeeperMetadataStorage { testDB := sqlstore.NewTestStore(t, sqlstore.WithMigrator(migrator.New())) tracer := noop.NewTracerProvider().Tracer("test") db := database.ProvideDatabase(testDB, tracer) - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) // Initialize the keeper storage - keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(db, tracer, features, nil) + keeperMetadataStorage, err := metadata.ProvideKeeperMetadataStorage(db, tracer, nil) require.NoError(t, err) return keeperMetadataStorage } diff --git a/pkg/storage/secret/metadata/secure_value_store.go b/pkg/storage/secret/metadata/secure_value_store.go index 56af9617790..e2a7a6c0408 100644 --- a/pkg/storage/secret/metadata/secure_value_store.go +++ b/pkg/storage/secret/metadata/secure_value_store.go @@ -5,16 +5,16 @@ import ( "fmt" "time" - secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" - "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" - "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" - "github.com/grafana/grafana/pkg/services/featuremgmt" - "github.com/grafana/grafana/pkg/storage/secret/metadata/metrics" - "github.com/grafana/grafana/pkg/storage/unified/sql" - "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" "github.com/prometheus/client_golang/prometheus" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/trace" + + secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" + "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" + "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" + "github.com/grafana/grafana/pkg/storage/secret/metadata/metrics" + "github.com/grafana/grafana/pkg/storage/unified/sql" + "github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate" ) var _ contracts.SecureValueMetadataStorage = (*secureValueMetadataStorage)(nil) @@ -22,13 +22,8 @@ var _ contracts.SecureValueMetadataStorage = (*secureValueMetadataStorage)(nil) func ProvideSecureValueMetadataStorage( db contracts.Database, tracer trace.Tracer, - features featuremgmt.FeatureToggles, reg prometheus.Registerer, ) (contracts.SecureValueMetadataStorage, error) { - if !features.IsEnabledGlobally(featuremgmt.FlagSecretsManagementAppPlatform) { - return &secureValueMetadataStorage{}, nil - } - return &secureValueMetadataStorage{ db: db, dialect: sqltemplate.DialectForDriver(db.DriverName()), diff --git a/pkg/storage/secret/metadata/secure_value_store_test.go b/pkg/storage/secret/metadata/secure_value_store_test.go index 1668ddfa9a5..e0f77074e87 100644 --- a/pkg/storage/secret/metadata/secure_value_store_test.go +++ b/pkg/storage/secret/metadata/secure_value_store_test.go @@ -4,17 +4,17 @@ import ( "context" "testing" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/trace/noop" + "k8s.io/utils/ptr" + secretv1beta1 "github.com/grafana/grafana/apps/secret/pkg/apis/secret/v1beta1" "github.com/grafana/grafana/pkg/registry/apis/secret/contracts" "github.com/grafana/grafana/pkg/registry/apis/secret/xkube" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/storage/secret/database" "github.com/grafana/grafana/pkg/storage/secret/metadata" "github.com/grafana/grafana/pkg/storage/secret/migrator" - "github.com/stretchr/testify/require" - "go.opentelemetry.io/otel/trace/noop" - "k8s.io/utils/ptr" ) func createTestKeeper(t *testing.T, ctx context.Context, keeperStorage contracts.KeeperMetadataStorage, name, namespace string) string { @@ -42,14 +42,12 @@ func Test_SecureValueMetadataStorage_CreateAndRead(t *testing.T) { tracer := noop.NewTracerProvider().Tracer("test") db := database.ProvideDatabase(testDB, tracer) - features := featuremgmt.WithFeatures(featuremgmt.FlagSecretsManagementAppPlatform) - // Initialize the secure value storage - secureValueStorage, err := metadata.ProvideSecureValueMetadataStorage(db, tracer, features, nil) + secureValueStorage, err := metadata.ProvideSecureValueMetadataStorage(db, tracer, nil) require.NoError(t, err) // Initialize the keeper storage - keeperStorage, err := metadata.ProvideKeeperMetadataStorage(db, tracer, features, nil) + keeperStorage, err := metadata.ProvideKeeperMetadataStorage(db, tracer, nil) require.NoError(t, err) t.Run("create and read a secure value", func(t *testing.T) {