<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://in.compucrete.com/index.php?action=history&amp;feed=atom&amp;title=Keystone_REST_Server_%28KServer%29</id>
	<title>Keystone REST Server (KServer) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://in.compucrete.com/index.php?action=history&amp;feed=atom&amp;title=Keystone_REST_Server_%28KServer%29"/>
	<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_REST_Server_(KServer)&amp;action=history"/>
	<updated>2026-05-15T16:10:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_REST_Server_(KServer)&amp;diff=396&amp;oldid=prev</id>
		<title>WikiAdmin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_REST_Server_(KServer)&amp;diff=396&amp;oldid=prev"/>
		<updated>2023-07-14T12:58:52Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:58, 14 July 2023&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff::1.12:old-395:rev-396 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiAdmin</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=Keystone_REST_Server_(KServer)&amp;diff=395&amp;oldid=prev</id>
		<title>Chanson: /* KServer REST APIs */</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=Keystone_REST_Server_(KServer)&amp;diff=395&amp;oldid=prev"/>
		<updated>2023-05-09T14:05:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;KServer REST APIs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[CATEGORY: KSERVER]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The Keystone REST Server (KServer for short) is a general-purpose REST server designed to interface with the Keystone mobile apps, Keystone customer portal and third-party applications.&lt;br /&gt;
