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

web-interface.assets.34f7b5a4-42.70f5b2079d806d300f3e.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.5
Show newest version
{"version":3,"sources":["webpack:///./src/components/support/SmallSupportLink.jsx","webpack:///./src/components/support/index.jsx","webpack:///./src/components/configurations/ConfigurationStyles.css","webpack:///./src/stores/streams/StreamsStore.js","webpack:///./src/components/configurations/TimeRangeOptionsForm.jsx","webpack:///./src/components/configurations/TimeRangeOptionsSummary.jsx","webpack:///./src/components/configurations/SearchesConfig.jsx","webpack:///./src/components/configurations/MessageProcessorsConfig.jsx","webpack:///./src/components/configurations/SidecarConfig.jsx","webpack:///./src/components/configurations/EventsConfig.jsx","webpack:///./src/components/configurations/UrlWhiteListConfig.jsx","webpack:///./src/components/configurations/decorators/StreamSelect.jsx","webpack:///./src/components/configurations/decorators/FormatDecorator.jsx","webpack:///./src/components/configurations/decorators/DecoratorsConfigUpdate.jsx","webpack:///./src/components/configurations/decorators/DecoratorsUpdater.js","webpack:///./src/components/configurations/DecoratorsConfig.jsx","webpack:///./src/components/maps/configurations/GeoIpResolverConfig.jsx","webpack:///./src/components/maps/configurations/index.js","webpack:///./src/pages/ConfigurationsPage.jsx","webpack:///./src/components/configurations/ConfigurationStyles.css?6d5e"],"names":["IconStack","styled","span","SmallSupportLink","className","name","inverse","this","props","children","React","Component","PropTypes","node","isRequired","module","exports","push","i","CurrentUserStore","CombinedProvider","get","StreamsStore","Reflux","createStore","callbacks","listStreams","fetch","URLUtils","qualifyUrl","then","result","streams","errorThrown","UserNotification","error","load","callback","streamId","url","ApiRoutes","StreamsApiController","remove","reload","_emitChange","bind","pause","response","resume","save","stream","create","update","data","cloneStream","removeOutput","outputId","StreamOutputsApiController","addOutput","add","outputs","testMatch","message","onChange","forEach","unregister","lodash","pull","TimeRangeOptionsForm","options","ObjectUtils","clone","period","description","_update","removedIdx","splice","changedIdx","field","e","o","idx","value","target","toUpperCase","startsWith","map","option","errorStyle","ISODurationUtils","durationStyle","validator","key","xs","type","_onChange","formatDuration","placeholder","style","cursor","onClick","_onRemove","title","help","_buildTimeRangeOptions","bsSize","_onAdd","addButtonTitle","array","string","any","func","TimeRangeOptionsSummary","timerangeOptionsSummary","Object","keys","object","SearchesConfig","createReactClass","displayName","propTypes","config","updateConfig","getInitialState","queryTimeRangeLimit","_getPropConfigValue","query_time_range_limit","relative_timerange_options","surrounding_timerange_options","surrounding_filter_fields","analysis_disabled_fields","limitEnabled","moment","duration","asMilliseconds","relativeTimeRangeOptionsUpdate","undefined","surroundingTimeRangeOptionsUpdate","_onUpdate","newOptions","state","setState","_onRelativeTimeRangeOptionsUpdate","_onSurroundingTimeRangeOptionsUpdate","_onFilterFieldsUpdate","surroundingFilterFields","_onAnalysisDisabledFieldsUpdate","analysisDisabledFields","_onChecked","_isEnabled","_splitStringList","stringList","split","f","trim","filter","length","_saveConfig","entry","_closeModal","_resetConfig","_openModal","searchesConfigModal","open","close","queryTimeRangeLimitValidator","milliseconds","relativeTimeRangeValidator","surroundingTimeRangeValidator","render","filterFields","filterFieldsString","analysisDisabledFieldsString","limit","format","join","md","permissions","bsStyle","ref","onSubmitForm","onModalClose","submitButtonText","id","label","checked","required","MessageProcessorsConfig","getDefaultProps","disabled_processors","processor_order","inputs","configModal","_hasNoActiveProcessor","_updateSorting","newSorting","item","class_name","_toggleStatus","disabledProcessors","p","indexOf","_noActiveProcessorWarning","_summary","processor","status","_sortableItems","_statusForm","sort","a","b","naturalSort","enabled","elem","striped","bordered","condensed","BootstrapModalForm","items","onMoveItem","SidecarConfig","shape","sidecar_expiration_threshold","sidecar_inactive_threshold","sidecar_update_interval","sidecar_send_status","bool","sidecar_configuration_override","componentWillReceiveProps","newProps","refs","FormUtils","getValueFromInput","_inactiveThresholdValidator","_expirationThresholdValidator","_updateIntervalValidator","inactiveMilliseconds","_durationMilliseconds","expirationMilliseconds","isValidDuration","StringUtils","capitalizeFirstLetter","toString","errorText","TIME_UNITS","EventsConfig","events_search_timeout","number","events_notification_retry_period","events_notification_default_backlog","events_catchup_window","modal","_propagateChanges","nextConfig","cloneDeep","_onSearchTimeoutUpdate","nextValue","nextUnit","durationInMs","_searchTimeoutValidator","_onRetryPeriodUpdate","_notificationsRetryValidator","_onBacklogUpdate","event","_onCatchUpWindowUpdate","nextEnabled","catchupWindowinMs","_titleCase","str","capitalize","eventsSearchTimeout","extractDurationAndUnit","eventsNotificationRetryPeriod","eventsCatchupWindow","eventsNotificationDefaultBacklog","unit","controlId","units","Input","min","UrlWhiteListConfig","entries","urlConfig","isValid","updatedState","disabled","submitButtonDisabled","UrlWhiteListForm","urls","onUpdate","DEFAULT_SEARCH_ID","SelectContainer","div","StreamSelect","key1","key2","defaultCompare","Select","inputId","clearable","formatDecorator","decorator","decorators","decoratorTypes","updateFn","typeDefinition","requested_configuration","updatedDecorator","curDecorator","onDelete","deletedDecoratorId","order","DecoratorSummary","disableMenu","DecoratorsConfigUpdate","modalRef","types","show","onCancel","onSave","useState","currentStream","setCurrentStream","modifiedDecorators","setModifiedDecorators","onCreate","useCallback","rest","onReorder","orderedDecorators","newDecorators","find","_updateOrder","onSubmit","currentDecorators","decoratorItems","d1","d2","nextOrder","reduce","currentMax","Math","max","BootstrapModalWrapper","showModal","onHide","Header","closeButton","Title","Body","AddDecoratorButton","showHelp","DecoratorList","Footer","defaultProps","forwardRef","DecoratorsActions","DecoratorsUpdater","oldDecorators","newDecoratorIds","oldDecoratorIds","oldDecoratorsById","prev","cur","newDecoratorsById","createdDecorators","difference","newDecoratorId","updatedDecorators","isEqual","deletedDecoratorIds","newDecorator","deletedID","Promise","resolve","DecoratorsConfig","setStreams","setDecorators","setTypes","useRef","useEffect","available","list","openModal","current","closeModal","Spinner","decoratorsGroupedByStream","groupBy","readOnlyDecoratorItems","streamOptions","includes","disableDragging","success","GeoIpResolverConfig","db_type","db_path","run_before_extractors","_updateConfigField","_onCheckboxClick","getChecked","geoIpConfigModal","_availableDatabaseTypes","_activeDatabaseType","t","page","text","configEnabled","matchProp","_onDbTypeSelect","href","rel","PluginStore","register","PluginManifest","systemConfigurations","component","configType","ConfigurationsActions","ConfigurationsStore","SEARCHES_CLUSTER_CONFIG","MESSAGE_PROCESSORS_CONFIG","SIDECAR_CONFIG","EVENTS_CONFIG","URL_WHITELIST_CONFIG","ConfigurationsPage","configuration","updateMessageProcessorsConfig","updateWhitelist","systemConfig","createElement","_getConfig","pluginConfigs","_pluginConfigs","rows","shift","checkLoadedTimer","setTimeout","loaded","_clearTimeout","_checkConfig","clearTimeout","use","currentUser","listMessageProcessorsConfig","isPermitted","listWhiteListConfig","unuse","Output","searchesConfig","messageProcessorsConfig","sidecarConfig","eventsConfig","urlWhiteListConfig","pluginConfigRows","_pluginConfigRows","connect","configurations","dispose","content","locals","unref"],"mappings":"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","file":"34f7b5a4-42.70f5b2079d806d300f3e.js","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nconst IconStack = styled.span`\n  margin-right: 1px;\n  position: relative;\n  top: -1px;\n`;\n\nclass SmallSupportLink extends React.Component {\n  static propTypes = {\n    children: PropTypes.node.isRequired,\n  };\n\n  render() {\n    return (\n      

\n \n \n \n \n \n {this.props.children}\n \n

\n );\n }\n}\n\nexport default SmallSupportLink;\n","export { default as ContactUs } from './ContactUs';\nexport { default as DocumentationLink } from './DocumentationLink';\nexport { default as SmallSupportLink } from './SmallSupportLink';\nexport { default as SupportLink } from './SupportLink';\n","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".deflist{margin-top:10px}.deflist dt{float:left;clear:left}.deflist dd{margin-left:160px}.top-margin,hr.separator{margin-top:10px}hr.separator{margin-bottom:5px}\", \"\"]);\n\n// exports\n","// @flow strict\nimport Reflux from 'reflux';\nimport lodash from 'lodash';\n\nimport fetch from 'logic/rest/FetchProvider';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport URLUtils from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport CombinedProvider from 'injection/CombinedProvider';\n\nconst { CurrentUserStore } = CombinedProvider.get('CurrentUser');\n\nexport type Stream = {\n id: string,\n title: string,\n description: string,\n remove_matches_from_default_stream: boolean,\n isDefaultStream: boolean,\n creatorUser: string,\n createdAt: number,\n};\n\ntype TestMatchResponse = {\n matches: boolean,\n rules: any,\n};\n\ntype Callback = {\n (): void,\n};\n\ntype StreamSummaryResponse = {\n total: number,\n streams: Array,\n};\n\nconst StreamsStore = Reflux.createStore({\n callbacks: [],\n\n listStreams() {\n const url = '/streams';\n const promise = fetch('GET', URLUtils.qualifyUrl(url))\n .then((result: StreamSummaryResponse) => result.streams)\n .catch((errorThrown) => {\n UserNotification.error(`Loading streams failed with status: ${errorThrown}`,\n 'Could not load streams');\n });\n return promise;\n },\n load(callback: ((streams: Array) => void)) {\n this.listStreams()\n .then((streams) => {\n callback(streams);\n });\n },\n get(streamId: string, callback: ((stream: Stream) => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Loading Stream failed with status: ${errorThrown}`,\n 'Could not retrieve Stream');\n };\n\n const { url } = ApiRoutes.StreamsApiController.get(streamId);\n fetch('GET', URLUtils.qualifyUrl(url))\n .then(callback, failCallback);\n },\n remove(streamId: string, callback: (() => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Removing Stream failed with status: ${errorThrown}`,\n 'Could not remove Stream');\n };\n\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.delete(streamId).url);\n fetch('DELETE', url)\n .then(callback, failCallback)\n .then(() => CurrentUserStore.reload()\n .then(this._emitChange.bind(this)));\n },\n pause(streamId: string, callback: (() => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Pausing Stream failed with status: ${errorThrown}`,\n 'Could not pause Stream');\n };\n\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.pause(streamId).url);\n return fetch('POST', url)\n .then(callback, failCallback)\n .then((response) => {\n this._emitChange();\n return response;\n });\n },\n resume(streamId: string, callback: (() => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Resuming Stream failed with status: ${errorThrown}`,\n 'Could not resume Stream');\n };\n\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.resume(streamId).url);\n return fetch('POST', url)\n .then(callback, failCallback)\n .then((response) => {\n this._emitChange();\n return response;\n });\n },\n save(stream: any, callback: ((streamId: string) => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Saving Stream failed with status: ${errorThrown}`,\n 'Could not save Stream');\n };\n\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.create().url);\n fetch('POST', url, stream)\n .then(callback, failCallback)\n .then(() => CurrentUserStore.reload()\n .then(this._emitChange.bind(this)));\n },\n update(streamId: string, data: any, callback: ((stream: Stream) => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Updating Stream failed with status: ${errorThrown}`,\n 'Could not update Stream');\n };\n\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.update(streamId).url);\n fetch('PUT', url, data)\n .then(callback, failCallback)\n .then(this._emitChange.bind(this));\n },\n cloneStream(streamId: string, data: any, callback: ((streamId: string) => void)) {\n const failCallback = (errorThrown) => {\n UserNotification.error(`Cloning Stream failed with status: ${errorThrown}`,\n 'Could not clone Stream');\n };\n\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.cloneStream(streamId).url);\n fetch('POST', url, data)\n .then(callback, failCallback)\n .then(() => CurrentUserStore.reload()\n .then(this._emitChange.bind(this)));\n },\n removeOutput(streamId: string, outputId: string, callback: () => void) {\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamOutputsApiController.delete(streamId, outputId).url);\n\n fetch('DELETE', url)\n .then(callback, (errorThrown) => {\n UserNotification.error(`Removing output from stream failed with status: ${errorThrown}`,\n 'Could not remove output from stream');\n })\n .then(this._emitChange.bind(this));\n },\n addOutput(streamId: string, outputId: string, callback: (response: any) => void) {\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamOutputsApiController.add(streamId, outputId).url);\n fetch('POST', url, { outputs: [outputId] })\n .then(callback, (errorThrown) => {\n UserNotification.error(`Adding output to stream failed with status: ${errorThrown}`,\n 'Could not add output to stream');\n })\n .then(this._emitChange.bind(this));\n },\n testMatch(streamId: string, message: any, callback: (response: TestMatchResponse) => void) {\n const url = URLUtils.qualifyUrl(ApiRoutes.StreamsApiController.testMatch(streamId).url);\n fetch('POST', url, message)\n .then(callback, (error) => {\n UserNotification.error(`Testing stream rules of stream failed with status: ${error.message}`,\n 'Could not test stream rules of stream');\n });\n },\n onChange(callback: Callback) {\n this.callbacks.push(callback);\n },\n _emitChange() {\n this.callbacks.forEach((callback) => callback());\n },\n unregister(callback: Callback) {\n lodash.pull(this.callbacks, callback);\n },\n});\n\nexport default StreamsStore;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col, Button } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport ISODurationUtils from 'util/ISODurationUtils';\n\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 */\nclass TimeRangeOptionsForm extends React.Component {\n static propTypes = {\n options: PropTypes.array,\n title: PropTypes.string.isRequired,\n help: PropTypes.any.isRequired,\n addButtonTitle: PropTypes.string,\n update: PropTypes.func.isRequired,\n validator: PropTypes.func,\n };\n\n static defaultProps = {\n options: [],\n addButtonTitle: 'Add option',\n validator: () => true,\n };\n\n _update = (options) => {\n this.props.update(options);\n };\n\n _onAdd = () => {\n const options = ObjectUtils.clone(this.props.options);\n\n if (options) {\n options.push({ period: '', description: '' });\n this._update(options);\n }\n };\n\n _onRemove = (removedIdx) => {\n return () => {\n const options = ObjectUtils.clone(this.props.options);\n\n // Remove element at index\n options.splice(removedIdx, 1);\n\n this._update(options);\n };\n };\n\n _onChange = (changedIdx, field) => {\n return (e) => {\n const options = ObjectUtils.clone(this.props.options);\n\n options.forEach((o, idx) => {\n if (idx === changedIdx) {\n let { value } = e.target;\n\n if (field === 'period') {\n value = value.toUpperCase();\n if (!value.startsWith('P')) {\n value = `P${value}`;\n }\n }\n\n options[idx][field] = value;\n }\n });\n\n this._update(options);\n };\n };\n\n _buildTimeRangeOptions = () => {\n return this.props.options.map((option, idx) => {\n const { period } = option;\n const { description } = option;\n const errorStyle = ISODurationUtils.durationStyle(period, this.props.validator, 'has-error');\n\n return (\n
\n \n \n
\n \n \n {ISODurationUtils.formatDuration(period, this.props.validator)}\n \n
\n \n \n
\n \n \n \n \n
\n \n
\n
\n );\n });\n };\n\n render() {\n return (\n
\n \n {this.props.help}\n
\n {this._buildTimeRangeOptions()}\n
\n \n
\n );\n }\n}\n\nexport default TimeRangeOptionsForm;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nclass TimeRangeOptionsSummary extends React.Component {\n static propTypes = {\n options: PropTypes.object.isRequired,\n };\n\n render() {\n let timerangeOptionsSummary = null;\n if (this.props.options) {\n timerangeOptionsSummary = Object.keys(this.props.options).map((key, idx) => {\n return (\n \n
{key}
\n
{this.props.options[key]}
\n
\n );\n });\n }\n\n return (\n
\n {timerangeOptionsSummary}\n
\n );\n }\n}\n\nexport default TimeRangeOptionsSummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport { Button, Row, Col } from 'components/graylog';\nimport { BootstrapModalForm, Input } from 'components/bootstrap';\nimport { IfPermitted, ISODurationInput } from 'components/common';\nimport ObjectUtils from 'util/ObjectUtils';\n\nimport moment from 'moment';\nimport {} from 'moment-duration-format';\n\nimport TimeRangeOptionsForm from './TimeRangeOptionsForm';\nimport TimeRangeOptionsSummary from './TimeRangeOptionsSummary';\n\nconst SearchesConfig = createReactClass({\n displayName: 'SearchesConfig',\n\n propTypes: {\n config: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n },\n\n getInitialState() {\n const queryTimeRangeLimit = this._getPropConfigValue('query_time_range_limit');\n const relativeTimerangeOptions = this._getPropConfigValue('relative_timerange_options');\n const surroundingTimerangeOptions = this._getPropConfigValue('surrounding_timerange_options');\n const surroundingFilterFields = this._getPropConfigValue('surrounding_filter_fields');\n const analysisDisabledFields = this._getPropConfigValue('analysis_disabled_fields');\n\n return {\n config: {\n query_time_range_limit: queryTimeRangeLimit,\n relative_timerange_options: relativeTimerangeOptions,\n surrounding_timerange_options: surroundingTimerangeOptions,\n surrounding_filter_fields: surroundingFilterFields,\n analysis_disabled_fields: analysisDisabledFields,\n },\n limitEnabled: moment.duration(queryTimeRangeLimit).asMilliseconds() > 0,\n relativeTimeRangeOptionsUpdate: undefined,\n surroundingTimeRangeOptionsUpdate: undefined,\n };\n },\n\n _getPropConfigValue(field) {\n return this.props.config ? this.props.config[field] : undefined;\n },\n\n _onUpdate(field) {\n return (newOptions) => {\n const update = ObjectUtils.clone(this.state.config);\n\n update[field] = newOptions;\n\n this.setState({ config: update });\n };\n },\n\n _onRelativeTimeRangeOptionsUpdate(data) {\n this.setState({ relativeTimeRangeOptionsUpdate: data });\n },\n\n _onSurroundingTimeRangeOptionsUpdate(data) {\n this.setState({ surroundingTimeRangeOptionsUpdate: data });\n },\n\n _buildTimeRangeOptions(options) {\n return Object.keys(options).map((key) => {\n return { period: key, description: options[key] };\n });\n },\n\n _onFilterFieldsUpdate(e) {\n this.setState({ surroundingFilterFields: e.target.value });\n },\n\n _onAnalysisDisabledFieldsUpdate(e) {\n this.setState({ analysisDisabledFields: e.target.value });\n },\n\n _onChecked() {\n const config = ObjectUtils.clone(this.state.config);\n\n if (this.state.limitEnabled) {\n // If currently enabled, disable by setting the limit to 0 seconds.\n config.query_time_range_limit = 'PT0S';\n } else {\n // If currently not enabled, set a default of 30 days.\n config.query_time_range_limit = 'P30D';\n }\n\n this.setState({ config: config, limitEnabled: !this.state.limitEnabled });\n },\n\n _isEnabled() {\n return this.state.limitEnabled;\n },\n\n _splitStringList(stringList) {\n return stringList.split(',').map((f) => f.trim()).filter((f) => f.length > 0);\n },\n\n _saveConfig() {\n const update = ObjectUtils.clone(this.state.config);\n\n if (this.state.relativeTimeRangeOptionsUpdate) {\n update.relative_timerange_options = {};\n\n this.state.relativeTimeRangeOptionsUpdate.forEach((entry) => {\n update.relative_timerange_options[entry.period] = entry.description;\n });\n\n this.setState({ relativeTimeRangeOptionsUpdate: undefined });\n }\n\n if (this.state.surroundingTimeRangeOptionsUpdate) {\n update.surrounding_timerange_options = {};\n\n this.state.surroundingTimeRangeOptionsUpdate.forEach((entry) => {\n update.surrounding_timerange_options[entry.period] = entry.description;\n });\n\n this.setState({ surroundingTimeRangeOptionsUpdate: undefined });\n }\n\n // Make sure to update filter fields\n if (this.state.surroundingFilterFields) {\n update.surrounding_filter_fields = this._splitStringList(this.state.surroundingFilterFields);\n this.setState({ surroundingFilterFields: undefined });\n }\n\n if (this.state.analysisDisabledFields) {\n update.analysis_disabled_fields = this._splitStringList(this.state.analysisDisabledFields);\n this.setState({ analysisDisabledFields: undefined });\n }\n\n this.props.updateConfig(update).then(() => {\n this._closeModal();\n });\n },\n\n _resetConfig() {\n // Reset to initial state when the modal is closed without saving.\n this.setState(this.getInitialState());\n },\n\n _openModal() {\n this.searchesConfigModal.open();\n },\n\n _closeModal() {\n this.searchesConfigModal.close();\n },\n\n queryTimeRangeLimitValidator(milliseconds) {\n return milliseconds >= 1;\n },\n\n relativeTimeRangeValidator(milliseconds, duration) {\n return milliseconds >= 1 || duration === 'PT0S';\n },\n\n surroundingTimeRangeValidator(milliseconds) {\n return milliseconds >= 1;\n },\n\n render() {\n const { config } = this.state;\n const duration = moment.duration(config.query_time_range_limit);\n const limit = this._isEnabled() ? `${config.query_time_range_limit} (${duration.format()})` : 'disabled';\n\n let filterFields;\n let filterFieldsString;\n if (this.state.config.surrounding_filter_fields) {\n filterFields = this.state.config.surrounding_filter_fields.map((f, idx) =>
  • {f}
  • );\n filterFieldsString = this.state.config.surrounding_filter_fields.join(', ');\n }\n\n let analysisDisabledFields;\n let analysisDisabledFieldsString;\n if (this.state.config.analysis_disabled_fields) {\n analysisDisabledFields = this.state.config.analysis_disabled_fields.map((f, idx) =>
  • {f}
  • );\n analysisDisabledFieldsString = this.state.config.analysis_disabled_fields.join(', ');\n }\n\n return (\n
    \n

    Search Configuration

    \n\n
    \n
    Query time range limit
    \n
    {limit}
    \n
    The maximum time users can query data in the past. This prevents users from accidentally creating queries 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 Relative time range options\n \n \n \n Surrounding time range options\n \n\n Surrounding search filter fields\n
      \n {filterFields}\n
    \n\n UI analysis disabled for fields\n
      \n {analysisDisabledFields}\n
    \n \n
    \n \n \n \n\n { this.searchesConfigModal = searchesConfigModal; }}\n title=\"Update Search Configuration\"\n onSubmitForm={this._saveConfig}\n onModalClose={this._resetConfig}\n submitButtonText=\"Save\">\n
    \n \n {this._isEnabled()\n && (\n \n )}\n\n Configure the available options for the relative time range selector as ISO8601 duration} />\n\n Configure the available options for the surrounding time range selector as ISO8601 duration} />\n\n \n\n \n
    \n
    \n
    \n );\n },\n});\n\nexport default SearchesConfig;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport naturalSort from 'javascript-natural-sort';\n\nimport { Button, Alert, Table } from 'components/graylog';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport { IfPermitted, SortableList } from 'components/common';\nimport ObjectUtils from 'util/ObjectUtils';\n\nconst MessageProcessorsConfig = createReactClass({\n displayName: 'MessageProcessorsConfig',\n\n propTypes: {\n config: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n },\n\n getDefaultProps() {\n return {\n config: {\n disabled_processors: [],\n processor_order: [],\n },\n };\n },\n\n getInitialState() {\n return {\n config: {\n disabled_processors: this.props.config.disabled_processors,\n processor_order: this.props.config.processor_order,\n },\n };\n },\n\n inputs: {},\n\n _openModal() {\n this.configModal.open();\n },\n\n _closeModal() {\n this.configModal.close();\n },\n\n _saveConfig() {\n if (!this._hasNoActiveProcessor()) {\n this.props.updateConfig(this.state.config).then(() => {\n this._closeModal();\n });\n }\n },\n\n _resetConfig() {\n // Reset to initial state when the modal is closed without saving.\n this.setState(this.getInitialState());\n },\n\n _updateSorting(newSorting) {\n const update = ObjectUtils.clone(this.state.config);\n\n update.processor_order = newSorting.map((item) => {\n return { class_name: item.id, name: item.title };\n });\n\n this.setState({ config: update });\n },\n\n _toggleStatus(className) {\n return () => {\n const disabledProcessors = this.state.config.disabled_processors;\n const update = ObjectUtils.clone(this.state.config);\n const { checked } = this.inputs[className];\n\n if (checked) {\n update.disabled_processors = disabledProcessors.filter((p) => p !== className);\n } else if (disabledProcessors.indexOf(className) === -1) {\n update.disabled_processors.push(className);\n }\n\n this.setState({ config: update });\n };\n },\n\n _hasNoActiveProcessor() {\n return this.state.config.disabled_processors.length >= this.state.config.processor_order.length;\n },\n\n _noActiveProcessorWarning() {\n if (this._hasNoActiveProcessor()) {\n return (\n \n ERROR: No active message processor!\n \n );\n }\n },\n\n _summary() {\n return this.state.config.processor_order.map((processor, idx) => {\n const status = this.state.config.disabled_processors.filter((p) => p === processor.class_name).length > 0 ? 'disabled' : 'active';\n return (\n \n {idx + 1}\n {processor.name}\n {status}\n \n );\n });\n },\n\n _sortableItems() {\n return this.state.config.processor_order.map((processor) => {\n return { id: processor.class_name, title: processor.name };\n });\n },\n\n _statusForm() {\n return ObjectUtils.clone(this.state.config.processor_order).sort((a, b) => naturalSort(a.name, b.name)).map((processor, idx) => {\n const enabled = this.state.config.disabled_processors.filter((p) => p === processor.class_name).length < 1;\n\n return (\n \n {processor.name}\n \n { this.inputs[processor.class_name] = elem; }}\n type=\"checkbox\"\n checked={enabled}\n onChange={this._toggleStatus(processor.class_name)} />\n \n \n );\n });\n },\n\n render() {\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 {this._summary()}\n \n
    #ProcessorStatus
    \n\n \n \n \n\n { this.configModal = configModal; }}\n title=\"Update Message Processors Configuration\"\n onSubmitForm={this._saveConfig}\n onModalClose={this._resetConfig}\n submitButtonText=\"Save\">\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 {this._statusForm()}\n \n
    ProcessorEnabled
    \n {this._noActiveProcessorWarning()}\n
    \n
    \n );\n },\n});\n\nexport default MessageProcessorsConfig;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\n\nimport { Button } from 'components/graylog';\nimport { BootstrapModalForm, Input } from 'components/bootstrap';\nimport { IfPermitted, ISODurationInput } from 'components/common';\nimport ObjectUtils from 'util/ObjectUtils';\nimport ISODurationUtils from 'util/ISODurationUtils';\nimport FormUtils from 'util/FormsUtils';\nimport StringUtils from 'util/StringUtils';\n\nconst SidecarConfig = createReactClass({\n displayName: 'SidecarConfig',\n\n propTypes: {\n config: PropTypes.shape({\n sidecar_expiration_threshold: PropTypes.string,\n sidecar_inactive_threshold: PropTypes.string,\n sidecar_update_interval: PropTypes.string,\n sidecar_send_status: PropTypes.bool,\n sidecar_configuration_override: PropTypes.bool,\n }),\n updateConfig: PropTypes.func.isRequired,\n },\n\n getDefaultProps() {\n return {\n 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 };\n },\n\n getInitialState() {\n return {\n config: ObjectUtils.clone(this.props.config),\n };\n },\n\n componentWillReceiveProps(newProps) {\n this.setState({ config: ObjectUtils.clone(newProps.config) });\n },\n\n _openModal() {\n this.refs.configModal.open();\n },\n\n _closeModal() {\n this.refs.configModal.close();\n },\n\n _resetConfig() {\n // Reset to initial state when the modal is closed without saving.\n this.setState(this.getInitialState());\n },\n\n _saveConfig() {\n this.props.updateConfig(this.state.config).then(() => {\n this._closeModal();\n });\n },\n\n _onUpdate(field) {\n return (value) => {\n const update = ObjectUtils.clone(this.state.config);\n if (typeof value === 'object') {\n update[field] = FormUtils.getValueFromInput(value.target);\n } else {\n update[field] = value;\n }\n this.setState({ config: update });\n };\n },\n\n _inactiveThresholdValidator(milliseconds) {\n return milliseconds >= 1000;\n },\n\n _expirationThresholdValidator(milliseconds) {\n return milliseconds >= 60 * 1000;\n },\n\n _updateIntervalValidator(milliseconds) {\n const inactiveMilliseconds = this._durationMilliseconds(this.state.config.sidecar_inactive_threshold);\n const expirationMilliseconds = this._durationMilliseconds(this.state.config.sidecar_expiration_threshold);\n return milliseconds >= 1000 && milliseconds < inactiveMilliseconds && milliseconds < expirationMilliseconds;\n },\n\n _durationMilliseconds(duration) {\n return ISODurationUtils.isValidDuration(duration, (milliseconds) => { return milliseconds; });\n },\n\n render() {\n return (\n
    \n

    Sidecars System

    \n\n
    \n
    Inactive threshold:
    \n
    {this.state.config.sidecar_inactive_threshold}
    \n
    Expiration threshold:
    \n
    {this.state.config.sidecar_expiration_threshold}
    \n
    Update interval:
    \n
    {this.state.config.sidecar_update_interval}
    \n
    Send status:
    \n
    {StringUtils.capitalizeFirstLetter(this.state.config.sidecar_send_status.toString())}
    \n
    Override configuration:
    \n
    {StringUtils.capitalizeFirstLetter(this.state.config.sidecar_configuration_override.toString())}
    \n
    \n\n \n \n \n\n \n
    \n \n\n \n \n
    \n \n \n
    \n
    \n );\n },\n});\n\nexport default SidecarConfig;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport lodash from 'lodash';\nimport moment from 'moment';\n\nimport { Button, FormGroup, HelpBlock } from 'components/graylog';\nimport { BootstrapModalForm } from 'components/bootstrap';\nimport { IfPermitted, TimeUnitInput } from 'components/common';\nimport FormUtils 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\nconst EventsConfig = createReactClass({\n displayName: 'EventsConfig',\n\n propTypes: {\n config: PropTypes.shape({\n events_search_timeout: PropTypes.number,\n events_notification_retry_period: PropTypes.number,\n events_notification_default_backlog: PropTypes.number,\n events_catchup_window: PropTypes.number,\n }),\n updateConfig: PropTypes.func.isRequired,\n },\n\n getDefaultProps() {\n return {\n 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 },\n };\n },\n\n getInitialState() {\n const { config } = this.props;\n return {\n config: config,\n };\n },\n\n componentWillReceiveProps(newProps) {\n this.setState({ config: newProps.config });\n },\n\n _openModal() {\n this.modal.open();\n },\n\n _closeModal() {\n this.modal.close();\n },\n\n _resetConfig() {\n // Reset to initial state when the modal is closed without saving.\n this.setState(this.getInitialState());\n },\n\n _saveConfig() {\n const { updateConfig } = this.props;\n const { config } = this.state;\n updateConfig(config).then(() => {\n this._closeModal();\n });\n },\n\n _propagateChanges(key, value) {\n const { config } = this.state;\n const nextConfig = lodash.cloneDeep(config);\n nextConfig[key] = value;\n this.setState({ config: nextConfig });\n },\n\n _onSearchTimeoutUpdate(nextValue, nextUnit, enabled) {\n const durationInMs = enabled ? moment.duration(nextValue, nextUnit).asMilliseconds() : 0;\n if (this._searchTimeoutValidator(durationInMs)) {\n this._propagateChanges('events_search_timeout', durationInMs);\n }\n },\n\n _onRetryPeriodUpdate(nextValue, nextUnit, enabled) {\n const durationInMs = enabled ? moment.duration(nextValue, nextUnit).asMilliseconds() : 0;\n if (this._notificationsRetryValidator(durationInMs)) {\n this._propagateChanges('events_notification_retry_period', durationInMs);\n }\n },\n\n _searchTimeoutValidator(milliseconds) {\n return milliseconds >= 1000;\n },\n\n _notificationsRetryValidator(milliseconds) {\n return milliseconds >= 0;\n },\n\n _onBacklogUpdate(event) {\n const value = FormUtils.getValueFromInput(event.target);\n this._propagateChanges('events_notification_default_backlog', value);\n },\n\n _onCatchUpWindowUpdate(nextValue, nextUnit, nextEnabled) {\n const { config } = this.state;\n if (config.events_catchup_window === 0 && nextEnabled) {\n this._propagateChanges('events_catchup_window', DEFAULT_CATCH_UP_WINDOW);\n return;\n }\n const catchupWindowinMs = nextEnabled ? moment.duration(nextValue, nextUnit).asMilliseconds() : 0;\n this._propagateChanges('events_catchup_window', catchupWindowinMs);\n },\n\n _titleCase(str) {\n return lodash.capitalize(str);\n },\n\n render() {\n const { config } = this.state;\n const eventsSearchTimeout = extractDurationAndUnit(config.events_search_timeout, TIME_UNITS);\n const eventsNotificationRetryPeriod = extractDurationAndUnit(config.events_notification_retry_period, TIME_UNITS);\n const eventsCatchupWindow = extractDurationAndUnit(config.events_catchup_window, TIME_UNITS);\n const eventsNotificationDefaultBacklog = config.events_notification_default_backlog;\n return (\n
    \n

    Events System

    \n\n
    \n
    Search Timeout:
    \n
    {eventsSearchTimeout.duration} {this._titleCase(eventsSearchTimeout.unit)}
    \n
    Notification Retry:
    \n
    {eventsNotificationRetryPeriod.duration} {this._titleCase(eventsNotificationRetryPeriod.unit)}
    \n
    Notification Backlog:
    \n
    {eventsNotificationDefaultBacklog}
    \n
    Catch Up Window:
    \n
    {eventsCatchupWindow.duration > 0 ? eventsCatchupWindow.duration : 'disabled'} {eventsCatchupWindow.duration > 0 ? this._titleCase(eventsCatchupWindow.unit) : ''}
    \n
    \n\n \n \n \n\n { this.modal = modal; }}\n title=\"Update Events System Configuration\"\n onSubmitForm={this._saveConfig}\n onModalClose={this._resetConfig}\n submitButtonText=\"Save\">\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 definiton is greater, this setting will be ignored)\n \n \n
    \n
    \n
    \n );\n },\n});\n\nexport default EventsConfig;\n","// @flow strict\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Table } from 'components/graylog';\nimport { IfPermitted } from 'components/common';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport UrlWhiteListForm from 'components/configurations/UrlWhiteListForm';\nimport type { WhiteListConfig } from 'stores/configurations/ConfigurationsStore';\n\ntype State = {\n config: WhiteListConfig,\n isValid: boolean,\n};\n\ntype Props = {\n config: WhiteListConfig,\n updateConfig: (config: WhiteListConfig) => Promise,\n};\n\nclass UrlWhiteListConfig extends React.Component {\n configModal: ?BootstrapModalForm;\n\n inputs = {};\n\n constructor(props: Props) {\n super(props);\n const { config } = this.props;\n this.state = {\n config,\n isValid: false,\n };\n }\n\n _summary = (): React.Element<'tr'>[] => {\n const literal = 'literal';\n const { config: { entries } } = this.props;\n return entries.map((urlConfig, idx) => {\n return (\n \n {idx + 1}\n {urlConfig.title}\n {urlConfig.value}\n {urlConfig.type === literal ? 'Exact match' : 'Regex'}\n \n );\n });\n }\n\n _openModal = () => {\n if (this.configModal) {\n this.configModal.open();\n }\n }\n\n _closeModal = () => {\n if (this.configModal) {\n this.configModal.close();\n }\n }\n\n _saveConfig = () => {\n const { config, isValid } = this.state;\n const { updateConfig } = this.props;\n if (isValid) {\n updateConfig(config).then(() => {\n this._closeModal();\n });\n }\n }\n\n _update = (config: WhiteListConfig, isValid: boolean) => {\n const updatedState = { config, isValid };\n this.setState(updatedState);\n }\n\n\n _resetConfig = () => {\n const { config } = this.props;\n const updatedState = { ...this.state, config };\n this.setState(updatedState);\n }\n\n\n render() {\n const { config: { entries, disabled } } = this.props;\n const { isValid } = this.state;\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 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 than an external user would have access to, including AWS EC2 metadata, which can contain keys and other 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 {this._summary()}\n \n
    #TitleURLType
    \n \n \n \n { this.configModal = configModal; }}\n bsSize=\"lg\"\n title=\"Update Whitelist Configuration\"\n onSubmitForm={this._saveConfig}\n onModalClose={this._resetConfig}\n submitButtonDisabled={!isValid}\n submitButtonText=\"Save\">\n

    Whitelist URLs

    \n \n
    \n
    \n );\n }\n}\n\nUrlWhiteListConfig.propTypes = {\n config: PropTypes.object.isRequired,\n updateConfig: PropTypes.func.isRequired,\n};\n\nexport default UrlWhiteListConfig;\n","// @flow strict\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { type StyledComponent } from 'styled-components';\n\nimport Select from 'components/common/Select';\nimport type { Stream } from 'stores/streams/StreamsStore';\nimport { defaultCompare } from 'views/logic/DefaultCompare';\n\nexport const DEFAULT_STREAM_ID = '000000000000000000000001';\nexport const DEFAULT_SEARCH_ID = 'DEFAULT_SEARCH';\n\nconst SelectContainer: StyledComponent<{}, {}, HTMLDivElement> = styled.div`\n margin-bottom: 10px;\n`;\n\ntype Props = {\n onChange: string => void,\n value: string,\n streams: Array,\n};\n\nconst StreamSelect = ({ onChange, value, streams }: Props) => {\n const options = [{ label: 'Default Search', value: DEFAULT_SEARCH_ID }, ...streams\n .sort(({ title: key1 }, { title: key2 }) => defaultCompare(key1, key2))\n .map(({ title, id }) => ({ label: title, value: id }))];\n return (\n \n { this.inputs.configEnabled = elem; }}\n label=\"Enable Geo-Location processor\"\n name=\"enabled\"\n checked={config.enabled}\n onChange={this._onCheckboxClick('enabled', 'configEnabled')} />\n \n You can download a free version of the database from MaxMind.}\n name=\"db_path\"\n value={config.db_path}\n onChange={this._onUpdate('db_path')} />\n \n \n
    \n );\n },\n});\n\nexport default GeoIpResolverConfig;\n","import { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin';\nimport GeoIpResolverConfig from 'components/maps/configurations/GeoIpResolverConfig';\n\nPluginStore.register(new PluginManifest({}, {\n systemConfigurations: [\n {\n component: GeoIpResolverConfig,\n configType: 'org.graylog.plugins.map.config.GeoIpResolverConfig',\n },\n ],\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PluginStore } from 'graylog-web-plugin/plugin';\n\nimport { Col, Row } from 'components/graylog';\nimport { DocumentTitle, PageHeader, Spinner } from 'components/common';\nimport connect from 'stores/connect';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport { isPermitted } from 'util/PermissionsMixin';\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';\n\nimport DecoratorsConfig from '../components/configurations/DecoratorsConfig';\nimport {} from 'components/maps/configurations';\n\n// eslint-disable-next-line import/no-webpack-loader-syntax\nimport style from '!style/useable!css!components/configurations/ConfigurationStyles.css';\n\nconst { CurrentUserStore } = CombinedProvider.get('CurrentUser');\nconst { ConfigurationsActions, ConfigurationsStore } = CombinedProvider.get('Configurations');\n\nconst SEARCHES_CLUSTER_CONFIG = 'org.graylog2.indexer.searches.SearchesClusterConfig';\nconst MESSAGE_PROCESSORS_CONFIG = 'org.graylog2.messageprocessors.MessageProcessorsConfig';\nconst SIDECAR_CONFIG = 'org.graylog.plugins.sidecar.system.SidecarConfiguration';\nconst EVENTS_CONFIG = 'org.graylog.events.configuration.EventsConfiguration';\nconst URL_WHITELIST_CONFIG = 'org.graylog2.system.urlwhitelist.UrlWhitelist';\n\nclass ConfigurationsPage extends React.Component {\n checkLoadedTimer = undefined\n\n constructor(props) {\n super(props);\n\n this.state = { loaded: false };\n }\n\n componentDidMount() {\n style.use();\n const { currentUser: { permissions } } = this.props;\n this._checkConfig();\n\n ConfigurationsActions.list(SEARCHES_CLUSTER_CONFIG);\n ConfigurationsActions.listMessageProcessorsConfig(MESSAGE_PROCESSORS_CONFIG);\n ConfigurationsActions.list(SIDECAR_CONFIG);\n ConfigurationsActions.list(EVENTS_CONFIG);\n\n if (isPermitted(permissions, ['urlwhitelist:read'])) {\n ConfigurationsActions.listWhiteListConfig(URL_WHITELIST_CONFIG);\n }\n\n PluginStore.exports('systemConfigurations').forEach((systemConfig) => {\n ConfigurationsActions.list(systemConfig.configType);\n });\n }\n\n componentWillUnmount() {\n style.unuse();\n this._clearTimeout();\n }\n\n _getConfig = (configType) => {\n const { configuration } = this.props;\n\n if (configuration && configuration[configType]) {\n return configuration[configType];\n }\n\n return null;\n };\n\n _onUpdate = (configType) => {\n return (config) => {\n switch (configType) {\n case MESSAGE_PROCESSORS_CONFIG:\n return ConfigurationsActions.updateMessageProcessorsConfig(configType, config);\n case URL_WHITELIST_CONFIG:\n return ConfigurationsActions.updateWhitelist(configType, config);\n default:\n return ConfigurationsActions.update(configType, config);\n }\n };\n };\n\n _pluginConfigs = () => {\n return PluginStore.exports('systemConfigurations').map((systemConfig, idx) => {\n return React.createElement(systemConfig.component, {\n // eslint-disable-next-line react/no-array-index-key\n key: `system-configuration-${idx}`,\n config: this._getConfig(systemConfig.configType) || undefined,\n updateConfig: this._onUpdate(systemConfig.configType),\n });\n });\n };\n\n _pluginConfigRows = () => {\n const pluginConfigs = this._pluginConfigs();\n const rows = [];\n let idx = 0;\n\n // Put two plugin config components per row.\n while (pluginConfigs.length > 0) {\n idx += 1;\n\n rows.push(\n \n \n {pluginConfigs.shift()}\n \n \n {pluginConfigs.shift() || ( )}\n \n ,\n );\n }\n\n return rows;\n };\n\n _checkConfig = () => {\n const { configuration } = this.props;\n\n this.checkLoadedTimer = setTimeout(() => {\n if (Object.keys(configuration).length > 0) {\n this.setState({ loaded: true }, this._clearTimeout);\n\n return;\n }\n\n this._checkConfig();\n }, 100);\n };\n\n _clearTimeout = () => {\n if (this.checkLoadedTimer) {\n clearTimeout(this.checkLoadedTimer);\n }\n }\n\n render() {\n const { loaded } = this.state;\n const { currentUser: { permissions } } = this.props;\n let Output = (\n \n \n \n );\n\n if (loaded) {\n const searchesConfig = this._getConfig(SEARCHES_CLUSTER_CONFIG);\n const messageProcessorsConfig = this._getConfig(MESSAGE_PROCESSORS_CONFIG);\n const sidecarConfig = this._getConfig(SIDECAR_CONFIG);\n const eventsConfig = this._getConfig(EVENTS_CONFIG);\n const urlWhiteListConfig = this._getConfig(URL_WHITELIST_CONFIG);\n\n Output = (\n <>\n {searchesConfig && (\n \n \n \n )}\n {messageProcessorsConfig && (\n \n \n \n )}\n {sidecarConfig && (\n \n \n \n )}\n {eventsConfig && (\n \n \n \n )}\n {isPermitted(permissions, ['urlwhitelist:read']) && urlWhiteListConfig && (\n \n \n \n )}\n \n \n \n \n );\n }\n\n const pluginConfigRows = this._pluginConfigRows();\n\n return (\n \n \n \n \n You can configure system settings for different sub systems on this page.\n \n \n\n \n {Output}\n \n\n {pluginConfigRows.length > 0 && (\n \n \n

    Plugins

    \n

    Configuration for installed plugins.

    \n
    \n
    \n {pluginConfigRows}\n
    \n \n
    \n )}\n
    \n
    \n );\n }\n}\n\nConfigurationsPage.propTypes = {\n configuration: PropTypes.object.isRequired,\n currentUser: PropTypes.object.isRequired,\n};\n\nexport default connect(ConfigurationsPage, { configurations: ConfigurationsStore, currentUser: CurrentUserStore }, ({ configurations, currentUser, ...otherProps }) => ({\n ...configurations,\n ...currentUser,\n ...otherProps,\n}));\n","var refs = 0;\nvar dispose;\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./ConfigurationStyles.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) exports.locals = content.locals;\n\nexports.use = exports.ref = function() {\n\tif(!(refs++)) {\n\t\tdispose = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, {\"hmr\":true});\n\t}\n\n\treturn exports;\n};\n\nexports.unuse = exports.unref = function() {\n if(refs > 0 && !(--refs)) {\n\t dispose();\n\t\t dispose = null;\n }\n};\nif(module.hot) {\n\tvar lastRefs = module.hot.data && module.hot.data.refs || 0;\n\n\tif(lastRefs) {\n\t\texports.ref();\n\t\tif(!content.locals) {\n\t\t\trefs = lastRefs;\n\t\t}\n\t}\n\n\tif(!content.locals) {\n\t\tmodule.hot.accept();\n\t}\n\n\tmodule.hot.dispose(function(data) {\n\t\tdata.refs = content.locals ? 0 : refs;\n\n\t\tif(dispose) {\n\t\t\tdispose();\n\t\t}\n\t});\n}"],"sourceRoot":""}




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy