| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package models
- import (
- "errors"
- "time"
- "github.com/grafana/grafana/pkg/setting"
- "github.com/grafana/grafana/pkg/util"
- )
- var (
- ErrPluginSettingNotFound = errors.New("Plugin setting not found")
- )
- type PluginSetting struct {
- Id int64
- PluginId string
- OrgId int64
- Enabled bool
- Pinned bool
- JsonData map[string]interface{}
- SecureJsonData SecureJsonData
- PluginVersion string
- Created time.Time
- Updated time.Time
- }
- type SecureJsonData map[string][]byte
- func (s SecureJsonData) Decrypt() map[string]string {
- decrypted := make(map[string]string)
- for key, data := range s {
- decrypted[key] = string(util.Decrypt(data, setting.SecretKey))
- }
- return decrypted
- }
- // ----------------------
- // COMMANDS
- // Also acts as api DTO
- type UpdatePluginSettingCmd struct {
- Enabled bool `json:"enabled"`
- Pinned bool `json:"pinned"`
- JsonData map[string]interface{} `json:"jsonData"`
- SecureJsonData map[string]string `json:"secureJsonData"`
- PluginVersion string `json:"version"`
- PluginId string `json:"-"`
- OrgId int64 `json:"-"`
- }
- // specific command, will only update version
- type UpdatePluginSettingVersionCmd struct {
- PluginVersion string
- PluginId string `json:"-"`
- OrgId int64 `json:"-"`
- }
- func (cmd *UpdatePluginSettingCmd) GetEncryptedJsonData() SecureJsonData {
- encrypted := make(SecureJsonData)
- for key, data := range cmd.SecureJsonData {
- encrypted[key] = util.Encrypt([]byte(data), setting.SecretKey)
- }
- return encrypted
- }
- // ---------------------
- // QUERIES
- type GetPluginSettingsQuery struct {
- OrgId int64
- Result []*PluginSettingInfoDTO
- }
- type PluginSettingInfoDTO struct {
- OrgId int64
- PluginId string
- Enabled bool
- Pinned bool
- PluginVersion string
- }
- type GetPluginSettingByIdQuery struct {
- PluginId string
- OrgId int64
- Result *PluginSetting
- }
|