@grafana/ui
Version:
Grafana Components Library
1 lines • 8.67 kB
Source Map (JSON)
{"version":3,"file":"TLSAuthSettings.mjs","sources":["../../../../src/components/DataSourceSettings/TLSAuthSettings.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport * as React from 'react';\n\nimport { KeyValue } from '@grafana/data';\nimport { t, Trans } from '@grafana/i18n';\n\nimport { FormField } from '../FormField/FormField';\nimport { Icon } from '../Icon/Icon';\nimport { Tooltip } from '../Tooltip/Tooltip';\n\nimport { CertificationKey } from './CertificationKey';\nimport { HttpSettingsBaseProps } from './types';\n\nexport const TLSAuthSettings = ({ dataSourceConfig, onChange }: HttpSettingsBaseProps) => {\n const hasTLSCACert = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsCACert;\n const hasTLSClientCert = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsClientCert;\n const hasTLSClientKey = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsClientKey;\n const hasServerName = dataSourceConfig.jsonData && dataSourceConfig.jsonData.serverName;\n\n const onResetClickFactory = (field: string) => (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n const newSecureJsonFields: KeyValue<boolean> = { ...dataSourceConfig.secureJsonFields };\n newSecureJsonFields[field] = false;\n onChange({\n ...dataSourceConfig,\n secureJsonFields: newSecureJsonFields,\n });\n };\n\n const onCertificateChangeFactory = (field: string) => (event: React.SyntheticEvent<HTMLTextAreaElement>) => {\n const newSecureJsonData = { ...dataSourceConfig.secureJsonData };\n newSecureJsonData[field] = event.currentTarget.value;\n\n onChange({\n ...dataSourceConfig,\n secureJsonData: newSecureJsonData,\n });\n };\n\n const onServerNameLabelChange = (event: React.SyntheticEvent<HTMLInputElement>) => {\n const newJsonData = {\n ...dataSourceConfig.jsonData,\n serverName: event.currentTarget.value,\n };\n\n onChange({\n ...dataSourceConfig,\n jsonData: newJsonData,\n });\n };\n\n const certificateBeginsWith = '-----BEGIN CERTIFICATE-----';\n const privateKeyBeginsWith = '-----BEGIN RSA PRIVATE KEY-----';\n\n return (\n <div className=\"gf-form-group\">\n <div\n className={cx(\n 'gf-form',\n css({\n alignItems: 'baseline',\n })\n )}\n >\n <h6>\n <Trans i18nKey=\"grafana-ui.data-source-settings.tls-heading\">TLS/SSL Auth Details</Trans>\n </h6>\n <Tooltip\n placement=\"right-end\"\n content={t(\n 'grafana-ui.data-source-settings.tls-tooltip',\n 'TLS/SSL Certs are encrypted and stored in the Grafana database.'\n )}\n theme=\"info\"\n >\n <Icon name=\"info-circle\" size=\"xs\" style={{ marginLeft: '10px' }} />\n </Tooltip>\n </div>\n <div>\n {dataSourceConfig.jsonData.tlsAuthWithCACert && (\n <CertificationKey\n hasCert={!!hasTLSCACert}\n onChange={onCertificateChangeFactory('tlsCACert')}\n placeholder={t(\n 'grafana-ui.data-source-settings.tls-certification-placeholder',\n 'Begins with {{certificateBeginsWith}}',\n { certificateBeginsWith }\n )}\n label={t('grafana-ui.data-source-settings.tls-certification-label', 'CA Cert')}\n onClick={onResetClickFactory('tlsCACert')}\n />\n )}\n\n {dataSourceConfig.jsonData.tlsAuth && (\n <>\n <div className=\"gf-form\">\n <FormField\n label={t('grafana-ui.data-source-settings.tls-server-name-label', 'ServerName')}\n labelWidth={7}\n inputWidth={30}\n // eslint-disable-next-line @grafana/i18n/no-untranslated-strings\n placeholder=\"domain.example.com\"\n value={hasServerName && dataSourceConfig.jsonData.serverName}\n onChange={onServerNameLabelChange}\n />\n </div>\n <CertificationKey\n hasCert={!!hasTLSClientCert}\n label={t('grafana-ui.data-source-settings.tls-client-certification-label', 'Client Cert')}\n onChange={onCertificateChangeFactory('tlsClientCert')}\n placeholder={t(\n 'grafana-ui.data-source-settings.tls-certification-placeholder',\n 'Begins with {{certificateBeginsWith}}',\n { certificateBeginsWith }\n )}\n onClick={onResetClickFactory('tlsClientCert')}\n />\n\n <CertificationKey\n hasCert={!!hasTLSClientKey}\n label={t('grafana-ui.data-source-settings.tls-client-key-label', 'Client Key')}\n placeholder={t(\n 'grafana-ui.data-source-settings.tls-client-key-placeholder',\n 'Begins with {{privateKeyBeginsWith}}',\n { privateKeyBeginsWith }\n )}\n onChange={onCertificateChangeFactory('tlsClientKey')}\n onClick={onResetClickFactory('tlsClientKey')}\n />\n </>\n )}\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}