Skip to content

Commit 0b07a84

Browse files
authored
Add allowed cookies field in druid datasource settings (#171)
1 parent 10beaa2 commit 0b07a84

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

public/app/plugins/datasource/grafadruid-druid-datasource/ConfigEditor.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ export class ConfigEditor extends PureComponent<Props, State> {
5757

5858
onConnectionOptionsChange = (connectionSettingsOptions: ConnectionSettingsOptions) => {
5959
const { options, onOptionsChange } = this.props;
60-
const { settings, secretSettings, secretSettingsFields } = connectionSettingsOptions;
60+
const { settings, secretSettings, secretSettingsFields, jsonData: connectionJsonData } = connectionSettingsOptions;
6161
const connectionSettings = this.normalizeData(settings, true, 'connection');
62-
const jsonData = { ...options.jsonData, ...connectionSettings };
62+
const jsonData = { ...options.jsonData, ...connectionSettings, ...connectionJsonData };
6363
const connectionSecretSettings = this.normalizeData(secretSettings, true, 'connection');
6464
const secureJsonData = { ...options.secureJsonData, ...connectionSecretSettings };
6565
const connectionSecretSettingsFields = this.normalizeData(
@@ -85,6 +85,7 @@ export class ConfigEditor extends PureComponent<Props, State> {
8585
settings: this.normalizeData(jsonData, false, 'connection'),
8686
secretSettings: this.normalizeData(secureJsonData || {}, false, 'connection'),
8787
secretSettingsFields: this.normalizeData(secureJsonFields || {}, false, 'connection') as KeyValue<boolean>,
88+
jsonData: { keepCookies: (jsonData as ConnectionSettingsOptions['jsonData'])?.keepCookies || [] },
8889
};
8990
};
9091

public/app/plugins/datasource/grafadruid-druid-datasource/configuration/ConnectionSettings/DruidHttpSettings.tsx

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { css } from '@emotion/css';
22
import React, { ChangeEvent } from 'react';
33

4-
import { LegacyForms, FieldSet, Field, Switch } from '@grafana/ui';
4+
import { LegacyForms, FieldSet, Field, Switch, TagsInput, InlineFormLabel } from '@grafana/ui';
55

66
import { ConnectionSettingsProps } from './types';
77

@@ -92,6 +92,19 @@ export const DruidHttpSettings = (props: ConnectionSettingsProps) => {
9292
<Switch value={settings.skipTls} name="skipTls" onChange={onSettingChange} />
9393
</Field>
9494
)}
95+
<div className="gf-form">
96+
<InlineFormLabel
97+
width={11}
98+
tooltip="Grafana proxy deletes forwarded cookies by default. Specify cookies by name that should be forwarded to the data source."
99+
>
100+
Allowed cookies
101+
</InlineFormLabel>
102+
<TagsInput
103+
tags={options.jsonData?.keepCookies || []}
104+
width={40}
105+
onChange={(cookies) => onOptionsChange({ ...options, jsonData: { keepCookies: cookies } })}
106+
/>
107+
</div>
95108
</FieldSet>
96109
);
97110
};

public/app/plugins/datasource/grafadruid-druid-datasource/configuration/ConnectionSettings/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ export interface ConnectionSettingsOptions {
1616
settings: ConnectionSettings;
1717
secretSettings: ConnectionSecretSettings;
1818
secretSettingsFields: KeyValue<boolean>;
19+
jsonData?: {
20+
keepCookies?: string[];
21+
},
1922
}
2023

2124
export interface ConnectionSettingsProps {

0 commit comments

Comments
 (0)