@grafana/ui
Version:
Grafana Components Library
127 lines (122 loc) • 5.59 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var i18n = require('@grafana/i18n');
var FormField = require('../FormField/FormField.cjs');
var Icon = require('../Icon/Icon.cjs');
var Box = require('../Layout/Box/Box.cjs');
var Stack = require('../Layout/Stack/Stack.cjs');
var Tooltip = require('../Tooltip/Tooltip.cjs');
var CertificationKey = require('./CertificationKey.cjs');
"use strict";
const TLSAuthSettings = ({ dataSourceConfig, onChange }) => {
const hasTLSCACert = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsCACert;
const hasTLSClientCert = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsClientCert;
const hasTLSClientKey = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsClientKey;
const hasServerName = dataSourceConfig.jsonData && dataSourceConfig.jsonData.serverName;
const onResetClickFactory = (field) => (event) => {
event.preventDefault();
const newSecureJsonFields = { ...dataSourceConfig.secureJsonFields };
newSecureJsonFields[field] = false;
onChange({
...dataSourceConfig,
secureJsonFields: newSecureJsonFields
});
};
const onCertificateChangeFactory = (field) => (event) => {
const newSecureJsonData = { ...dataSourceConfig.secureJsonData };
newSecureJsonData[field] = event.currentTarget.value;
onChange({
...dataSourceConfig,
secureJsonData: newSecureJsonData
});
};
const onServerNameLabelChange = (event) => {
const newJsonData = {
...dataSourceConfig.jsonData,
serverName: event.currentTarget.value
};
onChange({
...dataSourceConfig,
jsonData: newJsonData
});
};
const certificateBeginsWith = "-----BEGIN CERTIFICATE-----";
const privateKeyBeginsWith = "-----BEGIN RSA PRIVATE KEY-----";
return /* @__PURE__ */ jsxRuntime.jsxs(Box.Box, { marginBottom: 5, children: [
/* @__PURE__ */ jsxRuntime.jsx(Box.Box, { marginBottom: 0.5, position: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs(Stack.Stack, { direction: "row", alignItems: "baseline", children: [
/* @__PURE__ */ jsxRuntime.jsx("h6", { children: /* @__PURE__ */ jsxRuntime.jsx(i18n.Trans, { i18nKey: "grafana-ui.data-source-settings.tls-heading", children: "TLS/SSL Auth Details" }) }),
/* @__PURE__ */ jsxRuntime.jsx(
Tooltip.Tooltip,
{
placement: "right-end",
content: i18n.t(
"grafana-ui.data-source-settings.tls-tooltip",
"TLS/SSL Certs are encrypted and stored in the Grafana database."
),
theme: "info",
children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: "info-circle", size: "xs", style: { marginLeft: "10px" } })
}
)
] }) }),
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
dataSourceConfig.jsonData.tlsAuthWithCACert && /* @__PURE__ */ jsxRuntime.jsx(
CertificationKey.CertificationKey,
{
hasCert: !!hasTLSCACert,
onChange: onCertificateChangeFactory("tlsCACert"),
placeholder: i18n.t(
"grafana-ui.data-source-settings.tls-certification-placeholder",
"Begins with {{certificateBeginsWith}}",
{ certificateBeginsWith }
),
label: i18n.t("grafana-ui.data-source-settings.tls-certification-label", "CA Cert"),
onClick: onResetClickFactory("tlsCACert")
}
),
dataSourceConfig.jsonData.tlsAuth && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
/* @__PURE__ */ jsxRuntime.jsx(Box.Box, { marginBottom: 0.5, position: "relative", children: /* @__PURE__ */ jsxRuntime.jsx(Stack.Stack, { direction: "row", alignItems: "baseline", children: /* @__PURE__ */ jsxRuntime.jsx(
FormField.FormField,
{
label: i18n.t("grafana-ui.data-source-settings.tls-server-name-label", "ServerName"),
labelWidth: 7,
inputWidth: 30,
placeholder: "domain.example.com",
value: hasServerName && dataSourceConfig.jsonData.serverName,
onChange: onServerNameLabelChange
}
) }) }),
/* @__PURE__ */ jsxRuntime.jsx(
CertificationKey.CertificationKey,
{
hasCert: !!hasTLSClientCert,
label: i18n.t("grafana-ui.data-source-settings.tls-client-certification-label", "Client Cert"),
onChange: onCertificateChangeFactory("tlsClientCert"),
placeholder: i18n.t(
"grafana-ui.data-source-settings.tls-certification-placeholder",
"Begins with {{certificateBeginsWith}}",
{ certificateBeginsWith }
),
onClick: onResetClickFactory("tlsClientCert")
}
),
/* @__PURE__ */ jsxRuntime.jsx(
CertificationKey.CertificationKey,
{
hasCert: !!hasTLSClientKey,
label: i18n.t("grafana-ui.data-source-settings.tls-client-key-label", "Client Key"),
placeholder: i18n.t(
"grafana-ui.data-source-settings.tls-client-key-placeholder",
"Begins with {{privateKeyBeginsWith}}",
{ privateKeyBeginsWith }
),
onChange: onCertificateChangeFactory("tlsClientKey"),
onClick: onResetClickFactory("tlsClientKey")
}
)
] })
] })
] });
};
exports.TLSAuthSettings = TLSAuthSettings;
//# sourceMappingURL=TLSAuthSettings.cjs.map