plugin_settings.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package models
  2. import (
  3. "errors"
  4. "time"
  5. "github.com/grafana/grafana/pkg/components/securejsondata"
  6. )
  7. var (
  8. ErrPluginSettingNotFound = errors.New("Plugin setting not found")
  9. )
  10. type PluginSetting struct {
  11. Id int64
  12. PluginId string
  13. OrgId int64
  14. Enabled bool
  15. Pinned bool
  16. JsonData map[string]interface{}
  17. SecureJsonData securejsondata.SecureJsonData
  18. PluginVersion string
  19. Created time.Time
  20. Updated time.Time
  21. }
  22. // ----------------------
  23. // COMMANDS
  24. // Also acts as api DTO
  25. type UpdatePluginSettingCmd struct {
  26. Enabled bool `json:"enabled"`
  27. Pinned bool `json:"pinned"`
  28. JsonData map[string]interface{} `json:"jsonData"`
  29. SecureJsonData map[string]string `json:"secureJsonData"`
  30. PluginVersion string `json:"version"`
  31. PluginId string `json:"-"`
  32. OrgId int64 `json:"-"`
  33. }
  34. // specific command, will only update version
  35. type UpdatePluginSettingVersionCmd struct {
  36. PluginVersion string
  37. PluginId string `json:"-"`
  38. OrgId int64 `json:"-"`
  39. }
  40. func (cmd *UpdatePluginSettingCmd) GetEncryptedJsonData() securejsondata.SecureJsonData {
  41. return securejsondata.GetEncryptedJsonData(cmd.SecureJsonData)
  42. }
  43. // ---------------------
  44. // QUERIES
  45. type GetPluginSettingsQuery struct {
  46. OrgId int64
  47. Result []*PluginSettingInfoDTO
  48. }
  49. type PluginSettingInfoDTO struct {
  50. OrgId int64
  51. PluginId string
  52. Enabled bool
  53. Pinned bool
  54. PluginVersion string
  55. }
  56. type GetPluginSettingByIdQuery struct {
  57. PluginId string
  58. OrgId int64
  59. Result *PluginSetting
  60. }
  61. type PluginStateChangedEvent struct {
  62. PluginId string
  63. OrgId int64
  64. Enabled bool
  65. }