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

web-interface.assets.325e2d4b-4875.e4ef0cbbebf7bbda612b.js Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
"use strict";(self.webpackChunkgraylog_web_interface=self.webpackChunkgraylog_web_interface||[]).push([["325e2d4b-4875"],{"0+pgPwY9":(e,t,n)=>{n.d(t,{e:()=>P,Z:()=>k});var r=n("Z7aTuO5B"),a=n("ii0bleBb"),i=n.n(a),s=n("J6y4/h8P"),l=n("F9olzlTR"),o=n("0zTRKSqx"),c=n("dFpwyWHg"),u=n.n(c),d=n("C2ikvoS0"),p=n.n(d),h=n("1IntWRSu"),m=n.n(h),g=n("8nGWeFnd"),f=n.n(g),b=n("TeAcaicX"),y=n.n(b),v=n("eE3+5goe"),E=n.n(v),C=n("vdoirfHG"),x={};x.styleTagTransform=E(),x.setAttributes=f(),x.insert=m().bind(null,"head"),x.domAPI=p(),x.insertStyleElement=y();u()(C.Z,x);const A=C.Z&&C.Z.locals?C.Z.locals:void 0,S=(0,s.default)(o.JO).withConfig({displayName:"HelpPanel__IconHeader",componentId:"sc-1ghigo2-0"})(["margin-right:9px;"]),w=e=>{let{condition:t,wrapper:n,children:r}=e;return t?n(r):r},P=e=>{let{bsStyle:t,children:n,className:a,collapsible:i,header:s,title:o,defaultExpanded:c}=e;const u=r.createElement("h3",null,r.createElement(S,{name:"info-circle"}),o);return r.createElement(l.s_,{defaultExpanded:c,className:`${A.helpPanel} ${a}`,bsStyle:t},r.createElement(l.s_.Heading,null,r.createElement(l.s_.Title,{toggle:i},s||u)),r.createElement(w,{condition:i,wrapper:e=>r.createElement(l.s_.Collapse,null,e)},r.createElement(l.s_.Body,null,n)))};P.propTypes={bsStyle:i().oneOf(["success","warning","danger","info","default","primary"]),children:i().node,className:i().string,collapsible:i().bool,header:i().node,title:i().string,defaultExpanded:i().bool},P.defaultProps={bsStyle:"info",children:void 0,className:"",collapsible:!1,header:void 0,title:"",defaultExpanded:!1};const k=P},nRMrOfDS:(e,t,n)=>{var r=n("AztyBNMT"),a=n("Z7aTuO5B"),i=n("ii0bleBb"),s=n.n(i),l=n("nHcjWeCO"),o=n.n(l),c=n("F9olzlTR"),u=n("YyiN4DLW"),d=n("9oVghaOd"),p=n.n(d),h=n("0zTRKSqx"),m=n("b/6pmtOr"),g=n("DH+PEhYn"),f=n("99ipeflJ"),b=n("V/MyycIc"),y=n("HEvxCVG3"),v=n("dFKAafZY"),E=n("EUJYvlA3"),C=n("lYmGaP4J"),x=n("Lzn6DvfV"),A=n("Gwe1WYWk"),S=n("J6y4/h8P"),w=n("NxQnyiWl"),P=n("8pZttqbT");const k=(0,S.default)("code").withConfig({displayName:"LookupTableParameterEdit__StyledInlineCode",componentId:"sc-16mba38-0"})(["margin:0 0.25em;white-space:nowrap;"]),q=e=>{var t,n,r,i,s;let{validationState:l,onChange:o,lookupTables:u,identifier:d,parameter:p,defaultExpandHelp:h}=e;const{lookupTable:m,key:g,defaultValue:f,name:b}=p,v=`$${b}$`,E=e=>t=>{o(e,t)},C=e=>t=>{let{target:{value:n}}=t;return E(e)(n)};if(!u)return a.createElement(P.Z,{text:"Loading lookup tables"});const x=u.sort(((e,t)=>(0,y.Q)(e.title,t.title))).map((e=>({label:e.title,value:e.name})));return a.createElement(a.Fragment,null,a.createElement(c.II,{id:`lookup-table-parameter-table-${d}`,name:"query-param-table-name",label:"Lookup Table",bsStyle:null==l||null===(t=l.lookupTable)||void 0===t?void 0:t[0],error:null==l||null===(n=l.lookupTable)||void 0===n?void 0:n[1],help:"Select the lookup table Graylog should use to get the values."},a.createElement(w.Z,{placeholder:"Select lookup table",inputProps:{"aria-label":"Select lookup table"},onChange:E("lookupTable"),options:x,value:m,autoFocus:!0,clearable:!1,required:!0})),a.createElement(c.II,{type:"text",id:`lookup-table-parameter-key-${d}`,label:"Lookup Table Key",name:"key",defaultValue:g,onChange:C("key"),bsStyle:null==l||null===(r=l.key)||void 0===r?void 0:r[0],help:"Select the lookup table key",error:"error"===(null==l||null===(i=l.key)||void 0===i?void 0:i[0])?null==l||null===(s=l.key)||void 0===s?void 0:s[1]:void 0,spellCheck:!1,required:!0}),a.createElement(c.II,{id:`lookup-table-parameter-default-value-${d}`,type:"text",name:"defaultValue",label:"Default Value",help:"Select a default value in case the lookup result is empty",defaultValue:f,spellCheck:!1,onChange:C("defaultValue")}),a.createElement(c.s_,{id:"lookup-table-parameter-help",defaultExpanded:h},a.createElement(c.s_.Heading,null,a.createElement(c.s_.Title,{toggle:!0},"How to use lookup table parameters")),a.createElement(c.s_.Collapse,null,a.createElement(c.s_.Body,null,a.createElement("h5",null,"General Usage"),a.createElement("p",null,"After declaring it, the parameter",a.createElement(k,null,v),"in your query, will be replaced with the list of results from the lookup table. The list of results will be presented in the form of a Lucene BooleanQuery. E.g.:",a.createElement(k,null,'("foo" OR "bar" OR "baz")')),a.createElement("h5",null,"Behaviour on empty lookup result list"),a.createElement("p",null,"The event definition query is only executed if a value for the parameter is present. If the lookup result is empty, the execution will be skipped and treated as if the ",a.createElement("i",null,"Search Query")," found no messages. If an execution is desired a ",a.createElement("i",null,"Default Value")," that yields the desired search result needs to be provided. For example, (depending on the use case) a wildcard like",a.createElement(k,null,"*"),"can be a meaningful Default Value."),a.createElement("h5",null,"Limitations"),a.createElement("p",null,"Please note that maximum number of supported results is 1024. If the lookup table returns more results, the query is not executed.")))))};q.defaultProps={parameter:{},validationState:{},defaultExpandHelp:!0};const _=q;function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class D extends a.Component{constructor(e){super(e),T(this,"modal",a.createRef()),T(this,"openModal",(()=>{this.modal.open()})),T(this,"_saved",(()=>{const{queryParameter:e}=this.state;this._validate(e)&&(this.propagateChanges(),this.modal.close())})),T(this,"_cleanState",(()=>{const{queryParameter:e}=this.props;this.setState({queryParameter:e})})),T(this,"propagateChanges",(()=>{const{queryParameters:e,onChange:t,queryParameter:n}=this.props,{queryParameter:r}=this.state,a=[...e],i=e.findIndex((e=>e.name===n.name));if(i<0)throw new Error(`Query parameter "${r.name}" not found`);a[i]=r.toJSON(),t(a)})),T(this,"handleParameterChange",((e,t)=>{const{queryParameter:n}=this.state,r=n.toBuilder()[e](t).build();this.setState({queryParameter:r})})),T(this,"_validate",(e=>{const t={};return e.lookupTable||(t.lookupTable="Cannot be empty"),e.key||(t.key="Cannot be empty"),this.setState({validation:t}),o().isEmpty(t)}));const{queryParameter:t}=this.props;this.state={queryParameter:t,validation:{}}}render(){const{lookupTables:e,embryonic:t}=this.props,{queryParameter:n,validation:r}=this.state,i={lookupTable:r.lookupTable?["error",r.lookupTable]:void 0,key:r.key?["error",r.key]:void 0};return a.createElement(a.Fragment,null,a.createElement(c.zx,{bsSize:"small",bsStyle:t?"primary":"info",onClick:()=>this.openModal()},n.name,t&&": undeclared"),a.createElement(c.K$,{ref:e=>{this.modal=e},title:`Declare Query Parameter "${n.name}" from Lookup Table`,onSubmitForm:this._saved,onModalClose:this._cleanState,submitButtonText:"Save"},a.createElement(_,{validationState:i,identifier:n.name,parameter:n,onChange:this.handleParameterChange,lookupTables:e})))}}T(D,"propTypes",{queryParameters:s().array.isRequired,queryParameter:s().object.isRequired,lookupTables:s().array.isRequired,onChange:s().func.isRequired,embryonic:s().bool.isRequired});const R=D;var I=n("4kW3fUUU");function Z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const O=["HOURS","MINUTES","SECONDS"],F=["lookuptables:read"];class j extends a.Component{constructor(e){super(e),Z(this,"formatStreamIds",o().memoize((e=>{const{streams:t}=this.props;return e.map((e=>t.find((t=>t.id===e))||e)).map((e=>{const t="object"==typeof e?e:{title:e,id:e};return{label:t.title,value:t.id}})).sort(((e,t)=>(0,y.Q)(e.label,t.label)))}),(e=>e.join("-")))),Z(this,"_parseQuery",o().debounce((e=>{if(!this._userCanViewLookupTables())return;const{queryId:t,searchTypeId:n}=this.state,r=g.ZP.builder().id(t).query({type:"elasticsearch",query_string:e}).timerange({type:"relative",range:1e3}).searchTypes([{id:n,type:"messages",limit:10,offset:0}]).build(),a=f.Z.create().toBuilder().queries([r]).build();v.D.parseSearch(a).then((e=>{this._syncParamsWithQuery(e.undeclared)}))}),250)),Z(this,"propagateChange",((e,t)=>{const{eventDefinition:n,onChange:r}=this.props,a=o().cloneDeep(n.config);a[e]=t,r("config",a)})),Z(this,"_syncParamsWithQuery",(e=>{const{eventDefinition:t,onChange:n}=this.props,r=o().cloneDeep(t.config),a=r.query_parameters,i=[],s={};a.forEach((t=>{e.has(t.name)?i.push(t):s[t.name]=t}));const{queryParameterStash:l}=this.state,c=[];e.forEach((e=>{i.find((t=>t.name===e))||(l[e]?c.push(l[e]):c.push({name:e,embryonic:!0,type:"lut-parameter-v1",data_type:"any",title:"new title"}))})),this.setState({queryParameterStash:o().merge(l,s)}),r.query_parameters=i.concat(c),n("config",r)})),Z(this,"_userCanViewLookupTables",(()=>{const{currentUser:e}=this.props;return(0,E.rq)(e.permissions,F)})),Z(this,"handleQueryChange",(e=>{this._parseQuery(e.target.value),this.handleConfigChange(e)})),Z(this,"handleConfigChange",(e=>{const{name:t}=e.target;this.propagateChange(t,u.n6(e.target))})),Z(this,"handleStreamsChange",(e=>{this.propagateChange("streams",e)})),Z(this,"handleTimeRangeChange",(e=>(t,n)=>{const r=p().duration(o().max([t,1]),n).asMilliseconds();this.propagateChange(e,r);const a=o().camelCase(e);this.setState({[`${a}Duration`]:t,[`${a}Unit`]:n})})),Z(this,"renderQueryParameters",(()=>{const{eventDefinition:e,onChange:t,lookupTables:n,validation:r}=this.props,{query_parameters:i}=e.config,s=n=>{const r={...e.config,query_parameters:n};return t("config",r)};if(!this._userCanViewLookupTables())return a.createElement(c.bZ,{bsStyle:"info"},"This account lacks permission to declare Query Parameters from Lookup Tables.");const l=i.map((e=>a.createElement(R,{key:e.name,queryParameter:C.Z.fromJSON(e),embryonic:!!e.embryonic,queryParameters:i,lookupTables:n.tables,validation:r,onChange:s})));if(o().isEmpty(l))return null;const u=!o().isEmpty(i.filter((e=>e.embryonic)));return a.createElement(c.cw,{validationState:r.errors.query_parameters?"error":null},a.createElement(c.J$,null,"Query Parameters"),a.createElement(c.bZ,{bsStyle:u?"danger":"info"},a.createElement(c.Si,null,l)),u&&a.createElement(c.Qb,null,r.errors.query_parameters?o().get(r,"errors.query_parameters[0]"):"Please declare missing query parameters by clicking on the buttons above."))}));const{execute_every_ms:t,search_within_ms:n}=e.eventDefinition.config,r=(0,b.l)(n,O),i=(0,b.l)(t,O);this.state={searchWithinMsDuration:r.duration,searchWithinMsUnit:r.unit,executeEveryMsDuration:i.duration,executeEveryMsUnit:i.unit,queryId:(0,A.Z)(),searchTypeId:(0,A.Z)(),queryParameterStash:{}}}componentDidMount(){this._userCanViewLookupTables()&&x.H.searchPaginated(1,0,void 0,!1)}render(){const{eventDefinition:e,streams:t,validation:n}=this.props,{searchWithinMsDuration:r,searchWithinMsUnit:i,executeEveryMsDuration:s,executeEveryMsUnit:l}=this.state,u=o().union(t.map((e=>e.id)),o().defaultTo(e.config.streams,[])),d=this.formatStreamIds(u);return a.createElement("fieldset",null,a.createElement("h2",{className:I.Z.title},"Filter"),a.createElement("p",null,"Add information to filter the log messages that are relevant for this Event Definition."),a.createElement(c.II,{id:"filter-query",name:"query",label:"Search Query",type:"text",help:a.createElement("span",null,"Search query that Messages should match. You can use the same syntax as in the Search page, including declaring Query Parameters from Lookup Tables by using the ",a.createElement("code",null,"$newParameter$")," syntax."),value:o().defaultTo(e.config.query,""),onChange:this.handleQueryChange}),this.renderQueryParameters(),a.createElement(c.cw,{controlId:"filter-streams"},a.createElement(c.J$,null,"Streams ",a.createElement("small",{className:"text-muted"},"(Optional)")),a.createElement(h.NU,{id:"filter-streams",matchProp:"label",onChange:e=>this.handleStreamsChange(""===e?[]:e.split(",")),options:d,value:o().defaultTo(e.config.streams,[]).join(",")}),a.createElement(c.Qb,null,"Select streams the search should include. Searches in all streams if empty.")),a.createElement(c.cw,{controlId:"search-within",validationState:n.errors.search_within_ms?"error":null},a.createElement(h.AX,{label:"Search within the last",update:this.handleTimeRangeChange("search_within_ms"),value:r,unit:i,units:O,clearable:!0,required:!0}),n.errors.search_within_ms&&a.createElement(c.Qb,null,o().get(n,"errors.search_within_ms[0]"))),a.createElement(c.cw,{controlId:"execute-every",validationState:n.errors.execute_every_ms?"error":null},a.createElement(h.AX,{label:"Execute search every",update:this.handleTimeRangeChange("execute_every_ms"),value:s,unit:l,units:O,clearable:!0,required:!0}),n.errors.execute_every_ms&&a.createElement(c.Qb,null,o().get(n,"errors.execute_every_ms[0]"))),a.createElement(c.II,{id:"schedule-checkbox",type:"checkbox",name:"_is_scheduled",label:"Enable",help:"Should this event definition be executed automatically?",checked:o().defaultTo(e.config._is_scheduled,!0),onChange:this.handleConfigChange}))}}Z(j,"propTypes",{eventDefinition:s().object.isRequired,lookupTables:s().object.isRequired,validation:s().object.isRequired,streams:s().array.isRequired,onChange:s().func.isRequired,currentUser:s().object.isRequired});const B=(0,m.Z)(j,{lookupTables:x.m});var U=n("6WrsI6bg"),N=n("JnTtTRmZ"),J=n.n(N),L=n("oCSEoDew"),V=n.n(L),z=n("YPyIcTeH"),G=n.n(z),Q=n("0wQfx7YJ"),H=n("OqsMdpSm"),W=n("4af3+9mh"),M=n("A/ZVOGfH"),X=n("xc00RsLr");const Y=(0,X.ei)("core.FilterPreview",(()=>J().createActions({create:{asyncResult:!0},execute:{asyncResult:!0},search:{asyncResult:!0}}))),K=(0,X.dS)("core.FilterPreview",(()=>J().createStore({listenables:[Y],sourceUrl:"/views/search",searchJob:void 0,result:void 0,getInitialState(){return this.getState()},propagateChanges(){this.trigger(this.getState())},getState(){return{searchJob:this.searchJob,result:this.result}},resourceUrl(e){let{segments:t=[],query:n={}}=e;const r=new(V())(this.sourceUrl),a=o().concat(r.segment(),t);return r.segmentCoded(a),r.query(n),Q.DC(r.resource())},create(e){const t=e.toBuilder().newId().build(),n=(0,H.ZP)("POST",this.resourceUrl({}),JSON.stringify(t));n.then((e=>(this.searchJob=f.Z.fromJSON(e),this.result=void 0,this.propagateChanges(),e))),Y.create.promise(n)},trackJobStatus(e,t){return new(G())((n=>e&&e.execution.done?n(new M.Z(e)):n(G().delay(250).then((()=>this.jobStatus(e.id))).then((e=>this.trackJobStatus(e,t))))))},run(e,t){return(0,H.ZP)("POST",this.resourceUrl({segments:[e.id,"execute"]}),JSON.stringify(t))},jobStatus(e){return(0,H.ZP)("GET",this.resourceUrl({segments:["status",e]}))},trackJob(e,t){return this.run(e,t).then((t=>this.trackJobStatus(t,e)))},execute(e){if(this.executePromise&&this.executePromise.cancel(),this.searchJob)return this.executePromise=this.trackJob(this.searchJob,e).then((e=>(this.result=e,this.executePromise=void 0,this.propagateChanges(),e)),(()=>W.Z.error("Could not execute search"))),Y.execute.promise(this.executePromise),this.executePromise;throw new Error("Unable to execute search if no search was created before!")},search(e,t){Y.create(e).then((()=>Y.execute(t)))}})));var ee=n("0+pgPwY9"),te=n("dFpwyWHg"),ne=n.n(te),re=n("C2ikvoS0"),ae=n.n(re),ie=n("1IntWRSu"),se=n.n(ie),le=n("8nGWeFnd"),oe=n.n(le),ce=n("TeAcaicX"),ue=n.n(ce),de=n("eE3+5goe"),pe=n.n(de),he=n("nmGMLleu"),me={};me.styleTagTransform=pe(),me.setAttributes=oe(),me.insert=se().bind(null,"head"),me.domAPI=ae(),me.insertStyleElement=ue();ne()(he.Z,me);const ge=he.Z&&he.Z.locals?he.Z.locals:void 0;function fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class be extends a.Component{constructor(){var e;super(...arguments),e=this,fe(this,"renderMessages",(e=>e.map((e=>{let{index:t,message:n}=e;return a.createElement("tr",{key:`${t}-${n._id}`},a.createElement("td",null,n.timestamp),a.createElement("td",null,n.message))})))),fe(this,"renderSearchResult",(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t.messages&&0!==t.messages.length?a.createElement(c.iA,{striped:!0,condensed:!0,bordered:!0},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",null,"Timestamp"),a.createElement("th",null,"Message"))),a.createElement("tbody",null,e.renderMessages(t.messages))):a.createElement("p",null,"Could not find any messages with the current search criteria.")}))}render(){const{isFetchingData:e,searchResult:t,errors:n,displayPreview:r}=this.props,i=e?a.createElement(h.$j,{text:"Loading filter preview..."}):this.renderSearchResult(t);return a.createElement(a.Fragment,null,a.createElement(ee.Z,{collapsible:!0,defaultExpanded:!r,title:"How many Events will Filter & Aggregation create?"},a.createElement("p",null,"The Filter & Aggregation Condition will generate different number of Events, depending on how it is configured:"),a.createElement("ul",null,a.createElement("li",null,a.createElement("b",null,"Filter:")," One Event per message matching the filter"),a.createElement("li",null,a.createElement("b",null,"Aggregation without groups:")," One Event every time the aggregation result satisfies the condition"),a.createElement("li",null,a.createElement("b",null,"Aggregation with groups:")," One Event per group whose aggregation result satisfies the condition"))),r&&a.createElement(c.s_,{className:ge.filterPreview,bsStyle:"default"},a.createElement(c.s_.Heading,null,a.createElement(c.s_.Title,null,"Filter Preview")),a.createElement(c.s_.Body,null,n.length>0?a.createElement("p",{className:"text-danger"},n[0].description):i)))}}fe(be,"propTypes",{searchResult:s().object,errors:s().array,isFetchingData:s().bool,displayPreview:s().bool}),fe(be,"defaultProps",{searchResult:{},errors:[],isFetchingData:!1,displayPreview:!1});const ye=be;function ve(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ee=(e,t)=>!t.streams.some((t=>!(0,E.rq)(e.permissions,`streams:read:${t}`)));class Ce extends a.Component{constructor(e){super(e),ve(this,"fetchSearch",o().debounce((e=>{const{currentUser:t}=this.props;if(!Ee(t,e))return;const{queryId:n,searchTypeId:r}=this.state,a=e.streams.map((e=>({type:"stream",id:e}))),i=g.ZP.builder().id(n).query({type:"elasticsearch",query_string:e.query||"*"}).timerange({type:"relative",range:e.search_within_ms/1e3}).filter(0===a.length?null:{type:"or",filters:a}).searchTypes([{id:r,type:"messages",limit:10,offset:0}]).build(),s=f.Z.create().toBuilder().parameters(e.query_parameters.filter((e=>!e.embryonic))).queries([i]).build();Y.search(s)}),250)),this.state={queryId:(0,A.Z)(),searchTypeId:(0,A.Z)()}}componentDidMount(){const{eventDefinition:e}=this.props;this.fetchSearch(e.config)}componentDidUpdate(e){const{eventDefinition:t}=this.props,{query:n,query_parameters:r,streams:a,search_within_ms:i}=e.eventDefinition.config,{query:s,query_parameters:l,streams:c,search_within_ms:u}=t.config;s===n&&l===r&&o().isEqual(c,a)&&u===i||this.fetchSearch(t.config)}render(){const{eventDefinition:e,filterPreview:t,currentUser:n}=this.props,{queryId:r,searchTypeId:i}=this.state,s=!t.result||!t.result.forId(r);let l,o;return s||(l=t.result.forId(r).searchTypes[i],o=t.result.errors),a.createElement(ye,{eventDefinition:e,isFetchingData:s,displayPreview:Ee(n,e.config),searchResult:l,errors:o})}}ve(Ce,"propTypes",{eventDefinition:s().object.isRequired,filterPreview:s().object.isRequired,currentUser:s().object.isRequired});const xe=(0,m.Z)(Ce,{filterPreview:K,currentUser:U.D},(e=>{let{currentUser:t,...n}=e;return{...n,currentUser:t.currentUser}}));var Ae=n("6n4dw8v3"),Se=n("iZEbgYb9"),we=n("v07IjUZn");const Pe=()=>({expr:void 0,left:{expr:"number-ref",ref:void 0},right:{expr:"number",value:0}}),ke=e=>{let{operator:t="&&",left:n=Pe(),right:r=Pe()}=e;return{expr:t,left:n,right:r}},qe=(e,t)=>{const n={...t};return"&&"!==t.expr&&"||"!==t.expr||(n.expr=e,n.left=qe(e,n.left),n.right=qe(e,n.right)),n},_e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.message?(0,l.union)(t,[e.message]):e.left?(0,l.union)(t,_e(e.left),_e(e.right)):e.child?(0,l.union)(t,_e(e.child)):t},Te=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};switch(e.expr){case"number":return Number.isFinite(e.value)?{}:{message:"Threshold must be a valid number"};case"number-ref":const r={message:"Function must be set"};if(!e.ref)return r;const a=t.find((t=>t.id===e.ref));return a&&a.function?{}:r;case"&&":case"||":case"<":case"<=":case">":case">=":case"==":return{left:Te(e.left,t,n),right:Te(e.right,t,n)};case"group":return{child:Te(e.child,t,n)};default:return{message:"Condition must be set"}}},De=(e,t)=>{const n={};return e?(n.validationTree=Te(e,t),n.errors=_e(n.validationTree),n.isValid=0===n.errors.length,n):(n.isValid=!0,n)},Re=s().shape({expr:s().string,left:s().object,right:s().object}),Ie=s().shape({expr:s().string,value:s().oneOfType([s().number,s().string])}),Ze=s().shape({expr:s().string,ref:s().string}),Oe=e=>{let{expression:t,onChange:n,renderLabel:r,validation:i}=e;return a.createElement(c.JX,{md:3},a.createElement(c.II,{id:"aggregation-threshold",name:"threshold",label:r?"Threshold":"",type:"number",value:o().get(t,"value"),bsStyle:i.message?"error":null,help:i.message,onChange:e=>{const r=o().cloneDeep(t);r.value=""===e.target.value?"":u.n6(e.target),n({conditions:r})}}))};Oe.propTypes={expression:Ie.isRequired,onChange:s().func.isRequired,renderLabel:s().bool.isRequired,validation:s().object},Oe.defaultProps={validation:{}};const Fe=Oe,je=e=>{let{aggregationFunctions:t,formattedFields:n,eventDefinition:r,expression:i,onChange:s,renderLabel:l,validation:u}=e;const d=e=>r.config.series.find((t=>t.id===e)),p=e=>d(e)||{id:i.ref},m=e=>{let{nextFunction:t,nextField:n}=e;const a=o().cloneDeep(r.config.series),l=o().cloneDeep(p(i.ref)),c=(u=l,d=t,h=n,`${o().defaultTo(d,u.function)}-${o().defaultTo(h,u.field||"")}`);var u,d,h;void 0!==t&&(l.function=t),void 0!==n&&(l.field=n),l.id=c;const m=a.findIndex((e=>e.id===l.id));m>=0?a[m]=l:a.push(l);const g=o().cloneDeep(i);g.ref=c,s({series:a,conditions:g})},g=d(i.ref)||{};return a.createElement(c.JX,{md:6},a.createElement(c.cw,{controlId:"aggregation-function",validationState:u.message?"error":null},l&&a.createElement(c.J$,null,"If"),a.createElement(c.X2,{className:"row-sm"},a.createElement(c.JX,{md:6},a.createElement(h.Ph,{className:"aggregation-function",matchProp:"label",placeholder:"Select Function",onChange:e=>{m({nextFunction:e})},options:(f=t,f.sort(Ae.S).map((e=>({label:`${e.toLowerCase()}()`,value:e})))),clearable:!1,value:g.function})),a.createElement(c.JX,{md:6},a.createElement(h.Ph,{className:"aggregation-function-field",ignoreAccents:!1,matchProp:"label",placeholder:"Select Field (Optional)",onChange:e=>{m({nextField:e})},options:n,value:g.field,allowCreate:!0}))),u.message&&a.createElement(c.Qb,null,u.message)));var f};je.propTypes={aggregationFunctions:s().array.isRequired,eventDefinition:s().object.isRequired,expression:Ze.isRequired,formattedFields:s().array.isRequired,onChange:s().func.isRequired,renderLabel:s().bool.isRequired,validation:s().object},je.defaultProps={validation:{}};const $e=je,Be=S.default.div.withConfig({displayName:"BooleanOperatorSelector__OperatorSelector",componentId:"sc-sflinp-0"})((e=>{let{theme:t}=e;return(0,S.css)(["margin-bottom:15px;font-size:",";"],t.fonts.size.body)})),Ue=(0,S.default)((e=>{let{isFirstElement:t,...n}=e;return a.createElement(c.cw,n)})).withConfig({displayName:"BooleanOperatorSelector__BooleanOperatorSelect",componentId:"sc-sflinp-1"})(["width:100px;margin-left:",";margin-right:1em;"],(e=>e.isFirstElement?"":"1em")),Ne=e=>{let{initialText:t,operator:n,onOperatorChange:r}=e;return a.createElement(c.JX,{md:12},a.createElement(Be,{className:"form-inline"},t&&a.createElement(c.cw,null,a.createElement(c.NI.Static,null,t," ")),a.createElement(Ue,{isFirstElement:!t},a.createElement(h.Ph,{className:"boolean-operator",matchProp:"label",size:"small",onChange:r,options:[{label:"all",value:"&&"},{label:"any",value:"||"}],value:n,clearable:!1})),a.createElement(c.cw,null,a.createElement(c.NI.Static,null," of the following rules:"))))};Ne.propTypes={initialText:s().string,operator:s().string.isRequired,onOperatorChange:s().func.isRequired},Ne.defaultProps={initialText:""};const Je=Ne;function Le(){return Le=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{expression:t,level:n,onChildChange:r,validation:i}=e;return a.createElement(a.Fragment,null,a.createElement(it,Le({},e,{expression:t.left,validation:i.left,parent:t,onChange:r("left"),level:n+1})),a.createElement(c.O7,null),a.createElement(it,Le({},e,{expression:t.right,validation:i.right,parent:t,onChange:r("right"),level:n+1,renderLabel:!1})))};Ve.propTypes={expression:Re.isRequired,parent:Re,level:s().number.isRequired,onChange:s().func.isRequired,onChildChange:s().func.isRequired,validation:s().object},Ve.defaultProps={parent:void 0,validation:{}};const ze=Ve;function Ge(){return Ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{expression:t,level:n,onChildChange:r,onChange:i,renderLabel:s,validation:l}=e;return a.createElement(c.JX,{md:10},a.createElement(c.X2,{className:"row-sm"},a.createElement(it,Ge({},e,{expression:t.left,validation:l.left,parent:t,onChange:r("left"),level:n+1})),a.createElement(c.JX,{md:3},a.createElement(c.cw,{controlId:"aggregation-condition",validationState:l.message?"error":null},s&&a.createElement(c.J$,null,"Is"),a.createElement(h.Ph,{id:"aggregation-condition",matchProp:"label",placeholder:"Select Condition",onChange:e=>{const n=o().cloneDeep(t);n.expr=e,i({conditions:n})},options:[{label:"<",value:"<"},{label:"<=",value:"<="},{label:">",value:">"},{label:">=",value:">="},{label:"=",value:"=="}],value:t.expr,clearable:!1}),l.message&&a.createElement(c.Qb,null,l.message))),a.createElement(it,Ge({},e,{expression:t.right,validation:l.right,parent:t,onChange:r("right"),level:n+1}))))};Qe.propTypes={expression:Re.isRequired,level:s().number.isRequired,onChange:s().func.isRequired,onChildChange:s().func.isRequired,renderLabel:s().bool.isRequired,validation:s().object},Qe.defaultProps={validation:{}};const He=Qe;function We(){return We=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{expression:t,level:n,onChange:r,onChildChange:i,validation:s}=e;return a.createElement(a.Fragment,null,a.createElement(Je,{operator:t.operator,onOperatorChange:e=>{const n=(0,l.cloneDeep)(t);n.operator=e,n.child=qe(e,n.child),r({conditions:n})}}),a.createElement(c.O7,null),a.createElement(Me,null,a.createElement(it,We({},e,{expression:t.child,validation:s.child,parent:t,onChange:i("child"),level:n+1}))))};Xe.propTypes={expression:Re.isRequired,level:s().number.isRequired,onChange:s().func.isRequired,onChildChange:s().func.isRequired,validation:s().object},Xe.defaultProps={validation:{}};const Ye=Xe;var Ke=n("3saCUhRt"),et={};et.styleTagTransform=pe(),et.setAttributes=oe(),et.insert=se().bind(null,"head"),et.domAPI=ae(),et.insertStyleElement=ue();ne()(Ke.Z,et);const tt=Ke.Z&&Ke.Z.locals?Ke.Z.locals:void 0;function nt(){return nt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{globalGroupOperator:e}=this.state;if(e)return e;const{expression:t}=this.props;return"&&"===t.expr||"||"===t.expr?t.expr:"&&"})),rt(this,"getBooleanOperator",((e,t)=>{if(!e)return t;const n="group"===e.expr?"operator":"expr";return"&&"===o().get(e,n,t)?"&&":"||"})),rt(this,"handleAddExpression",(()=>{const{expression:e,onChange:t,parent:n}=this.props,r=this.getEffectiveGlobalGroupOperator(),a=this.getBooleanOperator(n,r);t({conditions:ke({operator:a,left:e})})})),rt(this,"handleAddGroup",(()=>{const{expression:e,onChange:t,parent:n}=this.props,r=this.getEffectiveGlobalGroupOperator(),a=this.getBooleanOperator(n,r),i=(e=>{let{operator:t="&&",child:n=Pe()}=e;return{expr:"group",operator:t,child:n}})({operator:"&&"===a?"||":"&&"});t({conditions:ke({operator:a,left:e,right:i})})})),rt(this,"handleDeleteExpression",(()=>{const{onChange:e}=this.props;e({conditions:null})})),rt(this,"handleChildChange",(e=>t=>{const{expression:n,onChange:r}=this.props;if(!Object.keys(t).includes("conditions"))return void r(t);const a=t.conditions;let i;if(null===a)i="child"===e?null:n["left"===e?"right":"left"];else if("child"===e&&"group"===a.expr)i=a;else{const t=o().cloneDeep(n);t[e]=a,i=t}r({...t,conditions:i})})),rt(this,"handleOperatorChange",(e=>{const{expression:t,onChange:n}=this.props;this.setState({globalGroupOperator:e});n({conditions:qe(e,t)})}))}render(){const{expression:e,parent:t,renderLabel:n}=this.props;let r;switch(e.expr){case"number-ref":r=a.createElement($e,nt({},this.props,{parent:t}));break;case"number":r=a.createElement(Fe,nt({},this.props,{parent:t}));break;case"group":r=a.createElement(Ye,nt({},this.props,{onChildChange:this.handleChildChange,parent:t}));break;case"&&":case"||":r=a.createElement(ze,nt({},this.props,{onChildChange:this.handleChildChange,parent:t}));break;default:r=a.createElement(a.Fragment,null,a.createElement(He,nt({},this.props,{onChildChange:this.handleChildChange,parent:t})),a.createElement(c.JX,{md:2},a.createElement(c.cw,null,a.createElement("div",{className:n?tt.formControlNoLabel:void 0},a.createElement(c.Si,null,a.createElement(c.zx,{bsSize:"sm",onClick:this.handleDeleteExpression},a.createElement(h.JO,{name:"minus",fixedWidth:!0})),a.createElement(c.zx,{bsSize:"sm",onClick:this.handleAddExpression},a.createElement(h.JO,{name:"plus",fixedWidth:!0})),a.createElement(c.zx,{bsSize:"sm",onClick:this.handleAddGroup},"Add Group"))))))}return t||"group"===e.expr?r:a.createElement(a.Fragment,null,a.createElement(Je,{initialText:"Messages must meet",operator:this.getEffectiveGlobalGroupOperator(),onOperatorChange:this.handleOperatorChange}),a.createElement(c.O7,null),r)}}rt(at,"propTypes",{eventDefinition:s().object.isRequired,validation:s().object,formattedFields:s().array.isRequired,aggregationFunctions:s().array.isRequired,onChange:s().func.isRequired,expression:Re.isRequired,parent:Re,level:s().number,renderLabel:s().bool}),rt(at,"defaultProps",{level:0,parent:void 0,renderLabel:!0,validation:{}});const it=at,st=e=>{let{conditions:t,series:n}=e;const r=e=>{if(!e)return"No condition configured";switch(e.expr){case"number":return e.value;case"number-ref":const t=n.find((t=>t.id===e.ref));return t&&t.function?a.createElement("var",null,t.function,"(",t.field,")"):a.createElement("span",null,"No series selected");case"&&":case"||":return a.createElement(a.Fragment,null,r(e.left)," ",a.createElement("strong",{className:"text-info"},"&&"===e.expr?"AND":"OR")," ",r(e.right));case"group":return a.createElement("span",null,"[",r(e.child),"]");case"<":case"<=":case">":case">=":case"==":return a.createElement(a.Fragment,null,r(e.left)," ",a.createElement("strong",{className:"text-primary"},e.expr," "),r(e.right));default:return"No condition configured"}};return r(t.expression)};st.propTypes={conditions:s().object.isRequired,series:s().array.isRequired};const lt=st,ot=(0,S.default)(c.s_).withConfig({displayName:"AggregationConditionsFormSummary__StyledPanel",componentId:"sc-1dh2bk3-0"})(["margin-top:10px;"]),ct=(0,S.default)(c.zx).withConfig({displayName:"AggregationConditionsFormSummary__StyledButton",componentId:"sc-1dh2bk3-1"})(["margin-left:15px;vertical-align:baseline;"]),ut=e=>{const{conditions:t,series:n,expressionValidation:r,showInlineValidation:i,toggleShowValidation:s}=e;return a.createElement("div",null,a.createElement(ot,{header:"Condition summary"},r.isValid?a.createElement("p",{className:"text-success"},a.createElement(h.JO,{name:"check-square"})," Condition is valid"):a.createElement("p",{className:"text-danger"},a.createElement(h.JO,{name:"exclamation-triangle"})," Condition is not valid",a.createElement(ct,{bsSize:"xsmall",onClick:s},i?"Hide errors":"Show errors")),a.createElement("b",null,"Preview:")," ",a.createElement(lt,{series:n,conditions:t})))};ut.propTypes={conditions:s().object.isRequired,series:s().array.isRequired,expressionValidation:s().object,showInlineValidation:s().bool,toggleShowValidation:s().func.isRequired},ut.defaultProps={expressionValidation:{isValid:!0},showInlineValidation:!1};const dt=ut;function pt(){return pt=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[];return"number-ref"===e.expr&&t.push(e.ref),e.left&&e.right?gt(e.left).concat(gt(e.right)):e.child?gt(e.child):t},ft=(0,S.default)(c.bZ).withConfig({displayName:"AggregationConditionsForm__StyledAlert",componentId:"sc-1y58muo-0"})(["margin-bottom:10px !important;"]);class bt extends a.Component{constructor(e){super(e),ht(this,"toggleShowInlineValidation",(()=>{const{showInlineValidation:e}=this.state;this.setState({showInlineValidation:!e})})),ht(this,"handleChange",(e=>{const{eventDefinition:t,onChange:n}=this.props;if(!Object.keys(e).includes("conditions"))return void n(e);const r=e.conditions;let a;if(r){const n=gt(r);a=(e.series||t.config.series).filter((e=>n.includes(e.id)))}else a=[];n({...e,conditions:{expression:r},series:a})})),this.state={showInlineValidation:!1}}render(){const{showInlineValidation:e}=this.state,{eventDefinition:t,validation:n}=this.props,r=t.config.conditions.expression||mt,i=De(r,t.config.series);return a.createElement(a.Fragment,null,a.createElement("h3",{className:I.Z.title},"Create Events for Definition"),n.errors.conditions&&a.createElement(ft,{bsStyle:"danger"},a.createElement("h4",null,a.createElement(h.JO,{name:"exclamation-triangle"})," Errors found"),a.createElement("p",null,(0,l.get)(n,"errors.conditions[0]"))),a.createElement(c.X2,null,a.createElement(it,pt({expression:r},this.props,{validation:e?i.validationTree:{},onChange:this.handleChange}))),a.createElement(dt,{conditions:t.config.conditions,series:t.config.series,expressionValidation:i,showInlineValidation:e,toggleShowValidation:this.toggleShowInlineValidation}))}}ht(bt,"propTypes",{eventDefinition:s().object.isRequired,validation:s().object.isRequired,formattedFields:s().array.isRequired,aggregationFunctions:s().array.isRequired,onChange:s().func.isRequired});const yt=bt,vt=e=>{var t,n;let{aggregationFunctions:r,eventDefinition:i,validation:s,onChange:l}=e;const{data:u}=(0,Se.Z)(null!==(t=null==i||null===(n=i.config)||void 0===n?void 0:n.streams)&&void 0!==t?t:[],we.w_),d=(0,a.useMemo)((()=>(null!=u?u:[]).sort(((e,t)=>(0,Ae.S)(e.name,t.name))).map((e=>({label:`${e.name} – ${e.value.type.type}`,value:e.name})))),[u]),p=(0,a.useCallback)((e=>{const t={...i.config,...e};l("config",t)}),[i.config,l]),m=(0,a.useCallback)((e=>{const t=""===e?[]:e.split(",");p({group_by:t})}),[p]);return a.createElement("fieldset",null,a.createElement("h2",{className:I.Z.title},"Aggregation"),a.createElement("p",null,"Summarize log messages matching the Filter defined above by using a function. You can optionally group the Filter results by identical field values."),a.createElement(c.X2,null,a.createElement(c.JX,{lg:7},a.createElement(c.cw,{controlId:"group-by"},a.createElement(c.J$,null,"Group by Field(s) ",a.createElement("small",{className:"text-muted"},"(Optional)")),a.createElement(h.NU,{id:"group-by",matchProp:"label",onChange:m,options:d,ignoreAccents:!1,value:o().defaultTo(i.config.group_by,[]).join(","),allowCreate:!0}),a.createElement(c.Qb,null,"Select Fields that Graylog should use to group Filter results when they have identical values."," ",a.createElement("b",null,"Example:"),a.createElement("br",null),"Assuming you created a Filter with all failed log-in attempts in your network, Graylog could alert you when there are more than 5 failed log-in attempts overall. Now, add ",a.createElement("code",null,"username")," as Group by Field and Graylog will alert you ",a.createElement("em",null,"for each ",a.createElement("code",null,"username"))," with more than 5 failed log-in attempts.")))),a.createElement("hr",null),a.createElement(yt,{eventDefinition:i,validation:s,formattedFields:d,aggregationFunctions:r,onChange:p}))};vt.propTypes={eventDefinition:s().object.isRequired,validation:s().object.isRequired,aggregationFunctions:s().array.isRequired,onChange:s().func.isRequired};const Et=vt;function Ct(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const xt=0,At=1,St={group_by:[],series:[],conditions:{}};class wt extends a.Component{constructor(e){super(e),Ct(this,"propagateChange",((e,t)=>{const{onChange:n}=this.props;n(e,t)})),Ct(this,"handleTypeChange",(e=>{const t={},n=Number(u.n6(e.target));if(t[e.target.name]=n,n===At){const{eventDefinition:e}=this.props,n={};Object.keys(St).forEach((t=>{n[t]=e.config[t]})),t.existingAggregationConfig=n;const r={...e.config,...St};this.propagateChange("config",r)}else{const{existingAggregationConfig:e}=this.state;if(e){const{eventDefinition:n}=this.props,r={...n.config,...e};this.propagateChange("config",r),t.existingAggregationConfig=void 0}}this.setState(t)}));const{group_by:t,series:n,conditions:r}=e.eventDefinition.config,a=o().get(r,"expression",{}),i=o().isEmpty(t)&&o().isEmpty(n)&&o().isEmpty(a)?At:xt;this.state={conditionType:i}}render(){const{conditionType:e}=this.state,{entityTypes:t,eventDefinition:n,streams:r,validation:i,currentUser:s}=this.props;return a.createElement(a.Fragment,null,a.createElement(c.X2,null,a.createElement(c.JX,{md:7,lg:6},a.createElement(B,{eventDefinition:n,validation:i,streams:r.filter((e=>e.is_editable)),currentUser:s,onChange:this.propagateChange}),a.createElement(c.cw,null,a.createElement(c.J$,null,"Create Events for Definition if..."),a.createElement(c.Y8,{id:"filter-type",name:"conditionType",value:At,checked:e===At,onChange:this.handleTypeChange},"Filter has results"),a.createElement(c.Y8,{id:"aggregation-type",name:"conditionType",value:xt,checked:e===xt,onChange:this.handleTypeChange},"Aggregation of results reaches a threshold"))),a.createElement(c.JX,{md:5,lgOffset:1},a.createElement(xe,{eventDefinition:n}))),e===xt&&a.createElement(c.X2,null,a.createElement(c.JX,{md:12},a.createElement(Et,{eventDefinition:n,validation:i,aggregationFunctions:t.aggregation_functions,onChange:this.propagateChange}))))}}Ct(wt,"propTypes",{eventDefinition:s().object.isRequired,validation:s().object.isRequired,entityTypes:s().object.isRequired,streams:s().array.isRequired,onChange:s().func.isRequired,currentUser:s().object.isRequired}),Ct(wt,"defaultConfig",{query:"",query_parameters:[],streams:[],search_within_ms:3e5,execute_every_ms:3e5,...St});const Pt=wt;var kt=n("xxwliabF");function qt(){return qt=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[];const n=e.displayName||e.name||"Component";class r extends a.Component{constructor(e){super(e),this.state={streams:void 0}}componentDidMount(){kt.sH.load((e=>{let n=e.filter((e=>e.is_editable));0!==t.length&&(n=e.filter((e=>!t.includes(e.id)))),this.setState({streams:n})}))}render(){const{streams:t}=this.state;return t?a.createElement(e,qt({streams:t},this.props)):a.createElement(h.$j,{text:"Loading Streams Information..."})}}return r.displayName=`withStreams(${n})`,r}const Tt=e=>a.createElement(Pt,e);Tt.propTypes={action:s().oneOf(["create","edit"]).isRequired,validation:s().object.isRequired,eventDefinition:s().object.isRequired,onChange:s().func.isRequired,currentUser:s().object.isRequired};const Dt=_t(Tt);var Rt=n("EeAwn/0x"),It=n("DeVaSktS"),Zt=n("cx+ZNuS7"),Ot={};Ot.styleTagTransform=pe(),Ot.setAttributes=oe(),Ot.insert=se().bind(null,"head"),Ot.domAPI=ae(),Ot.insertStyleElement=ue();ne()(Zt.Z,Ot);const Ft=Zt.Z&&Zt.Z.locals?Zt.Z.locals:void 0;function jt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class $t extends a.Component{constructor(){super(...arguments),jt(this,"getConditionType",(e=>{const{group_by:t,series:n,conditions:r}=e;return o().isEmpty(t)&&(!r||o().isEmpty(r)||null===r.expression)&&o().isEmpty(n)?"filter":"aggregation"})),jt(this,"formatStreamOrId",(e=>"string"==typeof e?a.createElement("span",{key:e},a.createElement("em",null,e)):a.createElement("span",{key:e.id},a.createElement(Rt.r,{to:It.ZP.stream_search(e.id)},e.title)))),jt(this,"renderStreams",((e,t)=>{const{streams:n}=this.props;if((!e||0===e.length)&&t.length<=0)return"No Streams selected, searches in all Streams";const r=t.length>0?a.createElement(c.bZ,{bsStyle:"warning"},"Missing Stream Permissions for:",a.createElement("br",null),t.join(", ")):null,i=e.map((e=>n.find((t=>t.id===e))||e)).sort(((e,t)=>(0,y.Q)(e.title||e,t.title||t))).map(this.formatStreamOrId);return a.createElement(a.Fragment,null,r,i)})),jt(this,"renderQueryParameters",(e=>{if(e.some((e=>e.embryonic))){const t=e.filter((e=>e.embryonic)).map((e=>e.name)).join(", ");return a.createElement(c.bZ,{bsStyle:"danger"},a.createElement(h.JO,{name:"exclamation-triangle"})," There are undeclared query parameters: ",t)}return a.createElement("dd",null,e.map((e=>e.name)).join(", "))}))}render(){const{config:e,currentUser:t}=this.props,{query:n,query_parameters:r,streams:i,search_within_ms:s,execute_every_ms:l,_is_scheduled:u,group_by:d,series:p,conditions:m}=e,g=this.getConditionType(e),f=(0,b.l)(s,O),y=(0,b.l)(l,O),v=i.filter((e=>(0,E.rq)(t.permissions,`streams:read:${e}`))),C=i.filter((e=>!v.includes(e))),x=De(m.expression,p);return a.createElement("dl",null,a.createElement("dt",null,"Type"),a.createElement("dd",null,o().upperFirst(g)),a.createElement("dt",null,"Search Query"),a.createElement("dd",null,n||"*"),r.length>0&&this.renderQueryParameters(r),a.createElement("dt",null,"Streams"),a.createElement("dd",{className:Ft.streamList},this.renderStreams(v,C)),a.createElement("dt",null,"Search within"),a.createElement("dd",null,f.duration," ",f.unit.toLowerCase()),a.createElement("dt",null,"Execute search every"),a.createElement("dd",null,y.duration," ",y.unit.toLowerCase()),a.createElement("dt",null,"Enable scheduling"),a.createElement("dd",null,u?"yes":"no"),"aggregation"===g&&a.createElement(a.Fragment,null,a.createElement("dt",null,"Group by Field(s)"),a.createElement("dd",null,d&&d.length>0?d.join(", "):"No Group by configured"),a.createElement("dt",null,"Create Events if"),a.createElement("dd",null,x.isValid?a.createElement(lt,{series:p,conditions:m}):a.createElement(c.bZ,{bsSize:"small",bsStyle:"danger"},a.createElement(h.JO,{name:"exclamation-triangle"}),"  Condition is not valid: ",x.errors.join(", ")))))}}jt($t,"propTypes",{config:s().object.isRequired,currentUser:s().object.isRequired,streams:s().array.isRequired});const Bt=_t($t);r.PluginStore.register(new r.PluginManifest({},{eventDefinitionTypes:[{type:"aggregation-v1",displayName:"Filter & Aggregation",sortOrder:0,description:"Create Events from log messages by filtering them and (optionally) aggregating their results to match a given condition. These Events can be used as input for a Correlation Rule.",formComponent:Dt,summaryComponent:Bt,defaultConfig:Pt.defaultConfig}]}))},vxGQ9flp:(e,t,n)=>{n.d(t,{B:()=>m,y:()=>h});var r=n("JnTtTRmZ"),a=n.n(r),i=n("oCSEoDew"),s=n.n(i),l=n("nHcjWeCO"),o=n.n(l),c=n("0wQfx7YJ"),u=n("4af3+9mh"),d=n("OqsMdpSm"),p=n("xc00RsLr");const h=(0,p.ei)("core.EventDefinitions",(()=>a().createActions({listAll:{asyncResult:!0},listPaginated:{asyncResult:!0},get:{asyncResult:!0},create:{asyncResult:!0},copy:{asyncResult:!0},update:{asyncResult:!0},delete:{asyncResult:!0},enable:{asyncResult:!0},disable:{asyncResult:!0},clearNotificationQueue:{asyncResult:!0}}))),m=(0,p.dS)("core.EventDefinitions",(()=>a().createStore({listenables:[h],sourceUrl:"/events/definitions",all:void 0,eventDefinitions:void 0,context:void 0,query:void 0,pagination:{count:void 0,page:void 0,pageSize:void 0,total:void 0,grandTotal:void 0},getInitialState(){return this.getState()},propagateChanges(){this.trigger(this.getState())},getState(){return{all:this.all,eventDefinitions:this.eventDefinitions,context:this.context,query:this.query,pagination:this.pagination}},eventDefinitionsUrl(e){let{segments:t=[],query:n={}}=e;const r=new(s())(this.sourceUrl),a=o().concat(r.segment(),t);return r.segmentCoded(a),r.query(n),c.DC(r.resource())},refresh(){this.all&&this.listAll(),this.pagination.page&&this.listPaginated({query:this.query,page:this.pagination.page,pageSize:this.pagination.pageSize})},listAll(){const e=(0,d.ZP)("GET",this.eventDefinitionsUrl({query:{per_page:0}}));e.then((e=>(this.all=e.event_definitions,this.context=e.context,this.propagateChanges(),e))),h.listAll.promise(e)},listPaginated(e){let{query:t="",page:n=1,pageSize:r=10}=e;const a=(0,d.ZP)("GET",this.eventDefinitionsUrl({query:{query:t,page:n,per_page:r}}));a.then((e=>(this.eventDefinitions=e.event_definitions,this.context=e.context,this.query=e.query,this.pagination={count:e.count,page:e.page,pageSize:e.per_page,total:e.total,grandTotal:e.grand_total},this.propagateChanges(),e))).catch((e=>{u.Z.error(`Fetching event definitions failed with status: ${e}`,"Could not retrieve event definitions")})),h.listPaginated.promise(a)},get(e){const t=(0,d.ZP)("GET",this.eventDefinitionsUrl({segments:[e,"with-context"]}));t.catch((t=>{404===t.status&&u.Z.error(`Unable to find Event Definition with id <${e}>, please ensure it wasn't deleted.`,"Could not retrieve Event Definition")})),h.get.promise(t)},setAlertFlag(e){const t=e.notifications.length>0;return{...e,alert:t}},extractSchedulerInfo(e){const t=o().cloneDeep(e),{_is_scheduled:n}=o().pick(t.config,["_is_scheduled"]);return t.config=o().omit(t.config,["_is_scheduled"]),{eventDefinition:t,isScheduled:o().defaultTo(n,!0)}},create(e){const{eventDefinition:t,isScheduled:n}=this.extractSchedulerInfo(e),r=(0,d.ZP)("POST",this.eventDefinitionsUrl({query:{schedule:n}}),this.setAlertFlag(t));r.then((e=>(u.Z.success("Event Definition created successfully",`Event Definition "${t.title}" was created successfully.`),this.refresh(),e)),(e=>{400===e.status&&e.additional.body&&e.additional.body.failed||u.Z.error(`Creating Event Definition "${t.title}" failed with status: ${e}`,"Could not save Event Definition")})),h.create.promise(r)},copy(e){const{eventDefinition:t}=this.extractSchedulerInfo(e);delete t.id,t.title=`COPY-${t.title}`,t._scope="DEFAULT";const n=(0,d.ZP)("POST",this.eventDefinitionsUrl({query:{schedule:!1}}),this.setAlertFlag(t));n.then((e=>(u.Z.success("Event Definition copied successfully",`Event Definition "${t.title}" was created successfully.`),this.refresh(),e)),(e=>{400===e.status&&e.additional.body&&e.additional.body.failed||u.Z.error(`Creating Event Definition "${t.title}" failed with status: ${e}`,"Could not save Event Definition")})),h.copy.promise(n)},update(e,t){const{eventDefinition:n,isScheduled:r}=this.extractSchedulerInfo(t),a=(0,d.ZP)("PUT",this.eventDefinitionsUrl({segments:[e],query:{schedule:r}}),this.setAlertFlag(n));a.then((e=>(u.Z.success("Event Definition updated successfully",`Event Definition "${n.title}" was updated successfully.`),this.refresh(),e)),(e=>{400===e.status&&e.additional.body&&e.additional.body.failed||u.Z.error(`Updating Event Definition "${n.title}" failed with status: ${e}`,"Could not update Event Definition")})),h.update.promise(a)},delete(e){const t=(0,d.ZP)("DELETE",this.eventDefinitionsUrl({segments:[e.id]}));t.then((()=>{u.Z.success("Event Definition deleted successfully",`Event Definition "${e.title}" was deleted successfully.`),this.refresh()}),(t=>{u.Z.error(`Deleting Event Definition "${e.title}" failed with status: ${t}`,"Could not delete Event Definition")})),h.delete.promise(t)},enable(e){const t=(0,d.ZP)("PUT",this.eventDefinitionsUrl({segments:[e.id,"schedule"]}));t.then((t=>(u.Z.success("Event Definition successfully enabled",`Event Definition "${e.title}" was successfully enabled.`),this.refresh(),t)),(t=>{400===t.status&&t.additional.body&&t.additional.body.failed||u.Z.error(`Enabling Event Definition "${e.title}" failed with status: ${t}`,"Could not enable Event Definition")})),h.enable.promise(t)},disable(e){const t=(0,d.ZP)("PUT",this.eventDefinitionsUrl({segments:[e.id,"unschedule"]}));t.then((t=>(u.Z.success("Event Definition successfully disabled",`Event Definition "${e.title}" was successfully disabled.`),this.refresh(),t)),(t=>{400===t.status&&t.additional.body&&t.additional.body.failed||u.Z.error(`Disabling Event Definition "${e.title}" failed with status: ${t}`,"Could not disable Event Definition")})),h.disable.promise(t)},clearNotificationQueue(e){const t=(0,d.ZP)("PUT",this.eventDefinitionsUrl({segments:[e.id,"clear-notification-queue"]}));t.then((e=>(u.Z.success("Queued notifications cleared.","Queued notifications were successfully cleared."),this.refresh(),e)),(e=>{400===e.status&&e.additional.body&&e.additional.body.failed||u.Z.error(`Clearing queued notifications failed with status: ${e}`,"Could not clear queued notifications")})),h.clearNotificationQueue.promise(t)}})))},Lzn6DvfV:(e,t,n)=>{n.d(t,{H:()=>u,m:()=>d});var r=n("JnTtTRmZ"),a=n.n(r),i=n("4af3+9mh"),s=n("4sldgQy6"),l=n("0wQfx7YJ"),o=n("OqsMdpSm"),c=n("xc00RsLr");const u=(0,c.ei)("core.LookupTables",(()=>a().createActions({searchPaginated:{asyncResult:!0},reloadPage:{asyncResult:!0},get:{asyncResult:!0},create:{asyncResult:!0},delete:{asyncResult:!0},update:{asyncResult:!0},getErrors:{asyncResult:!0},lookup:{asyncResult:!0},purgeKey:{asyncResult:!0},purgeAll:{asyncResult:!0},validate:{asyncResult:!0}}))),d=(0,c.dS)("core.LookupTables",(()=>a().createStore({listenables:[u],pagination:{page:1,per_page:10,total:0,count:0,query:null},errorStates:{tables:{},caches:{},dataAdapters:{}},table:null,cache:null,dataAdapter:null,tables:null,caches:null,dataAdapters:null,lookupResult:null,validationErrors:{},getInitialState(){return this.getState()},getState(){return{errorStates:this.errorStates,table:this.table,cache:this.cache,dataAdapter:this.dataAdapter,tables:this.tables,caches:this.caches,dataAdapters:this.dataAdapters,lookupResult:this.lookupResult,validationErrors:this.validationErrors,pagination:this.pagination}},propagateChanges(){this.trigger(this.getState())},reloadPage(){const e=this.searchPaginated(this.pagination.page,this.pagination.per_page,this.pagination.query);return u.reloadPage.promise(e),e},searchPaginated(e,t,n){let r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const a=this._url((0,s.Z)("tables",e,t,n,{resolve:r})),i=(0,o.ZP)("GET",a);return i.then((e=>{this.pagination={count:e.count,total:e.total,page:e.page,per_page:e.per_page,query:e.query},this.tables=e.lookup_tables,this.caches=e.caches,this.dataAdapters=e.data_adapters,this.propagateChanges()}),this._errorHandler("Fetching lookup tables failed","Could not retrieve the lookup tables")),u.searchPaginated.promise(i),i},get(e){const t=this._url(`tables/${e}?resolve=true`),n=(0,o.ZP)("GET",t);return n.then((e=>{const t=e.lookup_tables[0];this.table=t,this.cache=e.caches[t.cache_id],this.dataAdapter=e.data_adapters[t.data_adapter_id],this.propagateChanges()}),this._errorHandler(`Fetching lookup table ${e} failed`,"Could not retrieve lookup table")),u.get.promise(n),n},create(e){const t=this._url("tables"),n=(0,o.ZP)("POST",t,e);return n.catch(this._errorHandler("Creating lookup table failed",`Could not create lookup table "${e.name}"`)),u.create.promise(n),n},update(e){const t=this._url(`tables/${e.id}`),n=(0,o.ZP)("PUT",t,e);return n.catch(this._errorHandler("Updating lookup table failed",`Could not update lookup table "${e.name}"`)),u.update.promise(n),n},delete(e){const t=this._url(`tables/${e}`),n=(0,o.ZP)("DELETE",t);return n.catch(this._errorHandler("Deleting lookup table failed",`Could not delete lookup table "${e}"`)),u.delete.promise(n),n},getErrors(e,t,n){const r={};e&&(r.tables=e),t&&(r.caches=t),n&&(r.data_adapters=n);const a=(0,o.ZP)("POST",this._url("errorstates"),r);return a.then((e=>{this.errorStates={tables:e.tables||{},caches:e.caches||{},dataAdapters:e.data_adapters||{}},this.propagateChanges()}),this._errorHandler("Fetching lookup table error state failed.","Could not error states")),u.getErrors.promise(a),a},lookup(e,t){const n=(0,o.ZP)("GET",this._url(`tables/${e}/query?key=${encodeURIComponent(t)}`));return n.then((e=>{this.lookupResult=e,this.propagateChanges()}),this._errorHandler("Lookup failed",`Could not lookup value for key "${t}" in lookup table "${e}"`)),u.lookup.promise(n),n},purgeKey(e,t){const n=(0,o.ZP)("POST",this._urlClusterWise(`tables/${e.id}/purge?key=${encodeURIComponent(t)}`));return n.then((()=>{i.Z.success(`Purging cache key "${t}" for lookup table "${e.name}"`,"Success!")}),this._errorHandler(`Could not purge cache for key "${t}" in lookup table "${e.name}"`,"Failed!")),u.purgeKey.promise(n),n},purgeAll(e){const t=(0,o.ZP)("POST",this._urlClusterWise(`tables/${e.id}/purge`));return t.then((()=>{i.Z.success(`Purging cache for lookup table "${e.name}"`,"Success!")}),this._errorHandler(`Could not purge cache for lookup table "${e.name}"`,"Failed!")),u.purgeAll.promise(t),t},validate(e){const t=this._url("tables/validate"),n=(0,o.ZP)("POST",t,e);return n.then((e=>{this.validationErrors=e.errors,this.propagateChanges()}),this._errorHandler("Lookup table validation failed",`Could not validate lookup table "${e.name}"`)),u.validate.promise(n),n},_errorHandler:(e,t,n)=>r=>{try{if(r.additional.body[0].message_template)return}catch(e){}let a;try{a=r.additional.body.message}catch(e){a=r.message}i.Z.error(`${e}: ${a}`,t),n&&n(r)},_url:e=>(0,l.DC)(`/system/lookup/${e}`),_urlClusterWise:e=>(0,l.DC)(`/cluster/system/lookup/${e}`)})))},HEvxCVG3:(e,t,n)=>{n.d(t,{Q:()=>l,d:()=>s});var r=n("9oVghaOd"),a=n.n(r),i=n("6n4dw8v3");function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"asc";const r=a()(e),i=a()(t);return"asc"===n?r.isBefore(i)?-1:i.isBefore(r)?1:0:i.isBefore(r)?-1:r.isBefore(i)?1:0}function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"asc";return"asc"===n?(0,i.S)(e.toLowerCase(),t.toLowerCase()):(0,i.S)(t.toLowerCase(),e.toLowerCase())}},vdoirfHG:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n("pmX897Fv"),a=n.n(r),i=n("DjJvgDaP"),s=n.n(i)()(a());s.push([e.id,".z6LAsSk67C9Z9TP6Sw_Z .panel-title {\n    font-size: 1rem; /* theme.fonts.size.body */\n}\n\n.z6LAsSk67C9Z9TP6Sw_Z .panel-title > a {\n    cursor: pointer;\n    display: block;\n}\n\n.z6LAsSk67C9Z9TP6Sw_Z .panel-body {\n    padding: 10px;\n}\n\n.z6LAsSk67C9Z9TP6Sw_Z ul {\n    padding-left: 0;\n}\n","",{version:3,sources:["webpack://./src/components/event-definitions/common/HelpPanel.css"],names:[],mappings:"AAAA;IACI,eAAe,EAAE,0BAA0B;AAC/C;;AAEA;IACI,eAAe;IACf,cAAc;AAClB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,eAAe;AACnB",sourcesContent:[":local(.helpPanel) .panel-title {\n    font-size: 1rem; /* theme.fonts.size.body */\n}\n\n:local(.helpPanel) .panel-title > a {\n    cursor: pointer;\n    display: block;\n}\n\n:local(.helpPanel) .panel-body {\n    padding: 10px;\n}\n\n:local(.helpPanel) ul {\n    padding-left: 0;\n}\n"],sourceRoot:""}]),s.locals={helpPanel:"z6LAsSk67C9Z9TP6Sw_Z"};const l=s},p73eydaJ:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n("pmX897Fv"),a=n.n(r),i=n("DjJvgDaP"),s=n.n(i)()(a());s.push([e.id,".Q3IGkFIUvJ2Wg6SvuD4K {\n    margin-top: 10px;\n    margin-bottom: 10px;\n}\n\n.IsgkvOxhQSEsv8gRjrL3 {\n    table-layout: fixed;\n}\n\n.A9wyo101mpbrg9i57cBz.alert {\n    margin-bottom: 10px;\n}\n\n.A9wyo101mpbrg9i57cBz h4 {\n    font-size: 1.44rem; /* theme.fonts.size.body h4 */\n    margin-bottom: 0.5em;\n}\n\n.A9wyo101mpbrg9i57cBz ul {\n    list-style: disc;\n    margin: 0.5em 0;\n}\n","",{version:3,sources:["webpack://./src/components/event-definitions/common/commonStyles.css"],names:[],mappings:"AAAA;IACI,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,kBAAkB,EAAE,6BAA6B;IACjD,oBAAoB;AACxB;;AAEA;IACI,gBAAgB;IAChB,eAAe;AACnB",sourcesContent:[":local(.title) {\n    margin-top: 10px;\n    margin-bottom: 10px;\n}\n\n:local(.fixedTable) {\n    table-layout: fixed;\n}\n\n:local(.validationSummary).alert {\n    margin-bottom: 10px;\n}\n\n:local(.validationSummary) h4 {\n    font-size: 1.44rem; /* theme.fonts.size.body h4 */\n    margin-bottom: 0.5em;\n}\n\n:local(.validationSummary) ul {\n    list-style: disc;\n    margin: 0.5em 0;\n}\n"],sourceRoot:""}]),s.locals={title:"Q3IGkFIUvJ2Wg6SvuD4K",fixedTable:"IsgkvOxhQSEsv8gRjrL3",validationSummary:"A9wyo101mpbrg9i57cBz"};const l=s},"3saCUhRt":(e,t,n)=>{n.d(t,{Z:()=>l});var r=n("pmX897Fv"),a=n.n(r),i=n("DjJvgDaP"),s=n.n(i)()(a());s.push([e.id,".Rm5RJaCv9xhyX2lY9jI3 {\n    margin-top: 25px;\n    height: 34px;\n}\n","",{version:3,sources:["webpack://./src/components/event-definitions/event-definition-types/AggregationConditionExpression.css"],names:[],mappings:"AAAA;IACI,gBAAgB;IAChB,YAAY;AAChB",sourcesContent:[":local(.formControlNoLabel) {\n    margin-top: 25px;\n    height: 34px;\n}\n"],sourceRoot:""}]),s.locals={formControlNoLabel:"Rm5RJaCv9xhyX2lY9jI3"};const l=s},"cx+ZNuS7":(e,t,n)=>{n.d(t,{Z:()=>l});var r=n("pmX897Fv"),a=n.n(r),i=n("DjJvgDaP"),s=n.n(i)()(a());s.push([e.id,".wp9nUw71uYu2kck_XycC span:not(:last-child)::after {\n    content: ', ';\n}\n","",{version:3,sources:["webpack://./src/components/event-definitions/event-definition-types/FilterAggregationSummary.css"],names:[],mappings:"AAAA;IACI,aAAa;AACjB",sourcesContent:[":local(.streamList) span:not(:last-child)::after {\n    content: ', ';\n}\n"],sourceRoot:""}]),s.locals={streamList:"wp9nUw71uYu2kck_XycC"};const l=s},nmGMLleu:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n("pmX897Fv"),a=n.n(r),i=n("DjJvgDaP"),s=n.n(i)()(a());s.push([e.id,".YV9VLhWAF0dOTkZvWqvg .panel-body {\n    max-height: 400px;\n    overflow-y: auto;\n    padding: 20px 10px;\n}\n\n.YV9VLhWAF0dOTkZvWqvg table {\n    table-layout: fixed;\n    word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/components/event-definitions/event-definition-types/FilterPreview.css"],names:[],mappings:"AAAA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;IACnB,qBAAqB;AACzB",sourcesContent:[":local(.filterPreview) .panel-body {\n    max-height: 400px;\n    overflow-y: auto;\n    padding: 20px 10px;\n}\n\n:local(.filterPreview) table {\n    table-layout: fixed;\n    word-wrap: break-word;\n}\n"],sourceRoot:""}]),s.locals={filterPreview:"YV9VLhWAF0dOTkZvWqvg"};const l=s},"4kW3fUUU":(e,t,n)=>{n.d(t,{Z:()=>b});var r=n("dFpwyWHg"),a=n.n(r),i=n("C2ikvoS0"),s=n.n(i),l=n("1IntWRSu"),o=n.n(l),c=n("8nGWeFnd"),u=n.n(c),d=n("TeAcaicX"),p=n.n(d),h=n("eE3+5goe"),m=n.n(h),g=n("p73eydaJ"),f={};f.styleTagTransform=m(),f.setAttributes=u(),f.insert=o().bind(null,"head"),f.domAPI=s(),f.insertStyleElement=p();a()(g.Z,f);const b=g.Z&&g.Z.locals?g.Z.locals:void 0}}]);
//# sourceMappingURL=325e2d4b-4875.e4ef0cbbebf7bbda612b.js.map




© 2015 - 2024 Weber Informatics LLC | Privacy Policy