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

web-interface.assets.325e2d4b-1530.ee7b5b1fa80ca650cecf.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"file":"325e2d4b-1530.ee7b5b1fa80ca650cecf.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/common/withPaginationQueryParameter.tsx","webpack://graylog-web-interface/./src/components/grok-patterns/GrokPatternFilter.css?004d","webpack://graylog-web-interface/./src/components/grok-patterns/GrokPatternFilter.jsx","webpack://graylog-web-interface/./src/components/grok-patterns/GrokPatternInput.jsx","webpack://graylog-web-interface/./src/components/grok-patterns/EditPatternModal.jsx","webpack://graylog-web-interface/./src/components/grok-patterns/BulkLoadPatternModal.jsx","webpack://graylog-web-interface/./src/components/grok-patterns/GrokPatternQueryHelper.tsx","webpack://graylog-web-interface/./src/components/grok-patterns/GrokPatterns.jsx","webpack://graylog-web-interface/./src/pages/GrokPatternsPage.jsx","webpack://graylog-web-interface/./src/stores/grok-patterns/GrokPatternsStore.ts","webpack://graylog-web-interface/./src/components/grok-patterns/GrokPatternFilter.css"],"sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\n\nimport usePaginationQueryParameter from 'hooks/usePaginationQueryParameter';\n\nexport type PaginationQueryParameterObject = {\n  pageSizes?: number[];\n};\n\nfunction withPaginationQueryParameter(Component: React.ComponentType, obj?: PaginationQueryParameterObject) {\n  return function WrappedComponent(props) {\n    const result = usePaginationQueryParameter(obj?.pageSizes);\n\n    return ;\n  };\n}\n\nexport default withPaginationQueryParameter;\n","\n      import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!./GrokPatternFilter.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!./GrokPatternFilter.css\";\n       export default content && content.locals ? content.locals : undefined;\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 { isEqual } from 'lodash';\n\nimport { ListGroup, ListGroupItem, Button, Input } from 'components/bootstrap';\n\nimport GrokPatternFilterStyle from './GrokPatternFilter.css';\n\nclass GrokPatternFilter extends React.Component {\n  static propTypes = {\n    addToPattern: PropTypes.func.isRequired,\n    patterns: PropTypes.array.isRequired,\n  };\n\n  shownListItems = [];\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      patternFilter: '',\n      activeListItem: -1,\n    };\n  }\n\n  shouldComponentUpdate(nextProps, nextState) {\n    const { patterns } = this.props;\n    const { patternFilter, activeListItem } = this.state;\n\n    if (isEqual(nextProps.patterns, patterns) && patternFilter === nextState.patternFilter && activeListItem === nextState.activeListItem) {\n      return false;\n    }\n\n    return true;\n  }\n\n  _onPatternFilterChange = (e) => {\n    this.setState({ patternFilter: e.target.value, activeListItem: -1 });\n  };\n\n  _onPatternFilterKeyDown = (e) => {\n    const { addToPattern } = this.props;\n    const { activeListItem } = this.state;\n    const ARROW_DOWN = 40;\n    const ARROW_UP = 38;\n    const ENTER = 13;\n    const listItem = this.shownListItems[activeListItem];\n\n    let newActiveListItem = 0;\n    const firstElement = document.getElementById('list-item-0');\n    let domElement;\n    let list;\n\n    switch (e.keyCode) {\n      case ARROW_DOWN:\n        newActiveListItem = activeListItem + 1;\n\n        if (activeListItem >= this.shownListItems.length) {\n          return;\n        }\n\n        domElement = document.getElementById(`list-item-${newActiveListItem}`);\n        list = domElement.parentElement;\n        list.scrollTop = domElement.offsetTop - firstElement.offsetTop;\n        this.setState({ activeListItem: newActiveListItem });\n        e.preventDefault();\n        break;\n      case ARROW_UP:\n        newActiveListItem = activeListItem - 1;\n\n        if (newActiveListItem < 0) {\n          return;\n        }\n\n        domElement = document.getElementById(`list-item-${newActiveListItem}`);\n        list = domElement.parentElement;\n        list.scrollTop = domElement.offsetTop - firstElement.offsetTop;\n        this.setState({ activeListItem: newActiveListItem });\n        e.preventDefault();\n        break;\n      case ENTER:\n        if (listItem) {\n          addToPattern(listItem);\n        }\n\n        e.preventDefault();\n        break;\n      default:\n        break;\n    }\n  };\n\n  render() {\n    const { activeListItem, patternFilter } = this.state;\n    const { addToPattern, patterns } = this.props;\n    let regExp;\n    let regExpError;\n\n    try {\n      regExp = RegExp(patternFilter, 'i');\n    } catch (error) {\n      regExpError = error?.message;\n    }\n\n    this.shownListItems = [];\n    let patternsToDisplay = [];\n\n    if (!regExpError) {\n      patternsToDisplay = patterns.filter((displayedPattern) => regExp.test(displayedPattern.name))\n        .map((displayedPattern, index) => {\n          const active = index === activeListItem;\n\n          this.shownListItems.push(displayedPattern.name);\n\n          return (\n            \n              {displayedPattern.pattern}\n              \n                \n              \n            \n          );\n        });\n    }\n\n    return (\n      <>\n        \n        {!regExpError && {patternsToDisplay}}\n      \n    );\n  }\n}\n\nexport default GrokPatternFilter;\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, Input } from 'components/bootstrap';\n\nimport GrokPatternFilter from './GrokPatternFilter';\n\nclass GrokPatternInput extends React.Component {\n  static propTypes = {\n    pattern: PropTypes.string,\n    patterns: PropTypes.array,\n    onPatternChange: PropTypes.func,\n    className: PropTypes.string,\n  };\n\n  static defaultProps = {\n    pattern: '',\n    patterns: [],\n    onPatternChange: () => {},\n    className: '',\n  };\n\n  shownListItems = [];\n\n  _onPatternChange = (e) => {\n    const { onPatternChange } = this.props;\n\n    onPatternChange(e.target.value);\n  };\n\n  _addToPattern = (name) => {\n    const { pattern, onPatternChange } = this.props;\n    const index = this.patternInput.getInputDOMNode().selectionStart || pattern.length;\n    const newPattern = `${pattern.slice(0, index)}%{${name}}${pattern.slice(index)}`;\n\n    onPatternChange(newPattern);\n  };\n\n  render() {\n    const { className, patterns, pattern } = this.props;\n\n    this.shownListItems = [];\n\n    return (\n      \n        \n           { this.patternInput = node; }}\n                 type=\"textarea\"\n                 id=\"pattern-input\"\n                 label=\"Pattern\"\n                 help=\"The pattern which will match the log line e.g: '%{IP:client}' or '.*?'\"\n                 rows={9}\n                 onChange={this._onPatternChange}\n                 value={pattern}\n                 required />\n        \n        \n          \n        \n      \n    );\n  }\n}\n\nexport default GrokPatternInput;\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 { BootstrapModalForm, Input, Panel, Button } from 'components/bootstrap';\n\nimport GrokPatternInput from './GrokPatternInput';\n\nclass EditPatternModal extends React.Component {\n  static propTypes = {\n    id: PropTypes.string,\n    name: PropTypes.string,\n    pattern: PropTypes.string,\n    patterns: PropTypes.array,\n    create: PropTypes.bool,\n    sampleData: PropTypes.string,\n    savePattern: PropTypes.func.isRequired,\n    testPattern: PropTypes.func.isRequired,\n    validPatternName: PropTypes.func.isRequired,\n  };\n\n  static defaultProps = {\n    id: '',\n    name: '',\n    pattern: '',\n    patterns: [],\n    create: false,\n    sampleData: '',\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      id: props.id,\n      name: props.name,\n      pattern: props.pattern,\n      sampleData: props.sampleData,\n      test_result: '',\n      test_error: undefined,\n      error: false,\n      error_message: '',\n    };\n  }\n\n  openModal = () => {\n    this.modal.open();\n  };\n\n  _onPatternChange = (newPattern) => {\n    this.setState({ pattern: newPattern });\n  };\n\n  _onNameChange = (event) => {\n    const { validPatternName } = this.props;\n    const name = event.target.value;\n\n    if (!validPatternName(name)) {\n      this.setState({ name: name, error: true, error_message: 'Pattern with that name already exists!' });\n    } else {\n      this.setState({ name: name, error: false, error_message: '' });\n    }\n  };\n\n  _onSampleDataChange = (event) => {\n    this.setState({ sampleData: event.target.value });\n  };\n\n  _getId = (prefixIdName) => {\n    const { name } = this.state;\n\n    return name !== undefined ? prefixIdName + name : prefixIdName;\n  };\n\n  _closeModal = () => {\n    this.modal.close();\n  };\n\n  _saved = () => {\n    const { create } = this.props;\n\n    this._closeModal();\n\n    if (create) {\n      this.setState({ name: '', pattern: '', sampleData: '', test_result: '' });\n    }\n  };\n\n  _save = () => {\n    const { savePattern } = this.props;\n    const { error } = this.state;\n\n    if (!error) {\n      savePattern(this.state, this._saved);\n    }\n  };\n\n  _testPattern = () => {\n    const { name, pattern } = this.state;\n    const { testPattern } = this.props;\n\n    if (name === '' || pattern === '') {\n      this.setState({ error: true, error_message: 'To test the pattern a name and a pattern must be given!' });\n\n      return;\n    }\n\n    this.setState({ error: false, error_message: '' });\n\n    testPattern(this.state, (response) => {\n      this.setState({ test_result: JSON.stringify(response, null, 2), test_error: undefined });\n    }, (errMessage) => {\n      this.setState({ test_result: '', test_error: errMessage });\n    });\n  };\n\n  render() {\n    const { create, patterns } = this.props;\n    const {\n      name,\n      error,\n      error_message: errorMessage,\n      pattern,\n      test_error: testError,\n      sampleData,\n      test_result: testResult,\n    } = this.state;\n\n    let triggerButtonContent;\n\n    if (create) {\n      triggerButtonContent = 'Create pattern';\n    } else {\n      triggerButtonContent = Edit;\n    }\n\n    return (\n      \n        \n         { this.modal = modal; }}\n                            title={`${create ? 'Create' : 'Edit'} Grok Pattern ${name}`}\n                            bsSize=\"large\"\n                            onSubmitForm={this._save}\n                            submitButtonText={`${create ? 'Create' : 'Update'} pattern`}>\n          
\n \n \n {testError\n && (\n \n {testError}\n \n )}\n \n \n
\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default EditPatternModal;\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 { Button, Input } from 'components/bootstrap';\nimport UserNotification from 'util/UserNotification';\nimport BootstrapModalForm from 'components/bootstrap/BootstrapModalForm';\nimport { GrokPatternsStore } from 'stores/grok-patterns/GrokPatternsStore';\n\nclass BulkLoadPatternModal extends React.Component {\n static propTypes = {\n onSuccess: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n importStrategy: 'ABORT_ON_CONFLICT',\n };\n }\n\n _onSubmit = (evt) => {\n evt.preventDefault();\n\n const reader = new FileReader();\n const { importStrategy } = this.state;\n const { onSuccess } = this.props;\n\n reader.onload = (loaded) => {\n const request = loaded.target.result;\n\n GrokPatternsStore.bulkImport(request, importStrategy).then(() => {\n UserNotification.success('Grok Patterns imported successfully', 'Success!');\n this.modal.close();\n onSuccess();\n });\n };\n\n reader.readAsText(this.patternFile.getInputDOMNode().files[0]);\n };\n\n _onImportStrategyChange = (event) => this.setState({ importStrategy: event.target.value });\n\n _resetImportStrategy = () => this.setState({ importStrategy: 'ABORT_ON_CONFLICT' });\n\n render() {\n return (\n \n \n\n { this.modal = modal; }}\n title=\"Import Grok patterns from file\"\n submitButtonText=\"Upload\"\n onModalClose={this._resetImportStrategy}\n onSubmitForm={this._onSubmit}>\n { this.patternFile = patternFile; }}\n name=\"patterns\"\n label=\"Pattern file\"\n help=\"A file containing Grok patterns, one per line. Name and patterns should be separated by whitespace.\"\n required />\n this._onImportStrategyChange(e)} />\n this._onImportStrategyChange(e)} />\n this._onImportStrategyChange(e)} />\n \n \n );\n }\n}\n\nexport default BulkLoadPatternModal;\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 { Popover, Table } from 'components/bootstrap';\n\nconst GrokPatternQueryHelper = () => (\n \n

Available search fields

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldDescription
nameThe grok patterns name
patternThe pattern of the grok pattern
\n

Examples

\n

\n Find grok patterns containing COMMON in the pattern:
\n pattern:COMMON
\n

\n
\n);\n\nexport default GrokPatternQueryHelper;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport {\n DataTable,\n Icon,\n IfPermitted,\n PageHeader,\n PaginatedList,\n SearchForm,\n OverlayTrigger,\n} from 'components/common';\nimport { Button, ButtonToolbar, Col, Row } from 'components/bootstrap';\nimport EditPatternModal from 'components/grok-patterns/EditPatternModal';\nimport BulkLoadPatternModal from 'components/grok-patterns/BulkLoadPatternModal';\nimport withPaginationQueryParameter from 'components/common/withPaginationQueryParameter';\nimport { GrokPatternsStore } from 'stores/grok-patterns/GrokPatternsStore';\n\nimport GrokPatternQueryHelper from './GrokPatternQueryHelper';\n\nconst GrokPatternsList = styled(DataTable)`\n th.name {\n min-width: 200px;\n }\n\n td {\n word-break: break-all;\n }\n`;\n\nconst testPattern = (pattern, callback, errCallback) => {\n GrokPatternsStore.testPattern(pattern, callback, errCallback);\n};\n\nconst _headerCellFormatter = (header) => {\n let formattedHeaderCell;\n\n switch (header.toLocaleLowerCase()) {\n case 'name':\n formattedHeaderCell = {header};\n break;\n case 'actions':\n formattedHeaderCell = {header};\n break;\n default:\n formattedHeaderCell = {header};\n }\n\n return formattedHeaderCell;\n};\n\nclass GrokPatterns extends React.Component {\n static propTypes = {\n paginationQueryParameter: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n patterns: [],\n pagination: {\n count: 0,\n total: 0,\n query: '',\n },\n };\n }\n\n componentDidMount() {\n this.loadData();\n }\n\n componentWillUnmount() {\n if (this.loadPromise) {\n this.loadPromise.cancel();\n }\n }\n\n loadData = (callback, page = this.props.paginationQueryParameter.page, perPage = this.props.paginationQueryParameter.pageSize) => {\n const { pagination: { query } } = this.state;\n\n this.loadPromise = GrokPatternsStore.searchPaginated(page, perPage, query)\n .then(({ patterns, pagination }) => {\n if (callback) {\n callback();\n }\n\n if (!this.loadPromise?.isCancelled()) {\n this.loadPromise = undefined;\n\n this.setState({ patterns, pagination });\n }\n });\n };\n\n validPatternName = (name) => {\n // Check if patterns already contain a pattern with the given name.\n const { patterns } = this.state;\n\n return !patterns.some((pattern) => pattern.name === name);\n };\n\n savePattern = (pattern, callback) => {\n GrokPatternsStore.savePattern(pattern, () => {\n callback();\n this.loadData();\n });\n };\n\n _onPageChange = (newPage, newPerPage) => {\n this.loadData(null, newPage, newPerPage);\n };\n\n _onSearch = (query, resetLoadingCallback) => {\n const { pagination } = this.state;\n const newPagination = Object.assign(pagination, { query: query });\n this.props.paginationQueryParameter.resetPage();\n this.setState({ pagination: newPagination }, () => this.loadData(resetLoadingCallback));\n };\n\n _onReset = () => {\n const { pagination } = this.state;\n const newPagination = Object.assign(pagination, { query: '' });\n this.props.paginationQueryParameter.resetPage();\n this.setState({ pagination: newPagination }, this.loadData);\n };\n\n confirmedRemove = (pattern) => {\n // eslint-disable-next-line no-alert\n if (window.confirm(`Really delete the grok pattern ${pattern.name}?\\nIt will be removed from the system and unavailable for any extractor. If it is still in use by extractors those will fail to work.`)) {\n GrokPatternsStore.deletePattern(pattern, this.loadData);\n }\n };\n\n _patternFormatter = (pattern) => {\n const { patterns: unfilteredPatterns } = this.state;\n const patterns = unfilteredPatterns.filter((p) => p.name !== pattern.name);\n\n return (\n \n {pattern.name}\n {pattern.pattern}\n \n \n \n \n \n \n \n \n \n );\n };\n\n render() {\n const headers = ['Name', 'Pattern', 'Actions'];\n const { pagination, patterns } = this.state;\n\n const queryHelperComponent = (\n }>\n \n \n );\n\n return (\n
\n \n \n \n \n \n \n )}>\n \n This is a list of grok patterns you can use in your Graylog grok extractors. You can add\n your own manually or import a whole list of patterns from a so called pattern file.\n \n \n\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 withPaginationQueryParameter(GrokPatterns);\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport React from 'react';\n\nimport GrokPatterns from 'components/grok-patterns/GrokPatterns';\nimport { DocumentTitle } from 'components/common';\n\nclass GrokPatternsPage extends React.Component {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default GrokPatternsPage;\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 Reflux from 'reflux';\n\nimport fetch, { fetchPlainText } from 'logic/rest/FetchProvider';\nimport PaginationURL from 'util/PaginationURL';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport { qualifyUrl } from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport { singletonStore } from 'logic/singleton';\n\ntype GrokPattern = {\n id: string,\n name: string,\n pattern: string,\n content_pack: string,\n};\n\ntype PaginatedResponse = {\n count: number,\n total: number,\n page: number,\n per_page: number,\n patterns: Array,\n};\n\ntype GrokPatternTest = {\n name: string,\n pattern: string,\n sampleData: string,\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport const GrokPatternsStore = singletonStore(\n 'core.GrokPatterns',\n () => Reflux.createStore({\n URL: qualifyUrl('/system/grok'),\n\n loadPatterns(callback: (patterns: Array) => void) {\n const failCallback = (error) => {\n UserNotification.error(`Loading Grok patterns failed with status: ${error.message}`,\n 'Could not load Grok patterns');\n };\n\n // get the current list of patterns and sort it by name\n return fetch('GET', this.URL)\n .then(\n (resp: any) => {\n const { patterns } = resp;\n\n patterns.sort((pattern1: GrokPattern, pattern2: GrokPattern) => {\n return pattern1.name.toLowerCase()\n .localeCompare(pattern2.name.toLowerCase());\n });\n\n callback(patterns);\n\n return resp;\n },\n failCallback,\n );\n },\n\n searchPaginated(page, perPage, query) {\n const url = PaginationURL(ApiRoutes.GrokPatternsController.paginated().url, page, perPage, query);\n\n return fetch('GET', qualifyUrl(url))\n .then((response: PaginatedResponse) => {\n const pagination = {\n count: response.count,\n total: response.total,\n page: response.page,\n perPage: response.per_page,\n query: query,\n };\n\n return {\n patterns: response.patterns,\n pagination: pagination,\n };\n })\n .catch((errorThrown) => {\n UserNotification.error(`Loading patterns failed with status: ${errorThrown}`,\n 'Could not load streams');\n });\n },\n\n testPattern(pattern: GrokPatternTest, callback: (request: any) => void, errCallback: (errorMessage: string) => void) {\n const failCallback = (error) => {\n let errorMessage = error.message;\n const errorBody = error.additional.body;\n\n if (errorBody && errorBody.message) {\n errorMessage = error.additional.body.message;\n }\n\n errCallback(errorMessage);\n };\n\n const requestPatternTest = {\n grok_pattern: {\n name: pattern.name,\n pattern: pattern.pattern,\n },\n sampleData: pattern.sampleData,\n };\n\n fetch('POST', qualifyUrl(ApiRoutes.GrokPatternsController.test().url), requestPatternTest)\n .then(\n (response) => {\n callback(response);\n\n return response;\n },\n failCallback,\n );\n },\n\n savePattern(pattern: GrokPattern, callback: () => void) {\n const failCallback = (error) => {\n let errorMessage = error.message;\n const errorBody = error.additional.body;\n\n if (errorBody && errorBody.message) {\n errorMessage = error.additional.body.message;\n }\n\n UserNotification.error(`Testing Grok pattern \"${pattern.name}\" failed with status: ${errorMessage}`,\n 'Could not test Grok pattern');\n };\n\n const requestPattern = {\n id: pattern.id,\n pattern: pattern.pattern,\n name: pattern.name,\n content_pack: pattern.content_pack,\n };\n\n let url = this.URL;\n let method;\n\n if (pattern.id === '') {\n method = 'POST';\n } else {\n url += `/${pattern.id}`;\n method = 'PUT';\n }\n\n fetch(method, url, requestPattern)\n .then(\n (response) => {\n callback();\n const action = pattern.id === '' ? 'created' : 'updated';\n const message = `Grok pattern \"${pattern.name}\" successfully ${action}`;\n\n UserNotification.success(message);\n\n return response;\n },\n failCallback,\n );\n },\n\n deletePattern(pattern: GrokPattern, callback: () => void) {\n const failCallback = (error) => {\n UserNotification.error(`Deleting Grok pattern \"${pattern.name}\" failed with status: ${error.message}`,\n 'Could not delete Grok pattern');\n };\n\n fetch('DELETE', `${this.URL}/${pattern.id}`)\n .then(\n (response) => {\n callback();\n UserNotification.success(`Grok pattern \"${pattern.name}\" successfully deleted`);\n\n return response;\n },\n failCallback,\n );\n },\n\n bulkImport(patterns: string, importStrategy: string) {\n const failCallback = (error) => {\n let errorMessage = error.message;\n const errorBody = error.additional.body;\n\n if (errorBody && errorBody.validation_errors && errorBody.validation_errors._) {\n errorMessage = '';\n const errors = errorBody.validation_errors._;\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0, len = errors.length; i < len; i++) {\n errorMessage = errorMessage.concat(errors[i].error);\n }\n }\n\n UserNotification.error(`Importing Grok pattern file failed with status: ${errorMessage}`,\n 'Could not load Grok patterns');\n };\n\n const promise = fetchPlainText('POST', `${this.URL}?import-strategy=${importStrategy}`, patterns);\n\n promise.catch(failCallback);\n\n return promise;\n },\n }),\n);\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".YdarIKpxaNitFlWJ678S {\\n height: 160px;\\n max-height: 160px;\\n overflow: hidden;\\n overflow-y: scroll;\\n padding-left: 0;\\n border-bottom: 1px solid #ddd;\\n}\\n\\n.kqwpZ3NGYl1tRenAeuma {\\n margin-bottom: 0px;\\n}\\n\\n.lmEVMuAgMnJwEQOO5HRZ {\\n position: absolute;\\n top: 7px;\\n right: 7px;\\n}\\n\\n.J36QQw1MHcjMFdoQeCi9 {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n display: block;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/grok-patterns/GrokPatternFilter.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,aAAa;IACb,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,6BAA6B;AACjC;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;AACd;;AAEA;IACI,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;AAClB\",\"sourcesContent\":[\":local(.resultList) {\\n height: 160px;\\n max-height: 160px;\\n overflow: hidden;\\n overflow-y: scroll;\\n padding-left: 0;\\n border-bottom: 1px solid #ddd;\\n}\\n\\n:local(.filterFormGroup) {\\n margin-bottom: 0px;\\n}\\n\\n:local(.addButton) {\\n position: absolute;\\n top: 7px;\\n right: 7px;\\n}\\n\\n:local(.patternDisplay) {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n display: block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"resultList\": \"YdarIKpxaNitFlWJ678S\",\n\t\"filterFormGroup\": \"kqwpZ3NGYl1tRenAeuma\",\n\t\"addButton\": \"lmEVMuAgMnJwEQOO5HRZ\",\n\t\"patternDisplay\": \"J36QQw1MHcjMFdoQeCi9\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["Component","obj","props","result","usePaginationQueryParameter","pageSizes","paginationQueryParameter","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","GrokPatternFilter","React","constructor","super","e","this","setState","patternFilter","target","value","activeListItem","addToPattern","state","listItem","shownListItems","newActiveListItem","firstElement","document","getElementById","domElement","list","keyCode","length","parentElement","scrollTop","offsetTop","preventDefault","shouldComponentUpdate","nextProps","nextState","patterns","isEqual","render","regExp","regExpError","RegExp","error","message","patternsToDisplay","filter","displayedPattern","test","name","map","index","active","push","id","header","bsStyle","onKeyDown","_onPatternFilterKeyDown","key","className","GrokPatternFilterStyle","pattern","bsSize","onClick","type","label","onChange","_onPatternFilterChange","autoComplete","formGroupClassName","bsClass","PropTypes","GrokPatternInput","onPatternChange","patternInput","getInputDOMNode","selectionStart","slice","sm","ref","node","help","rows","_onPatternChange","required","_addToPattern","EditPatternModal","modal","open","newPattern","event","validPatternName","error_message","sampleData","prefixIdName","close","create","_closeModal","test_result","savePattern","_saved","testPattern","response","JSON","stringify","test_error","errMessage","errorMessage","testError","testResult","triggerButtonContent","openModal","title","onSubmitForm","_save","submitButtonText","_getId","_onNameChange","autoFocus","style","display","whiteSpace","_onSampleDataChange","_testPattern","readOnly","BulkLoadPatternModal","evt","reader","FileReader","importStrategy","onSuccess","onload","loaded","request","GrokPatternsStore","then","UserNotification","readAsText","patternFile","files","marginRight","BootstrapModalForm","onModalClose","_resetImportStrategy","_onSubmit","defaultChecked","_onImportStrategyChange","condensed","GrokPatternsList","styled","DataTable","callback","errCallback","_headerCellFormatter","formattedHeaderCell","toLocaleLowerCase","GrokPatterns","page","perPage","pageSize","pagination","query","loadPromise","isCancelled","some","loadData","newPage","newPerPage","resetLoadingCallback","newPagination","Object","assign","resetPage","window","confirm","unfilteredPatterns","p","permissions","reload","confirmedRemove","count","total","componentDidMount","componentWillUnmount","cancel","queryHelperComponent","trigger","rootClose","placement","overlay","fixedWidth","actions","md","onSearch","_onSearch","onReset","_onReset","queryHelpComponent","useLoadingState","_onPageChange","totalItems","headers","headerCellFormatter","sortByKey","dataRowFormatter","_patternFormatter","withPaginationQueryParameter","GrokPatternsPage","singletonStore","Reflux","URL","qualifyUrl","loadPatterns","fetch","resp","sort","pattern1","pattern2","toLowerCase","localeCompare","searchPaginated","url","PaginationURL","ApiRoutes","per_page","catch","errorThrown","requestPatternTest","grok_pattern","errorBody","additional","body","requestPattern","content_pack","method","action","deletePattern","bulkImport","promise","fetchPlainText","validation_errors","_","errors","i","len","concat","___CSS_LOADER_EXPORT___","module","locals"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy