Name

sn_agent.ACCResultsSorter

Description

Provides the orderered field lists based on the OSQuery and JSON results array

Script

var ACCResultsSorter = Class.create();
ACCResultsSorter.prototype = {
  initialize: function() {
  	
  },
  
  /**
   * SortOSQuery
   *
   * @param resultsTable {array}
   *     example [{"computer_name":"winserver2019","local_hostname":"winserver2019"}]
   * @param input_query {string} of OSQuery request for restructuring order
   *     example "select local_hostname, computer_name from system_info"
   *     example "select * from system_info"
   * Returns {array} of the orderered fields based on the OSQuery, or just return back what was in results
   */
  sortOSQuery: function(resultsTable, input_query) {
  	var queryFields = input_query.split(" from ")[0];
  	queryFields = queryFields.split(",");
  	queryFields = queryFields.map(function(s){
  		return s.trim().split(" ").pop();
  	});
  	var keys = Object.keys(resultsTable[0]);
  	
  	if (keys.every(function(field) { return queryFields.indexOf(field) != -1; }))
  		return queryFields;
  	
  	return keys;
  },
  
  type: 'ACCResultsSorter'
};

Sys ID

2e8965e30f120110ce4d142386767efe

Offical Documentation

Official Docs: