web-interface.assets.bb8c8232-290.21ce9471c62feeb912e9.js.map Maven / Gradle / Ivy
{"version":3,"file":"bb8c8232-290.21ce9471c62feeb912e9.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/datanode/DataNodeConfiguration/CertificateRenewalPolicyConfig.tsx","webpack://graylog-web-interface/./src/components/datanode/DataNodePageNavigation.tsx","webpack://graylog-web-interface/./src/components/datanode/hooks/useMigrationState.ts","webpack://graylog-web-interface/./src/components/datanode/hooks/useCreateDataNodeClientCert.ts","webpack://graylog-web-interface/./src/components/datanode/client-certificate/ClientCertificateView.tsx","webpack://graylog-web-interface/./src/components/datanode/client-certificate/ClientCertForm.tsx","webpack://graylog-web-interface/./src/components/datanode/client-certificate/CreateClientCertificateButton.tsx","webpack://graylog-web-interface/./src/components/datanode/client-certificate/ClientCertificateConfig.tsx","webpack://graylog-web-interface/./src/components/datanode/DataNodeConfiguration/DataNodeConfiguration.tsx","webpack://graylog-web-interface/./src/pages/DataNodesClusterConfigurationPage.tsx"],"sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n hoverIndicatorStyles,\n activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n font-family: ${theme.fonts.family.navigation};\n font-size: ${theme.fonts.size.navigation};\n color: ${theme.colors.variant.darker.default};\n \n &:hover,\n &:focus {\n background: inherit;\n text-decoration: none;\n }\n\n &:hover {\n color: inherit;\n ${hoverIndicatorStyles(theme)}\n }\n\n &.active {\n color: ${theme.colors.global.textDefault};\n\n ${activeIndicatorStyles(theme)}\n\n &:hover,\n &:focus {\n ${activeIndicatorStyles(theme)}\n }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n /**\n * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n * By default, an item is active if the current URL starts with the item URL.\n * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n */\n items: Array<{\n title: string,\n path: string,\n permissions?: string | Array\n exactPathMatch?: boolean,\n }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n \n {items.map(({ path, title, permissions, exactPathMatch }) => {\n if (!path) {\n return null;\n }\n\n return (\n \n \n \n \n {title}\n \n \n \n \n );\n })}\n \n);\n\nexport default PageNavigation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useMemo, useState } from 'react';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { Field, Form, Formik } from 'formik';\nimport type { DefaultTheme } from 'styled-components';\nimport styled, { css } from 'styled-components';\nimport capitalize from 'lodash/capitalize';\nimport moment from 'moment';\n\nimport ModalSubmit from 'components/common/ModalSubmit';\nimport UserNotification from 'util/UserNotification';\nimport { Input, Button, Col, Modal, Row } from 'components/bootstrap';\nimport { ConfigurationsActions } from 'stores/configurations/ConfigurationsStore';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { IfPermitted, TimeUnitInput, Spinner } from 'components/common';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport Select from 'components/common/Select';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\nimport { MIGRATION_STATE_QUERY_KEY } from 'components/datanode/hooks/useMigrationState';\n\ntype RenewalPolicy = {\n mode: 'AUTOMATIC' | 'MANUAL',\n certificate_lifetime: string,\n}\nconst TIME_UNITS = ['hours', 'days', 'months', 'years'] as const;\nconst TIME_UNITS_UPPER = TIME_UNITS.map((unit) => unit.toLocaleUpperCase());\n\ntype FormConfig = {\n mode: RenewalPolicy['mode'],\n lifetimeUnit: typeof TIME_UNITS[number],\n lifetimeValue: number,\n}\n\nconst StyledDefList = styled.dl.attrs({\n className: 'deflist',\n})(({ theme }: { theme: DefaultTheme }) => css`\n &&.deflist {\n dt {\n float: left;\n }\n\n dd {\n padding-left: ${theme.spacings.md};\n margin-left: 200px;\n }\n }\n`);\n\nconst handleSaveConfig = async (configToSave: RenewalPolicy) => (\n ConfigurationsActions.update(ConfigurationType.CERTIFICATE_RENEWAL_POLICY_CONFIG, configToSave)\n);\n\nconst smallestUnit = (duration: string) => {\n if (duration.endsWith('H')) {\n return 'hours';\n }\n\n if (duration.endsWith('D')) {\n return 'days';\n }\n\n if (duration.endsWith('M')) {\n return 'months';\n }\n\n if (duration.endsWith('Y')) {\n return 'years';\n }\n\n throw new Error(`Invalid duration specified: ${duration}`);\n};\n\nconst fetchCurrentConfig = () => ConfigurationsActions.list(ConfigurationType.CERTIFICATE_RENEWAL_POLICY_CONFIG) as Promise;\n\nconst NoExistingPolicy = ({ createPolicy }: { createPolicy: () => void }) => (\n There is no Certificate Renewal Policy yet. Click \n to create one.\n \n);\n\nconst certicateRenewalModes = ['AUTOMATIC', 'MANUAL'].map((mode) => ({ label: capitalize(mode), value: mode }));\n\nconst DEFAULT_CONFIG = {\n mode: 'AUTOMATIC',\n lifetimeUnit: 'days',\n lifetimeValue: 30,\n} as const;\n\nconst queryKey = ['config', 'certificate-renewal-policy'];\n\nconst renewalModeExplanation = 'Setting the renewal policy to \"Automatic\" will '\n + 'renew all expiring certificates without any user interaction. Setting it to \"Manual\" will create a system '\n + 'notification when one or more certificates are about to expire, allowing you to confirm their renewal.';\nconst lifetimeExplanation = 'The certificate lifetime will be used for the length of the validity of newly created certificates.';\n\ntype Props = {\n className?: string\n}\n\nconst CertificateRenewalPolicyConfig = ({ className }: Props) => {\n const [showModal, setShowModal] = useState(false);\n const { data: currentConfig, isLoading } = useQuery(queryKey, fetchCurrentConfig);\n\n const sendTelemetry = useSendTelemetry();\n const { pathname } = useLocation();\n const queryClient = useQueryClient();\n\n const { mutateAsync: updateConfig } = useMutation(handleSaveConfig, {\n onSuccess: () => {\n queryClient.invalidateQueries(queryKey);\n queryClient.invalidateQueries(MIGRATION_STATE_QUERY_KEY);\n setShowModal(false);\n },\n onError: (err: Error) => {\n UserNotification.error(`Error Updating Detector Definition: ${err.toString()}`, 'Unable to update detector definition');\n },\n });\n\n const formConfig: FormConfig | undefined = useMemo(() => {\n if (isLoading) {\n return undefined;\n }\n\n if (!currentConfig) {\n return DEFAULT_CONFIG;\n }\n\n const { mode, certificate_lifetime } = currentConfig;\n const lifetimeUnit = smallestUnit(certificate_lifetime);\n const lifetimeValue = moment.duration(certificate_lifetime).as(lifetimeUnit);\n\n return {\n mode,\n lifetimeUnit,\n lifetimeValue,\n };\n }, [currentConfig, isLoading]);\n\n if (isLoading) {\n return ;\n }\n\n const modalTitle = 'Configure Certificate Renewal Policy';\n\n const resetConfig = () => {\n setShowModal(false);\n };\n\n const saveConfig = (values: FormConfig) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.CERTIFICATE_RENEWAL_POLICY_UPDATED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'certificate-renewal-policy',\n app_action_value: 'configuration-save',\n });\n\n const newConfig = {\n mode: values.mode,\n certificate_lifetime: moment.duration(values.lifetimeValue, values.lifetimeUnit).toJSON(),\n };\n\n return updateConfig(newConfig);\n };\n\n return (\n \n Certificate Renewal Policy Configuration
\n \n These settings will be used when detecting expiration of certificates and/or when renewing them.\n
\n {!currentConfig ? setShowModal(true)} /> : (\n <>\n \n Renewal Mode: \n {capitalize(currentConfig.mode)} \n {renewalModeExplanation} \n Certificate Lifetime: \n {formConfig.lifetimeValue} {formConfig.lifetimeUnit} \n {lifetimeExplanation} \n \n\n \n \n \n \n
\n >\n )}\n\n \n onSubmit={saveConfig} initialValues={formConfig}>\n {({ values, setFieldValue, isSubmitting, isValid, isValidating }) => (\n \n )}\n \n \n \n );\n};\n\nCertificateRenewalPolicyConfig.defaultProps = {\n className: undefined,\n};\n\nexport default CertificateRenewalPolicyConfig;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport AppConfig from 'util/AppConfig';\nimport PageNavigation from 'components/common/PageNavigation';\nimport Routes from 'routing/Routes';\nimport { Row } from 'components/bootstrap';\n\nconst enableDataNodeMigration = AppConfig.isFeatureEnabled('data_node_migration');\n\nconst NAV_ITEMS = [\n { title: 'Data Nodes', path: Routes.SYSTEM.DATANODES.LIST, exactPathMatch: true },\n { title: 'Cluster Management', path: Routes.SYSTEM.DATANODES.CLUSTER },\n { title: 'Configuration', path: Routes.SYSTEM.DATANODES.CONFIGURATION },\n enableDataNodeMigration && { title: 'Migration', path: Routes.SYSTEM.DATANODES.MIGRATION },\n];\n\nconst DataNodesPageNavigation = () => (\n \n \n
\n);\n\nexport default DataNodesPageNavigation;\n","// @ts-nocheck\n/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useQuery } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport { Migration } from '@graylog/server-api';\nimport type { MigrationState } from 'components/datanode/Types';\n\nexport const MIGRATION_STATE_QUERY_KEY = ['migration-state'];\n\nconst useMigrationState = (refetchInterval : number | false = false) : {\n currentStep: MigrationState,\n isLoading: boolean,\n} => {\n const { data, isLoading } = useQuery(\n MIGRATION_STATE_QUERY_KEY,\n () => Migration.status(),\n {\n onError: (error: Error) => UserNotification.error(error.message),\n retry: 2,\n refetchInterval,\n },\n );\n\n return {\n currentStep: data,\n isLoading,\n };\n};\n\nexport default useMigrationState;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { useMutation } from '@tanstack/react-query';\n\nimport UserNotification from 'util/UserNotification';\nimport fetch from 'logic/rest/FetchProvider';\nimport { qualifyUrl } from 'util/URLUtils';\n\nexport type ClientCertFormValues = {\n principal : string,\n role : string,\n password : string,\n}\nexport type ClientCertCreateResponse = {\n principal: string,\n role: string,\n ca_certificate: string,\n private_key: string,\n certificate: string,\n}\nconst createClientCa = (clientCertFormData: ClientCertFormValues) => fetch(\n 'POST',\n qualifyUrl('ca/clientcert'),\n clientCertFormData,\n false,\n);\n\nconst useCreateDataNodeClientCert = (): {\n onCreateClientCert: (values: ClientCertFormValues) => Promise,\n isLoading: boolean,\n isError: boolean,\n error: Error,\n} => {\n const { mutateAsync: onTriggerNextState, isLoading, error, isError } = useMutation(createClientCa, {\n onError: (err: Error) => UserNotification.error(err.message),\n });\n\n return {\n onCreateClientCert: onTriggerNextState,\n isLoading,\n isError,\n error,\n };\n};\n\nexport default useCreateDataNodeClientCert;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport type { ClientCertCreateResponse } from 'components/datanode/hooks/useCreateDataNodeClientCert';\nimport copyToClipboard from 'util/copyToClipboard';\nimport { Button } from 'components/bootstrap';\n\ntype Props = {\n clientCerts: ClientCertCreateResponse\n};\n\nconst Textarea = styled.textarea(({ theme }) => css`\n width: 100%;\n padding: 3px;\n resize: none;\n flex: 1;\n margin: 15px 0 7px;\n border: 1px solid ${theme.colors.variant.lighter.default};\n font-family: ${theme.fonts.family.monospace};\n font-size: ${theme.fonts.size.body};\n\n &:focus {\n border-color: ${theme.colors.variant.light.info};\n outline: none;\n }\n`);\n\nconst ClientCertificateView = ({ clientCerts }: Props) => (\n <>\n Principal: \n {clientCerts.principal} \n Role: \n {clientCerts.role} \n CA certificate \n \n \n \n Private key \n \n \n \n Certificate \n \n \n \n >\n);\n\nexport default ClientCertificateView;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { Formik, Form } from 'formik';\nimport { useState } from 'react';\n\nimport { FormikInput } from 'components/common';\nimport { Button, ButtonToolbar, Modal } from 'components/bootstrap';\nimport type { ClientCertFormValues } from 'components/datanode/hooks/useCreateDataNodeClientCert';\nimport useCreateDataNodeClientCert from 'components/datanode/hooks/useCreateDataNodeClientCert';\nimport ClientCertificateView from 'components/datanode/client-certificate/ClientCertificateView';\n\nimport ModalSubmit from '../../common/ModalSubmit';\n\ntype Props = {\n onCancel: () => void,\n};\n\nconst ClientCertForm = ({ onCancel }: Props) => {\n const [clientCerts, setClientCerts] = useState(null);\n const { onCreateClientCert } = useCreateDataNodeClientCert();\n const onSubmit = (formValues: ClientCertFormValues) => onCreateClientCert(formValues).then((certs) => setClientCerts(certs))\n .catch(() => {});\n\n return (\n <>\n \n Create client certificate \n \n {!clientCerts && (\n onSubmit(formValues)}>\n {({ isSubmitting }) => (\n \n )}\n \n )}\n {clientCerts && (\n <>\n \n \n \n \n \n \n \n \n >\n )}\n >\n );\n};\n\nexport default ClientCertForm;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React, { useState } from 'react';\n\nimport { BootstrapModalWrapper, Button } from 'components/bootstrap';\nimport ClientCertForm from 'components/datanode/client-certificate/ClientCertForm';\n\nconst CreateClientCertificateButton = () => {\n const [showCertificateForm, setShowCertificateForm] = useState(false);\n const onCancel = () => setShowCertificateForm(false);\n\n return (\n <>\n \n {showCertificateForm && (\n onCancel()}\n bsSize=\"lg\">\n\n \n \n )}\n >\n );\n};\n\nexport default CreateClientCertificateButton;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport CreateClientCertificateButton from 'components/datanode/client-certificate/CreateClientCertificateButton';\n\nconst ClientCertificateConfig = () => (\n \n Client Certificate
\n Generate client certificates for 3rd party tool
\n \n \n);\nexport default ClientCertificateConfig;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport styled from 'styled-components';\n\nimport ClientCertificateConfig from 'components/datanode/client-certificate/ClientCertificateConfig';\n\nimport CertificateRenewalPolicyConfig from './CertificateRenewalPolicyConfig';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n`;\n\nconst DataNodeConfiguration = () => (\n \n \n \n \n);\n\nexport default DataNodeConfiguration;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport { Row, Col } from 'components/bootstrap';\nimport { DocumentTitle, PageHeader } from 'components/common';\nimport DocsHelper from 'util/DocsHelper';\nimport DataNodeConfiguration from 'components/datanode/DataNodeConfiguration/DataNodeConfiguration';\nimport DataNodesPageNavigation from 'components/datanode/DataNodePageNavigation';\n\nconst DataNodesClusterConfigurationPage = () => (\n \n \n \n \n Graylog Data Nodes offer a better integration with Graylog and simplify future updates. They allow you to index and search through all the messages in your Graylog message database.\n \n \n \n \n \n \n
\n \n);\n\nexport default DataNodesClusterConfigurationPage;\n"],"names":["Container","StyledButton","theme","items","path","title","permissions","exactPathMatch","TIME_UNITS_UPPER","unit","StyledDefList","handleSaveConfig","configToSave","smallestUnit","duration","fetchCurrentConfig","NoExistingPolicy","createPolicy","certicateRenewalModes","mode","DEFAULT_CONFIG","queryKey","renewalModeExplanation","lifetimeExplanation","CertificateRenewalPolicyConfig","className","showModal","setShowModal","currentConfig","isLoading","sendTelemetry","pathname","queryClient","updateConfig","err","formConfig","certificate_lifetime","lifetimeUnit","lifetimeValue","modalTitle","resetConfig","saveConfig","values","newConfig","setFieldValue","isSubmitting","isValid","isValidating","name","value","onChange","newValue","enableDataNodeMigration","NAV_ITEMS","MIGRATION_STATE_QUERY_KEY","refetchInterval","data","error","createClientCa","clientCertFormData","onTriggerNextState","isError","UserNotification","Textarea","clientCerts","copyToClipboard","onCancel","setClientCerts","onCreateClientCert","onSubmit","formValues","certs","ModalSubmit","showCertificateForm","setShowCertificateForm","DocsHelper"],"sourceRoot":""}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy