UNPKG

@grafana/ui

Version:
127 lines (122 loc) 5.59 kB
'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