&lt;br /&gt;
KServer is a configurable server that uses JSON text files to define its functionality. These files are documented [[KServer_JSON_Files|here]].&lt;br /&gt;
&lt;br /&gt;
==KServer REST APIs==&lt;br /&gt;
&lt;br /&gt;
KServer supports several REST APIs:&lt;br /&gt;
*[[KServer REST API]] (Server version and statistics)&lt;br /&gt;
*[[KServer JSON Files]] Includes KServer '''Functions'''&lt;br /&gt;
*[[Keystone Mobile Server REST API]] (&amp;lt;i&amp;gt;deprecated&amp;lt;/i&amp;gt; Keystone On-Demand App)&lt;br /&gt;
*[[Keystone Customer Portal REST API]] (&amp;lt;i&amp;gt;deprecated&amp;lt;/i&amp;gt;)&lt;br /&gt;
*[[Keystone Customer Portal REST API Ver. 2]] (&amp;quot;kcpapi&amp;quot;)&lt;br /&gt;
*[[Keystone GPS Rest API]] (&amp;quot;kgpsapi&amp;quot;)&lt;br /&gt;
*[[Keystone Driver App REST API]] (Keystone On-Delivery - &amp;quot;ktrapi&amp;quot;)&lt;br /&gt;
*[[Keystone Batch Control Quality Control Interface REST API]] (Stonemont QC - &amp;quot;kbcqciapi1&amp;quot;)&lt;br /&gt;
*[[Keystone Quote REST API]] (Keystone Quoting - &amp;quot;kqtapi1&amp;quot;)&lt;br /&gt;
*[[Keystone Dispatch REST API]] (Keystone Dispatch - &amp;quot;kdiapi&amp;quot;)&lt;br /&gt;
*[[Keystone FX REST API]] (KPI Dashboards - &amp;quot;kfxapi&amp;quot;)&lt;br /&gt;
*[[Keystone Online Customer Portal REST API]] (Keystone Online - &amp;quot;kOLcpapi&amp;quot;)&lt;br /&gt;
*[[Keystone Online E-Ticketing REST API]] (&amp;quot;kOLetapi&amp;quot;)&lt;br /&gt;
*[[Keystone Online Reports API Ver. 1]] (&amp;quot;kOLrepapi&amp;quot;)&lt;br /&gt;
*[[Keystone Windows Client System Database REST API]] (Keystone Windows Client)&lt;br /&gt;
*[[Keystone Windows Client Company Database REST API]] (Keystone Windows Client)&lt;br /&gt;
&lt;br /&gt;
==KServer Reports==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As of version 3.6.31 KServer supports defining reports in the JSON configuration files. These reports are printed on the client side using a single generic report program.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[[KServer Report JSON Syntax]]&lt;br /&gt;
*[[Sample KServer Reports]]&lt;br /&gt;
&lt;br /&gt;
==Customer-Specific Endpoints==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As of version 3.4.5.5 KServer supports customer-specific endpoints. New endpoints can be added and existing &amp;quot;standard&amp;quot; endpoints can be replaced.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;At startup, KServer first processes .json files in the &amp;quot;C:\ProgramData\GivenHansco\Keystone\Settings&amp;quot; (customer-specific) folder. It then processes .json files in the &amp;quot;C:\Program Files (x86)\GivenHansco\Keystone\Bin&amp;quot; (master) folder. In this way, existing standard endpoints that are defined in the customer-specific folder replace their counterparts in the master folder.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Endpoints===&lt;br /&gt;
&lt;br /&gt;
KServer attempts to load the &amp;quot;kserver_custom.json&amp;quot; file at startup. This optional file is used to define new customer-specific endpoints.&lt;br /&gt;
&lt;br /&gt;
Here is an example customer-specific JSON file that adds a new “/rest/custom/version” endpoint:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File: C:\ProgramData\GivenHansco\Keystone\Settings\kserver_custom.json&lt;br /&gt;
&lt;br /&gt;
{ &amp;quot;ghJSONMapper&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;kserver_custom&amp;quot;,&lt;br /&gt;
    &amp;quot;URI&amp;quot;: &amp;quot;/custom&amp;quot;,&lt;br /&gt;
    &amp;quot;endpoints&amp;quot;: [&lt;br /&gt;
      { &amp;quot;URI&amp;quot;: &amp;quot;/version&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          { &amp;quot;type&amp;quot;: &amp;quot;before&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;JSON(Format('\&amp;quot;%s %s\&amp;quot;', 'kserver', ServerVersion()))&amp;quot; }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suppose that several new customer-specific APIs are needed. First we want to define an endpoint to return a customized server version string:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Request: GET http://127.0.0.1:8211/rest/custom/server/version&lt;br /&gt;
Response: &amp;quot;kserver 3.4.5.5&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we want to define an endpoint to return a customized status for the caching system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Request: GET http://127.0.0.1:8211/rest/custom/status/cache&lt;br /&gt;
Response: &amp;quot;OK&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First you define the &amp;quot;kserver_custom.json&amp;quot; file to point to the other map files as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File: C:\ProgramData\GivenHansco\Keystone\Settings\kserver_custom.json&lt;br /&gt;
&lt;br /&gt;
{ &amp;quot;ghJSONMapper&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;kserver_custom&amp;quot;,&lt;br /&gt;
    &amp;quot;URI&amp;quot;: &amp;quot;/custom&amp;quot;,&lt;br /&gt;
    &amp;quot;maps&amp;quot;: [&lt;br /&gt;
      &amp;quot;kserver_custom_version&amp;quot;,&lt;br /&gt;
      &amp;quot;kserver_custom_status&amp;quot;,&lt;br /&gt;
      … (as many as you need)&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then define the remaining customer-specific JSON files as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File: C:\ProgramData\GivenHansco\Keystone\Settings\kserver_custom_version.json&lt;br /&gt;
&lt;br /&gt;
{ &amp;quot;ghJSONMapper&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;kserver_custom_version&amp;quot;,&lt;br /&gt;
    &amp;quot;URI&amp;quot;: &amp;quot;/server&amp;quot;,&lt;br /&gt;
    &amp;quot;endpoints&amp;quot;: [&lt;br /&gt;
      { &amp;quot;URI&amp;quot;: &amp;quot;/version&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          { &amp;quot;type&amp;quot;: &amp;quot;before&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;JSON(Format('\&amp;quot;%s %s\&amp;quot;', 'kserver', ServerVersion()))&amp;quot; }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
File: C:\ProgramData\GivenHansco\Keystone\Settings\kserver_custom_status.json&lt;br /&gt;
&lt;br /&gt;
{ &amp;quot;ghJSONMapper&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;kserver_custom_status&amp;quot;,&lt;br /&gt;
    &amp;quot;URI&amp;quot;: &amp;quot;/status&amp;quot;,&lt;br /&gt;
    &amp;quot;endpoints&amp;quot;: [&lt;br /&gt;
      { &amp;quot;URI&amp;quot;: &amp;quot;/cache&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          { &amp;quot;type&amp;quot;: &amp;quot;before&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;JSON(Format('\&amp;quot;%s\&amp;quot;', 'OK'))&amp;quot; }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replacing Standard Endpoints===&lt;br /&gt;
&lt;br /&gt;
When KServer loads the various .json files, it first attempts to load the file from the customer-specific folder, then from the master folder. In this way standard endpoints can be replaced.&lt;br /&gt;
&lt;br /&gt;
Here is an example customer-specific JSON that changes the standard “/rest/kserver/version” endpoint to return a different value:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File: C:\ProgramData\GivenHansco\Keystone\Settings\kserver_version.json&lt;br /&gt;
&lt;br /&gt;
{ &amp;quot;ghJSONMapper&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;kserver_custom&amp;quot;,&lt;br /&gt;
    &amp;quot;URI&amp;quot;: &amp;quot;/kserver&amp;quot;,&lt;br /&gt;
    &amp;quot;endpoints&amp;quot;: [&lt;br /&gt;
      { &amp;quot;URI&amp;quot;: &amp;quot;/version&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          { &amp;quot;type&amp;quot;: &amp;quot;before&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;JSON(Format('\&amp;quot;%s %s\&amp;quot;', 'kserver', ServerVersion()))&amp;quot; }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
KServer uses an INI file (kserver.ini) to read configuration information. This file should be placed in the Keystone system-wide settings folder (C:\ProgramData\GivenHansco\Keystone\Settings.)&lt;br /&gt;
&lt;br /&gt;
As of Keystone 3.2, the kserver.ini file is optional if the following conditions are met:&lt;br /&gt;
* Keystone is installed on the same PC as KServer&lt;br /&gt;
* KServer will access data from the company 001 database&lt;br /&gt;
* KServer will be running on a single port (8211)&lt;br /&gt;
&lt;br /&gt;
Note that any time this configuration file is changed, all instances of KServer must be restarted for the changes to take effect.&lt;br /&gt;
&lt;br /&gt;
===Sample kserver.ini===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[config]&lt;br /&gt;
ports=8211,8212&lt;br /&gt;
mappath=C:\Program Files (x86)\GivenHansco\Keystone\Bin&lt;br /&gt;
logpath=C:\Users\&amp;lt;user&amp;gt;\Documents\GivenHansco\Keystone\Log&lt;br /&gt;
loglevels=9&lt;br /&gt;
logevents=SERVER,ERROR&lt;br /&gt;
LicenseType=2&lt;br /&gt;
UseCompression=True&lt;br /&gt;
QuietMode=True&lt;br /&gt;
DBco=DriverID=IB;Server=127.0.0.1;Protocol=TCPIP;Database=C:\CCGH\Data\ccw001.ib;User_name=CCWIN;Password=&amp;lt;password&amp;gt;&lt;br /&gt;
DBsys=DriverID=IB;Server=127.0.0.1;Protocol=TCPIP;Database=C:\CCGH\Data\ccwsys.ib;User_name=CCWIN;Password=&amp;lt;password&amp;gt;&lt;br /&gt;
[config_8212]&lt;br /&gt;
mappath=C:\Program Files (x86)\GivenHansco\Keystone\Bin&lt;br /&gt;
logpath=D:\KServerLogs&lt;br /&gt;
loglevels=9&lt;br /&gt;
logevents=SERVER,QUERY,ERROR&lt;br /&gt;
LicenseType=2&lt;br /&gt;
UseCompression=True&lt;br /&gt;
QuietMode=True&lt;br /&gt;
DBco=DriverID=IB;Server=127.0.0.1;Protocol=TCPIP;Database=C:\CCGH\Data\ccw002.ib;User_name=CCWIN;Password=&amp;lt;password&amp;gt;&lt;br /&gt;
DBsys=DriverID=IB;Server=127.0.0.1;Protocol=TCPIP;Database=C:\CCGH\Data\ccwsys.ib;User_name=CCWIN;Password=&amp;lt;password&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration file parameters===&lt;br /&gt;
&lt;br /&gt;
Each [config_xxxx] section contains the configuration for one instance of the REST server running on a specific port (where xxxx is the port number, 8211 is the default.) Defaults are shown in square brackets [].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;AuthRequired&amp;lt;/i&amp;gt;  [False]&lt;br /&gt;
:whether to require JWT authorization within the server if specified in the .json file (disable when diagnosing with a web browser)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;CacheLockRetries&amp;lt;/i&amp;gt;  [3]&lt;br /&gt;
:number of times to retry when loading cache version keys&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;CoID&amp;lt;/i&amp;gt;  [001]&lt;br /&gt;
:company ID for the company database to be used by KServer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;ConnRetries&amp;lt;/i&amp;gt; [3]&lt;br /&gt;
:number of times to retry opening database connections&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBco&amp;lt;/i&amp;gt;  [DriverID=IB;Server=[DBServer];Protocol=TCPIP;Database=[DBPath][PathDelim]ccw[CoID].ib;User_name=[DBUserName];Password=[DBPassword]]&lt;br /&gt;
:Database-specific driver information for the company database that applies to this REST server instance as follows:&lt;br /&gt;
::&amp;lt;i&amp;gt;DriverID&amp;lt;/i&amp;gt; = the database engine (IB for InterBase)&lt;br /&gt;
::&amp;lt;i&amp;gt;Server&amp;lt;/i&amp;gt; = the IP address of the database server&lt;br /&gt;
::&amp;lt;i&amp;gt;Protocol&amp;lt;/i&amp;gt; = the protocol to connect to the database server&lt;br /&gt;
::&amp;lt;i&amp;gt;Database&amp;lt;/i&amp;gt; = the path to the database file on the database server&lt;br /&gt;
::&amp;lt;i&amp;gt;User_name&amp;lt;/i&amp;gt; = the user name to login to the database server&lt;br /&gt;
::&amp;lt;i&amp;gt;Password&amp;lt;/i&amp;gt; = the password to login to the database server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBco###&amp;lt;/i&amp;gt;  [DriverID=IB;Server=[DBServer];Protocol=TCPIP;Database=[DBPath][PathDelim]ccw###.ib;User_name=[DBUserName];Password=[DBPassword]]&lt;br /&gt;
:Database-specific driver information for the company ### database that applies to this REST server instance (see DBco)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBdoc&amp;lt;/i&amp;gt;  [DriverID=IB;Server=[DBServer];Protocol=TCPIP;Database=[DBPath][PathDelim]ccwdoc.ib;User_name=[DBUserName];Password=[DBPassword]]&lt;br /&gt;
:Database-specific driver information for the document imaging database that applies to this REST server instance (see DBco)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBlocal&amp;lt;/i&amp;gt;  [DriverID=SQLite]&lt;br /&gt;
:Database-specific driver information for local queries that applies to this REST server instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBPassword&amp;lt;/i&amp;gt;  [default provided by KServer]&lt;br /&gt;
:password for database server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBPath&amp;lt;/i&amp;gt;  [from Keystone ccwibcp.ini IBClientParams-&amp;gt;Database Path]&lt;br /&gt;
:path to the database files on the database server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBServer&amp;lt;/i&amp;gt;  [from Keystone ccwibcp.ini IBClientParams-&amp;gt;Server Name]&lt;br /&gt;
:IP address of the database server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBsys&amp;lt;/i&amp;gt;  [DriverID=IB;Server=[DBServer];Protocol=TCPIP;Database=[DBPath][PathDelim]ccwsys.ib;User_name=[DBUserName];Password=[DBPassword]]&lt;br /&gt;
:Database-specific driver information for the system database that applies to this REST server instance (see DBco)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBUserName&amp;lt;/i&amp;gt;  [default provided by KServer]&lt;br /&gt;
:user name for database server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DBVendorHome&amp;lt;/i&amp;gt; [(blank)]&lt;br /&gt;
:specify folder containing vendor-specific database library&lt;br /&gt;
::&amp;lt;i&amp;gt;&amp;lt;default&amp;gt;&amp;lt;/i&amp;gt; = use default operating system path&lt;br /&gt;
::&amp;lt;i&amp;gt;(blank)&amp;lt;/i&amp;gt; = use vendor-specific default path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DefRequestThreads&amp;lt;/i&amp;gt;  [0]&lt;br /&gt;
:specifies the default number of HTTP request threads (can be overridden with RequestThreads option)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DocType_BatchWeight&amp;lt;/i&amp;gt;  [2]&lt;br /&gt;
:Document Type to be used when recording batch weight document (see DOCTYPE_ID in DOTDOCTYPE table)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;DocType_Ticket&amp;lt;/i&amp;gt;  [1]&lt;br /&gt;
:Document Type to be used when recording ticket document (see DOCTYPE_ID in DOTDOCTYPE table)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;IgnoreAutoRun&amp;lt;/i&amp;gt;  [False]&lt;br /&gt;
:whether to ignore all endpoints where the &amp;quot;autorun&amp;quot; property is True&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;IgnoreCached&amp;lt;/i&amp;gt;  [False]&lt;br /&gt;
:whether to ignore the cached setting for specific queries within the .json file &lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;IgnoreListEndPoints&amp;lt;/i&amp;gt;  [False]&lt;br /&gt;
:whether to ignore the &amp;quot;ListEndPoints&amp;quot; action&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;IgnoreLocalCached&amp;lt;/i&amp;gt;  [False]&lt;br /&gt;
:whether to ignore the cached setting for specific LOCAL queries within the .json file&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;i&amp;gt;IPAllowed&amp;lt;/i&amp;gt;  [(all)]&lt;br /&gt;
:comma-delimited list of allowed client IP addresses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;LicenseType&amp;lt;/i&amp;gt;&lt;br /&gt;
:the Keystone license type (1 = Demo, 2 = StandAlone, 3 = Network Server, 4 = Network Workstation)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;logevents&amp;lt;/i&amp;gt;  [SERVER,ERROR]&lt;br /&gt;
:the events that should be stored in the log file (comma-separated) as follows:&lt;br /&gt;
::&amp;lt;i&amp;gt;ERROR&amp;lt;/i&amp;gt; = server exceptions&lt;br /&gt;
::&amp;lt;i&amp;gt;MONITOR&amp;lt;/i&amp;gt; = FireDAC DB Monitor (extremely detailed)&lt;br /&gt;
::&amp;lt;i&amp;gt;PARAM&amp;lt;/i&amp;gt; = (unused)&lt;br /&gt;
::&amp;lt;i&amp;gt;QUERY&amp;lt;/i&amp;gt; = queries that are run&lt;br /&gt;
::&amp;lt;i&amp;gt;REQUEST&amp;lt;/i&amp;gt; = server REST requests (truncated)&lt;br /&gt;
::&amp;lt;i&amp;gt;REQUESTFULL&amp;lt;/i&amp;gt; = server REST requests (full) -- must include REQUEST&lt;br /&gt;
::&amp;lt;i&amp;gt;REQUESTRAW&amp;lt;/i&amp;gt; = server REST requests (raw form)&lt;br /&gt;
::&amp;lt;i&amp;gt;RESPONSE&amp;lt;/i&amp;gt; = server REST responses (truncated)&lt;br /&gt;
::&amp;lt;i&amp;gt;RESPONSEFULL&amp;lt;/i&amp;gt; = server REST responses (full) -- must include RESPONSE&lt;br /&gt;
::&amp;lt;i&amp;gt;SECURITY&amp;lt;/i&amp;gt; = server security failures&lt;br /&gt;
::&amp;lt;i&amp;gt;SERVER&amp;lt;/i&amp;gt; = major server events&lt;br /&gt;
::&amp;lt;i&amp;gt;TRACE&amp;lt;/i&amp;gt; = other detailed information&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;loglevels&amp;lt;/i&amp;gt;  [30]&lt;br /&gt;
:the maximum number of log files that should be stored&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;logpath&amp;lt;/i&amp;gt;  [C:\ProgramData\GivenHansco\Keystone\Log]&lt;br /&gt;
:the folder where the REST server log files should be stored&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;logsize&amp;lt;/i&amp;gt;  [50000]&lt;br /&gt;
:the maximum number of lines in a single log file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;MapAllowed&amp;lt;/i&amp;gt;  [(all)]&lt;br /&gt;
:comma-delimited list of allowed API map Ids&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;mapcustompath&amp;lt;/i&amp;gt;  [C:\ProgramData\GivenHansco\Keystone\Settings]&lt;br /&gt;
:the folder containing the .json files that describe the customer-specific REST server functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;mappath&amp;lt;/i&amp;gt;  [C:\Program Files (x86)\GivenHansco\Keystone\Bin]&lt;br /&gt;
:the folder containing the .json files that describe the REST server functionality&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;PathDelim&amp;lt;/i&amp;gt;  [&amp;quot;\&amp;quot; for Windows, &amp;quot;/&amp;quot; for Linux]&lt;br /&gt;
:path delimiter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;ports&amp;lt;/i&amp;gt;    [8211]&lt;br /&gt;
:a list of IP ports (separated by commas) that KServer will listen on (requires Keystone 3.2.8 or higher)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;QuietMode&amp;lt;/i&amp;gt;  [True]&lt;br /&gt;
:True returns 404 errors only for requested resources that are &amp;quot;close&amp;quot; to an existing resource (discourages hacking attempts)&lt;br /&gt;
:False returns 404 errors for all invalid resources (useful for diagnosing)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;RequestThreads&amp;lt;/i&amp;gt;  [DefRequestThreads]&lt;br /&gt;
:allows override of the number of HTTP request threads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;SysId&amp;lt;/i&amp;gt;  [from Keystone ccwibsv.ini Telemetry-&amp;gt;SysId]&lt;br /&gt;
:specifies the System Id of Keystone for telemetry purposes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;UseCompression&amp;lt;/i&amp;gt;  [True]&lt;br /&gt;
:whether to use compression when returning data from the server (disable when diagnosing with a web browser)&lt;br /&gt;
&lt;br /&gt;
==Installing the Windows Service==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE: As of Keystone 3.2.8 you can use the &amp;quot;ports&amp;quot; option in kserver.ini to support multiple IP ports instead of using this procedure.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;i&amp;gt;kserver_win_service.exe&amp;lt;/i&amp;gt; Windows Service must be installed once for each instance you want to run. &lt;br /&gt;
&lt;br /&gt;
===Install===&lt;br /&gt;
&lt;br /&gt;
*Open a Command Prompt selecting &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Run As Administrator&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&lt;br /&gt;
*Change to the folder containing the &amp;lt;i&amp;gt;kserver_win_service.exe&amp;lt;/i&amp;gt; process (usually &amp;lt;i&amp;gt;C:\Program Files (x86)\GivenHansco\Keystone\Bin&amp;lt;/i&amp;gt;.)&lt;br /&gt;
*Issue the commands to install the service. Here is an example of installing two instances of KServer on ports 8211 &amp;amp; 8212:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kserver_win_service /install&lt;br /&gt;
kserver_win_service /install 8212&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Start the service(s) using the &amp;lt;i&amp;gt;Administrative Tools-&amp;gt;Services&amp;lt;/i&amp;gt; control panel applet.&lt;br /&gt;
&lt;br /&gt;
===Uninstall===&lt;br /&gt;
&lt;br /&gt;
If you need to uninstall the service, the commands are similar to the install service commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kserver_win_service /uninstall&lt;br /&gt;
kserver_win_service /uninstall 8212&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chanson</name></author>
	</entry>
</feed>