//go:build wireinject && oss // +build wireinject,oss // This file should contain wiresets which contain OSS-specific implementations. package server import ( "github.com/google/wire" "github.com/grafana/grafana/pkg/infra/metrics" "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/plugins/manager" "github.com/grafana/grafana/pkg/registry" "github.com/grafana/grafana/pkg/registry/backgroundsvcs" "github.com/grafana/grafana/pkg/registry/usagestatssvcs" "github.com/grafana/grafana/pkg/services/accesscontrol" "github.com/grafana/grafana/pkg/services/accesscontrol/acimpl" "github.com/grafana/grafana/pkg/services/accesscontrol/ossaccesscontrol" "github.com/grafana/grafana/pkg/services/anonymous" "github.com/grafana/grafana/pkg/services/anonymous/anonimpl" "github.com/grafana/grafana/pkg/services/apiserver/standalone" "github.com/grafana/grafana/pkg/services/auth" "github.com/grafana/grafana/pkg/services/auth/authimpl" "github.com/grafana/grafana/pkg/services/auth/idimpl" "github.com/grafana/grafana/pkg/services/caching" "github.com/grafana/grafana/pkg/services/datasources/guardian" "github.com/grafana/grafana/pkg/services/encryption" encryptionprovider "github.com/grafana/grafana/pkg/services/encryption/provider" "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/hooks" "github.com/grafana/grafana/pkg/services/kmsproviders" "github.com/grafana/grafana/pkg/services/kmsproviders/osskmsproviders" "github.com/grafana/grafana/pkg/services/ldap" "github.com/grafana/grafana/pkg/services/licensing" "github.com/grafana/grafana/pkg/services/login" "github.com/grafana/grafana/pkg/services/login/authinfoimpl" "github.com/grafana/grafana/pkg/services/pluginsintegration" "github.com/grafana/grafana/pkg/services/provisioning" "github.com/grafana/grafana/pkg/services/publicdashboards" publicdashboardsApi "github.com/grafana/grafana/pkg/services/publicdashboards/api" publicdashboardsService "github.com/grafana/grafana/pkg/services/publicdashboards/service" "github.com/grafana/grafana/pkg/services/searchusers" "github.com/grafana/grafana/pkg/services/searchusers/filters" "github.com/grafana/grafana/pkg/services/secrets" secretsMigrator "github.com/grafana/grafana/pkg/services/secrets/migrator" "github.com/grafana/grafana/pkg/services/sqlstore/migrations" "github.com/grafana/grafana/pkg/services/user" "github.com/grafana/grafana/pkg/services/validations" "github.com/grafana/grafana/pkg/setting" ) var wireExtsBasicSet = wire.NewSet( authimpl.ProvideUserAuthTokenService, wire.Bind(new(auth.UserTokenService), new(*authimpl.UserAuthTokenService)), wire.Bind(new(auth.UserTokenBackgroundService), new(*authimpl.UserAuthTokenService)), anonimpl.ProvideAnonymousDeviceService, wire.Bind(new(anonymous.Service), new(*anonimpl.AnonDeviceService)), licensing.ProvideService, wire.Bind(new(licensing.Licensing), new(*licensing.OSSLicensingService)), setting.ProvideProvider, wire.Bind(new(setting.Provider), new(*setting.OSSImpl)), acimpl.ProvideService, wire.Bind(new(accesscontrol.RoleRegistry), new(*acimpl.Service)), wire.Bind(new(plugins.RoleRegistry), new(*acimpl.Service)), wire.Bind(new(accesscontrol.Service), new(*acimpl.Service)), validations.ProvideValidator, wire.Bind(new(validations.PluginRequestValidator), new(*validations.OSSPluginRequestValidator)), provisioning.ProvideService, wire.Bind(new(provisioning.ProvisioningService), new(*provisioning.ProvisioningServiceImpl)), backgroundsvcs.ProvideBackgroundServiceRegistry, wire.Bind(new(registry.BackgroundServiceRegistry), new(*backgroundsvcs.BackgroundServiceRegistry)), migrations.ProvideOSSMigrations, wire.Bind(new(registry.DatabaseMigrator), new(*migrations.OSSMigrations)), authinfoimpl.ProvideOSSUserProtectionService, wire.Bind(new(login.UserProtectionService), new(*authinfoimpl.OSSUserProtectionImpl)), encryptionprovider.ProvideEncryptionProvider, wire.Bind(new(encryption.Provider), new(encryptionprovider.Provider)), filters.ProvideOSSSearchUserFilter, wire.Bind(new(user.SearchUserFilter), new(*filters.OSSSearchUserFilter)), searchusers.ProvideUsersService, wire.Bind(new(searchusers.Service), new(*searchusers.OSSService)), osskmsproviders.ProvideService, wire.Bind(new(kmsproviders.Service), new(osskmsproviders.Service)), ldap.ProvideGroupsService, wire.Bind(new(ldap.Groups), new(*ldap.OSSGroups)), guardian.ProvideGuardian, wire.Bind(new(guardian.DatasourceGuardianProvider), new(*guardian.OSSProvider)), usagestatssvcs.ProvideUsageStatsProvidersRegistry, wire.Bind(new(registry.UsageStatsProvidersRegistry), new(*usagestatssvcs.UsageStatsProvidersRegistry)), ossaccesscontrol.ProvideDatasourcePermissionsService, wire.Bind(new(accesscontrol.DatasourcePermissionsService), new(*ossaccesscontrol.DatasourcePermissionsService)), pluginsintegration.WireExtensionSet, publicdashboardsApi.ProvideMiddleware, wire.Bind(new(publicdashboards.Middleware), new(*publicdashboardsApi.Middleware)), publicdashboardsService.ProvideServiceWrapper, wire.Bind(new(publicdashboards.ServiceWrapper), new(*publicdashboardsService.PublicDashboardServiceWrapperImpl)), caching.ProvideCachingService, wire.Bind(new(caching.CachingService), new(*caching.OSSCachingService)), secretsMigrator.ProvideSecretsMigrator, wire.Bind(new(secrets.Migrator), new(*secretsMigrator.SecretsMigrator)), idimpl.ProvideLocalSigner, wire.Bind(new(auth.IDSigner), new(*idimpl.LocalSigner)), manager.ProvideInstaller, wire.Bind(new(plugins.Installer), new(*manager.PluginInstaller)), ) var wireExtsSet = wire.NewSet( wireSet, wireExtsBasicSet, ) var wireExtsCLISet = wire.NewSet( wireCLISet, wireExtsBasicSet, ) var wireExtsTestSet = wire.NewSet( wireTestSet, wireExtsBasicSet, ) // The wireExtsBaseCLISet is a simplified set of dependencies for the OSS CLI, // suitable for running background services and targeted dskit modules without // starting up the full Grafana server. var wireExtsBaseCLISet = wire.NewSet( NewModuleRunner, metrics.WireSet, featuremgmt.ProvideManagerService, featuremgmt.ProvideToggles, hooks.ProvideService, setting.ProvideProvider, wire.Bind(new(setting.Provider), new(*setting.OSSImpl)), licensing.ProvideService, wire.Bind(new(licensing.Licensing), new(*licensing.OSSLicensingService)), ) // wireModuleServerSet is a wire set for the ModuleServer. var wireExtsModuleServerSet = wire.NewSet( NewModule, wireExtsBaseCLISet, ) var wireExtsStandaloneAPIServerSet = wire.NewSet( standalone.GetDummyAPIFactory, )