Plugins: Update DefaultSignature function signature in PluginSource interface (#100519)

* Plugins CDN: Add support for signature type and signature org

* Fall-back to valid signature if the config is not supported

* Move CDN signature code to DefaultSignature

* fix tests
This commit is contained in:
Giuseppe Guerra
2025-02-19 12:19:45 +01:00
committed by GitHub
parent 8646961c3f
commit 011726c80f
5 changed files with 8 additions and 8 deletions

View File

@ -20,7 +20,7 @@ type Installer interface {
type PluginSource interface {
PluginClass(ctx context.Context) Class
PluginURIs(ctx context.Context) []string
DefaultSignature(ctx context.Context) (Signature, bool)
DefaultSignature(ctx context.Context, pluginID string) (Signature, bool)
}
type FileStore interface {

View File

@ -494,7 +494,7 @@ func (s *FakePluginSource) PluginURIs(ctx context.Context) []string {
return []string{}
}
func (s *FakePluginSource) DefaultSignature(ctx context.Context) (plugins.Signature, bool) {
func (s *FakePluginSource) DefaultSignature(ctx context.Context, _ string) (plugins.Signature, bool) {
if s.DefaultSignatureFunc != nil {
return s.DefaultSignatureFunc(ctx)
}

View File

@ -141,7 +141,7 @@ func (s *Signature) ReadPluginManifestFromFS(ctx context.Context, pfs plugins.FS
}
func (s *Signature) Calculate(ctx context.Context, src plugins.PluginSource, plugin plugins.FoundPlugin) (plugins.Signature, error) {
if defaultSignature, exists := src.DefaultSignature(ctx); exists {
if defaultSignature, exists := src.DefaultSignature(ctx, plugin.JSONData.ID); exists {
return defaultSignature, nil
}

View File

@ -30,7 +30,7 @@ func (s *LocalSource) PluginURIs(_ context.Context) []string {
return s.paths
}
func (s *LocalSource) DefaultSignature(_ context.Context) (plugins.Signature, bool) {
func (s *LocalSource) DefaultSignature(_ context.Context, _ string) (plugins.Signature, bool) {
switch s.class {
case plugins.ClassCore:
return plugins.Signature{

View File

@ -41,7 +41,7 @@ func TestSources_List(t *testing.T) {
filepath.Join(testdata, "app", "plugins", "datasource"),
filepath.Join(testdata, "app", "plugins", "panel"),
})
sig, exists := srcs[0].DefaultSignature(ctx)
sig, exists := srcs[0].DefaultSignature(ctx, "")
require.True(t, exists)
require.Equal(t, plugins.SignatureStatusInternal, sig.Status)
require.Equal(t, plugins.SignatureType(""), sig.Type)
@ -51,7 +51,7 @@ func TestSources_List(t *testing.T) {
require.Equal(t, srcs[1].PluginURIs(ctx), []string{
filepath.Join(testdata, "pluginRootWithDist", "datasource"),
})
sig, exists = srcs[1].DefaultSignature(ctx)
sig, exists = srcs[1].DefaultSignature(ctx, "")
require.False(t, exists)
require.Equal(t, plugins.Signature{}, sig)
@ -59,7 +59,7 @@ func TestSources_List(t *testing.T) {
require.Equal(t, srcs[2].PluginURIs(ctx), []string{
filepath.Join(testdata, "pluginRootWithDist", "dist"),
})
sig, exists = srcs[2].DefaultSignature(ctx)
sig, exists = srcs[2].DefaultSignature(ctx, "")
require.False(t, exists)
require.Equal(t, plugins.Signature{}, sig)
@ -67,7 +67,7 @@ func TestSources_List(t *testing.T) {
require.Equal(t, srcs[3].PluginURIs(ctx), []string{
filepath.Join(testdata, "pluginRootWithDist", "panel"),
})
sig, exists = srcs[3].DefaultSignature(ctx)
sig, exists = srcs[3].DefaultSignature(ctx, "")
require.False(t, exists)
require.Equal(t, plugins.Signature{}, sig)
})