* add uninstall flow * add install flow * small cleanup * smaller-footprint solution * cleanup + make bp start auto * fix interface contract * improve naming * accept version arg * ensure use of shared logger * make installer a field * add plugin decommissioning * add basic error checking * fix api docs * making initialization idempotent * add mutex * fix comment * fix test * add test for decommission * improve existing test * add more test coverage * more tests * change test func to use read lock * refactoring + adding test asserts * improve purging old install flow * improve dupe checking * change log name * skip over dupe scanned * make test assertion more flexible * remove trailing line * fix pointer receiver name * update comment * add context to API * add config flag * add base http api test + fix update functionality * simplify existing check * clean up test * refactor tests based on feedback * add single quotes to errs * use gcmp in tests + fix logo issue * make plugin list testing more flexible * address feedback * fix API test * fix linter * undo preallocate * Update docs/sources/administration/configuration.md Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com> * Update docs/sources/administration/configuration.md Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com> * Update docs/sources/administration/configuration.md Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com> * fix linting issue in test * add docs placeholder * update install notes * Update docs/sources/plugins/marketplace.md Co-authored-by: Marcus Olsson <marcus.olsson@hey.com> * update access wording * add more placeholder docs * add link to more info * PR feedback - improved errors, refactor, lock fix * improve err details * propagate plugin version errors * don't autostart renderer * add H1 * fix imports Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com> Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
73 lines
2.8 KiB
Go
73 lines
2.8 KiB
Go
package dtos
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
"github.com/grafana/grafana/pkg/plugins"
|
|
)
|
|
|
|
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.PluginInfo `json:"info"`
|
|
Includes []*plugins.PluginInclude `json:"includes"`
|
|
Dependencies *plugins.PluginDependencies `json:"dependencies"`
|
|
JsonData map[string]interface{} `json:"jsonData"`
|
|
DefaultNavUrl string `json:"defaultNavUrl"`
|
|
|
|
LatestVersion string `json:"latestVersion"`
|
|
HasUpdate bool `json:"hasUpdate"`
|
|
State plugins.PluginState `json:"state"`
|
|
Signature plugins.PluginSignatureStatus `json:"signature"`
|
|
SignatureType plugins.PluginSignatureType `json:"signatureType"`
|
|
SignatureOrg string `json:"signatureOrg"`
|
|
}
|
|
|
|
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.PluginInfo `json:"info"`
|
|
LatestVersion string `json:"latestVersion"`
|
|
HasUpdate bool `json:"hasUpdate"`
|
|
DefaultNavUrl string `json:"defaultNavUrl"`
|
|
Category string `json:"category"`
|
|
State plugins.PluginState `json:"state"`
|
|
Signature plugins.PluginSignatureStatus `json:"signature"`
|
|
SignatureType plugins.PluginSignatureType `json:"signatureType"`
|
|
SignatureOrg string `json:"signatureOrg"`
|
|
}
|
|
|
|
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 ImportDashboardCommand struct {
|
|
PluginId string `json:"pluginId"`
|
|
Path string `json:"path"`
|
|
Overwrite bool `json:"overwrite"`
|
|
Dashboard *simplejson.Json `json:"dashboard"`
|
|
Inputs []plugins.ImportDashboardInput `json:"inputs"`
|
|
FolderId int64 `json:"folderId"`
|
|
}
|
|
|
|
type InstallPluginCommand struct {
|
|
Version string `json:"version"`
|
|
}
|