datasources: querier: handle single-tenant instance config (#108469)

This commit is contained in:
Gábor Farkas
2025-07-28 11:40:26 +02:00
committed by GitHub
parent 15f291aa8e
commit 8d48dbce66
5 changed files with 52 additions and 28 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ var k8sNotFoundError error = &apierrors.StatusError{
}
// NewQueryClientForPluginClient creates a client that delegates to the internal plugins.Client stack
func NewQueryClientForPluginClient(p plugins.Client, ctx *plugincontext.Provider, accessControl accesscontrol.AccessControl) clientapi.QueryDataClient {
func newQueryClientForPluginClient(p plugins.Client, ctx *plugincontext.Provider, accessControl accesscontrol.AccessControl) clientapi.QueryDataClient {
return &pluginClient{
pluginClient: p,
pCtxProvider: ctx,
@@ -0,0 +1,44 @@
package client
import (
"context"
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
"github.com/grafana/grafana/pkg/plugins"
"github.com/grafana/grafana/pkg/registry/apis/query/clientapi"
"github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugincontext"
"github.com/grafana/grafana/pkg/setting"
)
type singleTenantClientSupplier struct {
client clientapi.QueryDataClient
features featuremgmt.FeatureToggles
cfg *setting.Cfg
}
func NewSingleTenantClientSupplier(cfg *setting.Cfg, features featuremgmt.FeatureToggles, p plugins.Client, ctxProv *plugincontext.Provider, accessControl accesscontrol.AccessControl) clientapi.DataSourceClientSupplier {
return &singleTenantClientSupplier{
cfg: cfg,
features: features,
client: newQueryClientForPluginClient(p, ctxProv, accessControl),
}
}
func (s *singleTenantClientSupplier) GetDataSourceClient(_ context.Context, _ data.DataSourceRef, _ map[string]string, _ clientapi.InstanceConfigurationSettings) (clientapi.QueryDataClient, error) {
return s.client, nil
}
func (s *singleTenantClientSupplier) GetInstanceConfigurationSettings(ctx context.Context) (clientapi.InstanceConfigurationSettings, error) {
return clientapi.InstanceConfigurationSettings{
StackID: 0,
FeatureToggles: s.features,
FullConfig: nil,
Options: nil,
SQLExpressionCellLimit: s.cfg.SQLExpressionCellLimit,
SQLExpressionOutputCellLimit: s.cfg.SQLExpressionOutputCellLimit,
SQLExpressionTimeout: s.cfg.SQLExpressionTimeout,
ExpressionsEnabled: s.cfg.ExpressionsEnabled,
}, nil
}