mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* wip: Implement kvstore for secrets
* wip: Refactor kvstore for secrets
* wip: Add format key function to secrets kvstore sql
* wip: Add migration for secrets kvstore
* Remove unused Key field from secrets kvstore
* Remove secret values from debug logs
* Integrate unified secrets with datasources
* Fix minor issues and tests for kvstore
* Create test service helper for secret store
* Remove encryption tests from datasources
* Move secret operations after datasources
* Fix datasource proxy tests
* Fix legacy data tests
* Add Name to all delete data source commands
* Implement decryption cache on sql secret store
* Fix minor issue with cache and tests
* Use secret type on secret store datasource operations
* Add comments to make create and update clear
* Rename itemFound variable to isFound
* Improve secret deletion and cache management
* Add base64 encoding to sql secret store
* Move secret retrieval to decrypted values function
* Refactor decrypt secure json data functions
* Fix expr tests
* Fix datasource tests
* Fix plugin proxy tests
* Fix query tests
* Fix metrics api tests
* Remove unused fake secrets service from query tests
* Add rename function to secret store
* Add check for error renaming secret
* Remove bus from tests to fix merge conflicts
* Add background secrets migration to datasources
* Get datasource secure json fields from secrets
* Move migration to secret store
* Revert "Move migration to secret store"
This reverts commit 7c3f872072.
* Add secret service to datasource service on tests
* Fix datasource tests
* Remove merge conflict on wire
* Add ctx to data source http transport on prometheus stats collector
* Add ctx to data source http transport on stats collector test
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
// Package adapters contains plugin SDK adapters.
|
|
package adapters
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
)
|
|
|
|
// ModelToInstanceSettings converts a models.DataSource to a backend.DataSourceInstanceSettings.
|
|
func ModelToInstanceSettings(ds *models.DataSource, decryptFn func(ds *models.DataSource) map[string]string,
|
|
) (*backend.DataSourceInstanceSettings, error) {
|
|
var jsonDataBytes json.RawMessage
|
|
if ds.JsonData != nil {
|
|
var err error
|
|
jsonDataBytes, err = ds.JsonData.MarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
return &backend.DataSourceInstanceSettings{
|
|
ID: ds.Id,
|
|
Name: ds.Name,
|
|
URL: ds.Url,
|
|
UID: ds.Uid,
|
|
Database: ds.Database,
|
|
User: ds.User,
|
|
BasicAuthEnabled: ds.BasicAuth,
|
|
BasicAuthUser: ds.BasicAuthUser,
|
|
JSONData: jsonDataBytes,
|
|
DecryptedSecureJSONData: decryptFn(ds),
|
|
Updated: ds.Updated,
|
|
}, nil
|
|
}
|
|
|
|
// BackendUserFromSignedInUser converts Grafana's SignedInUser model
|
|
// to the backend plugin's model.
|
|
func BackendUserFromSignedInUser(su *models.SignedInUser) *backend.User {
|
|
if su == nil {
|
|
return nil
|
|
}
|
|
return &backend.User{
|
|
Login: su.Login,
|
|
Name: su.Name,
|
|
Email: su.Email,
|
|
Role: string(su.OrgRole),
|
|
}
|
|
}
|