UNPKG

@grafana/ui

Version:
1 lines 8.66 kB
{"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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"}