@grafana/aws-sdk 0.8.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/ConnectionConfig.js +137 -44
- package/dist/esm/components/ConnectionConfig.js.map +1 -1
- package/dist/esm/regions.js +6 -0
- package/dist/esm/regions.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +142 -43
- package/dist/index.js.map +1 -1
- package/package.json +27 -27
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useMemo, useEffect } from 'react';
|
|
2
|
-
import { Field, Select, Input, ButtonGroup, ToolbarButton, Collapse } from '@grafana/ui';
|
|
2
|
+
import { Field, Select, Input, ButtonGroup, ToolbarButton, Text, TextLink, Collapse, Space } from '@grafana/ui';
|
|
3
3
|
import { onUpdateDatasourceJsonDataOptionSelect, onUpdateDatasourceJsonDataOption, onUpdateDatasourceResetOption, onUpdateDatasourceSecureJsonDataOption } from '@grafana/data';
|
|
4
4
|
import { config } from '@grafana/runtime';
|
|
5
5
|
import { standardRegions } from '../regions.js';
|
|
@@ -14,12 +14,13 @@ const DS_TYPES_THAT_SUPPORT_TEMP_CREDS = [
|
|
|
14
14
|
"grafana-athena-datasource",
|
|
15
15
|
"grafana-amazonprometheus-datasource"
|
|
16
16
|
];
|
|
17
|
+
const RFC_2396_WARNING = 'This functionality should only be used with legacy web sites. RFC 2396 warns that interpreting Userinfo this way "is NOT RECOMMENDED, because the passing of authentication information in clear text (such as URI) has proven to be a security risk in almost every case where it has been used."';
|
|
17
18
|
const toOption = (value) => ({ value, label: value });
|
|
18
19
|
const isAwsAuthType = (value) => {
|
|
19
20
|
return typeof value === "string" && awsAuthProviderOptions.some((opt) => opt.value === value);
|
|
20
21
|
};
|
|
21
22
|
const ConnectionConfig = (props) => {
|
|
22
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
23
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
23
24
|
const [isARNInstructionsOpen, setIsARNInstructionsOpen] = useState(false);
|
|
24
25
|
const [regions, setRegions] = useState((props.standardRegions || standardRegions).map(toOption));
|
|
25
26
|
const {
|
|
@@ -28,31 +29,40 @@ const ConnectionConfig = (props) => {
|
|
|
28
29
|
skipHeader = false,
|
|
29
30
|
skipEndpoint = false,
|
|
30
31
|
options,
|
|
31
|
-
hideAssumeRoleArn = false
|
|
32
|
+
hideAssumeRoleArn = false,
|
|
33
|
+
showHttpProxySettings = false
|
|
32
34
|
} = props;
|
|
33
35
|
let profile = options.jsonData.profile;
|
|
34
36
|
if (profile === void 0) {
|
|
35
37
|
profile = options.database;
|
|
36
38
|
}
|
|
37
39
|
const tempCredsFeatureEnabled = config.featureToggles.awsDatasourcesTempCredentials && DS_TYPES_THAT_SUPPORT_TEMP_CREDS.includes(options.type);
|
|
38
|
-
const
|
|
40
|
+
const httpProxySettingEnabled = showHttpProxySettings && ((_a = config.awsPerDatasourceHTTPProxyEnabled) != null ? _a : false);
|
|
41
|
+
const awsAssumeRoleEnabled = (_b = config.awsAssumeRoleEnabled) != null ? _b : true;
|
|
39
42
|
const awsAllowedAuthProviders = useMemo(
|
|
40
43
|
() => config.awsAllowedAuthProviders.filter((provider) => provider === AwsAuthType.GrafanaAssumeRole ? tempCredsFeatureEnabled : true).filter(isAwsAuthType),
|
|
41
44
|
[tempCredsFeatureEnabled]
|
|
42
45
|
);
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
+
const externalId = useMemo(() => {
|
|
47
|
+
if (tempCredsFeatureEnabled && options.jsonData.authType === AwsAuthType.GrafanaAssumeRole) {
|
|
48
|
+
if (config.namespace.startsWith("stacks-")) {
|
|
49
|
+
return config.namespace.substring(config.namespace.indexOf("-") + 1);
|
|
50
|
+
}
|
|
46
51
|
}
|
|
47
|
-
|
|
52
|
+
return props.externalId;
|
|
53
|
+
}, [tempCredsFeatureEnabled, options.jsonData.authType, props.externalId]);
|
|
48
54
|
const currentProvider = awsAuthProviderOptions.find((p) => p.value === options.jsonData.authType);
|
|
49
55
|
useEffect(() => {
|
|
50
56
|
if (!currentProvider && awsAllowedAuthProviders.length) {
|
|
57
|
+
let defaultAuthType = awsAllowedAuthProviders[0];
|
|
58
|
+
if (awsAllowedAuthProviders.includes(AwsAuthType.GrafanaAssumeRole)) {
|
|
59
|
+
defaultAuthType = AwsAuthType.GrafanaAssumeRole;
|
|
60
|
+
}
|
|
51
61
|
onOptionsChange({
|
|
52
62
|
...options,
|
|
53
63
|
jsonData: {
|
|
54
64
|
...options.jsonData,
|
|
55
|
-
authType:
|
|
65
|
+
authType: defaultAuthType
|
|
56
66
|
}
|
|
57
67
|
});
|
|
58
68
|
}
|
|
@@ -100,7 +110,7 @@ const ConnectionConfig = (props) => {
|
|
|
100
110
|
onChange: onUpdateDatasourceJsonDataOption(props, "profile")
|
|
101
111
|
}
|
|
102
112
|
)
|
|
103
|
-
), options.jsonData.authType === "keys" && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Field, { label: "Access Key ID", htmlFor: "accessKeyId" }, ((
|
|
113
|
+
), options.jsonData.authType === "keys" && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Field, { label: "Access Key ID", htmlFor: "accessKeyId" }, ((_c = props.options.secureJsonFields) == null ? void 0 : _c.accessKey) ? /* @__PURE__ */ React.createElement(ButtonGroup, null, /* @__PURE__ */ React.createElement(Input, { disabled: true, placeholder: "Configured", id: "accessKeyId" }), /* @__PURE__ */ React.createElement(
|
|
104
114
|
ToolbarButton,
|
|
105
115
|
{
|
|
106
116
|
icon: "edit",
|
|
@@ -112,10 +122,10 @@ const ConnectionConfig = (props) => {
|
|
|
112
122
|
Input,
|
|
113
123
|
{
|
|
114
124
|
id: "accessKeyId",
|
|
115
|
-
value: (
|
|
125
|
+
value: (_e = (_d = options.secureJsonData) == null ? void 0 : _d.accessKey) != null ? _e : "",
|
|
116
126
|
onChange: onUpdateDatasourceSecureJsonDataOption(props, "accessKey")
|
|
117
127
|
}
|
|
118
|
-
)), /* @__PURE__ */ React.createElement(Field, { label: "Secret Access Key", htmlFor: "secretKey" }, ((
|
|
128
|
+
)), /* @__PURE__ */ React.createElement(Field, { label: "Secret Access Key", htmlFor: "secretKey" }, ((_f = props.options.secureJsonFields) == null ? void 0 : _f.secretKey) ? /* @__PURE__ */ React.createElement(ButtonGroup, null, /* @__PURE__ */ React.createElement(Input, { disabled: true, placeholder: "Configured" }), /* @__PURE__ */ React.createElement(
|
|
119
129
|
ToolbarButton,
|
|
120
130
|
{
|
|
121
131
|
id: "secretKey",
|
|
@@ -128,56 +138,139 @@ const ConnectionConfig = (props) => {
|
|
|
128
138
|
Input,
|
|
129
139
|
{
|
|
130
140
|
id: "secretKey",
|
|
131
|
-
value: (
|
|
141
|
+
value: (_h = (_g = options.secureJsonData) == null ? void 0 : _g.secretKey) != null ? _h : "",
|
|
132
142
|
onChange: onUpdateDatasourceSecureJsonDataOption(props, "secretKey")
|
|
133
143
|
}
|
|
134
|
-
)))), !hideAssumeRoleArn && /* @__PURE__ */ React.createElement(
|
|
135
|
-
|
|
144
|
+
)))), !hideAssumeRoleArn && /* @__PURE__ */ React.createElement(
|
|
145
|
+
ConfigSubSection,
|
|
136
146
|
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
147
|
+
title: "Assume Role",
|
|
148
|
+
description: options.jsonData.authType === AwsAuthType.GrafanaAssumeRole ? /* @__PURE__ */ React.createElement(Text, null, "Learn more about", " ", /* @__PURE__ */ React.createElement(
|
|
149
|
+
TextLink,
|
|
150
|
+
{
|
|
151
|
+
inline: true,
|
|
152
|
+
external: true,
|
|
153
|
+
variant: "bodySmall",
|
|
154
|
+
href: "https://grafana.com/docs/plugins/cloudwatch/latest/aws-authentication/#use-grafana-assume-role"
|
|
155
|
+
},
|
|
156
|
+
"Grafana Assume Role"
|
|
157
|
+
), ".") : null
|
|
141
158
|
},
|
|
142
|
-
|
|
143
|
-
|
|
159
|
+
options.jsonData.authType === AwsAuthType.GrafanaAssumeRole && /* @__PURE__ */ React.createElement("div", { className: assumeRoleInstructionsStyle }, /* @__PURE__ */ React.createElement(
|
|
160
|
+
Collapse,
|
|
144
161
|
{
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
162
|
+
label: "How to create an IAM role for grafana to assume:",
|
|
163
|
+
collapsible: true,
|
|
164
|
+
isOpen: isARNInstructionsOpen,
|
|
165
|
+
onToggle: () => setIsARNInstructionsOpen(!isARNInstructionsOpen)
|
|
148
166
|
},
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
167
|
+
/* @__PURE__ */ React.createElement("ol", null, /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("p", null, "1. Create a new IAM role in the AWS console, and select ", /* @__PURE__ */ React.createElement("code", null, "Another AWS account"), " as the", " ", /* @__PURE__ */ React.createElement("code", null, "Trusted entity"), ".")), /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("p", null, "2. Enter the account ID of the Grafana account that has permission to assume this role:", /* @__PURE__ */ React.createElement("code", null, " 008923505280 "), " and check the ", /* @__PURE__ */ React.createElement("code", null, "Require external ID"), " box.")), /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("p", null, "3. Enter the following external ID:", " ", /* @__PURE__ */ React.createElement("code", null, externalId || "External Id is currently unavailable"), " and click ", /* @__PURE__ */ React.createElement("code", null, "Next"), ".")), /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("p", null, "4. Add any required permissions you would like Grafana to be able to access on your behalf. For more details on our permissions please", " ", /* @__PURE__ */ React.createElement(
|
|
168
|
+
"a",
|
|
169
|
+
{
|
|
170
|
+
href: "https://grafana.com/docs/grafana/latest/datasources/aws-cloudwatch/",
|
|
171
|
+
target: "_blank",
|
|
172
|
+
rel: "noreferrer"
|
|
173
|
+
},
|
|
174
|
+
"read through our documentation"
|
|
175
|
+
), ".")), /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("p", null, "5. Give the role a name and description, and click ", /* @__PURE__ */ React.createElement("code", null, "Create role"), ".")), /* @__PURE__ */ React.createElement("li", null, /* @__PURE__ */ React.createElement("p", null, "6. Copy the ARN of the role you just created and paste it into the ", /* @__PURE__ */ React.createElement("code", null, "Assume Role ARN"), " ", "field below.")))
|
|
176
|
+
)),
|
|
177
|
+
awsAssumeRoleEnabled && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
178
|
+
Field,
|
|
179
|
+
{
|
|
180
|
+
htmlFor: "assumeRoleArn",
|
|
181
|
+
label: "Assume Role ARN",
|
|
182
|
+
description: "Optional. Specifying the ARN of a role will ensure that the\n selected authentication provider is used to assume the role rather than the\n credentials directly."
|
|
183
|
+
},
|
|
184
|
+
/* @__PURE__ */ React.createElement(
|
|
185
|
+
Input,
|
|
186
|
+
{
|
|
187
|
+
id: "assumeRoleArn",
|
|
188
|
+
placeholder: "arn:aws:iam:*",
|
|
189
|
+
value: options.jsonData.assumeRoleArn || "",
|
|
190
|
+
onChange: onUpdateDatasourceJsonDataOption(props, "assumeRoleArn")
|
|
191
|
+
}
|
|
192
|
+
)
|
|
193
|
+
), options.jsonData.authType !== AwsAuthType.GrafanaAssumeRole && /* @__PURE__ */ React.createElement(
|
|
194
|
+
Field,
|
|
195
|
+
{
|
|
196
|
+
htmlFor: "externalId",
|
|
197
|
+
label: "External ID",
|
|
198
|
+
description: "If you are assuming a role in another account, that has been created with an external ID, specify the external ID here."
|
|
199
|
+
},
|
|
200
|
+
/* @__PURE__ */ React.createElement(
|
|
201
|
+
Input,
|
|
202
|
+
{
|
|
203
|
+
id: "externalId",
|
|
204
|
+
placeholder: "External ID",
|
|
205
|
+
value: options.jsonData.externalId || "",
|
|
206
|
+
onChange: onUpdateDatasourceJsonDataOption(props, "externalId")
|
|
207
|
+
}
|
|
208
|
+
)
|
|
209
|
+
))
|
|
210
|
+
), httpProxySettingEnabled && /* @__PURE__ */ React.createElement(ConfigSubSection, { title: "Proxy Configuration" }, /* @__PURE__ */ React.createElement(
|
|
152
211
|
Field,
|
|
153
212
|
{
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
213
|
+
label: "Proxy Type",
|
|
214
|
+
description: "Specify the type of proxy to use. This should not be set if Secure Socks Proxy is enabled.",
|
|
215
|
+
htmlFor: "proxyType"
|
|
216
|
+
},
|
|
217
|
+
/* @__PURE__ */ React.createElement(
|
|
218
|
+
Select,
|
|
219
|
+
{
|
|
220
|
+
inputId: "proxyType",
|
|
221
|
+
value: options.jsonData.proxyType || "env",
|
|
222
|
+
options: [
|
|
223
|
+
{ label: "Environment (default)", value: "env" },
|
|
224
|
+
{ label: "None", value: "none" },
|
|
225
|
+
{ label: "URL", value: "url" }
|
|
226
|
+
],
|
|
227
|
+
onChange: onUpdateDatasourceJsonDataOptionSelect(props, "proxyType")
|
|
228
|
+
}
|
|
229
|
+
)
|
|
230
|
+
), (options.jsonData.proxyType === "env" || !options.jsonData.proxyType) && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Text, { variant: "bodySmall", color: "secondary" }, "Proxy settings from environment variables will be used. Use ", /* @__PURE__ */ React.createElement("code", null, "HTTP_PROXY"), " &", " ", /* @__PURE__ */ React.createElement("code", null, "HTTPS_PROXY"), " environment variables. This will be skipped if no environment variables found."), /* @__PURE__ */ React.createElement(Space, { v: 2 })), options.jsonData.proxyType === "url" && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
231
|
+
Field,
|
|
232
|
+
{
|
|
233
|
+
label: "Proxy URL",
|
|
234
|
+
description: "Proxy URL. Don't set the username or password here",
|
|
235
|
+
htmlFor: "proxyUrl"
|
|
236
|
+
},
|
|
237
|
+
/* @__PURE__ */ React.createElement(
|
|
238
|
+
Input,
|
|
239
|
+
{
|
|
240
|
+
id: "proxyUrl",
|
|
241
|
+
placeholder: "Example: https://localhost:3004",
|
|
242
|
+
value: options.jsonData.proxyUrl || "",
|
|
243
|
+
onChange: onUpdateDatasourceJsonDataOption(props, "proxyUrl")
|
|
244
|
+
}
|
|
245
|
+
)
|
|
246
|
+
), /* @__PURE__ */ React.createElement(
|
|
247
|
+
Field,
|
|
248
|
+
{
|
|
249
|
+
label: "Proxy Username",
|
|
250
|
+
description: `Optional: Proxy Username. ${RFC_2396_WARNING}`,
|
|
251
|
+
htmlFor: "proxyUsername"
|
|
157
252
|
},
|
|
158
253
|
/* @__PURE__ */ React.createElement(
|
|
159
254
|
Input,
|
|
160
255
|
{
|
|
161
|
-
id: "
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
onChange: onUpdateDatasourceJsonDataOption(props, "assumeRoleArn")
|
|
256
|
+
id: "proxyUsername",
|
|
257
|
+
value: options.jsonData.proxyUsername || "",
|
|
258
|
+
onChange: onUpdateDatasourceJsonDataOption(props, "proxyUsername")
|
|
165
259
|
}
|
|
166
260
|
)
|
|
167
|
-
),
|
|
261
|
+
), /* @__PURE__ */ React.createElement(
|
|
168
262
|
Field,
|
|
169
263
|
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
264
|
+
label: "Proxy Password",
|
|
265
|
+
description: `Optional: Proxy Password. ${RFC_2396_WARNING}`,
|
|
266
|
+
htmlFor: "proxyPassword"
|
|
173
267
|
},
|
|
174
268
|
/* @__PURE__ */ React.createElement(
|
|
175
269
|
Input,
|
|
176
270
|
{
|
|
177
|
-
id: "
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
onChange: onUpdateDatasourceJsonDataOption(props, "externalId")
|
|
271
|
+
id: "proxyPassword",
|
|
272
|
+
value: (_j = (_i = options.secureJsonData) == null ? void 0 : _i.proxyPassword) != null ? _j : "",
|
|
273
|
+
onChange: onUpdateDatasourceSecureJsonDataOption(props, "proxyPassword")
|
|
181
274
|
}
|
|
182
275
|
)
|
|
183
276
|
))), /* @__PURE__ */ React.createElement(ConfigSubSection, { title: "Additional Settings" }, !skipEndpoint && options.jsonData.authType !== AwsAuthType.GrafanaAssumeRole && /* @__PURE__ */ React.createElement(
|
|
@@ -191,7 +284,7 @@ const ConnectionConfig = (props) => {
|
|
|
191
284
|
Input,
|
|
192
285
|
{
|
|
193
286
|
id: "endpoint",
|
|
194
|
-
placeholder: (
|
|
287
|
+
placeholder: (_k = props.defaultEndpoint) != null ? _k : "https://{service}.{region}.amazonaws.com",
|
|
195
288
|
value: options.jsonData.endpoint || "",
|
|
196
289
|
onChange: onUpdateDatasourceJsonDataOption(props, "endpoint")
|
|
197
290
|
}
|
|
@@ -207,7 +300,7 @@ const ConnectionConfig = (props) => {
|
|
|
207
300
|
Select,
|
|
208
301
|
{
|
|
209
302
|
inputId: "defaultRegion",
|
|
210
|
-
value: (
|
|
303
|
+
value: (_l = regions.find((region) => region.value === options.jsonData.defaultRegion)) != null ? _l : options.jsonData.defaultRegion ? {
|
|
211
304
|
label: options.jsonData.defaultRegion,
|
|
212
305
|
value: options.jsonData.defaultRegion
|
|
213
306
|
} : void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionConfig.js","sources":["../../../src/components/ConnectionConfig.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from 'react';\nimport { Input, Select, ButtonGroup, ToolbarButton, Collapse, Field } from '@grafana/ui';\nimport {\n onUpdateDatasourceJsonDataOptionSelect,\n onUpdateDatasourceResetOption,\n onUpdateDatasourceJsonDataOption,\n onUpdateDatasourceSecureJsonDataOption,\n} from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { standardRegions } from '../regions';\nimport { AwsAuthType, ConnectionConfigProps } from '../types';\nimport { awsAuthProviderOptions } from '../providers';\nimport { assumeRoleInstructionsStyle } from './ConnectionConfig.styles';\nimport { ConfigSection, ConfigSubSection } from '@grafana/plugin-ui';\n\nexport const DEFAULT_LABEL_WIDTH = 28;\nconst DS_TYPES_THAT_SUPPORT_TEMP_CREDS = [\n 'cloudwatch',\n 'grafana-athena-datasource',\n 'grafana-amazonprometheus-datasource',\n];\nconst toOption = (value: string) => ({ value, label: value });\nconst isAwsAuthType = (value: any): value is AwsAuthType => {\n return typeof value === 'string' && awsAuthProviderOptions.some((opt) => opt.value === value);\n};\n\nexport const ConnectionConfig: FC<ConnectionConfigProps> = (props: ConnectionConfigProps) => {\n const [isARNInstructionsOpen, setIsARNInstructionsOpen] = useState(false);\n const [regions, setRegions] = useState((props.standardRegions || standardRegions).map(toOption));\n const {\n loadRegions,\n onOptionsChange,\n skipHeader = false,\n skipEndpoint = false,\n options,\n hideAssumeRoleArn = false,\n } = props;\n let profile = options.jsonData.profile;\n if (profile === undefined) {\n profile = options.database;\n }\n const tempCredsFeatureEnabled =\n config.featureToggles.awsDatasourcesTempCredentials && DS_TYPES_THAT_SUPPORT_TEMP_CREDS.includes(options.type);\n const awsAssumeRoleEnabled = config.awsAssumeRoleEnabled ?? true;\n const awsAllowedAuthProviders = useMemo(\n () =>\n config.awsAllowedAuthProviders\n .filter((provider) => (provider === AwsAuthType.GrafanaAssumeRole ? tempCredsFeatureEnabled : true))\n .filter(isAwsAuthType),\n [tempCredsFeatureEnabled]\n );\n if (tempCredsFeatureEnabled && options.jsonData.authType === AwsAuthType.GrafanaAssumeRole) {\n if (config.namespace.startsWith('stacks-')) {\n props.externalId = config.namespace.substring(config.namespace.indexOf('-') + 1);\n }\n }\n const currentProvider = awsAuthProviderOptions.find((p) => p.value === options.jsonData.authType);\n\n useEffect(() => {\n // Make sure a authType exists in the current model\n if (!currentProvider && awsAllowedAuthProviders.length) {\n onOptionsChange({\n ...options,\n jsonData: {\n ...options.jsonData,\n authType: awsAllowedAuthProviders[0],\n },\n });\n }\n }, [currentProvider, options, onOptionsChange, awsAllowedAuthProviders]);\n\n useEffect(() => {\n if (!loadRegions) {\n return;\n }\n\n loadRegions().then((regions) => setRegions(regions.map(toOption)));\n }, [loadRegions]);\n\n return (\n <div data-testid=\"connection-config\">\n <ConfigSection title={skipHeader ? '' : 'Connection Details'} data-testid=\"connection-config\">\n <ConfigSubSection title=\"Authentication\">\n <Field\n label=\"Authentication Provider\"\n description=\"Specify which AWS credentials chain to use.\"\n htmlFor=\"authProvider\"\n >\n <Select\n aria-label=\"Authentication Provider\"\n inputId=\"authProvider\"\n value={currentProvider}\n options={awsAuthProviderOptions.filter((opt) => awsAllowedAuthProviders.includes(opt.value!))}\n defaultValue={options.jsonData.authType}\n onChange={(option) => {\n onUpdateDatasourceJsonDataOptionSelect(props, 'authType')(option);\n }}\n menuShouldPortal={true}\n />\n </Field>\n {options.jsonData.authType === 'credentials' && (\n <Field\n label=\"Credentials Profile Name\"\n description=\"Credentials profile name, as specified in ~/.aws/credentials, leave blank for default.\"\n htmlFor=\"credentialsProfileName\"\n >\n <Input\n id=\"credentialsProfileName\"\n placeholder=\"default\"\n value={options.jsonData.profile}\n onChange={onUpdateDatasourceJsonDataOption(props, 'profile')}\n />\n </Field>\n )}\n {options.jsonData.authType === 'keys' && (\n <>\n <Field label=\"Access Key ID\" htmlFor=\"accessKeyId\">\n {props.options.secureJsonFields?.accessKey ? (\n <ButtonGroup>\n <Input disabled placeholder=\"Configured\" id=\"accessKeyId\" />\n <ToolbarButton\n icon=\"edit\"\n tooltip=\"Edit Access Key ID\"\n type=\"button\"\n onClick={onUpdateDatasourceResetOption(props as any, 'accessKey')}\n />\n </ButtonGroup>\n ) : (\n <Input\n id=\"accessKeyId\"\n value={options.secureJsonData?.accessKey ?? ''}\n onChange={onUpdateDatasourceSecureJsonDataOption(props, 'accessKey')}\n />\n )}\n </Field>\n\n <Field label=\"Secret Access Key\" htmlFor=\"secretKey\">\n {props.options.secureJsonFields?.secretKey ? (\n <ButtonGroup>\n <Input disabled placeholder=\"Configured\" />\n <ToolbarButton\n id=\"secretKey\"\n icon=\"edit\"\n type=\"button\"\n tooltip=\"Edit Secret Access Key\"\n onClick={onUpdateDatasourceResetOption(props as any, 'secretKey')}\n />\n </ButtonGroup>\n ) : (\n <Input\n id=\"secretKey\"\n value={options.secureJsonData?.secretKey ?? ''}\n onChange={onUpdateDatasourceSecureJsonDataOption(props, 'secretKey')}\n />\n )}\n </Field>\n </>\n )}\n </ConfigSubSection>\n\n {!hideAssumeRoleArn && (\n <ConfigSubSection title=\"Assume Role\">\n {options.jsonData.authType === AwsAuthType.GrafanaAssumeRole && (\n <div className={assumeRoleInstructionsStyle}>\n <Collapse\n label={'How to create an IAM role for grafana to assume:'}\n collapsible={true}\n isOpen={isARNInstructionsOpen}\n onToggle={() => setIsARNInstructionsOpen(!isARNInstructionsOpen)}\n >\n <ol>\n <li>\n <p>\n 1. Create a new IAM role in the AWS console, and select <code>Another AWS account</code> as the{' '}\n <code>Trusted entity</code>.\n </p>\n </li>\n <li>\n <p>\n 2. Enter the account ID of the Grafana account that has permission to assume this role:\n <code> 008923505280 </code> and check the <code>Require external ID</code> box.\n </p>\n </li>\n <li>\n <p>\n 3. Enter the following external ID:{' '}\n <code>{props.externalId || 'External Id is currently unavailable'}</code> and click{' '}\n <code>Next</code>.\n </p>\n </li>\n <li>\n <p>\n 4. Add any required permissions you would like Grafana to be able to access on your behalf. For\n more details on our permissions please{' '}\n <a\n href=\"https://grafana.com/docs/grafana/latest/datasources/aws-cloudwatch/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n read through our documentation\n </a>\n .\n </p>\n </li>\n <li>\n <p>\n 5. Give the role a name and description, and click <code>Create role</code>.\n </p>\n </li>\n <li>\n <p>\n 6. Copy the ARN of the role you just created and paste it into the <code>Assume Role ARN</code>{' '}\n field below.\n </p>\n </li>\n </ol>\n </Collapse>\n </div>\n )}\n {awsAssumeRoleEnabled && (\n <>\n <Field\n htmlFor=\"assumeRoleArn\"\n label=\"Assume Role ARN\"\n description=\"Optional. Specifying the ARN of a role will ensure that the\n selected authentication provider is used to assume the role rather than the\n credentials directly.\"\n >\n <Input\n id=\"assumeRoleArn\"\n placeholder=\"arn:aws:iam:*\"\n value={options.jsonData.assumeRoleArn || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'assumeRoleArn')}\n />\n </Field>\n {options.jsonData.authType !== AwsAuthType.GrafanaAssumeRole && (\n <Field\n htmlFor=\"externalId\"\n label=\"External ID\"\n description=\"If you are assuming a role in another account, that has been created with an external ID, specify the external ID here.\"\n >\n <Input\n id=\"externalId\"\n placeholder=\"External ID\"\n value={options.jsonData.externalId || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'externalId')}\n />\n </Field>\n )}\n </>\n )}\n </ConfigSubSection>\n )}\n <ConfigSubSection title=\"Additional Settings\">\n {!skipEndpoint && options.jsonData.authType !== AwsAuthType.GrafanaAssumeRole && (\n <Field\n label=\"Endpoint\"\n description=\"Optionally, specify a custom endpoint for the service\"\n htmlFor=\"endpoint\"\n >\n <Input\n id=\"endpoint\"\n placeholder={props.defaultEndpoint ?? 'https://{service}.{region}.amazonaws.com'}\n value={options.jsonData.endpoint || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'endpoint')}\n />\n </Field>\n )}\n\n <Field\n label=\"Default Region\"\n description=\"Specify the region, such as for US West (Oregon) use ` us-west-2 ` as the region.\"\n htmlFor=\"defaultRegion\"\n >\n <Select\n inputId=\"defaultRegion\"\n value={\n regions.find((region) => region.value === options.jsonData.defaultRegion) ??\n (options.jsonData.defaultRegion\n ? {\n label: options.jsonData.defaultRegion,\n value: options.jsonData.defaultRegion,\n }\n : undefined)\n }\n options={regions}\n defaultValue={options.jsonData.defaultRegion}\n allowCustomValue={true}\n onChange={onUpdateDatasourceJsonDataOptionSelect(props, 'defaultRegion')}\n formatCreateLabel={(r) => `Use region: ${r}`}\n menuShouldPortal={true}\n />\n </Field>\n </ConfigSubSection>\n {props.children}\n </ConfigSection>\n </div>\n );\n};\n"],"names":["regions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConnectionConfig.js","sources":["../../../src/components/ConnectionConfig.tsx"],"sourcesContent":["import React, { FC, useEffect, useMemo, useState } from 'react';\nimport { Input, Select, ButtonGroup, ToolbarButton, Text, TextLink, Collapse, Field, Space } from '@grafana/ui';\nimport {\n onUpdateDatasourceJsonDataOptionSelect,\n onUpdateDatasourceResetOption,\n onUpdateDatasourceJsonDataOption,\n onUpdateDatasourceSecureJsonDataOption,\n} from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { standardRegions } from '../regions';\nimport { AwsAuthType, ConnectionConfigProps } from '../types';\nimport { awsAuthProviderOptions } from '../providers';\nimport { assumeRoleInstructionsStyle } from './ConnectionConfig.styles';\nimport { ConfigSection, ConfigSubSection } from '@grafana/plugin-ui';\n\nexport const DEFAULT_LABEL_WIDTH = 28;\nconst DS_TYPES_THAT_SUPPORT_TEMP_CREDS = [\n 'cloudwatch',\n 'grafana-athena-datasource',\n 'grafana-amazonprometheus-datasource',\n];\nconst RFC_2396_WARNING =\n 'This functionality should only be used with legacy web sites. RFC 2396 warns that interpreting Userinfo this way \"is NOT RECOMMENDED, because the passing of authentication information in clear text (such as URI) has proven to be a security risk in almost every case where it has been used.\"';\nconst toOption = (value: string) => ({ value, label: value });\nconst isAwsAuthType = (value: any): value is AwsAuthType => {\n return typeof value === 'string' && awsAuthProviderOptions.some((opt) => opt.value === value);\n};\n\nexport const ConnectionConfig: FC<ConnectionConfigProps> = (props: ConnectionConfigProps) => {\n const [isARNInstructionsOpen, setIsARNInstructionsOpen] = useState(false);\n const [regions, setRegions] = useState((props.standardRegions || standardRegions).map(toOption));\n const {\n loadRegions,\n onOptionsChange,\n skipHeader = false,\n skipEndpoint = false,\n options,\n hideAssumeRoleArn = false,\n showHttpProxySettings = false,\n } = props;\n let profile = options.jsonData.profile;\n if (profile === undefined) {\n profile = options.database;\n }\n const tempCredsFeatureEnabled =\n config.featureToggles.awsDatasourcesTempCredentials && DS_TYPES_THAT_SUPPORT_TEMP_CREDS.includes(options.type);\n // @ts-ignore ignore feature toggle type error\n const httpProxySettingEnabled = showHttpProxySettings && (config.awsPerDatasourceHTTPProxyEnabled ?? false);\n const awsAssumeRoleEnabled = config.awsAssumeRoleEnabled ?? true;\n const awsAllowedAuthProviders = useMemo(\n () =>\n config.awsAllowedAuthProviders\n .filter((provider) => (provider === AwsAuthType.GrafanaAssumeRole ? tempCredsFeatureEnabled : true))\n .filter(isAwsAuthType),\n [tempCredsFeatureEnabled]\n );\n const externalId = useMemo(() => {\n if (tempCredsFeatureEnabled && options.jsonData.authType === AwsAuthType.GrafanaAssumeRole) {\n if (config.namespace.startsWith('stacks-')) {\n return config.namespace.substring(config.namespace.indexOf('-') + 1);\n }\n }\n return props.externalId;\n }, [tempCredsFeatureEnabled, options.jsonData.authType, props.externalId]);\n const currentProvider = awsAuthProviderOptions.find((p) => p.value === options.jsonData.authType);\n\n useEffect(() => {\n // Make sure a authType exists in the current model\n if (!currentProvider && awsAllowedAuthProviders.length) {\n let defaultAuthType = awsAllowedAuthProviders[0];\n if (awsAllowedAuthProviders.includes(AwsAuthType.GrafanaAssumeRole)) {\n defaultAuthType = AwsAuthType.GrafanaAssumeRole;\n }\n onOptionsChange({\n ...options,\n jsonData: {\n ...options.jsonData,\n authType: defaultAuthType,\n },\n });\n }\n }, [currentProvider, options, onOptionsChange, awsAllowedAuthProviders]);\n\n useEffect(() => {\n if (!loadRegions) {\n return;\n }\n\n loadRegions().then((regions) => setRegions(regions.map(toOption)));\n }, [loadRegions]);\n\n return (\n <div data-testid=\"connection-config\">\n <ConfigSection title={skipHeader ? '' : 'Connection Details'} data-testid=\"connection-config\">\n <ConfigSubSection title=\"Authentication\">\n <Field\n label=\"Authentication Provider\"\n description=\"Specify which AWS credentials chain to use.\"\n htmlFor=\"authProvider\"\n >\n <Select\n aria-label=\"Authentication Provider\"\n inputId=\"authProvider\"\n value={currentProvider}\n options={awsAuthProviderOptions.filter((opt) => awsAllowedAuthProviders.includes(opt.value!))}\n defaultValue={options.jsonData.authType}\n onChange={(option) => {\n onUpdateDatasourceJsonDataOptionSelect(props, 'authType')(option);\n }}\n menuShouldPortal={true}\n />\n </Field>\n {options.jsonData.authType === 'credentials' && (\n <Field\n label=\"Credentials Profile Name\"\n description=\"Credentials profile name, as specified in ~/.aws/credentials, leave blank for default.\"\n htmlFor=\"credentialsProfileName\"\n >\n <Input\n id=\"credentialsProfileName\"\n placeholder=\"default\"\n value={options.jsonData.profile}\n onChange={onUpdateDatasourceJsonDataOption(props, 'profile')}\n />\n </Field>\n )}\n {options.jsonData.authType === 'keys' && (\n <>\n <Field label=\"Access Key ID\" htmlFor=\"accessKeyId\">\n {props.options.secureJsonFields?.accessKey ? (\n <ButtonGroup>\n <Input disabled placeholder=\"Configured\" id=\"accessKeyId\" />\n <ToolbarButton\n icon=\"edit\"\n tooltip=\"Edit Access Key ID\"\n type=\"button\"\n onClick={onUpdateDatasourceResetOption(props as any, 'accessKey')}\n />\n </ButtonGroup>\n ) : (\n <Input\n id=\"accessKeyId\"\n value={options.secureJsonData?.accessKey ?? ''}\n onChange={onUpdateDatasourceSecureJsonDataOption(props, 'accessKey')}\n />\n )}\n </Field>\n\n <Field label=\"Secret Access Key\" htmlFor=\"secretKey\">\n {props.options.secureJsonFields?.secretKey ? (\n <ButtonGroup>\n <Input disabled placeholder=\"Configured\" />\n <ToolbarButton\n id=\"secretKey\"\n icon=\"edit\"\n type=\"button\"\n tooltip=\"Edit Secret Access Key\"\n onClick={onUpdateDatasourceResetOption(props as any, 'secretKey')}\n />\n </ButtonGroup>\n ) : (\n <Input\n id=\"secretKey\"\n value={options.secureJsonData?.secretKey ?? ''}\n onChange={onUpdateDatasourceSecureJsonDataOption(props, 'secretKey')}\n />\n )}\n </Field>\n </>\n )}\n </ConfigSubSection>\n\n {!hideAssumeRoleArn && (\n <ConfigSubSection\n title=\"Assume Role\"\n description={\n options.jsonData.authType === AwsAuthType.GrafanaAssumeRole ? (\n <Text>\n Learn more about{' '}\n <TextLink\n inline\n external\n variant=\"bodySmall\"\n href=\"https://grafana.com/docs/plugins/cloudwatch/latest/aws-authentication/#use-grafana-assume-role\"\n >\n Grafana Assume Role\n </TextLink>\n .\n </Text>\n ) : null\n }\n >\n {options.jsonData.authType === AwsAuthType.GrafanaAssumeRole && (\n <div className={assumeRoleInstructionsStyle}>\n <Collapse\n label={'How to create an IAM role for grafana to assume:'}\n collapsible={true}\n isOpen={isARNInstructionsOpen}\n onToggle={() => setIsARNInstructionsOpen(!isARNInstructionsOpen)}\n >\n <ol>\n <li>\n <p>\n 1. Create a new IAM role in the AWS console, and select <code>Another AWS account</code> as the{' '}\n <code>Trusted entity</code>.\n </p>\n </li>\n <li>\n <p>\n 2. Enter the account ID of the Grafana account that has permission to assume this role:\n <code> 008923505280 </code> and check the <code>Require external ID</code> box.\n </p>\n </li>\n <li>\n <p>\n 3. Enter the following external ID:{' '}\n <code>{externalId || 'External Id is currently unavailable'}</code> and click <code>Next</code>.\n </p>\n </li>\n <li>\n <p>\n 4. Add any required permissions you would like Grafana to be able to access on your behalf. For\n more details on our permissions please{' '}\n <a\n href=\"https://grafana.com/docs/grafana/latest/datasources/aws-cloudwatch/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n read through our documentation\n </a>\n .\n </p>\n </li>\n <li>\n <p>\n 5. Give the role a name and description, and click <code>Create role</code>.\n </p>\n </li>\n <li>\n <p>\n 6. Copy the ARN of the role you just created and paste it into the <code>Assume Role ARN</code>{' '}\n field below.\n </p>\n </li>\n </ol>\n </Collapse>\n </div>\n )}\n {awsAssumeRoleEnabled && (\n <>\n <Field\n htmlFor=\"assumeRoleArn\"\n label=\"Assume Role ARN\"\n description=\"Optional. Specifying the ARN of a role will ensure that the\n selected authentication provider is used to assume the role rather than the\n credentials directly.\"\n >\n <Input\n id=\"assumeRoleArn\"\n placeholder=\"arn:aws:iam:*\"\n value={options.jsonData.assumeRoleArn || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'assumeRoleArn')}\n />\n </Field>\n {options.jsonData.authType !== AwsAuthType.GrafanaAssumeRole && (\n <Field\n htmlFor=\"externalId\"\n label=\"External ID\"\n description=\"If you are assuming a role in another account, that has been created with an external ID, specify the external ID here.\"\n >\n <Input\n id=\"externalId\"\n placeholder=\"External ID\"\n value={options.jsonData.externalId || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'externalId')}\n />\n </Field>\n )}\n </>\n )}\n </ConfigSubSection>\n )}\n {httpProxySettingEnabled && (\n <ConfigSubSection title=\"Proxy Configuration\">\n <Field\n label=\"Proxy Type\"\n description=\"Specify the type of proxy to use. This should not be set if Secure Socks Proxy is enabled.\"\n htmlFor=\"proxyType\"\n >\n <Select\n inputId=\"proxyType\"\n value={options.jsonData.proxyType || 'env'}\n options={[\n { label: 'Environment (default)', value: 'env' },\n { label: 'None', value: 'none' },\n { label: 'URL', value: 'url' },\n ]}\n onChange={onUpdateDatasourceJsonDataOptionSelect(props, 'proxyType')}\n />\n </Field>\n {(options.jsonData.proxyType === 'env' || !options.jsonData.proxyType) && (\n <>\n <Text variant=\"bodySmall\" color=\"secondary\">\n Proxy settings from environment variables will be used. Use <code>HTTP_PROXY</code> &{' '}\n <code>HTTPS_PROXY</code> environment variables. This will be skipped if no environment variables\n found.\n </Text>\n <Space v={2} />\n </>\n )}\n {options.jsonData.proxyType === 'url' && (\n <>\n <Field\n label=\"Proxy URL\"\n description=\"Proxy URL. Don't set the username or password here\"\n htmlFor=\"proxyUrl\"\n >\n <Input\n id=\"proxyUrl\"\n placeholder=\"Example: https://localhost:3004\"\n value={options.jsonData.proxyUrl || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'proxyUrl')}\n />\n </Field>\n <Field\n label=\"Proxy Username\"\n description={`Optional: Proxy Username. ${RFC_2396_WARNING}`}\n htmlFor=\"proxyUsername\"\n >\n <Input\n id=\"proxyUsername\"\n value={options.jsonData.proxyUsername || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'proxyUsername')}\n />\n </Field>\n <Field\n label=\"Proxy Password\"\n description={`Optional: Proxy Password. ${RFC_2396_WARNING}`}\n htmlFor=\"proxyPassword\"\n >\n <Input\n id=\"proxyPassword\"\n value={options.secureJsonData?.proxyPassword ?? ''}\n onChange={onUpdateDatasourceSecureJsonDataOption(props, 'proxyPassword')}\n />\n </Field>\n </>\n )}\n </ConfigSubSection>\n )}\n <ConfigSubSection title=\"Additional Settings\">\n {!skipEndpoint && options.jsonData.authType !== AwsAuthType.GrafanaAssumeRole && (\n <Field\n label=\"Endpoint\"\n description=\"Optionally, specify a custom endpoint for the service\"\n htmlFor=\"endpoint\"\n >\n <Input\n id=\"endpoint\"\n placeholder={props.defaultEndpoint ?? 'https://{service}.{region}.amazonaws.com'}\n value={options.jsonData.endpoint || ''}\n onChange={onUpdateDatasourceJsonDataOption(props, 'endpoint')}\n />\n </Field>\n )}\n\n <Field\n label=\"Default Region\"\n description=\"Specify the region, such as for US West (Oregon) use ` us-west-2 ` as the region.\"\n htmlFor=\"defaultRegion\"\n >\n <Select\n inputId=\"defaultRegion\"\n value={\n regions.find((region) => region.value === options.jsonData.defaultRegion) ??\n (options.jsonData.defaultRegion\n ? {\n label: options.jsonData.defaultRegion,\n value: options.jsonData.defaultRegion,\n }\n : undefined)\n }\n options={regions}\n defaultValue={options.jsonData.defaultRegion}\n allowCustomValue={true}\n onChange={onUpdateDatasourceJsonDataOptionSelect(props, 'defaultRegion')}\n formatCreateLabel={(r) => `Use region: ${r}`}\n menuShouldPortal={true}\n />\n </Field>\n </ConfigSubSection>\n {props.children}\n </ConfigSection>\n </div>\n );\n};\n"],"names":["regions"],"mappings":"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"}
|
package/dist/esm/regions.js
CHANGED
|
@@ -12,6 +12,7 @@ const standardRegions = [
|
|
|
12
12
|
"ap-southeast-3",
|
|
13
13
|
"ap-southeast-4",
|
|
14
14
|
"ap-southeast-5",
|
|
15
|
+
"ap-southeast-6",
|
|
15
16
|
"ap-southeast-7",
|
|
16
17
|
"ca-central-1",
|
|
17
18
|
"ca-west-1",
|
|
@@ -19,6 +20,7 @@ const standardRegions = [
|
|
|
19
20
|
"cn-northwest-1",
|
|
20
21
|
"eu-central-1",
|
|
21
22
|
"eu-central-2",
|
|
23
|
+
"eu-isoe-west-1",
|
|
22
24
|
"eu-north-1",
|
|
23
25
|
"eu-south-1",
|
|
24
26
|
"eu-south-2",
|
|
@@ -35,7 +37,11 @@ const standardRegions = [
|
|
|
35
37
|
"us-gov-east-1",
|
|
36
38
|
"us-gov-west-1",
|
|
37
39
|
"us-iso-east-1",
|
|
40
|
+
"us-iso-west-1",
|
|
38
41
|
"us-isob-east-1",
|
|
42
|
+
"us-isob-west-1",
|
|
43
|
+
"us-isof-east-1",
|
|
44
|
+
"us-northeast-1",
|
|
39
45
|
"us-west-1",
|
|
40
46
|
"us-west-2"
|
|
41
47
|
];
|
package/dist/esm/regions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regions.js","sources":["../../src/regions.ts"],"sourcesContent":["export const standardRegions: string[] = [\n 'af-south-1',\n 'ap-east-1',\n 'ap-east-2',\n 'ap-northeast-1',\n 'ap-northeast-2',\n 'ap-northeast-3',\n 'ap-south-1',\n 'ap-south-2',\n 'ap-southeast-1',\n 'ap-southeast-2',\n 'ap-southeast-3',\n 'ap-southeast-4',\n 'ap-southeast-5',\n 'ap-southeast-7',\n 'ca-central-1',\n 'ca-west-1',\n 'cn-north-1',\n 'cn-northwest-1',\n 'eu-central-1',\n 'eu-central-2',\n 'eu-north-1',\n 'eu-south-1',\n 'eu-south-2',\n 'eu-west-1',\n 'eu-west-2',\n 'eu-west-3',\n 'il-central-1',\n 'me-central-1',\n 'me-south-1',\n 'mx-central-1',\n 'sa-east-1',\n 'us-east-1',\n 'us-east-2',\n 'us-gov-east-1',\n 'us-gov-west-1',\n 'us-iso-east-1',\n 'us-isob-east-1',\n 'us-west-1',\n 'us-west-2',\n];\n"],"names":[],"mappings":"AAAO,MAAM,eAAA,GAA4B;AAAA,EACvC,YAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"regions.js","sources":["../../src/regions.ts"],"sourcesContent":["export const standardRegions: string[] = [\n 'af-south-1',\n 'ap-east-1',\n 'ap-east-2',\n 'ap-northeast-1',\n 'ap-northeast-2',\n 'ap-northeast-3',\n 'ap-south-1',\n 'ap-south-2',\n 'ap-southeast-1',\n 'ap-southeast-2',\n 'ap-southeast-3',\n 'ap-southeast-4',\n 'ap-southeast-5',\n 'ap-southeast-6',\n 'ap-southeast-7',\n 'ca-central-1',\n 'ca-west-1',\n 'cn-north-1',\n 'cn-northwest-1',\n 'eu-central-1',\n 'eu-central-2',\n 'eu-isoe-west-1',\n 'eu-north-1',\n 'eu-south-1',\n 'eu-south-2',\n 'eu-west-1',\n 'eu-west-2',\n 'eu-west-3',\n 'il-central-1',\n 'me-central-1',\n 'me-south-1',\n 'mx-central-1',\n 'sa-east-1',\n 'us-east-1',\n 'us-east-2',\n 'us-gov-east-1',\n 'us-gov-west-1',\n 'us-iso-east-1',\n 'us-iso-west-1',\n 'us-isob-east-1',\n 'us-isob-west-1',\n 'us-isof-east-1',\n 'us-northeast-1',\n 'us-west-1',\n 'us-west-2',\n];\n"],"names":[],"mappings":"AAAO,MAAM,eAAA,GAA4B;AAAA,EACvC,YAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF;;;;"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":["import type { DataSourceJsonData, DataSourcePluginOptionsEditorProps, DataSourceSettings } from '@grafana/data';\n\nexport enum AwsAuthType {\n Keys = 'keys',\n Credentials = 'credentials',\n Default = 'default', // was 'arn',\n EC2IAMRole = 'ec2_iam_role',\n /**\n * @deprecated use default\n */\n ARN = 'arn',\n GrafanaAssumeRole = 'grafana_assume_role',\n}\n\nexport interface AwsAuthDataSourceJsonData extends DataSourceJsonData {\n authType?: AwsAuthType;\n assumeRoleArn?: string;\n externalId?: string;\n profile?: string; // Credentials profile name, as specified in ~/.aws/credentials\n defaultRegion?: string; // region if it is not defined by your credentials file\n endpoint?: string;\n}\n\nexport interface AwsAuthDataSourceSecureJsonData {\n accessKey?: string;\n secretKey?: string;\n sessionToken?: string;\n}\n\nexport type AwsAuthDataSourceSettings = DataSourceSettings<AwsAuthDataSourceJsonData, AwsAuthDataSourceSecureJsonData>;\n\nexport interface ConnectionConfigProps<\n J extends AwsAuthDataSourceJsonData = AwsAuthDataSourceJsonData,\n S = AwsAuthDataSourceSecureJsonData,\n> extends DataSourcePluginOptionsEditorProps<J, S> {\n standardRegions?: string[];\n loadRegions?: () => Promise<string[]>;\n defaultEndpoint?: string;\n skipHeader?: boolean;\n skipEndpoint?: boolean;\n children?: React.ReactNode;\n labelWidth?: number;\n inExperimentalAuthComponent?: boolean;\n externalId?: string;\n hideAssumeRoleArn?: boolean;\n}\n"],"names":["AwsAuthType"],"mappings":"AAEO,IAAK,WAAA,qBAAAA,YAAAA,KAAL;AACL,EAAAA,aAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,aAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,aAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,aAAA,YAAA,CAAA,GAAa,cAAA;AAIb,EAAAA,aAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,aAAA,mBAAA,CAAA,GAAoB,qBAAA;AATV,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":["import type { DataSourceJsonData, DataSourcePluginOptionsEditorProps, DataSourceSettings } from '@grafana/data';\n\nexport enum AwsAuthType {\n Keys = 'keys',\n Credentials = 'credentials',\n Default = 'default', // was 'arn',\n EC2IAMRole = 'ec2_iam_role',\n /**\n * @deprecated use default\n */\n ARN = 'arn',\n GrafanaAssumeRole = 'grafana_assume_role',\n}\n\nexport interface AwsAuthDataSourceJsonData extends DataSourceJsonData {\n authType?: AwsAuthType;\n assumeRoleArn?: string;\n externalId?: string;\n profile?: string; // Credentials profile name, as specified in ~/.aws/credentials\n defaultRegion?: string; // region if it is not defined by your credentials file\n endpoint?: string;\n proxyType?: 'none' | 'env' | 'url';\n proxyUrl?: string;\n proxyUsername?: string;\n}\n\nexport interface AwsAuthDataSourceSecureJsonData {\n accessKey?: string;\n secretKey?: string;\n proxyPassword?: string;\n sessionToken?: string;\n}\n\nexport type AwsAuthDataSourceSettings = DataSourceSettings<AwsAuthDataSourceJsonData, AwsAuthDataSourceSecureJsonData>;\n\nexport interface ConnectionConfigProps<\n J extends AwsAuthDataSourceJsonData = AwsAuthDataSourceJsonData,\n S = AwsAuthDataSourceSecureJsonData,\n> extends DataSourcePluginOptionsEditorProps<J, S> {\n standardRegions?: string[];\n loadRegions?: () => Promise<string[]>;\n defaultEndpoint?: string;\n skipHeader?: boolean;\n skipEndpoint?: boolean;\n children?: React.ReactNode;\n labelWidth?: number;\n inExperimentalAuthComponent?: boolean;\n externalId?: string;\n hideAssumeRoleArn?: boolean;\n showHttpProxySettings?: boolean;\n}\n"],"names":["AwsAuthType"],"mappings":"AAEO,IAAK,WAAA,qBAAAA,YAAAA,KAAL;AACL,EAAAA,aAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,aAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,aAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,aAAA,YAAA,CAAA,GAAa,cAAA;AAIb,EAAAA,aAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,aAAA,mBAAA,CAAA,GAAoB,qBAAA;AATV,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,10 +21,14 @@ interface AwsAuthDataSourceJsonData extends DataSourceJsonData {
|
|
|
21
21
|
profile?: string;
|
|
22
22
|
defaultRegion?: string;
|
|
23
23
|
endpoint?: string;
|
|
24
|
+
proxyType?: 'none' | 'env' | 'url';
|
|
25
|
+
proxyUrl?: string;
|
|
26
|
+
proxyUsername?: string;
|
|
24
27
|
}
|
|
25
28
|
interface AwsAuthDataSourceSecureJsonData {
|
|
26
29
|
accessKey?: string;
|
|
27
30
|
secretKey?: string;
|
|
31
|
+
proxyPassword?: string;
|
|
28
32
|
sessionToken?: string;
|
|
29
33
|
}
|
|
30
34
|
type AwsAuthDataSourceSettings = DataSourceSettings<AwsAuthDataSourceJsonData, AwsAuthDataSourceSecureJsonData>;
|
|
@@ -39,6 +43,7 @@ interface ConnectionConfigProps<J extends AwsAuthDataSourceJsonData = AwsAuthDat
|
|
|
39
43
|
inExperimentalAuthComponent?: boolean;
|
|
40
44
|
externalId?: string;
|
|
41
45
|
hideAssumeRoleArn?: boolean;
|
|
46
|
+
showHttpProxySettings?: boolean;
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
declare const DEFAULT_LABEL_WIDTH = 28;
|