-
Notifications
You must be signed in to change notification settings - Fork 121
/
Copy pathdatasource_settings.go
40 lines (31 loc) · 1.3 KB
/
datasource_settings.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main
import (
"context"
"encoding/json"
"fmt"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/backend/instancemgmt"
)
// DatasourceSettings TODO Add Support custom headers
type DatasourceSettings struct {
Instance backend.DataSourceInstanceSettings
AddCorsHeader bool `json:"addCorsHeader"`
DefaultDatabase string `json:"defaultDatabase"`
UsePost bool `json:"usePOST"`
UseYandexCloudAuthorization bool `json:"useYandexCloudAuthorization"`
XHeaderKey string `json:"xHeaderKey,omitempty"`
XHeaderUser string `json:"xHeaderUser,omitempty"`
UseCompression bool `json:"useCompression,omitempty"`
CompressionType string `json:"compressionType,omitempty"`
TLSSkipVerify bool `json:"tlsSkipVerify"`
}
func NewDatasourceSettings(ctx context.Context, settings backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) {
var dsSettings = DatasourceSettings{}
err := json.Unmarshal(settings.JSONData, &dsSettings)
if err != nil {
return nil, fmt.Errorf("unable to parse settings json %s. Error: %w", settings.JSONData, err)
}
dsSettings.Instance = settings
return &dsSettings, nil
}
func (s *DatasourceSettings) Dispose() {}