Dashboards & Visualizations

Dynamically creating SearchManager

dreadangel
Path Finder

Using the gorgeous answer from this discussion as a basis, I've started to develop my solution, but due to lack of documentation I'm struggling on how to map field search of a SearchManager instance, created in JavaScript, to a token :

Setting the token somewhere in code:

  function setQueryStringInToken(){
         var queryValue = {creating the querystring} ; 
         defaultTokenModel.set("searchQueryString_tk", queryValue);
         submittedTokens.set(defaultTokenModel.toJSON());
}

now need to inject the token to SearchManager instance:

   new SearchManager({
        id: "example-search",
        cache: false,
        search: [here I need to inject data from searchQueryString_tk]
 });

Is possible to inject searchQueryString_tk to SearchManager's search field? How to achieve that?

0 Karma
1 Solution

harshpatel
Contributor

Hi @dreadangel,

You can place tokens in the search string and have tokens: true option passed in the search manager which will replace token with its value in your search:

new SearchManager({
         id: "example-search",
         cache: false,
         search: "$searchQueryString_tk$"
  }, {tokens: true});

View solution in original post

harshpatel
Contributor

Hi @dreadangel,

You can place tokens in the search string and have tokens: true option passed in the search manager which will replace token with its value in your search:

new SearchManager({
         id: "example-search",
         cache: false,
         search: "$searchQueryString_tk$"
  }, {tokens: true});

dreadangel
Path Finder

Thank you. One more ahead - if the search string I'm injecting in searchQueryString_tk token contains tokens - ex. index=main user=$userName$ - how to achieve that **userName token value to be injected in that expression? Or I need to extract the token value and to build the search string from the scratch?

0 Karma

harshpatel
Contributor

I believe if you write it as follows it will work.. please try this and give feedback:

new SearchManager({
          id: "example-search",
          cache: false,
          search: defaultTokenModel.get("searchQueryString_tk")
   }, {tokens: true});

This will allow the search to have your final string with tokens which will be replaced later because of token: true.

Get Updates on the Splunk Community!

What's new in Splunk Cloud Platform 9.1.2312?

Hi Splunky people! We are excited to share the newest updates in Splunk Cloud Platform 9.1.2312! Analysts can ...

What’s New in Splunk Security Essentials 3.8.0?

Splunk Security Essentials (SSE) is an app that can amplify the power of your existing Splunk Cloud Platform, ...

Let’s Get You Certified – Vegas-Style at .conf24

Are you ready to level up your Splunk game? Then, let’s get you certified live at .conf24 – our annual user ...