<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Help Needed with Converting Kaspersky CyberTrace Indicators Lookup Dashboard in Dashboards &amp; Visualizations</title>
    <link>https://community.splunk.com/t5/Dashboards-Visualizations/Help-Needed-with-Converting-Kaspersky-CyberTrace-Indicators/m-p/692011#M56697</link>
    <description>&lt;P&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;BR /&gt;&amp;lt;html lang="en"&amp;gt;&lt;BR /&gt;&amp;lt;head&amp;gt;&lt;BR /&gt;&amp;lt;meta charset="utf-8" /&amp;gt;&lt;BR /&gt;&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&amp;gt;&lt;BR /&gt;&amp;lt;title&amp;gt;Indicators lookup&amp;lt;/title&amp;gt;&lt;BR /&gt;&amp;lt;link rel="shortcut icon" href="/en-US/static/@4EAB67D171EF0F268537B07472A600B957BA5791405CEF63525C4E27D3E44D74/img/favicon.ico" /&amp;gt;&lt;BR /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="{{SPLUNKWEB_URL_PREFIX}}/static/build/css/bootstrap-enterprise.css" /&amp;gt;&lt;BR /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="{{SPLUNKWEB_URL_PREFIX}}/static/build/css/splunkjs-dashboard.css" /&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;lt;meta name="referrer" content="never" /&amp;gt;&lt;BR /&gt;&amp;lt;meta name="referrer" content="no-referrer" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;script&amp;gt;&lt;BR /&gt;(function () {&lt;BR /&gt;window._splunk_metrics_events = [];&lt;BR /&gt;window._splunk_metrics_events.active = true;&lt;/P&gt;&lt;P&gt;function onLoadSwa() {&lt;BR /&gt;new SWA({"deploymentID": "38255b58-9e6d-5dfa-8d85-b49d0a12bf26", "userID": "88dc5753653ca0684944db586ae6839c9919d788bf6408b4cca2a8e79949adac", "version": "4", "instanceGUID": "2255A6A4-6BBF-4F0C-8DE8-ABF5E956C44B", "visibility": "anonymous,support", "url": "&lt;A href="https://e1345286.api.splkmobile.com/1.0/e1345286" target="_blank"&gt;https://e1345286.api.splkmobile.com/1.0/e1345286&lt;/A&gt;"});&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;document.addEventListener("DOMContentLoaded", function(event) {&lt;BR /&gt;var s = document.createElement('script');&lt;BR /&gt;s.type = 'text/javascript';&lt;BR /&gt;s.async = true;&lt;BR /&gt;s.src='/en-US/static/app/splunk_instrumentation/build/pages/swa.js';&lt;BR /&gt;s.addEventListener('load', onLoadSwa);&lt;BR /&gt;var x = document.getElementsByTagName('script')[0];&lt;BR /&gt;x.parentNode.insertBefore(s, x);&lt;BR /&gt;});&lt;BR /&gt;}());&lt;BR /&gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;/head&amp;gt;&lt;BR /&gt;&amp;lt;body class="simplexml preload locale-en" data-splunk-version="8.0.2.1" data-splunk-product="enterprise"&amp;gt;&lt;BR /&gt;&amp;lt;!--&lt;BR /&gt;BEGIN LAYOUT&lt;BR /&gt;This section contains the layout for the dashboard. Splunk uses proprietary&lt;BR /&gt;styles in &amp;lt;div&amp;gt; tags, similar to Bootstrap's grid system.&lt;BR /&gt;--&amp;gt;&lt;BR /&gt;&amp;lt;header&amp;gt;&lt;BR /&gt;&amp;lt;a aria-label="Screen reader users, click here to skip the navigation bar" class="navSkip" href="#navSkip" tabIndex="1"&amp;gt;Skip Navigation &amp;amp;gt;&amp;lt;/a&amp;gt;&lt;BR /&gt;&amp;lt;div class="header splunk-header"&amp;gt;&lt;BR /&gt;&amp;lt;div id="placeholder-splunk-bar"&amp;gt;&lt;BR /&gt;&amp;lt;a href="{{SPLUNKWEB_URL_PREFIX}}/app/launcher/home" class="brand" title="splunk &amp;amp;gt; listen to your data"&amp;gt;splunk&amp;lt;strong&amp;gt;&amp;amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/a&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div id="placeholder-app-bar"&amp;gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;a id="navSkip"&amp;gt;&amp;lt;/a&amp;gt;&lt;BR /&gt;&amp;lt;/header&amp;gt;&lt;BR /&gt;&amp;lt;div class="dashboard-body container-fluid main-section-body" data-role="main"&amp;gt;&lt;BR /&gt;&amp;lt;div class="dashboard-header clearfix"&amp;gt;&lt;BR /&gt;&amp;lt;h2&amp;gt;Indicators lookup&amp;lt;/h2&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="fieldset"&amp;gt;&lt;BR /&gt;&amp;lt;div&amp;gt;&lt;BR /&gt;&amp;lt;legend&amp;gt;&amp;lt;b&amp;gt;Kaspersky CyberTrace connection settings&amp;lt;/b&amp;gt;&amp;lt;/legend&amp;gt;&lt;BR /&gt;&amp;lt;div class="kl-panel-body"&amp;gt;&lt;BR /&gt;&amp;lt;div class="input input-text" id="settings-ct-host"&amp;gt;&lt;BR /&gt;&amp;lt;label&amp;gt;Kaspersky CyberTrace address&amp;lt;/label&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="input input-text" id="settings-ct-port"&amp;gt;&lt;BR /&gt;&amp;lt;label&amp;gt;Kaspersky CyberTrace port&amp;lt;/label&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div id="input1" class="html"&amp;gt;&lt;BR /&gt;&amp;lt;div class="fieldset"&amp;gt;&lt;BR /&gt;&amp;lt;legend&amp;gt;&amp;lt;b&amp;gt;Kaspersky CyberTrace lookup indicator&amp;lt;/b&amp;gt;&amp;lt;/legend&amp;gt;&lt;BR /&gt;&amp;lt;div class="panel-body html"&amp;gt;&lt;BR /&gt;&amp;lt;p&amp;gt;Enter indicator, that you want to lookup in the Kaspersky CyberTrace&amp;lt;/p&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="input input-text" id="input2"&amp;gt;&lt;BR /&gt;&amp;lt;label&amp;gt;Indicator&amp;lt;/label&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="form-submit" id="search_btn"&amp;gt;&lt;BR /&gt;&amp;lt;button class="btn btn-primary submit"&amp;gt;Lookup&amp;lt;/button&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;div id="row1" class="dashboard-row dashboard-row1"&amp;gt;&lt;BR /&gt;&amp;lt;div id="panel1" class="dashboard-cell" style="width: 100%;"&amp;gt;&lt;BR /&gt;&amp;lt;div class="dashboard-panel clearfix"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;div class="panel-element-row"&amp;gt;&lt;BR /&gt;&amp;lt;div id="element1" class="dashboard-element table" style="width: 100%"&amp;gt;&lt;BR /&gt;&amp;lt;div class="panel-head"&amp;gt;&lt;BR /&gt;&amp;lt;h3&amp;gt;Matching events&amp;lt;/h3&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="panel-body"&amp;gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;!--&lt;BR /&gt;END LAYOUT&lt;BR /&gt;--&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/config?autoload=1" crossorigin="use-credentials"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/static/js/i18n.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/i18ncatalog?autoload=1"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/static/build/simplexml/index.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;BR /&gt;// &amp;lt;![CDATA[&lt;BR /&gt;// &amp;lt;![CDATA[&lt;BR /&gt;//&lt;BR /&gt;// LIBRARY REQUIREMENTS&lt;BR /&gt;//&lt;BR /&gt;// In the require function, we include the necessary libraries and modules for&lt;BR /&gt;// the HTML dashboard. Then, we pass variable names for these libraries and&lt;BR /&gt;// modules as function parameters, in order.&lt;BR /&gt;//&lt;BR /&gt;// When you add libraries or modules, remember to retain this mapping order&lt;BR /&gt;// between the library or module and its function parameter. You can do this by&lt;BR /&gt;// adding to the end of these lists, as shown in the commented examples below.&lt;/P&gt;&lt;P&gt;require([&lt;BR /&gt;"splunkjs/mvc",&lt;BR /&gt;"splunkjs/mvc/utils",&lt;BR /&gt;"splunkjs/mvc/tokenutils",&lt;BR /&gt;"underscore",&lt;BR /&gt;"jquery",&lt;BR /&gt;"splunkjs/mvc/simplexml",&lt;BR /&gt;"splunkjs/mvc/layoutview",&lt;BR /&gt;"splunkjs/mvc/simplexml/dashboardview",&lt;BR /&gt;"splunkjs/mvc/simplexml/dashboard/panelref",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/chart",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/event",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/html",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/list",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/map",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/single",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/table",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/visualization",&lt;BR /&gt;"splunkjs/mvc/simpleform/formutils",&lt;BR /&gt;"splunkjs/mvc/simplexml/eventhandler",&lt;BR /&gt;"splunkjs/mvc/simplexml/searcheventhandler",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/dropdown",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/radiogroup",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/linklist",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/multiselect",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/checkboxgroup",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/text",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/timerange",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/submit",&lt;BR /&gt;"splunkjs/mvc/searchmanager",&lt;BR /&gt;"splunkjs/mvc/savedsearchmanager",&lt;BR /&gt;"splunkjs/mvc/postprocessmanager",&lt;BR /&gt;"splunkjs/mvc/simplexml/urltokenmodel"&lt;BR /&gt;// Add comma-separated libraries and modules manually here, for example:&lt;BR /&gt;// ..."splunkjs/mvc/simplexml/urltokenmodel",&lt;BR /&gt;// "splunkjs/mvc/tokenforwarder"&lt;BR /&gt;],&lt;BR /&gt;function(&lt;BR /&gt;mvc,&lt;BR /&gt;utils,&lt;BR /&gt;TokenUtils,&lt;BR /&gt;_,&lt;BR /&gt;$,&lt;BR /&gt;DashboardController,&lt;BR /&gt;LayoutView,&lt;BR /&gt;Dashboard,&lt;BR /&gt;PanelRef,&lt;BR /&gt;ChartElement,&lt;BR /&gt;EventElement,&lt;BR /&gt;HtmlElement,&lt;BR /&gt;ListElement,&lt;BR /&gt;MapElement,&lt;BR /&gt;SingleElement,&lt;BR /&gt;TableElement,&lt;BR /&gt;VisualizationElement,&lt;BR /&gt;FormUtils,&lt;BR /&gt;EventHandler,&lt;BR /&gt;SearchEventHandler,&lt;BR /&gt;DropdownInput,&lt;BR /&gt;RadioGroupInput,&lt;BR /&gt;LinkListInput,&lt;BR /&gt;MultiSelectInput,&lt;BR /&gt;CheckboxGroupInput,&lt;BR /&gt;TextInput,&lt;BR /&gt;TimeRangeInput,&lt;BR /&gt;SubmitButton,&lt;BR /&gt;SearchManager,&lt;BR /&gt;SavedSearchManager,&lt;BR /&gt;PostProcessManager,&lt;BR /&gt;UrlTokenModel&lt;/P&gt;&lt;P&gt;// Add comma-separated parameter names here, for example:&lt;BR /&gt;// ...UrlTokenModel,&lt;BR /&gt;// TokenForwarder&lt;BR /&gt;) {&lt;/P&gt;&lt;P&gt;var pageLoading = true;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// TOKENS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;// Create token namespaces&lt;BR /&gt;var urlTokenModel = new UrlTokenModel();&lt;BR /&gt;mvc.Components.registerInstance('url', urlTokenModel);&lt;BR /&gt;var defaultTokenModel = mvc.Components.getInstance('default', {create: true});&lt;BR /&gt;var submittedTokenModel = mvc.Components.getInstance('submitted', {create: true});&lt;/P&gt;&lt;P&gt;urlTokenModel.on('url:navigate', function() {&lt;BR /&gt;defaultTokenModel.set(urlTokenModel.toJSON());&lt;BR /&gt;if (!_.isEmpty(urlTokenModel.toJSON()) &amp;amp;&amp;amp; !_.all(urlTokenModel.toJSON(), _.isUndefined)) {&lt;BR /&gt;submitTokens();&lt;BR /&gt;} else {&lt;BR /&gt;submittedTokenModel.clear();&lt;BR /&gt;}&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;// Initialize tokens&lt;BR /&gt;defaultTokenModel.set(urlTokenModel.toJSON());&lt;/P&gt;&lt;P&gt;function submitTokens() {&lt;BR /&gt;// Copy the contents of the defaultTokenModel to the submittedTokenModel and urlTokenModel&lt;BR /&gt;FormUtils.submitForm({ replaceState: pageLoading });&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;function setToken(name, value) {&lt;BR /&gt;defaultTokenModel.set(name, value);&lt;BR /&gt;submittedTokenModel.set(name, value);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;function unsetToken(name) {&lt;BR /&gt;defaultTokenModel.unset(name);&lt;BR /&gt;submittedTokenModel.unset(name);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;setToken("run",false);&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// SEARCH MANAGERS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;var search1 = new SearchManager({&lt;BR /&gt;"id": "search1",&lt;BR /&gt;"earliest_time": "-30d@d",&lt;BR /&gt;"latest_time": "now",&lt;BR /&gt;"autostart": false,&lt;BR /&gt;"sample_ratio": null,&lt;BR /&gt;"search": "| klsearch $indicator$ | rename _raw as DetectedEvent | table LookupIndicator, DetectedEvent",&lt;BR /&gt;"status_buckets": 0,&lt;BR /&gt;"cancelOnUnload": true,&lt;BR /&gt;"app": utils.getCurrentApp(),&lt;BR /&gt;"auto_cancel": 90,&lt;BR /&gt;"preview": true,&lt;BR /&gt;"tokenDependencies": {&lt;BR /&gt;},&lt;BR /&gt;"runWhenTimeIsUndefined": false&lt;BR /&gt;}, {tokens: true, tokenNamespace: "submitted"});&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// SERVICE OBJECT&lt;BR /&gt;//&lt;BR /&gt;// Create a service object REST request using the Splunk SDK for JavaScript&lt;BR /&gt;&lt;BR /&gt;var service = mvc.createService({&lt;BR /&gt;owner: 'nobody'&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;setToken('update', false);&lt;BR /&gt;service.get(&lt;BR /&gt;'storage/collections/data/kl_cybertrace_settings/', null,&lt;BR /&gt;function(err, result) {&lt;BR /&gt;if (err) {&lt;BR /&gt;console.error(err);&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;if (result.data.length &amp;gt; 0) {&lt;BR /&gt;setToken('update', true);&lt;BR /&gt;setToken('_key', result.data[0]._key);&lt;/P&gt;&lt;P&gt;setToken('KTCHost', result.data[0].KTCHost || '127.0.0.1');&lt;BR /&gt;setToken('KTCPort', result.data[0].KTCPort || 9999);&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// SPLUNK LAYOUT&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;$('header').remove();&lt;BR /&gt;new LayoutView({"hideChrome": false, "hideSplunkBar": false, "hideAppBar": false})&lt;BR /&gt;.render()&lt;BR /&gt;.getContainerElement()&lt;BR /&gt;.appendChild($('.dashboard-body')[0]);&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// DASHBOARD EDITOR&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;new Dashboard({&lt;BR /&gt;id: 'dashboard',&lt;BR /&gt;el: $('.dashboard-body'),&lt;BR /&gt;showTitle: true,&lt;BR /&gt;editable: true&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// VIEWS: VISUALIZATION ELEMENTS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;var element1 = new TableElement({&lt;BR /&gt;"id": "element1",&lt;BR /&gt;"count": 50,&lt;BR /&gt;"managerid": "search1",&lt;BR /&gt;"el": $('#element1')&lt;BR /&gt;}, {tokens: true, tokenNamespace: "submitted"}).render();&lt;/P&gt;&lt;P&gt;element1.on("click", function(e) {&lt;BR /&gt;if (e.field !== undefined) {&lt;BR /&gt;e.preventDefault();&lt;BR /&gt;var url = TokenUtils.replaceTokenNames("&lt;A href="http://tip.kaspersky.com/search?searchString=$click.value$" target="_blank"&gt;http://tip.kaspersky.com/search?searchString=$click.value$&lt;/A&gt;", _.extend(submittedTokenModel.toJSON(), e.data), TokenUtils.getEscaper('url'), TokenUtils.getFilters(mvc.Components));&lt;BR /&gt;utils.redirect(url, false, "_blank");&lt;BR /&gt;}&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// VIEWS: FORM INPUTS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;var settingsktcaddr = new TextInput({&lt;BR /&gt;"id": "settings-ct-host",&lt;BR /&gt;"searchWhenChanged": false,&lt;BR /&gt;"default": "127.0.0.1",&lt;BR /&gt;"value": "$KTCHost$",&lt;BR /&gt;"el": $('#settings-ct-host')&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;var settingsktcport = new TextInput({&lt;BR /&gt;"id": "settings-ct-port",&lt;BR /&gt;"searchWhenChanged": false,&lt;BR /&gt;"default": "9999",&lt;BR /&gt;"value": "$KTCPort$",&lt;BR /&gt;"el": $('#settings-ct-port')&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;var input1 = new HtmlElement({&lt;BR /&gt;"id": "input1",&lt;BR /&gt;"useTokens": true,&lt;BR /&gt;"el": $('#input1')&lt;BR /&gt;}, {tokens: true, tokenNamespace: "submitted"}).render();&lt;/P&gt;&lt;P&gt;DashboardController.addReadyDep(input1.contentLoaded());&lt;BR /&gt;&lt;BR /&gt;input1.on("change", function(newValue) {&lt;BR /&gt;FormUtils.handleValueChange(input1);&lt;BR /&gt;});&lt;BR /&gt;&lt;BR /&gt;var input2 = new TextInput({&lt;BR /&gt;"id": "input2",&lt;BR /&gt;"searchWhenChanged": true,&lt;BR /&gt;"default": "",&lt;BR /&gt;"value": "$indicator$",&lt;BR /&gt;"el": $('#input2')&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;input2.on("change", function(newValue) {&lt;BR /&gt;FormUtils.handleValueChange(input2);&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// SUBMIT FORM DATA&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;var submit = new SubmitButton({&lt;BR /&gt;id: 'submit',&lt;BR /&gt;el: $('#search_btn'),&lt;BR /&gt;text: 'Lookup'&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;submit.on("submit", function() {&lt;BR /&gt;var collectionEndpoint, headers, method, record, tokens;&lt;BR /&gt;tokens = mvc.Components.getInstance('default');&lt;BR /&gt;if (tokens.get('KTCHost') === "" ){&lt;BR /&gt;alert ("Incorrect value for Kaspersky CyberTrace address");&lt;BR /&gt;return;&lt;BR /&gt;}&lt;BR /&gt;if (tokens.get('KTCPort') === "" ){&lt;BR /&gt;alert ("Incorrect value for Kaspersky CyberTrace port");&lt;BR /&gt;return;&lt;BR /&gt;}&lt;BR /&gt;record = {&lt;BR /&gt;KTCHost: tokens.get('KTCHost'),&lt;BR /&gt;KTCPort: tokens.get('KTCPort')&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;/* add/update record */&lt;BR /&gt;headers = {&lt;BR /&gt;'Content-Type': 'application/json'&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;if (tokens.get('update')) {&lt;BR /&gt;collectionEndpoint = 'storage/collections/data/kl_cybertrace_settings/' + tokens.get('_key');&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;collectionEndpoint = 'storage/collections/data/kl_cybertrace_settings';&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;method = 'POST';&lt;BR /&gt;service.request(collectionEndpoint, method, null, null, JSON.stringify(record), headers, null)&lt;BR /&gt;.done(function(data) {&lt;BR /&gt;data = JSON.parse(data);&lt;BR /&gt;if (data._key) {&lt;BR /&gt;submitTokens();&lt;BR /&gt;search1.startSearch();&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;console.error('no key returned in data', data._key);&lt;BR /&gt;}&lt;BR /&gt;})&lt;BR /&gt;.fail(function(data) {&lt;BR /&gt;console.error(data.statusText);&lt;BR /&gt;statusMessage('error', data.statusText);&lt;BR /&gt;});&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;// Initialize time tokens to default&lt;BR /&gt;if (!defaultTokenModel.has('earliest') &amp;amp;&amp;amp; !defaultTokenModel.has('latest')) {&lt;BR /&gt;defaultTokenModel.set({ earliest: '0', latest: '' });&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;if (!_.isEmpty(urlTokenModel.toJSON())){&lt;BR /&gt;submitTokens();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// DASHBOARD READY&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;DashboardController.ready();&lt;BR /&gt;pageLoading = false;&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;);&lt;BR /&gt;// ]]&amp;gt;&lt;BR /&gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;/body&amp;gt;&lt;BR /&gt;&amp;lt;/html&amp;gt;&lt;/P&gt;</description>
    <pubDate>Sun, 30 Jun 2024 11:22:39 GMT</pubDate>
    <dc:creator>msyazdani</dc:creator>
    <dc:date>2024-06-30T11:22:39Z</dc:date>
    <item>
      <title>Help Needed with Converting Kaspersky CyberTrace Indicators Lookup Dashboard</title>
      <link>https://community.splunk.com/t5/Dashboards-Visualizations/Help-Needed-with-Converting-Kaspersky-CyberTrace-Indicators/m-p/692010#M56696</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;I'm currently working on integrating Kaspersky CyberTrace with Splunk and have encountered a couple of issues I need help with:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Converting Indicators Lookup Dashboard:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I successfully converted the "Kaspersky CyberTrace Matches" and "Kaspersky CyberTrace Status" dashboards to Dashboard Studio.&lt;/LI&gt;&lt;LI&gt;However, the "Indicators Lookup" dashboard does not have an option for conversion and throws an error when I try to open it: "HTML Dashboards are no longer supported. You can recreate your HTML dashboard using Dashboard Studio."&lt;/LI&gt;&lt;LI&gt;The code for this dashboard is quite extensive. Does anyone have any suggestions or best practices on how to convert it to Dashboard Studio effectively?&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Data Not Displaying in Dashboards:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Even though data is being received from Kaspersky and stored in the Main index, the dashboards are not displaying any information.&lt;/LI&gt;&lt;LI&gt;Has anyone faced similar issues or could provide insight into what might be going wrong here?&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Any guidance or solutions to these problems would be greatly appreciated.&lt;/P&gt;&lt;P&gt;Thanks in advance for your help!&lt;/P&gt;</description>
      <pubDate>Sun, 30 Jun 2024 10:40:41 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Dashboards-Visualizations/Help-Needed-with-Converting-Kaspersky-CyberTrace-Indicators/m-p/692010#M56696</guid>
      <dc:creator>msyazdani</dc:creator>
      <dc:date>2024-06-30T10:40:41Z</dc:date>
    </item>
    <item>
      <title>Re: Help Needed with Converting Kaspersky CyberTrace Indicators Lookup Dashboard</title>
      <link>https://community.splunk.com/t5/Dashboards-Visualizations/Help-Needed-with-Converting-Kaspersky-CyberTrace-Indicators/m-p/692011#M56697</link>
      <description>&lt;P&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;BR /&gt;&amp;lt;html lang="en"&amp;gt;&lt;BR /&gt;&amp;lt;head&amp;gt;&lt;BR /&gt;&amp;lt;meta charset="utf-8" /&amp;gt;&lt;BR /&gt;&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&amp;gt;&lt;BR /&gt;&amp;lt;title&amp;gt;Indicators lookup&amp;lt;/title&amp;gt;&lt;BR /&gt;&amp;lt;link rel="shortcut icon" href="/en-US/static/@4EAB67D171EF0F268537B07472A600B957BA5791405CEF63525C4E27D3E44D74/img/favicon.ico" /&amp;gt;&lt;BR /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="{{SPLUNKWEB_URL_PREFIX}}/static/build/css/bootstrap-enterprise.css" /&amp;gt;&lt;BR /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="{{SPLUNKWEB_URL_PREFIX}}/static/build/css/splunkjs-dashboard.css" /&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;lt;meta name="referrer" content="never" /&amp;gt;&lt;BR /&gt;&amp;lt;meta name="referrer" content="no-referrer" /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;script&amp;gt;&lt;BR /&gt;(function () {&lt;BR /&gt;window._splunk_metrics_events = [];&lt;BR /&gt;window._splunk_metrics_events.active = true;&lt;/P&gt;&lt;P&gt;function onLoadSwa() {&lt;BR /&gt;new SWA({"deploymentID": "38255b58-9e6d-5dfa-8d85-b49d0a12bf26", "userID": "88dc5753653ca0684944db586ae6839c9919d788bf6408b4cca2a8e79949adac", "version": "4", "instanceGUID": "2255A6A4-6BBF-4F0C-8DE8-ABF5E956C44B", "visibility": "anonymous,support", "url": "&lt;A href="https://e1345286.api.splkmobile.com/1.0/e1345286" target="_blank"&gt;https://e1345286.api.splkmobile.com/1.0/e1345286&lt;/A&gt;"});&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;document.addEventListener("DOMContentLoaded", function(event) {&lt;BR /&gt;var s = document.createElement('script');&lt;BR /&gt;s.type = 'text/javascript';&lt;BR /&gt;s.async = true;&lt;BR /&gt;s.src='/en-US/static/app/splunk_instrumentation/build/pages/swa.js';&lt;BR /&gt;s.addEventListener('load', onLoadSwa);&lt;BR /&gt;var x = document.getElementsByTagName('script')[0];&lt;BR /&gt;x.parentNode.insertBefore(s, x);&lt;BR /&gt;});&lt;BR /&gt;}());&lt;BR /&gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;/head&amp;gt;&lt;BR /&gt;&amp;lt;body class="simplexml preload locale-en" data-splunk-version="8.0.2.1" data-splunk-product="enterprise"&amp;gt;&lt;BR /&gt;&amp;lt;!--&lt;BR /&gt;BEGIN LAYOUT&lt;BR /&gt;This section contains the layout for the dashboard. Splunk uses proprietary&lt;BR /&gt;styles in &amp;lt;div&amp;gt; tags, similar to Bootstrap's grid system.&lt;BR /&gt;--&amp;gt;&lt;BR /&gt;&amp;lt;header&amp;gt;&lt;BR /&gt;&amp;lt;a aria-label="Screen reader users, click here to skip the navigation bar" class="navSkip" href="#navSkip" tabIndex="1"&amp;gt;Skip Navigation &amp;amp;gt;&amp;lt;/a&amp;gt;&lt;BR /&gt;&amp;lt;div class="header splunk-header"&amp;gt;&lt;BR /&gt;&amp;lt;div id="placeholder-splunk-bar"&amp;gt;&lt;BR /&gt;&amp;lt;a href="{{SPLUNKWEB_URL_PREFIX}}/app/launcher/home" class="brand" title="splunk &amp;amp;gt; listen to your data"&amp;gt;splunk&amp;lt;strong&amp;gt;&amp;amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/a&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div id="placeholder-app-bar"&amp;gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;a id="navSkip"&amp;gt;&amp;lt;/a&amp;gt;&lt;BR /&gt;&amp;lt;/header&amp;gt;&lt;BR /&gt;&amp;lt;div class="dashboard-body container-fluid main-section-body" data-role="main"&amp;gt;&lt;BR /&gt;&amp;lt;div class="dashboard-header clearfix"&amp;gt;&lt;BR /&gt;&amp;lt;h2&amp;gt;Indicators lookup&amp;lt;/h2&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="fieldset"&amp;gt;&lt;BR /&gt;&amp;lt;div&amp;gt;&lt;BR /&gt;&amp;lt;legend&amp;gt;&amp;lt;b&amp;gt;Kaspersky CyberTrace connection settings&amp;lt;/b&amp;gt;&amp;lt;/legend&amp;gt;&lt;BR /&gt;&amp;lt;div class="kl-panel-body"&amp;gt;&lt;BR /&gt;&amp;lt;div class="input input-text" id="settings-ct-host"&amp;gt;&lt;BR /&gt;&amp;lt;label&amp;gt;Kaspersky CyberTrace address&amp;lt;/label&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="input input-text" id="settings-ct-port"&amp;gt;&lt;BR /&gt;&amp;lt;label&amp;gt;Kaspersky CyberTrace port&amp;lt;/label&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div id="input1" class="html"&amp;gt;&lt;BR /&gt;&amp;lt;div class="fieldset"&amp;gt;&lt;BR /&gt;&amp;lt;legend&amp;gt;&amp;lt;b&amp;gt;Kaspersky CyberTrace lookup indicator&amp;lt;/b&amp;gt;&amp;lt;/legend&amp;gt;&lt;BR /&gt;&amp;lt;div class="panel-body html"&amp;gt;&lt;BR /&gt;&amp;lt;p&amp;gt;Enter indicator, that you want to lookup in the Kaspersky CyberTrace&amp;lt;/p&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="input input-text" id="input2"&amp;gt;&lt;BR /&gt;&amp;lt;label&amp;gt;Indicator&amp;lt;/label&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="form-submit" id="search_btn"&amp;gt;&lt;BR /&gt;&amp;lt;button class="btn btn-primary submit"&amp;gt;Lookup&amp;lt;/button&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;div id="row1" class="dashboard-row dashboard-row1"&amp;gt;&lt;BR /&gt;&amp;lt;div id="panel1" class="dashboard-cell" style="width: 100%;"&amp;gt;&lt;BR /&gt;&amp;lt;div class="dashboard-panel clearfix"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;div class="panel-element-row"&amp;gt;&lt;BR /&gt;&amp;lt;div id="element1" class="dashboard-element table" style="width: 100%"&amp;gt;&lt;BR /&gt;&amp;lt;div class="panel-head"&amp;gt;&lt;BR /&gt;&amp;lt;h3&amp;gt;Matching events&amp;lt;/h3&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;div class="panel-body"&amp;gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;BR /&gt;&amp;lt;/div&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;!--&lt;BR /&gt;END LAYOUT&lt;BR /&gt;--&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/config?autoload=1" crossorigin="use-credentials"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/static/js/i18n.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/i18ncatalog?autoload=1"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script src="{{SPLUNKWEB_URL_PREFIX}}/static/build/simplexml/index.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;BR /&gt;// &amp;lt;![CDATA[&lt;BR /&gt;// &amp;lt;![CDATA[&lt;BR /&gt;//&lt;BR /&gt;// LIBRARY REQUIREMENTS&lt;BR /&gt;//&lt;BR /&gt;// In the require function, we include the necessary libraries and modules for&lt;BR /&gt;// the HTML dashboard. Then, we pass variable names for these libraries and&lt;BR /&gt;// modules as function parameters, in order.&lt;BR /&gt;//&lt;BR /&gt;// When you add libraries or modules, remember to retain this mapping order&lt;BR /&gt;// between the library or module and its function parameter. You can do this by&lt;BR /&gt;// adding to the end of these lists, as shown in the commented examples below.&lt;/P&gt;&lt;P&gt;require([&lt;BR /&gt;"splunkjs/mvc",&lt;BR /&gt;"splunkjs/mvc/utils",&lt;BR /&gt;"splunkjs/mvc/tokenutils",&lt;BR /&gt;"underscore",&lt;BR /&gt;"jquery",&lt;BR /&gt;"splunkjs/mvc/simplexml",&lt;BR /&gt;"splunkjs/mvc/layoutview",&lt;BR /&gt;"splunkjs/mvc/simplexml/dashboardview",&lt;BR /&gt;"splunkjs/mvc/simplexml/dashboard/panelref",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/chart",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/event",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/html",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/list",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/map",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/single",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/table",&lt;BR /&gt;"splunkjs/mvc/simplexml/element/visualization",&lt;BR /&gt;"splunkjs/mvc/simpleform/formutils",&lt;BR /&gt;"splunkjs/mvc/simplexml/eventhandler",&lt;BR /&gt;"splunkjs/mvc/simplexml/searcheventhandler",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/dropdown",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/radiogroup",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/linklist",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/multiselect",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/checkboxgroup",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/text",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/timerange",&lt;BR /&gt;"splunkjs/mvc/simpleform/input/submit",&lt;BR /&gt;"splunkjs/mvc/searchmanager",&lt;BR /&gt;"splunkjs/mvc/savedsearchmanager",&lt;BR /&gt;"splunkjs/mvc/postprocessmanager",&lt;BR /&gt;"splunkjs/mvc/simplexml/urltokenmodel"&lt;BR /&gt;// Add comma-separated libraries and modules manually here, for example:&lt;BR /&gt;// ..."splunkjs/mvc/simplexml/urltokenmodel",&lt;BR /&gt;// "splunkjs/mvc/tokenforwarder"&lt;BR /&gt;],&lt;BR /&gt;function(&lt;BR /&gt;mvc,&lt;BR /&gt;utils,&lt;BR /&gt;TokenUtils,&lt;BR /&gt;_,&lt;BR /&gt;$,&lt;BR /&gt;DashboardController,&lt;BR /&gt;LayoutView,&lt;BR /&gt;Dashboard,&lt;BR /&gt;PanelRef,&lt;BR /&gt;ChartElement,&lt;BR /&gt;EventElement,&lt;BR /&gt;HtmlElement,&lt;BR /&gt;ListElement,&lt;BR /&gt;MapElement,&lt;BR /&gt;SingleElement,&lt;BR /&gt;TableElement,&lt;BR /&gt;VisualizationElement,&lt;BR /&gt;FormUtils,&lt;BR /&gt;EventHandler,&lt;BR /&gt;SearchEventHandler,&lt;BR /&gt;DropdownInput,&lt;BR /&gt;RadioGroupInput,&lt;BR /&gt;LinkListInput,&lt;BR /&gt;MultiSelectInput,&lt;BR /&gt;CheckboxGroupInput,&lt;BR /&gt;TextInput,&lt;BR /&gt;TimeRangeInput,&lt;BR /&gt;SubmitButton,&lt;BR /&gt;SearchManager,&lt;BR /&gt;SavedSearchManager,&lt;BR /&gt;PostProcessManager,&lt;BR /&gt;UrlTokenModel&lt;/P&gt;&lt;P&gt;// Add comma-separated parameter names here, for example:&lt;BR /&gt;// ...UrlTokenModel,&lt;BR /&gt;// TokenForwarder&lt;BR /&gt;) {&lt;/P&gt;&lt;P&gt;var pageLoading = true;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// TOKENS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;// Create token namespaces&lt;BR /&gt;var urlTokenModel = new UrlTokenModel();&lt;BR /&gt;mvc.Components.registerInstance('url', urlTokenModel);&lt;BR /&gt;var defaultTokenModel = mvc.Components.getInstance('default', {create: true});&lt;BR /&gt;var submittedTokenModel = mvc.Components.getInstance('submitted', {create: true});&lt;/P&gt;&lt;P&gt;urlTokenModel.on('url:navigate', function() {&lt;BR /&gt;defaultTokenModel.set(urlTokenModel.toJSON());&lt;BR /&gt;if (!_.isEmpty(urlTokenModel.toJSON()) &amp;amp;&amp;amp; !_.all(urlTokenModel.toJSON(), _.isUndefined)) {&lt;BR /&gt;submitTokens();&lt;BR /&gt;} else {&lt;BR /&gt;submittedTokenModel.clear();&lt;BR /&gt;}&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;// Initialize tokens&lt;BR /&gt;defaultTokenModel.set(urlTokenModel.toJSON());&lt;/P&gt;&lt;P&gt;function submitTokens() {&lt;BR /&gt;// Copy the contents of the defaultTokenModel to the submittedTokenModel and urlTokenModel&lt;BR /&gt;FormUtils.submitForm({ replaceState: pageLoading });&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;function setToken(name, value) {&lt;BR /&gt;defaultTokenModel.set(name, value);&lt;BR /&gt;submittedTokenModel.set(name, value);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;function unsetToken(name) {&lt;BR /&gt;defaultTokenModel.unset(name);&lt;BR /&gt;submittedTokenModel.unset(name);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;setToken("run",false);&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// SEARCH MANAGERS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;var search1 = new SearchManager({&lt;BR /&gt;"id": "search1",&lt;BR /&gt;"earliest_time": "-30d@d",&lt;BR /&gt;"latest_time": "now",&lt;BR /&gt;"autostart": false,&lt;BR /&gt;"sample_ratio": null,&lt;BR /&gt;"search": "| klsearch $indicator$ | rename _raw as DetectedEvent | table LookupIndicator, DetectedEvent",&lt;BR /&gt;"status_buckets": 0,&lt;BR /&gt;"cancelOnUnload": true,&lt;BR /&gt;"app": utils.getCurrentApp(),&lt;BR /&gt;"auto_cancel": 90,&lt;BR /&gt;"preview": true,&lt;BR /&gt;"tokenDependencies": {&lt;BR /&gt;},&lt;BR /&gt;"runWhenTimeIsUndefined": false&lt;BR /&gt;}, {tokens: true, tokenNamespace: "submitted"});&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// SERVICE OBJECT&lt;BR /&gt;//&lt;BR /&gt;// Create a service object REST request using the Splunk SDK for JavaScript&lt;BR /&gt;&lt;BR /&gt;var service = mvc.createService({&lt;BR /&gt;owner: 'nobody'&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;setToken('update', false);&lt;BR /&gt;service.get(&lt;BR /&gt;'storage/collections/data/kl_cybertrace_settings/', null,&lt;BR /&gt;function(err, result) {&lt;BR /&gt;if (err) {&lt;BR /&gt;console.error(err);&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;if (result.data.length &amp;gt; 0) {&lt;BR /&gt;setToken('update', true);&lt;BR /&gt;setToken('_key', result.data[0]._key);&lt;/P&gt;&lt;P&gt;setToken('KTCHost', result.data[0].KTCHost || '127.0.0.1');&lt;BR /&gt;setToken('KTCPort', result.data[0].KTCPort || 9999);&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// SPLUNK LAYOUT&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;$('header').remove();&lt;BR /&gt;new LayoutView({"hideChrome": false, "hideSplunkBar": false, "hideAppBar": false})&lt;BR /&gt;.render()&lt;BR /&gt;.getContainerElement()&lt;BR /&gt;.appendChild($('.dashboard-body')[0]);&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// DASHBOARD EDITOR&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;new Dashboard({&lt;BR /&gt;id: 'dashboard',&lt;BR /&gt;el: $('.dashboard-body'),&lt;BR /&gt;showTitle: true,&lt;BR /&gt;editable: true&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// VIEWS: VISUALIZATION ELEMENTS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;var element1 = new TableElement({&lt;BR /&gt;"id": "element1",&lt;BR /&gt;"count": 50,&lt;BR /&gt;"managerid": "search1",&lt;BR /&gt;"el": $('#element1')&lt;BR /&gt;}, {tokens: true, tokenNamespace: "submitted"}).render();&lt;/P&gt;&lt;P&gt;element1.on("click", function(e) {&lt;BR /&gt;if (e.field !== undefined) {&lt;BR /&gt;e.preventDefault();&lt;BR /&gt;var url = TokenUtils.replaceTokenNames("&lt;A href="http://tip.kaspersky.com/search?searchString=$click.value$" target="_blank"&gt;http://tip.kaspersky.com/search?searchString=$click.value$&lt;/A&gt;", _.extend(submittedTokenModel.toJSON(), e.data), TokenUtils.getEscaper('url'), TokenUtils.getFilters(mvc.Components));&lt;BR /&gt;utils.redirect(url, false, "_blank");&lt;BR /&gt;}&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// VIEWS: FORM INPUTS&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;var settingsktcaddr = new TextInput({&lt;BR /&gt;"id": "settings-ct-host",&lt;BR /&gt;"searchWhenChanged": false,&lt;BR /&gt;"default": "127.0.0.1",&lt;BR /&gt;"value": "$KTCHost$",&lt;BR /&gt;"el": $('#settings-ct-host')&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;var settingsktcport = new TextInput({&lt;BR /&gt;"id": "settings-ct-port",&lt;BR /&gt;"searchWhenChanged": false,&lt;BR /&gt;"default": "9999",&lt;BR /&gt;"value": "$KTCPort$",&lt;BR /&gt;"el": $('#settings-ct-port')&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;var input1 = new HtmlElement({&lt;BR /&gt;"id": "input1",&lt;BR /&gt;"useTokens": true,&lt;BR /&gt;"el": $('#input1')&lt;BR /&gt;}, {tokens: true, tokenNamespace: "submitted"}).render();&lt;/P&gt;&lt;P&gt;DashboardController.addReadyDep(input1.contentLoaded());&lt;BR /&gt;&lt;BR /&gt;input1.on("change", function(newValue) {&lt;BR /&gt;FormUtils.handleValueChange(input1);&lt;BR /&gt;});&lt;BR /&gt;&lt;BR /&gt;var input2 = new TextInput({&lt;BR /&gt;"id": "input2",&lt;BR /&gt;"searchWhenChanged": true,&lt;BR /&gt;"default": "",&lt;BR /&gt;"value": "$indicator$",&lt;BR /&gt;"el": $('#input2')&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;input2.on("change", function(newValue) {&lt;BR /&gt;FormUtils.handleValueChange(input2);&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;//&lt;BR /&gt;// SUBMIT FORM DATA&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;var submit = new SubmitButton({&lt;BR /&gt;id: 'submit',&lt;BR /&gt;el: $('#search_btn'),&lt;BR /&gt;text: 'Lookup'&lt;BR /&gt;}, {tokens: true}).render();&lt;/P&gt;&lt;P&gt;submit.on("submit", function() {&lt;BR /&gt;var collectionEndpoint, headers, method, record, tokens;&lt;BR /&gt;tokens = mvc.Components.getInstance('default');&lt;BR /&gt;if (tokens.get('KTCHost') === "" ){&lt;BR /&gt;alert ("Incorrect value for Kaspersky CyberTrace address");&lt;BR /&gt;return;&lt;BR /&gt;}&lt;BR /&gt;if (tokens.get('KTCPort') === "" ){&lt;BR /&gt;alert ("Incorrect value for Kaspersky CyberTrace port");&lt;BR /&gt;return;&lt;BR /&gt;}&lt;BR /&gt;record = {&lt;BR /&gt;KTCHost: tokens.get('KTCHost'),&lt;BR /&gt;KTCPort: tokens.get('KTCPort')&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;/* add/update record */&lt;BR /&gt;headers = {&lt;BR /&gt;'Content-Type': 'application/json'&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;if (tokens.get('update')) {&lt;BR /&gt;collectionEndpoint = 'storage/collections/data/kl_cybertrace_settings/' + tokens.get('_key');&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;collectionEndpoint = 'storage/collections/data/kl_cybertrace_settings';&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;method = 'POST';&lt;BR /&gt;service.request(collectionEndpoint, method, null, null, JSON.stringify(record), headers, null)&lt;BR /&gt;.done(function(data) {&lt;BR /&gt;data = JSON.parse(data);&lt;BR /&gt;if (data._key) {&lt;BR /&gt;submitTokens();&lt;BR /&gt;search1.startSearch();&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;console.error('no key returned in data', data._key);&lt;BR /&gt;}&lt;BR /&gt;})&lt;BR /&gt;.fail(function(data) {&lt;BR /&gt;console.error(data.statusText);&lt;BR /&gt;statusMessage('error', data.statusText);&lt;BR /&gt;});&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;// Initialize time tokens to default&lt;BR /&gt;if (!defaultTokenModel.has('earliest') &amp;amp;&amp;amp; !defaultTokenModel.has('latest')) {&lt;BR /&gt;defaultTokenModel.set({ earliest: '0', latest: '' });&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;if (!_.isEmpty(urlTokenModel.toJSON())){&lt;BR /&gt;submitTokens();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//&lt;BR /&gt;// DASHBOARD READY&lt;BR /&gt;//&lt;/P&gt;&lt;P&gt;DashboardController.ready();&lt;BR /&gt;pageLoading = false;&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;);&lt;BR /&gt;// ]]&amp;gt;&lt;BR /&gt;&amp;lt;/script&amp;gt;&lt;BR /&gt;&amp;lt;/body&amp;gt;&lt;BR /&gt;&amp;lt;/html&amp;gt;&lt;/P&gt;</description>
      <pubDate>Sun, 30 Jun 2024 11:22:39 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Dashboards-Visualizations/Help-Needed-with-Converting-Kaspersky-CyberTrace-Indicators/m-p/692011#M56697</guid>
      <dc:creator>msyazdani</dc:creator>
      <dc:date>2024-06-30T11:22:39Z</dc:date>
    </item>
  </channel>
</rss>

