mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Plugins: Pass hashes for SRI to frontend
* Add SRI hashes to frontendsettings DTOs
* Add docstring
* TestSriHashes
* Fix typo
* Changed SriHashes to ModuleHash
* update loader_test compareOpts
* update ModuleHash error message
* Add TestModuleHash/no_module.js
* Add omitEmpty to moduleHash
* Add ModuleHash to api/plugins/${pluginId}/settings
* moved ModuleHash field
* feat(plugins): add moduleHash to bootData and plugin types
* feat(plugins): if moduleHash is available apply it to systemjs importmap
* Calculate ModuleHash for CDN provisioned plugins
* Add ModuleHash tests for TestCalculate
* adjust test case name
* removed .envrc
* Fix signature verification failing for internal plugins
* fix tests
* Add pluginsFilesystemSriChecks feature togglemk
* renamed FilesystemSriChecksEnabled
* refactor(plugin_loader): prefer extending type declaration over ts-error
* added a couple more tests
* Removed unused features
* Removed unused argument from signature.DefaultCalculator call
* Removed unused argument from bootstrap.DefaultConstructFunc
* Moved ModuleHash to pluginassets service
* update docstring
* lint
* Removed cdn dependency from manifest.Signature
* add tests
* fix extra parameters in tests
* "fix" tests
* removed outdated test
* removed unused cdn dependency in signature.DefaultCalculator
* reduce diff
* Cache returned values
* Add support for deeply nested plugins (more than 1 hierarchy level)
* simplify cache usage
* refactor TestService_ModuleHash_Cache
* removed unused testdata
* re-generate feature toggles
* use version for module hash cache
* Renamed feature toggle to pluginsSriChecks and use it for both cdn and filesystem
* Removed app/types/system-integrity.d.ts
* re-generate feature toggles
* re-generate feature toggles
* feat(plugins): put systemjs integrity hash behind feature flag
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
74 lines
3.0 KiB
Go
74 lines
3.0 KiB
Go
package dtos
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/plugins"
|
|
"github.com/grafana/grafana/pkg/plugins/pfs"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
|
)
|
|
|
|
type PluginSetting struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Id string `json:"id"`
|
|
Enabled bool `json:"enabled"`
|
|
Pinned bool `json:"pinned"`
|
|
Module string `json:"module"`
|
|
BaseUrl string `json:"baseUrl"`
|
|
Info plugins.Info `json:"info"`
|
|
Includes []*plugins.Includes `json:"includes"`
|
|
Dependencies plugins.Dependencies `json:"dependencies"`
|
|
Extensions plugins.Extensions `json:"extensions"`
|
|
JsonData map[string]any `json:"jsonData"`
|
|
SecureJsonFields map[string]bool `json:"secureJsonFields"`
|
|
DefaultNavUrl string `json:"defaultNavUrl"`
|
|
|
|
LatestVersion string `json:"latestVersion"`
|
|
HasUpdate bool `json:"hasUpdate"`
|
|
State plugins.ReleaseState `json:"state"`
|
|
Signature plugins.SignatureStatus `json:"signature"`
|
|
SignatureType plugins.SignatureType `json:"signatureType"`
|
|
SignatureOrg string `json:"signatureOrg"`
|
|
AngularDetected bool `json:"angularDetected"`
|
|
LoadingStrategy plugins.LoadingStrategy `json:"loadingStrategy"`
|
|
ModuleHash string `json:"moduleHash,omitempty"`
|
|
}
|
|
|
|
type PluginListItem struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Id string `json:"id"`
|
|
Enabled bool `json:"enabled"`
|
|
Pinned bool `json:"pinned"`
|
|
Info plugins.Info `json:"info"`
|
|
Dependencies plugins.Dependencies `json:"dependencies"`
|
|
LatestVersion string `json:"latestVersion"`
|
|
HasUpdate bool `json:"hasUpdate"`
|
|
DefaultNavUrl string `json:"defaultNavUrl"`
|
|
Category string `json:"category"`
|
|
State plugins.ReleaseState `json:"state"`
|
|
Signature plugins.SignatureStatus `json:"signature"`
|
|
SignatureType plugins.SignatureType `json:"signatureType"`
|
|
SignatureOrg string `json:"signatureOrg"`
|
|
AccessControl accesscontrol.Metadata `json:"accessControl,omitempty"`
|
|
AngularDetected bool `json:"angularDetected"`
|
|
IAM *pfs.IAM `json:"iam,omitempty"`
|
|
}
|
|
|
|
type PluginList []PluginListItem
|
|
|
|
func (slice PluginList) Len() int {
|
|
return len(slice)
|
|
}
|
|
|
|
func (slice PluginList) Less(i, j int) bool {
|
|
return slice[i].Name < slice[j].Name
|
|
}
|
|
|
|
func (slice PluginList) Swap(i, j int) {
|
|
slice[i], slice[j] = slice[j], slice[i]
|
|
}
|
|
|
|
type InstallPluginCommand struct {
|
|
Version string `json:"version"`
|
|
}
|