All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.1255d548-9738.948670dead7c9ae448a4.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"file":"1255d548-9738.948670dead7c9ae448a4.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/pages/configurations/ConfigletRow.tsx","webpack://graylog-web-interface/./src/components/configurations/helpers.ts","webpack://graylog-web-interface/./src/components/configurations/TimeRangePresetForm.tsx","webpack://graylog-web-interface/./src/components/configurations/TimeRangePresetOptionSummary.tsx","webpack://graylog-web-interface/./src/components/configurations/TimeRangeOptionsForm.tsx","webpack://graylog-web-interface/./src/components/configurations/TimeRangeOptionsSummary.tsx","webpack://graylog-web-interface/./src/components/configurations/SearchesConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/MessageProcessorsConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/SidecarConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/EventsConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/UrlWhiteListConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/IndexSetsDefaultsConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/PermissionsConfig.tsx","webpack://graylog-web-interface/./src/pages/configurations/ConfigletContainer.tsx","webpack://graylog-web-interface/./src/components/configurations/PluginsConfig.tsx","webpack://graylog-web-interface/./src/components/maps/configurations/GeoIpResolverConfig.tsx","webpack://graylog-web-interface/./src/components/maps/configurations/index.ts","webpack://graylog-web-interface/./src/components/configurations/DataNodeConfiguration/CertificateRenewalPolicyConfig.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Badge.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Button.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Col.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Dropzone.tsx","webpack://graylog-web-interface/./src/preflight/components/common/TextInput.tsx","webpack://graylog-web-interface/./src/preflight/components/common/FormikTextInput.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Grid.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Icon.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Input.tsx","webpack://graylog-web-interface/./src/preflight/components/common/List.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Menu.tsx","webpack://graylog-web-interface/./src/preflight/components/common/mantine/MenuDropdownWrapper.tsx","webpack://graylog-web-interface/./src/preflight/components/common/MenuItem.tsx","webpack://graylog-web-interface/./src/preflight/components/common/mantine/MenuTarget.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Row.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Section.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Select.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Space.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Tabs.tsx","webpack://graylog-web-interface/./src/preflight/components/common/Title.tsx","webpack://graylog-web-interface/./src/components/datanode/DataNodeBadge.tsx","webpack://graylog-web-interface/./src/components/configurations/DataNodeConfiguration/CertificateRenewal.tsx","webpack://graylog-web-interface/./src/components/configurations/DataNodeConfiguration/DataNodeConfiguration.tsx","webpack://graylog-web-interface/./src/pages/configurations/ConfigurationSection.tsx","webpack://graylog-web-interface/./src/components/configurations/decorators/StreamSelect.tsx","webpack://graylog-web-interface/./src/components/configurations/decorators/FormatDecorator.tsx","webpack://graylog-web-interface/./src/components/configurations/decorators/DecoratorsConfigUpdate.tsx","webpack://graylog-web-interface/./src/components/configurations/decorators/DecoratorsUpdater.ts","webpack://graylog-web-interface/./src/components/configurations/DecoratorsConfig.tsx","webpack://graylog-web-interface/./src/components/configurations/UserConfig.tsx","webpack://graylog-web-interface/./src/pages/ConfigurationsPage.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 */\n\nimport styled from 'styled-components';\n\nimport { Row } from 'components/bootstrap';\n\nconst ConfigletRow = styled(Row)`\n  .deflist {\n    margin-top: 10px;\n  }\n\n  .deflist dt {\n    float: left;\n    clear: left;\n  }\n\n  .deflist dd {\n    margin-left: 180px;\n  }\n\n  .top-margin {\n    margin-top: 10px;\n  }\n\n  hr.separator {\n    margin-top: 10px;\n    margin-bottom: 5px;\n  }\n\n  > div {\n    margin-bottom: 30px;\n  }\n`;\n\nexport default ConfigletRow;\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 */\nconst getConfig = (configType, configuration) => configuration?.[configType] ?? null;\n\nexport { getConfig };\nexport default getConfig;\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 type { Dispatch } from 'react';\nimport React, { useCallback, useMemo } from 'react';\nimport moment from 'moment/moment';\nimport styled from 'styled-components';\nimport Immutable from 'immutable';\nimport debounce from 'lodash/debounce';\n\nimport { Button, Input } from 'components/bootstrap';\nimport { Icon, SortableList } from 'components/common';\nimport type { TimeRange } from 'views/logic/queries/Query';\nimport { useStore } from 'stores/connect';\nimport { SearchConfigStore } from 'views/stores/SearchConfigStore';\nimport TimeRangeFilter from 'views/components/searchbar/time-range-filter';\nimport TimeRangeInputSettingsContext from 'views/components/contexts/TimeRangeInputSettingsContext';\nimport generateId from 'logic/generateId';\n\nexport type TimeRangePreset = {\n  timerange: TimeRange,\n  description: string,\n  id: string,\n}\n\nconst ItemWrapper = styled.div`\n  display: flex;\n  align-items: stretch;\n  gap: 5px;\n  flex-grow: 1;\n`;\n\nconst StyledInput = styled(Input)`\n  margin-bottom: 0;\n  width: 200px;\n`;\n\nconst IconWrapper = styled.div`\n  width: 40px;\n`;\n\nconst Description = styled.div`\n  display: flex;\n`;\n\ntype ItemProps = {\n  idx: number,\n  id: string,\n  timerange: TimeRange,\n  description: string,\n  onChange: (timerange: TimeRangePreset, idx: number) => void,\n  onRemove: (idx: number) => void,\n  limitDuration: number,\n}\n\nconst contextSettings = {\n  showDropdownButton: false,\n  showPresetsButton: false,\n  showAddToQuickListButton: false,\n  ignoreLimitDurationInTimeRangeDropdown: true,\n};\n\nconst TimeRangePresetFormItem = ({ idx, id, timerange, description, onChange, onRemove, limitDuration }: ItemProps) => {\n  const handleOnChangeRange = useCallback((newTimerange: TimeRange) => {\n    onChange({ timerange: newTimerange, description, id }, idx);\n  }, [description, id, idx, onChange]);\n\n  const handleOnChangeDescription = useCallback((newDescription: string) => {\n    onChange({ timerange, description: newDescription, id }, idx);\n  }, [id, idx, onChange, timerange]);\n\n  const handleOnRemove = useCallback(() => {\n    onRemove(idx);\n  }, [idx, onRemove]);\n\n  const debounceHandleOnChangeDescription = debounce((value: string) => handleOnChangeDescription(value), 300);\n\n  return (\n    \n      \n      \n         debounceHandleOnChangeDescription(value)}\n                     formGroupClassName=\"\" />\n        \n          \n        \n      \n    \n  );\n};\n\nconst TimeRangePresetForm = ({ options, onUpdate }: {\n  options: Immutable.List,\n  onUpdate: Dispatch>\n}) => {\n  const onChange = useCallback((newPreset: TimeRangePreset, idx: number) => {\n    const newState = options.set(idx, newPreset);\n    onUpdate(newState);\n  }, [onUpdate, options]);\n\n  const { searchesClusterConfig: config } = useStore(SearchConfigStore);\n  const limitDuration = useMemo(() => moment.duration(config?.query_time_range_limit).asSeconds() ?? 0, [config?.query_time_range_limit]);\n\n  const onRemove = useCallback((idx: number) => {\n    const newState = options.delete(idx);\n    onUpdate(newState);\n  }, [onUpdate, options]);\n\n  const onMoveItem = useCallback((items: Array) => {\n    onUpdate(Immutable.List(items));\n  }, [onUpdate]);\n\n  const addTimeRange = useCallback(() => {\n    onUpdate(options.push({\n      id: generateId(),\n      description: '',\n      timerange: { type: 'relative', from: 300 },\n    }));\n  }, [onUpdate, options]);\n\n  const customContentRender = useCallback(({ item: { id, description, timerange }, index }) => (\n    \n  ), [limitDuration, onChange, onRemove]);\n\n  return (\n    
\n Search Time Range Presets\n \n Configure the available search time range presets.\n \n
\n \n \n \n
\n \n
\n );\n};\n\nexport default TimeRangePresetForm;\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 PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport assertUnreachable from 'logic/assertUnreachable';\nimport type { TimeRangePreset } from 'components/configurations/TimeRangePresetForm';\nimport type {\n KeywordTimeRange,\n TimeRange,\n} from 'views/logic/queries/Query';\nimport { range } from 'views/components/searchbar/time-range-filter/TimeRangeDisplay';\n\ntype Props = { options : Array};\n\nconst StyledDL = styled.dl`\n && {\n > span {\n display: flex;\n gap: 5px;\n }\n \n dt {\n white-space: nowrap;\n flex-basis: 175px;\n }\n\n dd {\n margin: 0;\n flex: 1;\n }\n }\n`;\n\nexport const getTimeRangeValueSummary = (timerange: TimeRange) => {\n switch (timerange.type) {\n case 'relative':\n return `${range(timerange).from} - ${range(timerange).until}`;\n case 'absolute':\n return `${range(timerange).from} - ${range(timerange).until}`;\n case 'keyword':\n return (timerange as KeywordTimeRange).keyword;\n default:\n return assertUnreachable(timerange, 'Timerange type doesn\\'t not exist');\n }\n};\n\nconst TimeRangePresetOptionSummary = ({ options }: Props) => (\n \n {options.map(({ timerange, id, description }) => (\n \n
{getTimeRangeValueSummary(timerange)}
\n
{description}
\n
\n ))}\n
\n);\n\nTimeRangePresetOptionSummary.propTypes = {\n options: PropTypes.object.isRequired,\n};\n\nexport default TimeRangePresetOptionSummary;\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 PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col, Button } from 'components/bootstrap';\nimport { Icon } from 'components/common';\nimport * as ISODurationUtils from 'util/ISODurationUtils';\nimport ObjectUtils from 'util/ObjectUtils';\n\n/**\n * Expects `this.props.options` to be an array of period/description objects. `[{period: 'PT1S', description: 'yo'}]`\n */\ntype Option = { period: string, description: string };\ntype Props = {\n options?: Array
\n

Search Configuration

\n\n
\n
Query time range limit
\n
{limit(viewConfig)}
\n
The maximum time users can query data in the past. This prevents users from accidentally creating queries\n which\n span a lot of data and would need a long time and many resources to complete (if at all).\n
\n
\n\n \n \n Search Time Range Presets\n \n Surrounding time range options\n \n \n \n \n \n Surrounding search filter fields\n
    \n {viewConfig.surrounding_filter_fields && viewConfig.surrounding_filter_fields.map((f: string) => (\n
  • {f}\n
  • \n ))}\n
\n \n
\n \n \n UI analysis disabled for fields\n
    \n {viewConfig.analysis_disabled_fields && (viewConfig.analysis_disabled_fields.map((f: string) => (\n
  • {f}\n
  • \n )))}\n
\n \n
\n \n \n Auto-refresh interval options\n \n\n Default auto-refresh interval\n \n \n
\n \n \n \n\n {showConfigModal && formConfig && (\n \n
\n \n \n {isLimitEnabled(formConfig) && (\n \n )}\n \n Configure the available options for the surrounding time range selector as ISO8601 duration\n } />\n\n \n\n \n Configure the available options for the auto-refresh interval selector as ISO8601 duration} />\n \n toggleStatus(processor.class_name, enabled)} />\n \n \n );\n });\n };\n\n if (!viewConfig) { return ; }\n\n return (\n
\n

Message Processors Configuration

\n

The following message processors are executed in order. Disabled processors will be skipped.

\n\n \n \n \n \n \n \n \n \n \n {summary()}\n \n
#ProcessorStatus
\n\n \n \n \n\n {showConfigModal && formConfig && (\n \n <>\n

Order

\n

Use drag and drop to change the execution order of the message processors.

\n \n\n

Status

\n

Change the checkboxes to change the status of a message processor.

\n \n \n \n \n \n \n \n \n {statusForm()}\n \n
ProcessorEnabled
\n {hasNoActiveProcessor() && (\n \n No active message processor!\n \n )}\n \n
\n )}\n
\n );\n};\n\nexport default MessageProcessorsConfig;\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 { useEffect, useState } from 'react';\n\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport { getConfig } from 'components/configurations/helpers';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { Button, BootstrapModalForm, Input } from 'components/bootstrap';\nimport { IfPermitted, ISODurationInput } from 'components/common';\nimport Spinner from 'components/common/Spinner';\nimport * as ISODurationUtils from 'util/ISODurationUtils';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport StringUtils from 'util/StringUtils';\n\ntype Config = {\n sidecar_expiration_threshold: string,\n sidecar_inactive_threshold: string,\n sidecar_update_interval: string,\n sidecar_send_status: boolean,\n sidecar_configuration_override: boolean,\n}\n\nconst DEFAULT_CONFIG = {\n sidecar_expiration_threshold: 'P14D',\n sidecar_inactive_threshold: 'PT1M',\n sidecar_update_interval: 'PT30S',\n sidecar_send_status: true,\n sidecar_configuration_override: false,\n};\n\nconst SidecarConfig = () => {\n const [showConfigModal, setShowConfigModal] = useState(false);\n const [viewConfig, setViewConfig] = useState(DEFAULT_CONFIG);\n const [formConfig, setFormConfig] = useState(DEFAULT_CONFIG);\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n const [loaded, setLoaded] = useState(false);\n\n useEffect(() => {\n ConfigurationsActions.list(ConfigurationType.SIDECAR_CONFIG).then(() => {\n const config = getConfig(ConfigurationType.SIDECAR_CONFIG, configuration);\n\n setViewConfig(config);\n setFormConfig(config);\n setLoaded(true);\n });\n }, [configuration]);\n\n const openModal = () => {\n setShowConfigModal(true);\n };\n\n const closeModal = () => {\n setShowConfigModal(false);\n setFormConfig(viewConfig);\n };\n\n const saveConfig = () => {\n ConfigurationsActions.update(ConfigurationType.SIDECAR_CONFIG, formConfig).then(() => {\n closeModal();\n });\n };\n\n const onUpdate = (field: string) => (value: string | React.ChangeEvent) => {\n const newValue = typeof value === 'object' ? getValueFromInput(value.target) : value;\n\n setFormConfig({ ...formConfig, [field]: newValue });\n };\n\n const inactiveThresholdValidator = (milliseconds: number) => milliseconds >= 1000;\n\n const expirationThresholdValidator = (milliseconds: number) => milliseconds >= 60 * 1000;\n\n const durationMilliseconds = (duration: string) => ISODurationUtils.isValidDuration(duration, (milliseconds) => !!milliseconds);\n\n const updateIntervalValidator = (milliseconds) => {\n const inactiveMilliseconds = durationMilliseconds(formConfig.sidecar_inactive_threshold);\n const expirationMilliseconds = durationMilliseconds(formConfig.sidecar_expiration_threshold);\n\n return milliseconds >= 1000 && milliseconds < inactiveMilliseconds && milliseconds < expirationMilliseconds;\n };\n\n if (!loaded || !viewConfig) { return ; }\n\n return (\n
\n

Sidecars Configuration

\n\n
\n
Inactive threshold:
\n
{viewConfig.sidecar_inactive_threshold}
\n
Expiration threshold:
\n
{viewConfig.sidecar_expiration_threshold}
\n
Update interval:
\n
{viewConfig.sidecar_update_interval}
\n
Send status:
\n
{StringUtils.capitalizeFirstLetter(viewConfig.sidecar_send_status.toString())}
\n
Override configuration:
\n
{StringUtils.capitalizeFirstLetter(viewConfig.sidecar_configuration_override.toString())}
\n
\n\n \n \n \n\n {showConfigModal && formConfig && (\n \n
\n \n\n \n \n
\n \n \n
\n )}\n
\n );\n};\n\nexport default SidecarConfig;\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 { useEffect, useState } from 'react';//\nimport capitalize from 'lodash/capitalize';\nimport moment from 'moment';\n\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport { getConfig } from 'components/configurations/helpers';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { Button, FormGroup, HelpBlock, BootstrapModalForm } from 'components/bootstrap';\nimport { IfPermitted, TimeUnitInput } from 'components/common';\nimport Spinner from 'components/common/Spinner';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport Input from 'components/bootstrap/Input';\nimport { extractDurationAndUnit } from 'components/common/TimeUnitInput';\n\nconst TIME_UNITS = ['HOURS', 'MINUTES', 'SECONDS'];\nconst DEFAULT_CATCH_UP_WINDOW = 3600000;\n\ntype Config = {\n events_search_timeout: number,\n events_notification_retry_period: number,\n events_notification_default_backlog: number,\n events_catchup_window: number,\n events_notification_tcp_keepalive: boolean,\n}\n\nconst DEFAULT_CONFIG = {\n events_search_timeout: 60000,\n events_notification_retry_period: 300000,\n events_notification_default_backlog: 50,\n events_catchup_window: DEFAULT_CATCH_UP_WINDOW,\n events_notification_tcp_keepalive: false,\n};\n\nconst EventsConfig = () => {\n const [showConfigModal, setShowConfigModal] = useState(false);\n const [viewConfig, setViewConfig] = useState(DEFAULT_CONFIG);\n const [formConfig, setFormConfig] = useState(DEFAULT_CONFIG);\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n const [loaded, setLoaded] = useState(false);\n\n useEffect(() => {\n ConfigurationsActions.list(ConfigurationType.EVENTS_CONFIG).then(() => {\n const config = getConfig(ConfigurationType.EVENTS_CONFIG, configuration);\n\n setViewConfig(config);\n setFormConfig(config);\n setLoaded(true);\n });\n }, [configuration]);\n\n const openModal = () => {\n setShowConfigModal(true);\n };\n\n const closeModal = () => {\n setShowConfigModal(false);\n setFormConfig(viewConfig);\n };\n\n const saveConfig = () => {\n ConfigurationsActions.update(ConfigurationType.EVENTS_CONFIG, formConfig).then(() => {\n closeModal();\n });\n };\n\n const propagateChanges = (key, value) => {\n setFormConfig({ ...formConfig, [key]: value });\n };\n\n const searchTimeoutValidator = (milliseconds) => milliseconds >= 1000;\n\n const notificationsRetryValidator = (milliseconds) => milliseconds >= 0;\n\n const onSearchTimeoutUpdate = (nextValue, nextUnit, enabled) => {\n const durationInMs = enabled ? moment.duration(nextValue, nextUnit).asMilliseconds() : 0;\n\n if (searchTimeoutValidator(durationInMs)) {\n propagateChanges('events_search_timeout', durationInMs);\n }\n };\n\n const onRetryPeriodUpdate = (nextValue, nextUnit, enabled) => {\n const durationInMs = enabled ? moment.duration(nextValue, nextUnit).asMilliseconds() : 0;\n\n if (notificationsRetryValidator(durationInMs)) {\n propagateChanges('events_notification_retry_period', durationInMs);\n }\n };\n\n const onBacklogUpdate = (event) => {\n const value = getValueFromInput(event.target);\n\n propagateChanges('events_notification_default_backlog', value);\n };\n\n const onCatchUpWindowUpdate = (nextValue, nextUnit, nextEnabled) => {\n if (formConfig.events_catchup_window === 0 && nextEnabled) {\n propagateChanges('events_catchup_window', DEFAULT_CATCH_UP_WINDOW);\n\n return;\n }\n\n const catchupWindowinMs = nextEnabled ? moment.duration(nextValue, nextUnit).asMilliseconds() : 0;\n\n propagateChanges('events_catchup_window', catchupWindowinMs);\n };\n\n const onNotificationTcpKeepAliveUpdate = (event) => {\n const value = getValueFromInput(event.target);\n propagateChanges('events_notification_tcp_keepalive', value);\n };\n\n const titleCase = (str) => capitalize(str);\n\n if (!loaded || !viewConfig) { return ; }\n\n const eventsSearchTimeout = (config) => extractDurationAndUnit(config.events_search_timeout, TIME_UNITS);\n const eventsNotificationRetryPeriod = (config) => extractDurationAndUnit(config.events_notification_retry_period, TIME_UNITS);\n const eventsCatchupWindow = (config) => extractDurationAndUnit(config.events_catchup_window, TIME_UNITS);\n const eventsNotificationDefaultBacklog = (config) => config.events_notification_default_backlog;\n const eventsNotificationTcpKeepalive = (config) => config.events_notification_tcp_keepalive;\n\n return (\n
\n

Events Configuration

\n\n
\n
Search Timeout:
\n
{eventsSearchTimeout(viewConfig).duration} {titleCase(eventsSearchTimeout(viewConfig).unit)}
\n
Notification Retry:
\n
{eventsNotificationRetryPeriod(viewConfig).duration} {titleCase(eventsNotificationRetryPeriod(viewConfig).unit)}
\n
Notification Backlog:
\n
{eventsNotificationDefaultBacklog(viewConfig)}
\n
Catch Up Window:
\n
{eventsCatchupWindow(viewConfig).duration > 0 ? eventsCatchupWindow(viewConfig).duration : 'disabled'} {eventsCatchupWindow(viewConfig).duration > 0 ? titleCase(eventsCatchupWindow(viewConfig).unit) : ''}
\n
TCP keep-alive probes:
\n
{eventsNotificationTcpKeepalive(viewConfig) ? 'enabled' : 'disabled'}
\n
\n\n \n \n \n\n {showConfigModal && formConfig && (\n \n
\n \n \n \n Amount of time after which an Elasticsearch query is interrupted. (Minimum timeout is 1s)\n \n \n \n \n \n Amount of time after which a failed notification is resend. (Minimum is 0 or immediate retry)\n \n \n \n \n 0}\n units={TIME_UNITS} />\n If Event processor execution is behind schedule, queries on older data will be run with this window size to speed up processing.\n (If the "search within the last" setting of an event definition is greater, this setting will be ignored)\n \n \n \n \n \n If enabled, http connections for notifications will send TCP keep-alive probes\n \n \n
\n
\n )}\n
\n );\n};\n\nexport default EventsConfig;\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 { useEffect, useState } from 'react';\n\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport { getConfig } from 'components/configurations/helpers';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { Button, Table } from 'components/bootstrap';\nimport { IfPermitted } from 'components/common';\nimport Spinner from 'components/common/Spinner';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport UrlWhiteListForm from 'components/configurations/UrlWhiteListForm';\nimport type { WhiteListConfig } from 'stores/configurations/ConfigurationsStore';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst UrlWhiteListConfig = () => {\n const [showConfigModal, setShowConfigModal] = useState(false);\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n const [viewConfig, setViewConfig] = useState(undefined);\n const [formConfig, setFormConfig] = useState(undefined);\n const [isValid, setIsValid] = useState(false);\n\n const sendTelemetry = useSendTelemetry();\n const { pathname } = useLocation();\n\n useEffect(() => {\n ConfigurationsActions.list(ConfigurationType.URL_WHITELIST_CONFIG).then(() => {\n const config = getConfig(ConfigurationType.URL_WHITELIST_CONFIG, configuration);\n\n setViewConfig(config);\n setFormConfig(config);\n });\n }, [configuration]);\n\n const summary = (): React.ReactElement<'tr'>[] => {\n const literal = 'literal';\n const { entries } = viewConfig;\n\n return entries.map((urlConfig, idx) => (\n \n {idx + 1}\n {urlConfig.title}\n {urlConfig.value}\n {urlConfig.type === literal ? 'Exact match' : 'Regex'}\n \n ));\n };\n\n const openModal = () => {\n setShowConfigModal(true);\n };\n\n const closeModal = () => {\n setShowConfigModal(false);\n setFormConfig(viewConfig);\n };\n\n const saveConfig = () => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.URL_WHITE_LIST_UPDATED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'urlwhitelist',\n app_action_value: 'configuration-save',\n });\n\n ConfigurationsActions.updateWhitelist(ConfigurationType.URL_WHITELIST_CONFIG, formConfig).then(() => {\n closeModal();\n });\n };\n\n const update = (newConfig: WhiteListConfig, newIsValid: boolean) => {\n setFormConfig(newConfig);\n setIsValid(newIsValid);\n };\n\n if (!viewConfig || !formConfig) {\n return ;\n }\n\n const { entries, disabled } = formConfig;\n\n return (\n
\n

URL Whitelist Configuration {disabled ? (Disabled) : (Enabled)}

\n

\n When enabled, outgoing HTTP requests from Graylog servers, such as event notifications or HTTP-based data\n adapter requests, are validated against the whitelists configured here.\n Because the HTTP requests are made from the Graylog servers, they might be able to reach more sensitive systems\n than an external user would have access to, including AWS EC2 metadata, which can contain keys and other\n secrets, Elasticsearch and others.\n Whitelist administrative access is separate from data adapters and event notification configuration.\n

\n \n \n \n \n \n \n \n \n \n \n {summary()}\n \n
#TitleURLType
\n \n \n \n {showConfigModal && (\n \n

Whitelist URLs

\n \n
\n )}\n
\n );\n};\n\nexport default UrlWhiteListConfig;\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, useEffect } from 'react';\nimport { Form, Formik } from 'formik';\nimport capitalize from 'lodash/capitalize';\nimport styled, { css } from 'styled-components';\nimport 'components/indices/rotation';\nimport 'components/indices/retention';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport { getConfig } from 'components/configurations/helpers';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport type { MaintenanceOptions, RotationStrategyConfig, RetentionStrategyConfig } from 'components/indices/Types';\nimport { IndicesConfigurationActions } from 'stores/indices/IndicesConfigurationStore';\nimport IndexMaintenanceStrategiesConfiguration from 'components/indices/IndexMaintenanceStrategiesConfiguration';\nimport { Button, Col, Modal, Row } from 'components/bootstrap';\nimport { IfPermitted, TimeUnitInput, Spinner } from 'components/common';\nimport IndexMaintenanceStrategiesSummary from 'components/indices/IndexMaintenanceStrategiesSummary';\nimport IndexRetentionProvider from 'components/indices/contexts/IndexRetentionProvider';\nimport { TIME_BASED_SIZE_OPTIMIZING_ROTATION_STRATEGY } from 'stores/indices/IndicesStore';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport FormikInput from '../common/FormikInput';\n\nexport type IndexConfig = {\n index_prefix: string,\n index_analyzer: string,\n shards: number,\n replicas: number,\n index_optimization_max_num_segments: number,\n index_optimization_disabled: boolean,\n field_type_refresh_interval: number,\n field_type_refresh_interval_unit: 'seconds' | 'minutes',\n rotation_strategy_config: RotationStrategyConfig,\n rotation_strategy_class: string,\n retention_strategy_config: RetentionStrategyConfig,\n retention_strategy_class: string,\n}\n\nconst TIME_UNITS = ['SECONDS', 'MINUTES'];\n\nconst StyledDefList = styled.dl.attrs({ className: 'deflist' })(({ theme }) => css`\n &&.deflist {\n dd {\n padding-left: ${theme.spacings.md};\n margin-left: 200px;\n }\n }\n`);\n\nconst IndexSetsDefaultsConfig = () => {\n const [showModal, setShowModal] = useState(false);\n const [viewConfig, setViewConfig] = useState(undefined);\n const [formConfig, setFormConfig] = useState(undefined);\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n const [rotationStrategies, setRotationStrategies] = useState();\n const [retentionStrategies, setRetentionStrategies] = useState();\n\n const handleSaveConfig = async (configToSave: IndexConfig) => (\n ConfigurationsActions.updateIndexSetDefaults(ConfigurationType.INDEX_SETS_DEFAULTS_CONFIG, configToSave)\n );\n\n const sendTelemetry = useSendTelemetry();\n const { pathname } = useLocation();\n\n useEffect(() => {\n ConfigurationsActions.list(ConfigurationType.INDEX_SETS_DEFAULTS_CONFIG).then(() => {\n IndicesConfigurationActions.loadRotationStrategies().then((loadedRotationStrategies) => {\n setRotationStrategies(loadedRotationStrategies);\n });\n\n IndicesConfigurationActions.loadRetentionStrategies().then((loadedRetentionStrategies) => {\n setRetentionStrategies(loadedRetentionStrategies);\n });\n\n const config = getConfig(ConfigurationType.INDEX_SETS_DEFAULTS_CONFIG, configuration);\n\n setViewConfig(config);\n setFormConfig(config);\n });\n }, [configuration]);\n\n const saveConfig = (values, { setSubmitting }) => {\n const defaultIndexValues = { ...values };\n\n if (defaultIndexValues.rotation_strategy_class === TIME_BASED_SIZE_OPTIMIZING_ROTATION_STRATEGY) {\n defaultIndexValues.rotation_strategy_config = defaultIndexValues?.rotation_strategy;\n }\n\n delete defaultIndexValues?.rotation_strategy;\n delete defaultIndexValues?.retention_strategy;\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.INDEX_SETS_UPDATED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'index-default',\n app_action_value: 'configuration-save',\n });\n\n handleSaveConfig(defaultIndexValues)\n .then(() => {\n setShowModal(false);\n })\n .catch(() => {\n setSubmitting(false);\n });\n };\n\n const resetConfig = () => {\n setShowModal(false);\n setFormConfig(viewConfig);\n };\n\n if (!rotationStrategies || !rotationStrategies || !viewConfig) {\n return ;\n }\n\n const rotationConfig = (configToUse) => ({\n config: configToUse.rotation_strategy_config,\n strategy: configToUse.rotation_strategy_class,\n });\n\n const retentionConfig = (configToUse) => ({\n config: configToUse.retention_strategy_config,\n strategy: configToUse.retention_strategy_class,\n });\n\n const getRotationConfigState = (strategy: string, data: RotationStrategyConfig) => ({\n rotation_strategy_config: data,\n rotation_strategy_class: strategy,\n });\n\n const getRetentionConfigState = (strategy: string, data: RetentionStrategyConfig) => ({\n retention_strategy_class: strategy,\n retention_strategy_config: data,\n });\n\n const modalTitle = 'Configure Index Set Defaults';\n\n return (\n \n
\n

Index Set Defaults Configuration

\n

Defaults for newly created index sets.

\n {!viewConfig || !formConfig ? : (\n <>\n \n
Index analyzer:
\n
{viewConfig.index_analyzer}
\n
Shards per Index:
\n
{viewConfig.shards}
\n
Replicas per Index:
\n
{viewConfig.replicas}
\n
Index optimization disabled:
\n
{viewConfig.index_optimization_disabled ? 'Yes' : 'No'}
\n
Max. Number of Segments:
\n
{viewConfig.index_optimization_max_num_segments}
\n
Field type refresh interval:
\n
{viewConfig.field_type_refresh_interval} {capitalize(viewConfig.field_type_refresh_interval_unit)}
\n
\n \n \n
\n\n

\n \n \n \n

\n\n \n \n {({ values, setFieldValue, isSubmitting }) => (\n
\n \n {modalTitle}\n \n\n \n
\n \n \n \n \n \n \n \n {\n setFieldValue('field_type_refresh_interval', value);\n setFieldValue('field_type_refresh_interval_unit', unit);\n }}\n value={values.field_type_refresh_interval}\n unit={values.field_type_refresh_interval_unit}\n enabled\n hideCheckbox\n units={TIME_UNITS} />\n \n\n \n \n \n
\n
\n\n \n \n \n \n
\n )}\n
\n
\n \n )}\n
\n
\n );\n};\n\nexport default IndexSetsDefaultsConfig;\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 { useEffect, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Form, Formik } from 'formik';\n\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport type { PermissionsConfigType } from 'stores/configurations/ConfigurationsStore';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { getConfig } from 'components/configurations/helpers';\nimport { Button, Col, Modal, Row } from 'components/bootstrap';\nimport FormikInput from 'components/common/FormikInput';\nimport Spinner from 'components/common/Spinner';\nimport { InputDescription, ModalSubmit, IfPermitted } from 'components/common';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst StyledDefList = styled.dl.attrs({ className: 'deflist' })(({ theme }) => css`\n &&.deflist {\n dd {\n padding-left: ${theme.spacings.md};\n margin-left: 200px;\n }\n }\n`);\n\nconst LabelSpan = styled.span(({ theme }) => css`\n margin-left: ${theme.spacings.sm};\n font-weight: bold;\n`);\n\nconst PermissionsConfig = () => {\n const [showModal, setShowModal] = useState(false);\n const [config, setConfig] = useState(undefined);\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n\n const sendTelemetry = useSendTelemetry();\n const { pathname } = useLocation();\n\n useEffect(() => {\n ConfigurationsActions.listPermissionsConfig(ConfigurationType.PERMISSIONS_CONFIG).then(() => {\n setConfig(getConfig(ConfigurationType.PERMISSIONS_CONFIG, configuration));\n });\n }, [configuration]);\n\n const saveConfig = (values: PermissionsConfigType) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.PERMISSIONS_UPDATED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'permissions',\n app_action_value: 'configuration-save',\n });\n\n ConfigurationsActions.update(ConfigurationType.PERMISSIONS_CONFIG, values).then(() => {\n setShowModal(false);\n });\n };\n\n const resetConfig = () => {\n setShowModal(false);\n };\n\n const modalTitle = 'Configure Permissions';\n\n return (\n
\n

Permissions Configuration

\n

These settings can be used to control which entity sharing options are available.

\n\n {!config ? : (\n <>\n \n
Share with everyone:
\n
{config.allow_sharing_with_everyone ? 'Enabled' : 'Disabled'}
\n
Share with users:
\n
{config.allow_sharing_with_users ? 'Enabled' : 'Disabled'}
\n
\n\n \n

\n \n

\n
\n\n \n \n\n {({ isSubmitting }) => (\n
\n \n {modalTitle}\n \n\n \n
\n \n \n Share with everyone\n )} />\n \n \n \n Share with users\n )} />\n \n \n\n \n
\n
\n\n \n \n \n
\n )}\n\n
\n
\n \n )}\n
\n );\n};\n\nexport default PermissionsConfig;\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 { ErrorBoundary } from 'react-error-boundary';\n\nimport { Col } from 'components/bootstrap';\n\ntype ErrorFallbackProps = {\n error: {\n message: string,\n },\n title: string,\n};\n\nconst ErrorFallback = ({ error, title }: ErrorFallbackProps) => (\n <>\n

{title}

\n

Something went wrong:

\n
{error.message}
\n \n);\n\ntype BoundaryProps = {\n children: React.ReactNode,\n title: string,\n}\n\nconst Boundary = ({ children, title }: BoundaryProps) => (\n // eslint-disable-next-line react/no-unstable-nested-components\n }>\n {children}\n \n);\n\nconst ConfigletContainer = ({ children, title }: BoundaryProps) => (\n \n \n {children}\n \n \n);\n\nexport default ConfigletContainer;\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 { useEffect, useState } from 'react';\nimport { Navigate, Routes, Route, useResolvedPath } from 'react-router-dom';\nimport URI from 'urijs';\n\nimport ConfigletContainer from 'pages/configurations/ConfigletContainer';\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport usePluginEntities from 'hooks/usePluginEntities';\nimport { getConfig } from 'components/configurations/helpers';\nimport { PluginConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { Col, Nav, NavItem } from 'components/bootstrap';\nimport Spinner from 'components/common/Spinner';\nimport { LinkContainer } from 'components/common/router';\nimport useLocation from 'routing/useLocation';\n\nconst pluginDisplayNames = [\n {\n configType: PluginConfigurationType.COLLECTORS_SYSTEM,\n displayName: 'Collectors System',\n },\n {\n configType: PluginConfigurationType.AWS,\n displayName: 'AWS',\n },\n {\n configType: PluginConfigurationType.THREAT_INTEL,\n displayName: 'Threat Intelligence Lookup',\n },\n {\n configType: PluginConfigurationType.FAILURE_PROCESSING,\n displayName: 'Failure Processing',\n },\n {\n configType: PluginConfigurationType.TRAFFIC_LIMIT_VIOLATION,\n displayName: 'Traffic Limit Violation',\n },\n {\n configType: PluginConfigurationType.GEO_LOCATION,\n displayName: 'Geo-Location Processor',\n },\n];\n\ntype PluginSectionLinkProps = {\n configType: string,\n displayName: string,\n}\n\nconst PluginSectionLink = ({ configType, displayName }: PluginSectionLinkProps) => {\n const absolutePath = useResolvedPath(configType);\n const location = useLocation();\n\n const isActive = URI(location.pathname).equals(absolutePath.pathname)\n || location.pathname.startsWith(absolutePath.pathname);\n\n return (\n \n \n {displayName}\n \n \n );\n};\n\nconst PluginsConfig = () => {\n const [activeSectionKey, setActiveSectionKey] = useState(1);\n const [isLoaded, setIsLoaded] = useState(false);\n const pluginSystemConfigs = usePluginEntities('systemConfigurations');\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n\n useEffect(() => {\n const pluginPromises = pluginSystemConfigs\n .map((systemConfig) => ConfigurationsActions.list(systemConfig.configType));\n\n Promise.allSettled(pluginPromises).then(() => {\n setIsLoaded(true);\n });\n }, [configuration, pluginSystemConfigs]);\n\n const onUpdate = (configType: string) => (config) => ConfigurationsActions.update(configType, config);\n\n if (!isLoaded || !pluginSystemConfigs) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n \n } />\n {pluginSystemConfigs\n .map(({ component: SystemConfigComponent, configType }) => (\n \n \n \n )} />\n ))}\n \n \n \n );\n};\n\nexport default PluginsConfig;\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, { useEffect, useState } from 'react';\nimport { Field, Form, Formik } from 'formik';\n\nimport { IfPermitted, Select, TimeUnitInput, ModalSubmit } from 'components/common';\nimport { Button, Col, Input, Modal, Row } from 'components/bootstrap';\nimport FormikInput from 'components/common/FormikInput';\nimport { DocumentationLink } from 'components/support';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nexport type GeoVendorType = 'MAXMIND' | 'IPINFO'\nexport type TimeUnit = 'SECONDS' | 'MINUTES' | 'HOURS' | 'DAYS'\n\nexport type GeoIpConfigType = {\n enabled: boolean;\n enforce_graylog_schema: boolean;\n db_vendor_type: GeoVendorType;\n city_db_path: string;\n asn_db_path: string;\n refresh_interval_unit: TimeUnit;\n refresh_interval: number;\n use_s3: boolean;\n}\n\nexport type OptionType = {\n value: string;\n label: string;\n}\n\ntype Props = {\n config: GeoIpConfigType,\n updateConfig: (config: GeoIpConfigType) => Promise,\n};\n\nconst defaultConfig: GeoIpConfigType = {\n enabled: false,\n enforce_graylog_schema: true,\n db_vendor_type: 'MAXMIND',\n city_db_path: '/etc/graylog/server/GeoLite2-City.mmdb',\n asn_db_path: '/etc/graylog/server/GeoLite2-ASN.mmdb',\n refresh_interval_unit: 'MINUTES',\n refresh_interval: 10,\n use_s3: false,\n};\n\nconst GeoIpResolverConfig = ({ config = defaultConfig, updateConfig }: Props) => {\n const [showModal, setShowModal] = useState(false);\n const [curConfig, setCurConfig] = useState(() => ({ ...defaultConfig }));\n\n const sendTelemetry = useSendTelemetry();\n\n useEffect(() => {\n setCurConfig({ ...config });\n }, [config]);\n\n const resetConfig = () => {\n setCurConfig(config);\n setShowModal(false);\n };\n\n const handleSubmit = (values: GeoIpConfigType) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.GEOLOCATION_CONFIGURATION_UPDATED, {\n app_pathname: 'configurations',\n app_section: 'geolocation-processor',\n });\n\n return updateConfig(values)\n .then((value: GeoIpConfigType) => {\n if ('enabled' in value) {\n setShowModal(false);\n }\n });\n };\n\n const availableVendorTypes = (): OptionType[] => [\n { value: 'MAXMIND', label: 'MaxMind GeoIP' },\n { value: 'IPINFO', label: 'IPInfo Standard Location' },\n ];\n\n const activeVendorType = (type: GeoVendorType) => availableVendorTypes().filter((t) => t.value === type)[0].label;\n\n const modalTitle = 'Update Geo-Location Processor Configuration';\n\n return (\n
\n

Geo-Location Processor Configuration

\n\n

\n The Geo-Location Processor plugin scans all messages for fields containing exclusively an\n IP address, and puts their geo-location information (coordinates, ISO country code, and city name) into\n different fields. Read more in the .\n

\n\n
\n
Enabled:
\n
{config.enabled === true ? 'Yes' : 'No'}
\n {config.enabled && (\n <>\n
Enforce default Graylog schema:
\n
{config.enforce_graylog_schema === true ? 'Yes' : 'No'}
\n
Database vendor type:
\n
{activeVendorType(config.db_vendor_type)}
\n
City database path:
\n
{config.city_db_path}
\n
ASN database path:
\n
{config.asn_db_path === '' ? '-' : config.asn_db_path}
\n
Database refresh interval:
\n
{config.refresh_interval} {config.refresh_interval_unit}
\n
Pull files from S3 bucket:
\n
{config.use_s3 === true ? 'Yes' : 'No'}
\n \n )}\n
\n\n \n \n \n \n \n {({ values, setFieldValue, isSubmitting }) => (\n
\n \n {modalTitle}\n \n \n \n \n \n \n \n \n \n \n \n {() => (\n \n \n \n \n );\n};\n\nStreamSelect.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n streams: PropTypes.array.isRequired,\n};\n\nexport default StreamSelect;\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 DecoratorSummary from 'views/components/messagelist/decorators/DecoratorSummary';\nimport type { Decorator, DecoratorType } from 'views/components/messagelist/decorators/Types';\n\nconst formatDecorator = (\n decorator: Decorator,\n decorators: Array,\n decoratorTypes: { [key: string]: DecoratorType },\n updateFn?: (newDecorators: Array) => unknown,\n) => {\n const typeDefinition = decoratorTypes[decorator.type] || { requested_configuration: {}, name: `Unknown type: ${decorator.type}` } as DecoratorType;\n\n const onUpdate = updateFn\n ? (id: string, updatedDecorator: Decorator) => updateFn(decorators.map((curDecorator) => (curDecorator.id === id ? updatedDecorator : curDecorator)))\n : () => {};\n\n const onDelete = updateFn\n ? (deletedDecoratorId: string) => updateFn(decorators.filter(({ id }) => (id !== deletedDecoratorId)))\n : () => {};\n\n const { id, order } = decorator;\n\n return ({\n id,\n order,\n title: ,\n });\n};\n\nexport default formatDecorator;\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, { useCallback, useState } from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport BootstrapModalWrapper from 'components/bootstrap/BootstrapModalWrapper';\nimport { Modal } from 'components/bootstrap';\nimport { IfPermitted, ModalSubmit } from 'components/common';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport DecoratorList from 'views/components/messagelist/decorators/DecoratorList';\nimport AddDecoratorButton from 'views/components/messagelist/decorators/AddDecoratorButton';\nimport type { Decorator } from 'views/components/messagelist/decorators/Types';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nimport StreamSelect, { DEFAULT_SEARCH_ID, DEFAULT_STREAM_ID } from './StreamSelect';\nimport formatDecorator from './FormatDecorator';\n\ntype Props = {\n streams: Array,\n decorators: Array,\n types: { [key: string]: any },\n // eslint-disable-next-line react/require-default-props\n show?: boolean,\n onCancel: () => void,\n onSave: (newDecorators: Array) => unknown,\n};\n\nconst _updateOrder = (orderedDecorators: Array<{\n id: string\n}>, decorators: Array, onChange: (decorators: Array) => void) => {\n const newDecorators = cloneDeep(decorators);\n\n orderedDecorators.forEach((item, idx) => {\n const decorator = newDecorators.find((i) => i.id === item.id);\n\n if (decorator) {\n decorator.order = idx;\n }\n });\n\n onChange(newDecorators);\n};\n\nconst DecoratorsConfigUpdate = ({ streams, decorators, types, show = false, onCancel, onSave }: Props) => {\n const [currentStream, setCurrentStream] = useState(DEFAULT_STREAM_ID);\n const [modifiedDecorators, setModifiedDecorators] = useState(decorators);\n const sendTelemetry = useSendTelemetry();\n const { pathname } = useLocation();\n\n const onCreate = useCallback(\n ({ stream, ...rest }: Decorator) => setModifiedDecorators([...modifiedDecorators, {\n ...rest,\n stream: stream === DEFAULT_SEARCH_ID ? null : stream,\n }]),\n [modifiedDecorators, setModifiedDecorators],\n );\n const onReorder = useCallback(\n (orderedDecorators: Array<{\n id: string\n }>) => _updateOrder(orderedDecorators, modifiedDecorators, setModifiedDecorators),\n [modifiedDecorators, setModifiedDecorators],\n );\n const onSubmit = useCallback(() => {\n onSave(modifiedDecorators);\n\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.DECORATORS_UPDATED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'decorators',\n app_action_value: 'configuration-save',\n });\n }, [onSave, modifiedDecorators, sendTelemetry, pathname]);\n\n const currentDecorators = modifiedDecorators.filter((decorator) => (decorator.stream || DEFAULT_SEARCH_ID) === currentStream);\n const decoratorItems = currentDecorators\n .sort((d1, d2) => d1.order - d2.order)\n .map((decorator) => formatDecorator(decorator, modifiedDecorators, types, setModifiedDecorators));\n\n const nextOrder = currentDecorators.reduce((currentMax, decorator) => Math.max(currentMax, decorator.order), 0) + 1;\n\n const _onCancel = useCallback(() => {\n setModifiedDecorators(decorators);\n onCancel();\n }, [decorators, onCancel]);\n\n const modalTitle = 'Update Default Decorators Configuration';\n\n return (\n \n \n {modalTitle}\n \n \n

Select the stream for which you want to change the set of default decorators.

\n \n\n \n

Select the type to create a new decorator for this stream:

\n \n
\n\n

Use drag and drop to change the execution order of the decorators.

\n\n \n
\n \n \n \n
\n );\n};\n\nexport default DecoratorsConfigUpdate;\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 difference from 'lodash/difference';\nimport isEqual from 'lodash/isEqual';\n\nimport { DecoratorsActions } from 'stores/decorators/DecoratorsStore';\nimport type { Decorator } from 'views/components/messagelist/decorators/Types';\n\nconst DecoratorsUpdater = (newDecorators: Array, oldDecorators: Array) => {\n const newDecoratorIds: Array = newDecorators.filter(({ id }) => id !== undefined).map(({ id }) => id).sort();\n const oldDecoratorIds: Array = oldDecorators.map(({ id }) => id).sort();\n\n const oldDecoratorsById = oldDecorators\n .reduce((prev, cur) => (cur.id ? { ...prev, [cur.id]: cur } : prev), {});\n const newDecoratorsById = newDecorators\n .reduce((prev, cur) => (cur.id ? { ...prev, [cur.id]: cur } : prev), {});\n\n const createdDecorators = difference(newDecoratorIds, oldDecoratorIds).map((newDecoratorId) => newDecoratorsById[newDecoratorId]);\n const updatedDecorators = newDecorators.filter(({ id }) => id)\n .filter((decorator) => decorator.id && oldDecoratorsById[decorator.id] && !isEqual(decorator, oldDecoratorsById[decorator.id]));\n const deletedDecoratorIds = difference(oldDecoratorIds, newDecoratorIds);\n\n return [\n ...createdDecorators.map(({ id, ...newDecorator }) => () => DecoratorsActions.create(newDecorator)),\n ...updatedDecorators.map((updatedDecorator) => () => DecoratorsActions.update(updatedDecorator.id, updatedDecorator)),\n ...deletedDecoratorIds.map((deletedID) => () => DecoratorsActions.remove(deletedID)),\n ].reduce((prev, cur) => prev.then(() => cur()), Promise.resolve());\n};\n\nexport default DecoratorsUpdater;\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, { useCallback, useMemo, useState } from 'react';\nimport groupBy from 'lodash/groupBy';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { Button } from 'components/bootstrap';\nimport { IfPermitted } from 'components/common';\nimport Spinner from 'components/common/Spinner';\nimport { DecoratorsActions } from 'stores/decorators/DecoratorsStore';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport { StreamsActions } from 'stores/streams/StreamsStore';\nimport UserNotification from 'util/UserNotification';\nimport DecoratorList from 'views/components/messagelist/decorators/DecoratorList';\nimport type { Decorator, DecoratorType } from 'views/components/messagelist/decorators/Types';\nimport { defaultCompare } from 'logic/DefaultCompare';\n\nimport DecoratorsConfigUpdate from './decorators/DecoratorsConfigUpdate';\nimport { DEFAULT_SEARCH_ID } from './decorators/StreamSelect';\nimport DecoratorsUpdater from './decorators/DecoratorsUpdater';\nimport formatDecorator from './decorators/FormatDecorator';\n\nconst DecoratorsConfig = () => {\n const { data: streams, isLoading: streamsLoading } = useQuery>(['streamsMap'], StreamsActions.listStreams);\n const { data: types, isLoading: typesLoading } = useQuery<{ [key: string]: DecoratorType }>(['decorators', 'types'], DecoratorsActions.available);\n const { data: decorators, isLoading: decoratorsLoading, refetch: refetchDecorators } = useQuery>(['decorators', 'available'], DecoratorsActions.list);\n const [showConfigModal, setShowConfigModal] = useState(false);\n const streamsMap = useMemo(() => Object.fromEntries(streams?.map((s) => [s.id, s] as const) ?? []), [streams]);\n\n const openModal = useCallback(() => setShowConfigModal(true), []);\n const closeModal = useCallback(() => setShowConfigModal(false), []);\n\n const onSave = useCallback((newDecorators: Array) => DecoratorsUpdater(newDecorators, decorators)\n .then(\n () => UserNotification.success('Updated decorators configuration.', 'Success!'),\n (error) => UserNotification.error(`Unable to save new decorators: ${error}`, 'Saving decorators failed'),\n )\n .then(refetchDecorators)\n .then(closeModal), [closeModal, decorators, refetchDecorators]);\n\n const decoratorMap = useMemo(() => {\n if (typesLoading || decoratorsLoading) {\n return ;\n }\n\n if (!decorators || decorators.length === 0) {\n return No decorators currently configured.;\n }\n\n const decoratorsGroupedByStream = groupBy(decorators, (decorator) => (decorator.stream || DEFAULT_SEARCH_ID));\n\n return Object.entries(decoratorsGroupedByStream)\n .map(([id, _decorators]) => [\n streamsMap[id]?.title ?? id,\n _decorators.sort((d1, d2) => d1.order - d2.order).map((decorator) => formatDecorator(decorator, _decorators, types)),\n ] as const)\n .sort((entry1, entry2) => defaultCompare(entry1[0], entry2[0]))\n .map(([streamName, _decorators]) => (\n <>\n
{streamName}
\n
\n \n ));\n }, [decorators, decoratorsLoading, streamsMap, types, typesLoading]);\n\n if (streamsLoading || typesLoading || decoratorsLoading) {\n return ;\n }\n\n return (\n
\n

Decorators Configuration

\n

These are the currently configured decorators grouped by stream:

\n

\n {decoratorMap}\n

\n \n \n \n \n
\n );\n};\n\nexport default DecoratorsConfig;\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 { useState, useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Form, Formik } from 'formik';\nimport type { UserConfigType } from 'src/stores/configurations/ConfigurationsStore';\n\nimport { useStore } from 'stores/connect';\nimport type { Store } from 'stores/StoreTypes';\nimport { ConfigurationsActions, ConfigurationsStore } from 'stores/configurations/ConfigurationsStore';\nimport { getConfig } from 'components/configurations/helpers';\nimport { ConfigurationType } from 'components/configurations/ConfigurationTypes';\nimport { Button, Col, Modal, Row } from 'components/bootstrap';\nimport FormikInput from 'components/common/FormikInput';\nimport Spinner from 'components/common/Spinner';\nimport { InputDescription, ModalSubmit, IfPermitted, ISODurationInput } from 'components/common';\nimport useSendTelemetry from 'logic/telemetry/useSendTelemetry';\nimport useLocation from 'routing/useLocation';\nimport { getPathnameWithoutId } from 'util/URLUtils';\nimport { TELEMETRY_EVENT_TYPE } from 'logic/telemetry/Constants';\n\nconst StyledDefList = styled.dl.attrs({ className: 'deflist' })(({ theme }) => css`\n &&.deflist {\n dd {\n padding-left: ${theme.spacings.md};\n margin-left: 200px;\n }\n }\n`);\n\nconst LabelSpan = styled.span(({ theme }) => css`\n margin-left: ${theme.spacings.sm};\n font-weight: bold;\n`);\n\nconst UserConfig = () => {\n const [showModal, setShowModal] = useState(false);\n const [viewConfig, setViewConfig] = useState(undefined);\n const [formConfig, setFormConfig] = useState(undefined);\n const configuration = useStore(ConfigurationsStore as Store>, (state) => state?.configuration);\n\n const sendTelemetry = useSendTelemetry();\n const { pathname } = useLocation();\n\n useEffect(() => {\n ConfigurationsActions.listUserConfig(ConfigurationType.USER_CONFIG).then(() => {\n const config = getConfig(ConfigurationType.USER_CONFIG, configuration);\n\n setViewConfig(config);\n setFormConfig(config);\n });\n }, [configuration]);\n\n const saveConfig = (values) => {\n sendTelemetry(TELEMETRY_EVENT_TYPE.CONFIGURATIONS.USER_UPDATED, {\n app_pathname: getPathnameWithoutId(pathname),\n app_section: 'user',\n app_action_value: 'configuration-save',\n });\n\n ConfigurationsActions.update(ConfigurationType.USER_CONFIG, values).then(() => {\n setShowModal(false);\n });\n };\n\n const resetConfig = () => {\n setShowModal(false);\n setFormConfig(viewConfig);\n };\n\n const timeoutIntervalValidator = (milliseconds: number) => milliseconds >= 1000;\n\n const modalTitle = 'Update User Configuration';\n\n return (\n
\n

Users Configuration

\n

These settings can be used to set a global session timeout value.

\n\n {!viewConfig ? : (\n <>\n \n
Global session timeout:
\n
{viewConfig.enable_global_session_timeout ? 'Enabled' : 'Disabled'}
\n
Timeout interval:
\n
{viewConfig.enable_global_session_timeout ? viewConfig.global_session_timeout_interval : '-'}
\n
\n\n \n

\n \n

\n
\n\n \n \n {({ isSubmitting, values, setFieldValue }) => (\n \n \n {modalTitle}\n \n\n \n
\n \n \n Enable global session timeout\n )} />\n \n \n \n
\n setFieldValue('global_session_timeout_interval', value)}\n label=\"Global session timeout interval (as ISO8601 Duration)\"\n help=\"Session automatically end after this amount of time, unless they are actively used.\"\n validator={timeoutIntervalValidator}\n errorText=\"invalid (min: 1 second)\"\n disabled={!values.enable_global_session_timeout}\n required />\n
\n \n
\n
\n
\n\n \n \n \n \n )}\n
\n
\n \n )}\n
\n );\n};\n\nexport default UserConfig;\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 } from 'react';\nimport styled from 'styled-components';\nimport { Navigate, Routes, Route, useResolvedPath } from 'react-router-dom';\nimport URI from 'urijs';\n\nimport AppConfig from 'util/AppConfig';\nimport { isPermitted } from 'util/PermissionsMixin';\nimport ConfigletRow from 'pages/configurations/ConfigletRow';\nimport { Col, Nav, NavItem } from 'components/bootstrap';\nimport { DocumentTitle, PageHeader, Icon } from 'components/common';\nimport SearchesConfig from 'components/configurations/SearchesConfig';\nimport MessageProcessorsConfig from 'components/configurations/MessageProcessorsConfig';\nimport SidecarConfig from 'components/configurations/SidecarConfig';\nimport EventsConfig from 'components/configurations/EventsConfig';\nimport UrlWhiteListConfig from 'components/configurations/UrlWhiteListConfig';\nimport IndexSetsDefaultsConfig from 'components/configurations/IndexSetsDefaultsConfig';\nimport PermissionsConfig from 'components/configurations/PermissionsConfig';\nimport PluginsConfig from 'components/configurations/PluginsConfig';\nimport 'components/maps/configurations';\nimport useCurrentUser from 'hooks/useCurrentUser';\nimport DataNodeConfiguration from 'components/configurations/DataNodeConfiguration/DataNodeConfiguration';\nimport { LinkContainer } from 'components/common/router';\nimport useLocation from 'routing/useLocation';\n\nimport ConfigurationSection from './configurations/ConfigurationSection';\nimport type { ConfigurationSectionProps } from './configurations/ConfigurationSection';\n\nimport DecoratorsConfig from '../components/configurations/DecoratorsConfig';\nimport UserConfig from '../components/configurations/UserConfig';\n\nconst SubNavIconClosed = styled(Icon)`\n margin-left: 5px;\n vertical-align: middle;\n`;\n\nconst SubNavIconOpen = styled(Icon)`\n margin-left: 5px;\n`;\n\ntype SectionLinkProps = {\n name: string,\n showCaret: boolean,\n}\n\nconst SectionLink = ({ name, showCaret }: SectionLinkProps) => {\n const absolutePath = useResolvedPath(name);\n const location = useLocation();\n\n const isActive = URI(location.pathname).equals(absolutePath.pathname)\n || location.pathname.startsWith(absolutePath.pathname);\n\n return (\n \n \n {name}\n {showCaret && (isActive ? : )}\n \n \n );\n};\n\nconst ConfigurationsPage = () => {\n const currentUser = useCurrentUser();\n const isCloud = AppConfig.isCloud();\n\n const configurationSections: Array<{\n name: string,\n hide?: boolean,\n SectionComponent: React.ComponentType,\n props?: ConfigurationSectionProps,\n showCaret?: boolean,\n catchAll?: boolean,\n }> = useMemo(() => [\n {\n name: 'Search',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: SearchesConfig,\n title: 'Search',\n },\n },\n {\n name: 'Message Processors',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: MessageProcessorsConfig,\n title: 'Message Processors',\n },\n },\n {\n name: 'Sidecars',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: SidecarConfig,\n title: 'Sidecars',\n },\n },\n {\n name: 'Events',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: EventsConfig,\n title: 'Events',\n },\n\n },\n {\n name: 'URL Whitelist',\n hide: !isPermitted(currentUser.permissions, ['urlwhitelist:read']),\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: UrlWhiteListConfig,\n title: 'URL Whitelist',\n },\n },\n {\n name: 'Decorators',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: DecoratorsConfig,\n title: 'Decorators',\n },\n },\n {\n name: 'Permissions',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: PermissionsConfig,\n title: 'Permissions',\n },\n },\n {\n name: 'Index Set Defaults',\n hide: isCloud,\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: IndexSetsDefaultsConfig,\n title: 'Index Set Defaults',\n },\n },\n {\n name: 'Users',\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: UserConfig,\n title: 'Index Set Defaults',\n },\n },\n {\n name: 'Data Node',\n hide: isCloud,\n SectionComponent: ConfigurationSection,\n props: {\n ConfigurationComponent: DataNodeConfiguration,\n title: 'Certificate Renewal Policy',\n },\n },\n {\n name: 'Plugins',\n SectionComponent: PluginsConfig,\n showCaret: true,\n catchAll: true,\n },\n ].filter(({ hide }) => !hide), [currentUser?.permissions, isCloud]);\n\n return (\n \n \n \n You can configure system settings for different sub systems on this page.\n \n \n\n \n \n \n \n\n \n } />\n {configurationSections.flatMap(({ catchAll, name, props = {}, SectionComponent }) => (\n } />\n ))}\n \n \n \n );\n};\n\nexport default ConfigurationsPage;\n"],"names":["getConfig","configType","configuration","ItemWrapper","StyledInput","IconWrapper","Description","contextSettings","TimeRangePresetFormItem","idx","id","timerange","description","onChange","onRemove","limitDuration","handleOnChangeRange","newTimerange","handleOnChangeDescription","newDescription","handleOnRemove","debounceHandleOnChangeDescription","value","options","onUpdate","newPreset","newState","config","SearchConfigStore","onMoveItem","items","addTimeRange","generateId","customContentRender","index","TimeRangeInputSettingsContext","StyledDL","getTimeRangeValueSummary","assertUnreachable","TimeRangePresetOptionSummary","TimeRangeOptionsForm","ObjectUtils","removedIdx","changedIdx","field","e","_o","option","period","errorStyle","ISODurationUtils","TimeRangeOptionsSummary","timerangeOptionsSummary","key","queryTimeRangeLimitValidator","milliseconds","surroundingTimeRangeValidator","autoRefreshTimeRangeValidator","splitStringList","stringList","f","buildTimeRangeOptions","mapQuickAccessBEData","formatTime","presetId","userTimezone","useUserDateTime","isLimitEnabled","showConfigModal","setShowConfigModal","viewConfig","setViewConfig","formConfig","setFormConfig","ConfigurationsStore","state","relativeTimeRangeOptionsUpdate","setRelativeTimeRangeOptionsUpdate","surroundingTimeRangeOptionsUpdate","setSurroundingTimeRangeOptionsUpdate","autoRefreshTimeRangeOptionsUpdate","setAutoRefreshTimeRangeOptionsUpdate","surroundingFilterFieldsUpdate","setSurroundingFilterFieldsUpdate","analysisDisabledFieldsUpdate","setAnalysisDisabledFieldsUpdate","defaultAutoRefreshOptionUpdate","setDefaultAutoRefreshOptionUpdate","timeRangePresetsUpdated","setTimeRangePresetsUpdated","sendTelemetry","useSendTelemetry","pathname","useLocation","newOptions","onTimeRangePresetsUpdate","data","onSurroundingTimeRangeOptionsUpdate","onAutoRefreshTimeRangeOptionsUpdate","onFilterFieldsUpdate","onAnalysisDisabledFieldsUpdate","onAutoRefreshDefaultOptionsUpdate","onChecked","queryTimeRangeLimit","openModal","resetFormUpdates","handleModalCancel","saveConfig","update","entry","defaultAutoRefreshOption","newFormConfig","timeRangePresetsFromBE","timeRangePresets","Spinner","duration","limit","autoRefreshOptions","formDefaultAutoRefreshOptionUpdate","Select","closeModal","hasNoActiveProcessor","updateSorting","newSorting","processorOrder","item","toggleStatus","className","enabled","disabledProcessors","processorName","isProcessorEnabled","processor","p","summary","status","sortableItems","statusForm","a","BootstrapModalForm","DEFAULT_CONFIG","loaded","setLoaded","newValue","inactiveThresholdValidator","expirationThresholdValidator","durationMilliseconds","updateIntervalValidator","inactiveMilliseconds","expirationMilliseconds","StringUtils","TIME_UNITS","DEFAULT_CATCH_UP_WINDOW","propagateChanges","searchTimeoutValidator","notificationsRetryValidator","onSearchTimeoutUpdate","nextValue","nextUnit","durationInMs","onRetryPeriodUpdate","onBacklogUpdate","event","onCatchUpWindowUpdate","nextEnabled","catchupWindowinMs","onNotificationTcpKeepAliveUpdate","titleCase","str","eventsSearchTimeout","eventsNotificationRetryPeriod","eventsCatchupWindow","eventsNotificationDefaultBacklog","eventsNotificationTcpKeepalive","Input","isValid","setIsValid","literal","entries","urlConfig","newConfig","newIsValid","disabled","UrlWhiteListForm","StyledDefList","theme","showModal","setShowModal","rotationStrategies","setRotationStrategies","retentionStrategies","setRetentionStrategies","handleSaveConfig","configToSave","loadedRotationStrategies","loadedRetentionStrategies","values","setSubmitting","defaultIndexValues","resetConfig","rotationConfig","configToUse","retentionConfig","getRotationConfigState","strategy","getRetentionConfigState","modalTitle","IndexRetentionProvider","IndexMaintenanceStrategiesSummary","setFieldValue","isSubmitting","FormikInput","unit","IndexMaintenanceStrategiesConfiguration","LabelSpan","setConfig","ErrorFallback","error","title","Boundary","children","props","pluginDisplayNames","PluginSectionLink","displayName","absolutePath","location","isActive","activeSectionKey","setActiveSectionKey","isLoaded","setIsLoaded","pluginSystemConfigs","usePluginEntities","pluginPromises","systemConfig","obj","SystemConfigComponent","defaultConfig","updateConfig","curConfig","setCurConfig","handleSubmit","availableVendorTypes","activeVendorType","type","t","TIME_UNITS_UPPER","smallestUnit","fetchCurrentConfig","NoExistingPolicy","createPolicy","certicateRenewalModes","mode","queryKey","renewalModeExplanation","lifetimeExplanation","CertificateRenewalPolicyConfig","currentConfig","isLoading","queryClient","err","UserNotification","certificate_lifetime","lifetimeUnit","lifetimeValue","isValidating","name","ModalSubmit","StyledButton","Button","otherProps","ref","Dropzone","FormikTextInput","placeholder","label","required","onBlur","validationError","Grid","getPrefixForType","Icon","iconLookup","StyledList","List","menuStyles","MenuDropdownWrapper","MenuItem","menuItemAdapter","href","icon","onSelect","MenuTarget","TitleActionContainer","SubsectionContainer","SectionContainer","SectionHeader","actions","titleOrder","Subsection","Section","dataTestid","SelectStyles","Space","Tabs","NodeId","SecureIcon","isSecure","address","colorByState","lockIcon","isConnecting","ConnectingSpinner","nodeId","transportAddress","DataNodeInfos","NodeIdColumn","fetchDataNodes","useDataNodes","isInitialLoading","errorThrown","RightCol","renewalWording","provisioningWording","CertRenewalButton","isRenewing","setIsRenewing","buttonTitle","buttonLoadingTitle","successActionTitle","errorActionTitle","telemetryAppSection","buttonStyle","onCertificateRenewal","ErrorBadge","message","dataNodes","isInitialLoadingDataNodes","sortedDataNodes","d1","d2","node_id","hostname","transport_address","short_node_id","cert_valid_until","error_msg","Container","ConfigurationComponent","DEFAULT_STREAM_ID","DEFAULT_SEARCH_ID","SelectContainer","StreamSelect","streams","key1","key2","decorator","decorators","decoratorTypes","updateFn","typeDefinition","updatedDecorator","curDecorator","onDelete","deletedDecoratorId","order","DecoratorSummary","_updateOrder","orderedDecorators","newDecorators","i","types","show","onCancel","onSave","currentStream","setCurrentStream","modifiedDecorators","setModifiedDecorators","onCreate","stream","rest","onReorder","onSubmit","currentDecorators","decoratorItems","nextOrder","currentMax","_onCancel","BootstrapModalWrapper","AddDecoratorButton","DecoratorList","oldDecorators","newDecoratorIds","oldDecoratorIds","oldDecoratorsById","prev","cur","newDecoratorsById","createdDecorators","newDecoratorId","updatedDecorators","deletedDecoratorIds","newDecorator","deletedID","streamsLoading","typesLoading","decoratorsLoading","refetchDecorators","streamsMap","s","decoratorMap","decoratorsGroupedByStream","_decorators","entry1","entry2","streamName","timeoutIntervalValidator","SubNavIconClosed","SubNavIconOpen","SectionLink","showCaret","currentUser","useCurrentUser","isCloud","AppConfig","configurationSections","hide","catchAll","SectionComponent"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy