Request examples
Minimal
{
"action": "deleteDatabase",
"params": {
"databaseName": "test_db_min"
},
"requestId": "1",
"authToken": "replaceWithAuthTokenFromCreateSession"
}Maximal
{
"api": "db",
"apiVersion": "1.0",
"requestId": "00000022",
"action": "deleteDatabase",
"params": {
"databaseName": "test_db_max"
},
"responseOptions": {
"binaryFormat": "hex",
"dataFormat": "objects",
"numberFormat": "string"
},
"debug": "max",
"authToken": "replaceWithAuthTokenFromCreateSession"
}
Request properties
Request properties
Universal request properties list
| Property | Description | Default | Type | Limits (inclusive) | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountDescription |
The
|
"" | string | 0 to 65,500 bytes | ||||||||||||||||||||||
add |
The optional |
{} | array of objects |
|
||||||||||||||||||||||
addFields |
The "addFields" property is optional. It is an array of objects. It allows you to add new fields to a table and specify their properties. Each object in the array defines the properties of a field being added. "addFields": [
{
"autoValue": "none",
"name": "field1",
"type": "varchar",
"length": 50,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey":1
}
] |
[] | array of objects |
|
||||||||||||||||||||||
allowedCipherSuites |
The "allowedCiperSuites" property is an optional string that specifies an array of ciphers that the server will accept for communications with clients. It defaults to an empty string.
|
"" | string | No limits | ||||||||||||||||||||||
alterFields |
The "alterFields" property is optional. It is an array of objects. It allows you to modify properties of existing fields in a table. Each object in the array defines the modifications to the named field. In this example, the field named "field1" is being modified.
Example "alterFields": [
{
"autoValue": "none",
"name": "field1",
"type": "varchar",
"newName": "address",
"newPosition": 5,
"length": 50,
"scale": null,
"defaultValue": null,
"nullable": false
}
] |
[{"name":""}] | array of objects |
"autoValue""name""type""newName""newPosition""length""scale""defaultValue""nullable"
|
||||||||||||||||||||||
amount |
The optional "amount" property specifies the number of consecutive "dataType" values the connector retrieves. The connector retrieves 3 one-byte values when "amount" is 3 and "dataType" is "byte". The connector retrieves 2 four-byte values when "amount" is 2 and "dataType" is "real". If "dataType" is "bit", "amount" must be 1 because the connector retrieves one 8-bit byte for each bit. See bitPosition below. |
1 | integer | 1 to 65535 | ||||||||||||||||||||||
api |
The optional "api" property is an enumerated string which specifies which api the action will run on. |
"" |
string enum |
|
||||||||||||||||||||||
atEnd |
The "atEnd" property is an optional string that defines how the action commits or rolls back the statement it runs. It defaults to "rollbackOnError".
|
"rollbackOnError" | string |
|
||||||||||||||||||||||
authTokens |
The "authTokens" property is an array that specifies which sessions the server should return in its response. At least one valid "authToken" must be specified in this property. {
"api": "admin",
"requestId": "2",
"action": "replaceWithCorrectAction",
"params": {
"authTokens": [
"replaceWithAuthTokenFromCreateSession",
"replaceWithAuthTokenFromCreateSession"
]
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
[] | array | At least one "authToken" | ||||||||||||||||||||||
autotimestamp |
This optional property works only with fields that have a type of "timestamp". The default value is "none", which prevents the server from populating the value of the field automatically. The value is an official timestamp of the date and time when the server inserted or updated the associated field. The timezone is always UTC time (ZULU time). Once set, the value cannot be changed. When the value is "onInsert", the server automatically populates the value of the field when the associated field is inserted. When the value is "onUpdate", the server automatically populates the value of the field each time the associated field is updated. When the value is "onUpdateOrInsert", the server automatically populates the value of the field each time the associated field is inserted or updated. "fields": [
{
"name": "name",
"type": "timestamp",
"autoTimeStamp": "onupdate"
}
] |
"none" | string |
|
||||||||||||||||||||||
autoValue |
This optional property indicates when and how the server automatically sets the field value. Only one of these values is allowed per field.
Request Example "fields": [
{
"name": "signed_int32",
"type": "integer",
"autoValue": "incrementOnInsert"
}
]
Response Example {
"result": {
"dataFormat": "objects",
"data": [
{
"changeIdField": "changeId",
"createRecByteIndex": false,
"databaseName": "ctreeSQL",
"fieldDelimiterValue": 0,
"fields": [
{
"autoValue": "incrementOnInsert",
"defaultValue": null,
"length": null,
"name": "signed_int32",
"nullable": true,
"primaryKey": 0,
"scale": null,
"type": "integer"
}
]
}
]
},
"errorCode": 0,
"errorMessage": "",
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
"none" | string |
|
||||||||||||||||||||||
binaryFormat |
"hex" |
string | One of the following: "base64", "hex", or "byteArray". |
|||||||||||||||||||||||
bitBooleanZeroValue |
The "bitBooleanZeroValue" property is optional and defaults to false. It applies when the "modbusDataType" property is set to "bitBoolean". When set to true, the connector maps a bit value of 1 to false and 0 to true. |
false | Boolean |
|
||||||||||||||||||||||
bitEndPosition |
The "bitEndPosition" property is a zero-based bit position with a value from 0 to 15. When present, it must be greater than or equal to "modbusStartBitPosition". When omitted, it defaults to the value of the "bitStartPosition" property. When "modbusDataType" is "bitInt", "bitEndPosition" is required. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". The server converts these bits into an integer number before writing the value to the record. You can optionally use the "bitIntSigned", "bitLittleEndian", and "bitReversedOrder" properties to change how the server converts the value into an integer. You can optionally use "bitIntSigned", "bitLittleEndian", and "bitReversedOrder" to control how the server interprets the bits when it converts them into an integer number. When "modbusDataType" is "bitEnum", "bitEndPosition" is required. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". The server converts these bits into an unsigned integer number before writing the value to the record. You can optionally use the "bitLittleEndian" and "bitReversedOrder" properties to change how the server converts the value into an integer. When "modbusDataType" is "bitBoolean", "bitEndPosition" is not allowed. For examples, see Modbus data types. |
Required if "modbusDataType" is "bitInt" or "bitEnum". Defaults to the value of the "bitStartPosition" | int16 | 0 to 15 | ||||||||||||||||||||||
bitEnumValues |
The "bitEnumValues" property is an array of JSON values, each typically a JSON string. "bitEnumValues" is required when the data type is "bitEnum". It is an array of strings, such as ["one", "two", "three"]. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". The server converts these bits into an unsigned integer number, looks up the string in the "bitEnumValues" array, and writes the enumerated string value on the record. The server sets the value to null if the "bitEnumValues" array does not contain a string value corresponding to the integer value. You can optionally use the "bitLittleEndian" and "bitReversedOrder" properties to change how the server converts the value into an integer. For examples, see Modbus data types. |
Required if "modbusDataType" is "bitEnum" | array of strings | 1 or more strings | ||||||||||||||||||||||
bitIntSigned |
The "bitIntSigned" property is optional and defaults to false. When "modbusDataType" is "bitInt", "bitIntSigned" is optional. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". If "bitIntSigned" is true, the server interprets these bits as a signed integer number before writing the value to the record; otherwise, it interprets them as an unsigned integer. When "modbusDataType" is "bitBoolean", "bitIntSigned" is not allowed. When "modbusDataType" is "bitEnum", "bitIntSigned" is not allowed. For examples, see Modbus data types. |
false | Boolean |
|
||||||||||||||||||||||
bitLittleEndian |
The "bitLittleEndian" property is optional and defaults to false. When set to true, the connector interprets a range of nine or more bits in little-endian order instead of big-endian order. A range of eight bits or less is unaffected by endian status. The Modbus "int16SignedBA" or "int16UnsignedBA" data types are in little-endian order. When "modbusDataType" is "bitInt", "bitLittleEndian" is optional. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". If "bitLittleEndian" is true, the server interprets these bits as a little-endian number before writing the value to the record; otherwise, it interprets the bits as a big-endian number. When "modbusDataType" is "bitEnum", "bitLittleEndian" is optional. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". If "bitLittleEndian" is true, the server interprets the bit order in little-endian order before converting each bit to an enumerated value and writing it to the record; otherwise, it interprets the bits in big-endian number. When "modbusDataType" is "bitBoolean", "bitLittleEndian" is not allowed. For examples, see Modbus data types. |
false | Boolean |
|
||||||||||||||||||||||
bitPosition |
If "dataType":"bit", "bitPosition" defines which of the eight zero-based bits to read from the byte the connector retrieves. | 0 | integer | 0 to 7 | ||||||||||||||||||||||
bitReverseOrder |
The "bitReverseOrder" property is an optional Boolean value. When true, the connector assigns bit values to the integer value starting from the end bit position to the start bit position; otherwise, it starts with the start bit position. It places bit values into the integer, starting from the rightmost bit to the leftmost. When "modbusDataType" is "bitInt", "bitReversedOrder" is optional. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". If "bitReversedOrder" is true, the server interprets these bits in reverse order before writing the value to the record; otherwise, it interprets the bits in normal order. When "modbusDataType" is "bitEnum", "bitReversedOrder" is optional. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". If "bitReversedOrder" is true, the server interprets these bits in reverse order before writing the value to the record; otherwise, it interprets the bits in normal order. For example, if "bitReverseOrder" is false, "bitStartPosition" is 5, and "bitEndPosition" is 6, the connector works its way from the end position to the starting position, setting bits in the integer from right to left. For example, it takes the bit value at the bit end position and sets it into the rightmost bit in the integer. It then takes the bit value at the next-to-last position and sets it to the left of the previous bit. Thus, if 1 is the bit value in the Modbus register at bit position 5 and 0 is the value of bit position 6, the resulting binary integer value is 0000 0010. Given the same bit values, if "bitReverseOrder" is true, the resulting integer value is 0000 0001. When "modbusDataType" is "bitBoolean", "bitReversedOrder" is not allowed. For examples, see Modbus data types. |
false | Boolean |
|
||||||||||||||||||||||
bitStartPosition |
The "bitStartPosition" property is a zero-based bit position with a value from 0 to 15. When "modbusDataType" is "bitBoolean", "bitStartPosition" is required. The server retrieves 16 bits at the address specified by "modbusDataAddress" and converts the bit value at the specified starting offset to a boolean value. The server converts a zero bit to false and a one bit to true before writing the value to the record. When "modbusDataType" is "bitInt", "bitStartPosition" is required. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". The server converts these bits into an integer number before writing the value to the record. You can optionally use the "bitIntSigned", "bitLittleEndian", and "bitReversedOrder" properties to change how the server converts the value into an integer. You can optionally use "bitIntSigned", "bitLittleEndian", and "bitReversedOrder" to control how the server interprets the bits when it converts them into an integer number. When "modbusDataType" is "bitEnum", "bitStartPosition" is required. The server retrieves bits from the address specified by "modbusDataAddress". The bits start from the offset specified by "bitStartPosition" and end at the offset defined by "bitEndPosition". The server converts these bits into an unsigned integer number, looks up the string in the "bitEnumValues" array, and writes the enumerated string value on the record. You can optionally use the "bitLittleEndian" and "bitReversedOrder" properties to change how the server converts the value into an integer. For examples, see Modbus data types. |
Required if modbusDataType is , "bitString", "bitInt", or "bitEnum" | int16 | 0 to 15 | ||||||||||||||||||||||
bitStringOneValue |
The "bitStringOneValue" property is a string that is used to define the JSON key. When the bit value is 1, the connector assigns the value of "bitStringOneValue" to the JSON key defined by "propertyPath". You may set it to any string value, including the empty string "", "null", "true", "false", "2", or "-9". You cannot set it to a non-string value, such as the JSON symbols null, true, false, or a number like 2, or -9. "bitStringOneValue" is required when the data type is "bitString". The server retrieves an integer from the address specified by "modbusDataAddress". It extracts one bit starting from the offset specified by "bitStartPosition". The server maps a zero bit value to the string specified by "bitStringZeroValue" or maps a one value to the string specified by the "bitStringOneValue" property and writes the string into the record. The "bitStringOneValue" property is only allowed when the data type is "bitString". For examples, see Modbus data types. |
Required if "modbusDataType" is "bitString" | string | No limit | ||||||||||||||||||||||
bitStringZeroValue |
The "bitStringZeroValue" property is a string that is used to define the JSON key. When the bit value is 0, the connector assigns the value of "bitStringZeroValue" to the JSON key defined by "propertyPath". You may set it to any string value, including the empty string "", "null", "true", "false", "2", or "-9". You cannot set it to a non-string value, such as the JSON symbols null, true, false, or a number like 2, or -9. "bitStringZeroValue" is required when the data type is "bitString". The server retrieves an integer from the address specified by "modbusDataAddress". It extracts one bit starting from the offset specified by "bitStartPosition". The server maps a zero bit value to the string specified by "bitStringZeroValue" or maps a one value to the string specified by the "bitStringOneValue" property and writes the string into the record. The "bitStringZeroValue" property is only allowed when the data type is "bitString". For examples, see Modbus data types. |
Required if "modbusDataType" is "bitString" | string | No limit | ||||||||||||||||||||||
body |
The "body" property specifies information to send to a REST server by defining the "propertyPath" and "propertyValue" properties. | [] | array of objects |
|
||||||||||||||||||||||
brokerConnectionName |
The "brokerConnectionName" property is an optional string that is a unique user-defined name for the connection. It may be up to 100 characters long.
|
"" | string | 1 to 100 bytes | ||||||||||||||||||||||
brokerConnectionNames |
The "brokerConnectionNames" property is a required array that contains a list of "brokerConnectionName" strings. It defaults to an empty array.
|
[] | array |
|
||||||||||||||||||||||
brokerHostname |
The "brokerHostname" property is required. It must not be a zero-length string or contain only whitespace. It has a maximum length of 255 characters. When these rules are violated the following errors will be displayed:
|
Required - No default value |
string | 1 to 255 bytes | ||||||||||||||||||||||
brokerPort |
The "brokerPort" property is optional. It defines the TCP/IP port. If it is not present, it defaults to 1883.
|
1883 | integer | 2 to 65534 |
||||||||||||||||||||||
brokerUserName |
The "brokerUsername" property is the login name to the external broker. This property is an optional string from 1 to 64 bytes. If omitted, it defaults to an empty string.
|
"" |
string | 1 to 64 bytes | ||||||||||||||||||||||
brokerUserPassword |
The "brokerUserPassword" property is in JSON format and contains the login password to the external broker and information about how that password might be encrypted. This property is optional. It is VARCHAR(500). If omitted, it defaults to the empty string. Additional properties may be added in the future.
Example {
"encryption": "NONE",
"password": "myPassword"
} |
"" |
string | 0 to 256 bytes | ||||||||||||||||||||||
caCertificateFilename |
The "caCertificateFilename" property is an optional string that specifies the name and optional path of the CA certificate file (such as "ca.pem"). It defaults to an empty string.
|
"" | string | No limits | ||||||||||||||||||||||
caseInsensitive |
This property is an optional boolean with a default of false, so the server stores index key values in mixed case for comparisons. When true, case comparisons are case-insensitive, and the server stores index key values in upper case for comparisons. "fields": [
{
"caseInsensitive": true
}
] |
false | Boolean |
|
||||||||||||||||||||||
certificateAuthoritiesFilename |
The "certificateAuthoritiesFilename" property specifies the name and optional path of the certificate authorities certificate file (such as "ca.pem"). |
"" | string | No limits | ||||||||||||||||||||||
certificateFilename |
The "certificateFilename" property is an optional string that specifies the name and optional path of a server certificate file. | "" | string | No limits | ||||||||||||||||||||||
changeIdField |
The value of this property is the name of the field used for the change-tracking functionality. If the table already has a change-tracking field, this new field is now used instead for change-tracking. |
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
cleanSession |
The "cleanSession" property is a synonym for "temporarySession" (see temporarySession). It exists for name compatibility with MQTT. Use "temporarysession" because its name is more intuitive. This property is an optional Boolean property. It defaults to false when omitted or set to null. When true, the MQ engine resets the current session, and when the client disconnects, the engine removes the session's settings, subscriptions, and message position. Because you normally want the engine to remember your message position between sessions, you rarely set "cleanSession" to true. |
false | Boolean |
|
||||||||||||||||||||||
clientCertificateEnabled |
The "clientCertificateEnabled" property is an optional boolean that enables client certificate authentication if true. The target FairCom DB or RTG server must be configured to accept client certificates. | false | boolean |
|
||||||||||||||||||||||
clientCertificateFilename |
Required - No default value | string | No limits | |||||||||||||||||||||||
clientPrivateKeyFilename |
Required - No default value | string | No limits | |||||||||||||||||||||||
clientName |
The optional "clientName" property specifies the unique name that identifies the client to the FairCom MQ engine. | "" | string | 0 to 65,550 bytes | ||||||||||||||||||||||
clientNames |
The "clientNames" property is an optional array containing 0 or more "clientName" strings. It is the client identifier (or clientId) in the MQTT protocol. It uniquely identifies an MQ session, which contains information about a client's subscriptions, settings, and queue position of each topic to which the client is subscribed. The FairCom MQ engine stores this information and retrieves it when an MQTT or MQ API client connects. Connection authorization is done using an account name with a password or a client certificate. The "clientName" property does not authorize an MQTT or MQ API session. Another authentication technique authorizes the connection, such as an account name and password or a client certificate. Thus, any account may be used to authorize an MQ connection. Each account is assigned to roles that authorize access to specific topics, client names, actions, etc. The MQ API allows multiple processes to simultaneously use the same client name to manage sessions, subscribe to topics, send messages to topics, and retrieve messages from topics. The MQTT protocol allows only one connection per client identifier because each connection is stateful. If another client with the same "clientName" is already connected, the FairCom server disconnects the other client and vice-versa. |
"" | an array of "clientName" strings | 0 or more strings | ||||||||||||||||||||||
cloneUsername |
The
|
Required - No default value | string | 1 to 31 bytes | ||||||||||||||||||||||
clonePassword |
The
|
Required - No default value | string | 1 to 63 bytes | ||||||||||||||||||||||
cloneRoles |
The
|
true | Boolean |
true false |
||||||||||||||||||||||
cloneDescription |
The
|
"" | string | 0 to 31 bytes | ||||||||||||||||||||||
cloneMetadata |
The
|
{} | object | 0 or more key/value pairs up to 65,500 bytes | ||||||||||||||||||||||
code |
The optional "code" property contains the source code. Before embedding it in a JSON string, encode the source code using the format specified in the "codeFormat" property. |
"" | string | 1 to 8,388,096 bytes | ||||||||||||||||||||||
codeFormat |
The "codeFormat" property is an optional string that specifies the encoding of code in the code property. You must encode your code to embed it in a JSON string. "codeFormat" currently only supports the "utf8" encoding, requiring you to use JSON rules to escape problem characters in your code with the \ backslash character, such as \n. |
"utf8" | string | "utf8" | ||||||||||||||||||||||
codeLanguage |
The "codeLanguage" property is a required string. It is the programming language's name. Any string value is accepted. Currently, "javascript" and "json" are the only types of code the FairCom server can use. |
Required - No default value | string |
"javascript" "json" |
||||||||||||||||||||||
codeName |
The It is an error to set The package's unique identifier is the combination of |
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
codeNames |
The "codeNames" property is a required array of strings specifying the names of the code packages you want to be described. "params": {
"codeNames": [
"convertTemperature"
]
}, |
Required - No default value | array of strings | 1 or more strings | ||||||||||||||||||||||
codeServices |
The "codeServices" property is an optional array of objects that specifies which programming languages are available in the product. |
[] | array of objects |
"serviceName" "serviceLibrary" "enabled" |
||||||||||||||||||||||
codeStatus |
The "codeStatus" property is optional and specifies a new status for the code. When you create a code package, it defaults to "developing". When you alter a code package, it defaults to the current state. You may set it to one of the following states: "developing", "deleted", "inactive", "deprecated", "testing", or "active". You can use "alterCodePackage" to transition from any state to any other. See "Use "codeStatus" to make a package runnable". |
"developing" | string |
"developing" "deleted" "inactive" "deprecated" "testing" "active" |
||||||||||||||||||||||
codeType |
The
|
Required - No default value | string |
|
||||||||||||||||||||||
codeTypeFilter |
The "codeTypeFilter" property is an optional query filter with an array of code types. If the array is empty, null, or omitted, it matches all code types; otherwise, it returns code packages with a code type that matches one of the array's values. |
"" | array |
|
||||||||||||||||||||||
codeVersion |
The
|
Required - No default value | integer |
0 to 2147483647
|
||||||||||||||||||||||
collectStats |
The "collectStats" property is an optional boolean. Its default is false , so the server does not collect statistics. If set to true, the server will collect statistics that it uses to maximize performance. "params": {
"collectStats": true
} |
true | Boolean |
|
||||||||||||||||||||||
command |
The "command" property is optional. When omitted, it defaults to the empty string. If set to a valid command string, it executes the command. The following service commands are available:
|
"applySettingsWhenDisconnected" |
string |
|
||||||||||||||||||||||
comment |
The "comment" property is an optional string explaining the code change. |
"" | string | 1 to 65,535 bytes | ||||||||||||||||||||||
commentFilter |
The "commentFilter" property is an optional query filter that is a string value. It defaults to null. If this value is not null or omitted, the results only include code packages with comments that match the full-text search specified in the "commentFilter" property. For example, to constrain results to include the three words FairCom Edge rocks anywhere in a comment, use "commentFilter": "FairCom Edge rocks". |
null | string | 1 to 65,500 bytes | ||||||||||||||||||||||
compression |
The "compression" property is an optional, case-insensitive string enum that defines how an index key is compressed. The default value is "auto". Possible values
"params": {
"compression": "off"
} |
"auto" | string |
|
||||||||||||||||||||||
conditionalExpression |
The "conditionalExpression" property is an optional string from 0 to 65535 bytes. It defaults to an empty string. It contains an expression using FairCom's expression language. It applies a filter to the index, which prevents the index from including records that do not match the expression.
"params": {
"conditionalExpression": "livedpast2000 == 1"
} |
"" | string | 0 to 65,535 bytes | ||||||||||||||||||||||
connectionStatusFilter |
The "connectionStatusFilter" property is an optional array that filters the returned sessions by the selected connection statuses. The |
[] | array |
|
||||||||||||||||||||||
connectorId |
||||||||||||||||||||||||||
connectorIdFilter |
The optional "connectorIdFilter" property contains the unique integer ID of a connector. The "listTags" action includes the tag associated with the specified connector. |
[] |
array | zero or more connector id integers | ||||||||||||||||||||||
containsTransformSteps |
The "containsTransformSteps" property is an optional Boolean that filters the response based on the presence of transform steps. When set to true, the response will include any tables with at least one transform step. When set to null, the response includes tables regardless of the presence of transform steps. |
null | Boolean |
|
||||||||||||||||||||||
contentType |
The "contentType" property is an optional string typically set to an IANA media type or a custom type you define. It is used by MQTT 5. |
"" | string | an IANA media or custom type | ||||||||||||||||||||||
correlationData |
The "correlationData" property is an optional JSON value with a byte length of up to 65500 bytes. Set it to a useful value when using MQTT for request-response messages. When a published message has a "responseTopic", an MQTT 5 subscriber can send a message response to that topic, and the message will include this "correlationData" value (if any) to connect the response to the published message. |
"" | JSON | 0 to 65,500 bytes | ||||||||||||||||||||||
createRecByteIndex |
The "createRecByteIndex" property is an optional Boolean that creates a special index for quickly walking variable-length records backward when set to true. It defaults to false.
"params": {
"createRecByteIndex": true
} |
false | Boolean |
|
||||||||||||||||||||||
cursorId |
The "cursorId" property is a required string from 0 to 255 bytes. It is a unique identifier returned by the server.
|
Required - No default value |
string | 0 to 225 bytes | ||||||||||||||||||||||
databaseName |
The You specify this property when you want to use a different database instead of the default. Your session's account must have the appropriate privileges to access the code package. This property is useful because objects, such as tables and code packages, can have the same name in multiple databases. This feature allows you to create multiple environments in the same server and reuse the same JSON actions in each environment. For example, you can create It is an error to set If no default database is specified during |
Defaults to the session's "defaultDatabaseName" property | string | 1 to 64 bytes | ||||||||||||||||||||||
databaseNameFilter |
The "databaseNameFilter" property is an optional string that, when set to a non-empty string, causes the server to include tables that match the entire value of the specified database name, such as "faircom". It defaults to an empty string.
|
"" | string |
1 to 64 bytes | ||||||||||||||||||||||
dataBlockNumber |
The "dataBlockNumber" property specifies the number of the Data Block memory area where the connector retrieves data. It is ignored unless "memoryArea":"db". |
Required if "memoryArea": "db" | integer | 1 to 65535 | ||||||||||||||||||||||
dataChangeStreamStatusFilter |
The "dataChangeStreamStatusFilter" is an optional array of strings that filters the results based on the change stream status. The response to this action will include streams that match one of the included status values or all streams if no values are included. | null | array |
|
||||||||||||||||||||||
dataCollectionIntervalMilliseconds |
The "dataCollectionIntervalMilliseconds" property schedules the connector to collect data periodically using the specified number of milliseconds. It defaults to 10000, which is ten seconds. It must be an integer number >= 1. |
10000 | integer | 0 and negative values are invalid. | ||||||||||||||||||||||
dataCollectionBufferCount |
The "dataCollectionBufferCount" property specifies the number of times the collector retrieves and caches data from the device before writing the data to the integration table. This option combines multiple data collection events and inserts them into the integration table as one MQTT message. If this value is more than 1, the connector converts each set of collected data into a JSON object and adds the object to an array inside a JSON document. When the count is reached, the connector writes the JSON document to the source_payload field of a record it inserts into the integration table. |
1 | integer | 1 to 65535 | ||||||||||||||||||||||
dataFormat |
The "dataFormat" property is a case-insensitive string enum that defines the format of the "data" property. The default format is an array of arrays. The alternative is an array of objects. The default for "dataFormat" can be changed during a "createSession" action by assigning a different value to the "dataFormat" property in "defaultResponseOptions". There are three different (but similar) versions of the "dataFormat" property:
Two of those versions occur in a request, and another occurs in a response. They all indicate how data is formatted.
|
"arrays" | string |
|
||||||||||||||||||||||
dataPersistenceStrategy |
|
"onSchedule" | string |
|
||||||||||||||||||||||
dataReadingTimeoutMilliseconds |
The optional "dataReadingTimeoutMilliseconds" property specifies the timeout in milliseconds while connecting and reading data from the PLC. |
1000 | int32 | 0 and negative values are invalid. | ||||||||||||||||||||||
dataType |
The If "memoryArea":"ct", "dataType" must be "counter". If "memoryArea":"tm", "dataType" must be "timer". |
Required - No default value | string |
|
||||||||||||||||||||||
dateFormat |
The optional "dateFormat" property specifies the format of a date or a datetime embedded in a JSON string. It applies to user-provided JSON and to server-generated JSON. The server uses it when it needs to transform or convert a date or datetime embedded in a JSON string into a FairCom date or timestamp. It also uses it when it needs to convert a date or datetime field value into a date embedded in a JSON string. It is an enumerated string with one of the following values: "ccyy.mm.dd", "mm.dd.ccyy", "mm.dd.yy", "dd.mm.ccyy", "dd.mm.yy", "ccyymmdd", "yymmdd", "iso8601", and "utc". The default value for "dateFormat" is the "defaultDateFormat" property defined in the "createSession" or "alterSession" actions. If it is omitted there, it defaults to the value of the "defaultDateFormat" property in the <faircom>/config/services.json file. If it is not there, the FairCom server defaults it to "iso8601" because the ISO8601 date is the defacto standard in JSON. The enumerated string defines how the server parses a date in a JSON string and how it writes a date into a JSON string. The following key explains the parts of each enumerated value:
UTC datetime format Coordinated Universal Time (UTC) is an industry-standard for dates and times that uses the ISO8601 datetime format: "ccyy-mm-ddThh:mi:ss.fffz" or "ccyy-mm-ddThh:mi:ss.fff±hh:mi":
|
"iso8601" | string enum |
|
||||||||||||||||||||||
deadbandLowerLimit |
The optional, inclusive
![]()
Scenario
|
"disabled" |
integer | No limit | ||||||||||||||||||||||
deadbandUpperLimit |
The optional, inclusive
The following chart shows a connector saving values when they are outside the deadband range.
![]()
Scenario
NOTES
|
"disabled" |
integer | No limit | ||||||||||||||||||||||
defaultApi |
The "defaultApi" property specifies the default value of the "api" property when it is omitted from an action request. The default value for "defaultApi" is "admin", which is the API used by all session actions. "params": {
"username": "CHANGE",
"password": "CHANGE",
"description": "optional user description of session for troubleshooting",
"defaultApi": "db",
"defaultDebug": "max",
"defaultDatabaseName": "ctreeSQL",
"defaultOwnerName": "admin",
"defaultBinaryFormat": "hex"
}, |
FairCom DB defaults to FairCom Edge defaults FairCom MQ defaults |
string enum |
|
||||||||||||||||||||||
defaultBinaryFormat |
|
|
string | One of the following: "base64", "hex", or "byteArray". |
||||||||||||||||||||||
defaultDatabaseName |
The "defaultDatabaseName" property is an optional string that specifies which database name to use when the "databaseName" property is omitted. "params": {
"username": "CHANGE",
"password": "CHANGE",
"description": "optional user description of session for troubleshooting",
"defaultApi": "db",
"defaultDebug": "max",
"defaultDatabaseName": "ctreeSQL",
"defaultOwnerName": "admin",
"defaultBinaryFormat": "hex"
}, |
FairCom DB defaults to FairCom Edge defaults to FairCom MQ defaults to |
string | 1 to 64 bytes | ||||||||||||||||||||||
defaultDebug |
The "defaultDebug" property is an optional string that defines the default value of the "debug" property for all requests in a session. It defaults to "max".
|
"max" |
string enum |
|
||||||||||||||||||||||
defaultOwnerName |
The optional "defaultOwnerName" property is is used by "createSession" and "alterSession" to specify the default owner of objects created by the session. Its value must be a valid username of an account. If it is omitted, null, or "", it defaults to the value of the session's "username" property.
|
|
string | 1 to 64 bytes | ||||||||||||||||||||||
defaultResponseOptions |
The "defaultResponseOptions" property is a "responseOptions" object. It defines a default value for "responseOptions" that is used by default in all other action calls. It defaults to an empty object. JSON NAV allows you to choose how your program detects errors. By default, all error properties are included in each response – unless you override this behavior as shown in the example. The example omits the error object in all responses which makes it easier for statically typed languages, such as C, C++, Java, C#, and VB, because they prefer properties to always be present. To help these languages, the "errorCode", "errorMessage", and "errorData" properties are always present whether there is an error or not. Example "defaultResponseOptions": {
"binaryFormat": "hex",
"dataFormat": "objects",
"numberFormat": "number",
"variantFormat": "json"
} |
|
object |
|
||||||||||||||||||||||
defaultRetentionPeriod |
The "defaultRetentionPeriod" property specifies how many retention units will be retained if the "retentionPeriod" property is omitted. It is used in tandem with "defaultRetentionUnit", the retention period describing how many units, and the retention unit describing what kind of unit of measurement. For example, if the "defaultRetentionPeriod" is set to 4, and the "defaultRetentionUnit" is set to "week", the server will purge messages once 4 weeks have passed by default. "params": {
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4
}, |
4 |
integer |
1 to 100
|
||||||||||||||||||||||
defaultRetentionPolicy |
The "defaultRetentionPolicy" property specifies the default way in which messages are persisted if the "retentionPolicy" property is omitted. Using this property, you can configure messages to persist indefinitely, be purged according to the retention unit and period, or be immediately purged by default. "params": {
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4
}, |
"autoPurge" |
string enum |
|
||||||||||||||||||||||
defaultRetentionUnit |
The "defaultRetentionUnit" property specifies the type of retention unit if the "retentionUnit" property is omitted. It is used in tandem with "defaultRetentionUnit", the retention period describing how many units, and the retention unit describing what kind of unit of measurement. For example, if the "defaultRetentionPeriod" is set to 4, and the "defaultRetentionUnit" is set to "week", the server will purge messages once 4 weeks have passed by default. "params": {
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4
}, |
"week" |
string enum |
|
||||||||||||||||||||||
defaultValue |
The optional "defaultValue" property specifies the default value of a field. It is used when a record is inserted without specifying a value for the field. The server coerces the string value into the proper field type. It is a string because a string can represent any type of data. |
"" | string | 0 to 65,500 bytes | ||||||||||||||||||||||
defaultVariantFormat |
The "defaultVariantFormat" property sets the default value of the "variantFormat" property when a JSON Action request does not include it. |
"json" |
string |
|
||||||||||||||||||||||
deleteAllRecords |
deletes all records in a table when set it to true. |
Required - No default value | Boolean |
|
||||||||||||||||||||||
deleteFields |
The "deleteFields" property is an optional array of strings. Each string is the name of a field to remove from a table.
|
[] | array | 1 to 64 bytes | ||||||||||||||||||||||
deprecated |
The
|
false | Boolean |
|
||||||||||||||||||||||
deprecatedFilter |
The
|
false | Boolean |
|
||||||||||||||||||||||
description |
The "description" property is an optional string that describes objects such as code packages, labels, or things. The server indexes this field with a full-text index so that you can search for any word or phrase. You cannot use this property for filtering in the Thing API. |
"" "unknown" for Thing API |
string |
0 to 65,500 bytes 1 to 512 bytes for the Thing API |
||||||||||||||||||||||
descriptionFilter |
The
|
null | string | 1 to 65,500 bytes | ||||||||||||||||||||||
disableDatetime |
The
|
"" | date | Any date after "0336-10-07" | ||||||||||||||||||||||
disableTransformSteps |
The optional "disableTransformSteps" property has a true or false value. When true, it prevents the server from running an integration table's transform steps on newly inserted records. It is useful to quickly stop a broken transform process. It disables transform steps without removing them from the integration table. |
false | Boolelan |
|
||||||||||||||||||||||
downgradeQoS |
The "downgradeQoS" property controls how FairCom's servers manage the Quality of Service (QoS) of subscriptions to this topic. This property is optional. The default value is false.
|
false | Boolean |
|
||||||||||||||||||||||
enabled |
The "tls": {
"enabled": true,
"caCertificateFilename": "ca.crt",
"allowedCipherSuites": "",
"clientCertificateEnabled": true,
"clientCertificateFilename": "admin_client.crt",
"clientPrivateKeyFilename": "admin_client.key"
} |
true | Boolean |
true false |
||||||||||||||||||||||
enableDatetime |
The
|
"" | date | Any date after "0336-10-07" | ||||||||||||||||||||||
endTimestamp |
The "endTimestamp" property is an optional string that contains an ISO8601 timestamp, which filters the response to return problems that ended before or on its value. If any parts of the timestamp are missing or omitted, the server defaults the remaining parts to 0. |
null | string containing an ISO8601 timestamp |
|
||||||||||||||||||||||
enum |
The
|
0 | smallint |
-32768 to 32767
|
||||||||||||||||||||||
enumFilter |
The
|
[] | array of smallints | Each array item is an integer from -32768 to 32767
|
||||||||||||||||||||||
expiredMessagesFilter |
The "expiredMessagesFilter" property is optional. It is an enumerated string that contains one of the following values: "include", "exclude", and "only". It defaults to "include".
|
"include" | string |
|
||||||||||||||||||||||
expirySeconds |
The "expirySeconds" property is an optional number of seconds the message remains active before the server stops delivering it to MQTT 5 subscribers. If you set it to null, the message does not expire. MQTT 3 messages do not expire. The server persists all messages, and the "getMessagesFromMqApiSession" action includes expired messages in its results. The caller can filter out expired messages by setting "includeExpiredMessages" to false when using the "subscribeToMq" action. |
null | integer | No limits | ||||||||||||||||||||||
fetchRecords |
The "fetchRecords" property is a required integer number from -2,147,483,648 to 2,147,483,647. A positive integer fetches that number of records forward. A negative integer fetches that number of records backward. It defaults to null.
|
null | integer | -2147483648 to 2147483647 | ||||||||||||||||||||||
fieldDelimiterValue |
The "fieldDelimiterValue" property is a decimal number from 0 to 255. It is optional. If omitted, it defaults to 0. The only reason to change it is for backward compatibility with legacy c-tree files.
"params": {
"fieldDelimiterValue": 255
} |
0 | integer | 0 to 255 | ||||||||||||||||||||||
fieldName |
The "fieldName" property specifies the name of a field in a table. |
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
fieldNames |
The "fieldNames" property is an optional, case-sensitive array of strings where each string is the name of a field. It defaults to an empty array.
|
[] When "sourceData" is an array of arrays, it is required and has no default value. |
array | 1 to 64 bytes | ||||||||||||||||||||||
fields |
The "fields" property is a required array of index definition field objects. It specifies which fields in a table are included in the index and how each field should be indexed.
"fields":
[
{
"name": "name",
"caseInsensitive": true,
"sortDescending": true,
"reverseCompare": false
}
] |
Required - No default value |
array of objects |
|
||||||||||||||||||||||
filename |
The "filename" property is an optional string that contains the name of the index file on the file system. It defaults to an empty string.
"params": {
"filename": "admin_athlete_name_livedpast2000"
} |
"" | string | 0 to 2048 bytes | ||||||||||||||||||||||
fixedOutput |
The "fixedOutput" property is a Boolean that includes all properties in a data change event when true. |
false | Boolean |
|
||||||||||||||||||||||
folder |
The "folder" property is an optional string from 0 to 2048 bytes. It defines the file system folder where an item will be stored. It defaults to an empty string.
Request example {
"api": "db",
"action": "createTable",
"params": {
"tableName": "test_1",
"folder": "Test_Folder"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
"" | string | 0 to 2,048 bytes | ||||||||||||||||||||||
forceRecordCount |
The optional "forceRecordCount" property forces a query to return a record count when true. | false |
Boolean |
|
||||||||||||||||||||||
forwardQos |
The "forwardQos" property is an optional integer that specifies which quality of service (QoS) to use when forwarding messages to the external broker for the persisted topic. |
1 | integer |
|
||||||||||||||||||||||
forwardToExternalBrokers |
The "forwardToExternalBrokers" property is optional. It can be omitted. It is an array of objects containing one or more brokers to forward the message to. All messages sent to this topic will be forwarded to each of these external brokers using the specified topic name. The default is an empty object.
Example {
"api": "mq",
"action": "configureTopic",
"params":
{
"topic": "modbusdata1",
"tableName": "modbusTableTCP",
"forwardToExternalBrokers":
[
{
"brokerConnectionName": "Broker1",
"topic": "modbusdata2",
"forwardQoS": 1
}
]
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
[] |
array of objects |
Zero or more objects including some or all of the following properties:
|
||||||||||||||||||||||
forwardToTopics |
The "forwardToTopics" property is an array of Topic Names. This property is optional. FairCom's servers will take all messages sent to this topic and automatically forward them to each of the topics in the array. These messages are forwarded within the same instance. The default is an empty array.
|
[] |
array of strings | One or more strings | ||||||||||||||||||||||
group |
The The The group name may contain up to 64 bytes of UTF-8 encoded characters. If the When you assign a group name to a label, the server automatically checks if the group name exists in the list of groups that the
|
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
groupFilter |
The
This example uses a group filter to list all labels with the matching groups. {
"api": "admin",
"action": "listLabels",
"params": {
"groupFilter": [ "myGroup1", "myGroup2", "" ]
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}This example uses a group filter to list all labels with the matching groups. {
"api": "admin",
"action": "listLabels",
"params": {
"groupFilter": [ "myGroup1", "myGroup2" ],
"partialNameFilter": "myNa"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
[] | array of strings | 1 or more strings, each up to 64 bytes long. | ||||||||||||||||||||||
growthExtent |
The "growthExtent" property is an optional integer from 0 to 2,147,483,647. It is the number of bytes that a server uses to increase a file's size. The default value is 0.
{
"api": "db",
"action": "createTable",
"params": {
"growthExtent": 64000000
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
0 | integer | 0 to 2147483647 | ||||||||||||||||||||||
healthFilter |
The "healthFilter" property is an optional array that filters the returned sessions by the selected session health statuses. |
[] | array |
|
||||||||||||||||||||||
hierarchyDelimiter |
The optional
The
|
"" |
string | 1 byte | ||||||||||||||||||||||
host |
The "host" property specifies the IP or hostname of the Rest resource, including the port. | Required - No default | string | 1 to 1024 bytes | ||||||||||||||||||||||
hostnames |
The optional
When you use the
The Thing API implements the
|
[] | string | Array of user-defined hostnames. Each hostname is a string from 0 to 64 bytes. Values are managed in the Label API with the group of "faircom/hostnames". |
||||||||||||||||||||||
hostnamesFilter |
The optional
Because the API does not prevent the same hostname from being assigned to many things, it may return multiple things assigned to the same hostname. |
[] |
array of strings | Array containing zero or more hostnames. | ||||||||||||||||||||||
id |
The
|
Automatically generated by the server | integer |
|
||||||||||||||||||||||
idFilter |
The The
|
[] | array of integers | Each array item is an integer from 0 to 2147483647
|
||||||||||||||||||||||
idleConnectionTimeoutSeconds |
The "idleConnectionTimeoutSeconds" property is an optional integer from 0 to 2147483647. It is the number of seconds that a session with no activity will stay open. A value of 0 keeps a session open indefinitely. |
|
integer |
|
||||||||||||||||||||||
idleCursorTimeoutSeconds |
The "idleCursorTimeoutSeconds" property is an optional integer from 0 to 2147483647. It is the number of seconds to keep a cursor open.
|
|
integer |
|
||||||||||||||||||||||
ids |
The
|
Required when "primaryKeys" is omitted |
array | 0 or more ids | ||||||||||||||||||||||
ignoreChangeIdProtection |
The "ignoreChangeIdProtection" property is an optional Boolean that causes the server to update the record regardless of the value of "changeId", when "true". It defaults to false.
|
false | Boolean |
|
||||||||||||||||||||||
immediatelyCollectDataOnStart |
The "immediatelyCollectDataOnStart" property controls how a connector first collects data after being started.
|
false | Boolean |
|
||||||||||||||||||||||
immutableKeys |
The "immutableKeys" property is an optional Boolean. When true, the server prevents the fields of an index from being updated. It defaults to false.
"params": {
"immutableKeys": true
} |
false | Boolean |
|
||||||||||||||||||||||
includeDeactivatedCode |
The
|
null | Boolean |
|
||||||||||||||||||||||
includeDescription |
The |
true |
Boolean |
|
||||||||||||||||||||||
includedFields |
The "includedFields" property is an array of strings that includes specified source table fields in the data change event or all fields when empty. |
[] | array of strings | 0 or more strings | ||||||||||||||||||||||
includeExistingRecords |
The "includeExistingRecords" property is a Boolean that returns streams that synchronize existing records if true. |
null | Boolean |
|
||||||||||||||||||||||
includeExistingRecordsFilter |
The "includeExistingRecordsFilter" property is a Boolean that returns streams that synchronize existing records if true. |
null | Boolean |
|
||||||||||||||||||||||
includeExpiredMessages |
Set the "includeExpiredMessages" property to true to include expired messages in a subscription. A message has expired when the "messageHasExpired" property in the response is true.
|
true | Boolean |
|
||||||||||||||||||||||
includeInputConnectorProperties |
The optional
If the
If the
Available properties include
Request example 1
Response example
Request example 2
Response example 2
|
[] |
array of strings |
|
||||||||||||||||||||||
includeMessageMetadata |
Set the "includeMessageMetadata" property to true to include the message's "id", "timestamp", "error", and "log" properties. |
false | Boolean |
|
||||||||||||||||||||||
includeMetadata |
The |
true |
Boolean |
|
||||||||||||||||||||||
includeMetrics |
The optional
By default, dynamically calculated properties are not included in the results because they take extra time to retrieve. |
false | Boolean |
|
||||||||||||||||||||||
includeMqttProperties |
Set the "includeMqttProperties" property to true to include the MQTT properties in the response. Otherwise, omit the property or set it to false or null. MQTT properties are helpful when you need to troubleshoot MQTT messages. |
false | Boolean |
|
||||||||||||||||||||||
includeOtherFields |
Set the "includeOtherFields" property to true to include additional fields that are not the built-in integration table fields, transform fields, and MQTT fields. Otherwise, omit the property or set it to false or null. |
false | Boolean |
|
||||||||||||||||||||||
includeOutputConnectorProperties |
The optional
If the
If the
Available properties include
Request example 1
Response example
Request example 2
Response example 2
|
[] |
array of strings |
|
||||||||||||||||||||||
includePrimaryKey |
(optional) specifies when to add the "pk" property to the data change event's "fields" object to indicate the field's position in the primary key. | "forPrimaryKeyFields" | string enum |
|
||||||||||||||||||||||
includePublishedTopics |
Set the "includePublishedTopics" property to true for the response to include the "publishedTopics" property, which contains all topics a client's session has published since the session was created. To omit the list of published topics, omit this property or set it to false or null. |
true | Boolean |
|
||||||||||||||||||||||
includeStats |
The "includeStats" property indicates whether or not the "stats" property will be returned in the response. |
true | Boolean |
|
||||||||||||||||||||||
includeSubscribedTopics |
Set the "includeSubscribedTopics" property to true for the response to include the "subscribedTopics" property, which contains the topics a client's session is currently subscribed to. To omit the list of subscribed topics, omit this property or set it to false or null. |
true | Boolean |
|
||||||||||||||||||||||
includeSystemTables |
When this property value is true, the server response includes system tables in the list of tables. The default value is false.
Example "params": {
"includeSystemTables": true
} |
false | Boolean |
|
||||||||||||||||||||||
includeThingProperties |
The optional
If the
If the
Available properties include
Response example
Request example 2
Response example 2
|
[] |
array of strings |
|
||||||||||||||||||||||
includeTopicProperties |
The optional
If the
If the
For available properties, see the top-level properties in the
Response example
Request example 2
Response example 2
|
[] |
array of strings | zero or more of the properties in the results example of the describeTopics action | ||||||||||||||||||||||
includeTransformFields |
Set the "includeTransformFields" property to true to include custom transform fields (if any) that a customer added to the integration table. Otherwise, omit the property or set it to false or null. Custom transform fields are helpful when you want to see the outputs and inputs of transformations assigned to the integration table.maxMessages. |
false | Boolean |
|
||||||||||||||||||||||
indexFieldFilters |
The "indexFieldFilters" is a required array containing at least one object. Each object is a field comparison operation. A comparison operation compares its value to the index key of a record. A record is included in the results when all the field comparison operations return true. "indexFieldFilters":
[
{
"fieldName": "name",
"operator": ">=",
"value": "Michael"
},
{
"fieldName": "rank",
"operator": ">=",
"value": "1"
},
{
"fieldName": "rank",
"operator": "<",
"value": "3"
}
] |
Required - No default value | array of objects |
|
||||||||||||||||||||||
indexFields |
The "indexFields" property is a required field comparison array of objects in the "indexFilter" property of the "getRecordsStartingAtKey" method. It is used by an index to find a record.
"indexFields":
[
{
"fieldName": "name",
"value": "Michael"
},
{
"fieldName": "rank",
"value": "1"
}
] |
Required - No default value | array of objects |
|
||||||||||||||||||||||
indexFileExtension |
The "indexFileExtension" property is an optional string from 0 to 64 bytes. It specifies the file system extension to use for a table's index files. If omitted, it defaults to ".idx".
"params": {
"indexFileExtension": ".tidx"
} |
".idx" | string | 0 to 64 bytes | ||||||||||||||||||||||
indexFilter |
The "indexFilter" property selects an index and defines the lower and upper bounds of records to be returned from the index.
One-field index"indexFilter":
{
"indexName": "name_livedpast2000",
"partialKey": "Mi"
}Multi-field index"indexFilter":
{
"indexName": "name_livedpast2000",
"partialKey": [ "2023-09-22", "Mi" ]
} |
Required - No default value |
object |
|
||||||||||||||||||||||
indexName |
The "indexName" property is a required string from 1 to 64 bytes. It is the name of an index. A zero-length "indexName" is invalid. "params": {
"indexName": "index1"
} |
Required - No default value |
string | 1 to 64 bytes | ||||||||||||||||||||||
inParams |
The "inParams" property is both an optional and required array of objects that specifies the values of input parameters. When optional it defaults to an empty array.
{
"params": {
"inParams": [
{
"name": "inIntParam1",
"value": 3
},
{
"name": "inoutBinaryParam3",
"value": "54657374"
},
{
"name": "mySqlNamedParam4",
"value": "Ray"
}
]
}
} |
[] The is the default when no SQL statements have any named parameters. When one or more SQL statements have named parameters, this is required. |
array of objects |
|
||||||||||||||||||||||
inputName |
The "inputName" property is a required string that specifies the unique name of an input. "params": {
"inputName": "modbusTCP",
"serviceName": "modbus"
} |
A FairCom generated name that follows the pattern "Input #n from <pluginName> to <databaseName>.<ownerName>.<tableName>" |
string | 1 to 100 bytes | ||||||||||||||||||||||
inputNames |
The "inputNames" property is a required array of strings that specifies the names of the inputs you want to be described in the result. | [] | array | 0 or more strings | ||||||||||||||||||||||
integrationTableIdFilter |
The optional "integrationTableIdFilter" property is the unique integer ID of an integration table. The "listTags" action includes tags associated with the specified integration table. |
[] |
array of integers | zero or more integration table id integers | ||||||||||||||||||||||
ipAddress |
The "ipAddress" property specifies the PLC/Equipment IPV4 Address. |
Required - No default value | string | A valid IP address | ||||||||||||||||||||||
keepAliveSeconds |
The "keepAliveSeconds" property is an optional integer that specifies how often (in seconds) the broker expects a message to be sent. The server will retain a temporary session as long as the client performs an MQ Message action within the keep alive timeout period, which is "keepAliveSeconds" x 1.5. Once there is no activity, the server starts the session expiry timer to remove the temporary session. If there is no session activity within the number of seconds specified in the "sessionExpiryInternal" property, the server removes the session. |
0 | integer | No limit | ||||||||||||||||||||||
key |
The "key" property is part of an optional key-value object that is defined in an array in the "userProperties" property. It is a user-defined string value. In the Key-Value API, this property is required. |
"" Required in the Key-Value API |
string | 1 to 128 bytes | ||||||||||||||||||||||
keys |
The required "keys" property contains an array of keys for an action to work on and return, such as [ "key1", "key2" ]. |
Required - No default value | array of strings | one or more key strings | ||||||||||||||||||||||
keyStore |
The required
|
Required - No default value | string enum |
|
||||||||||||||||||||||
keyValuePairs |
The "keyValuePairs" property contains an array of objects. Each object represents a key-value pair and contains "key" and "value" properties, such as { "key": "k1", "value": 1 }. |
Required - No default value | array of key-value objects | |
||||||||||||||||||||||
label |
The optional "label" property assigns a label to an object. The "label" object contains "group" and "name" properties that uniquely identify a label. If you omit the "group" and "name" properties, they default to the empty string, "", which is a valid group and name for a label. A label is a tag that you can add to some objects, such as an MQTT topic or session. You can use list actions such as "listTopics" and "listMqSessions" to find objects with a specific label. The "label" property is mutually exclusive from the "labelId" property. |
null | object | "label": {
"group": "group name",
"name": "label name"
} |
||||||||||||||||||||||
labelID |
The optional "labelId" property assigns a label to an object. The "labelId" property uniquely identifies a label. A label is a tag that you can add to some objects, such as an MQTT topic or session. You can use list actions such as "listTopics" and "listMqSessions" to find objects with a specific label. The "labelId" property is mutually exclusive with the "label" property. |
null | integer | 0 to 4294967296 | ||||||||||||||||||||||
labels |
The The
When using tag actions, the optional
When you use the
You can use the
The Tag API implements the
|
Required - No default value
|
array of objects |
1 or more label objects
Values are managed in the Label API with the group of |
||||||||||||||||||||||
labelsFilter |
The optional
The API allows the same label to be assigned to many tags. |
[] |
array of strings | zero or more label strings | ||||||||||||||||||||||
length |
This property is an integer that specifies the length of a table field. See also Data types. It is required to set the length of the following fixed-length data types:
It is required to set the maximum length for the following variable-length data types:
It is optional to set the maximum length of the "json" data type, which defaults to 2 gigabytes. You may set its maximum length between 1 and 65,500 bytes. It is optional to set the maximum length of the "number" and "money" data types, which default to 32 numeric digits. You can change the "length" to limit the precision of the number of digits to the left of the decimal point.
The "length" property is ignored for other data types because they have predefined lengths. For example, "lvarchar" and "lvarbinary" always have a maximum length of 2GB.
Request example Create a table that contains all field types that use the "length" property. "fields": [
{
"name": "a",
"type": "char",
"length": 16
},
{
"name": "b",
"type": "varchar",
"length": 65500
} |
null | integer | 1 to 65500 | ||||||||||||||||||||||
localDatabaseName |
The "localDatabaseName" property is a string that specifies the database name of the table on the FairCom MQ server that stores the stream's data change events. |
Defaults to the "defaultDatabaseName" value that is set during "createSession". If no default is set during "createSession", then "faircom" is used. | string | 1 to 64 bytes | ||||||||||||||||||||||
localDatabaseNameFilter |
The "localDatabaseNameFilter" property is an optional string that specifies a partial match for the database name of the table on the FairCom MQ server that stores the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
localDataFilePath |
The "localDataFilePath" property is a string that specifies the data file path of the table on the FairCom MQ server that stores the stream's data change events. It can be a full path or a relative path from the server's data directory. |
Required - if "localTableName" is not specified. | string | No limits | ||||||||||||||||||||||
localDataFilePathFilter |
The "localDataFilePathFilter" property is an optional string that specifies a partial match for the file name of the table on the FairCom MQ server that stores the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
localOwnerName |
The "localOwnerName" property is a string that specifies the account that owns the table on the FairCom MQ server that stores the stream's data change events. |
Defaults to the "defaultOwnerName" value that is set during "createSession". If no default is set during "createSession", then "admin" is used. | string | 1 to 64 bytes | ||||||||||||||||||||||
localOwnerNameFilter |
The "localOwnerNameFilter" property is an optional string that specifies a partial match for the owner name of the table on the FairCom MQ server that stores the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
localTableName |
The "localTableName" is a string that specifies the name of the table on the FairCom MQ server that stores the stream's data change events. |
Required if "localDataFilePath" is not specified | string | 1 to 64 bytes | ||||||||||||||||||||||
localTableNameFilter |
The "localTableNameFilter" property is an optional string that specifies a partial match for the table name of the table on the FairCom MQ server that stores the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
location |
The optional
This API uses the Label API to manage manufacturers.
|
"unknown" |
string |
1 to 64 bytes Values are managed in the Label API with the group of |
||||||||||||||||||||||
locationFilter |
The optional "locationFilter" property is an array of strings. Each string is a partial or complete location name, such as, "locationFilter": [ "myLoca", "factory2-line6-station1" ]. The action returns things that match at least one item in the array, provided it also satisfies all other specified filter properties. |
[] |
array | zero or more location strings. | ||||||||||||||||||||||
lockoutAfterNFailedAttempts |
The
|
Defaults to the session's "LOGON_FAIL_LIMIT" property | integer | 0 to 2147483647 | ||||||||||||||||||||||
lockoutWaitMinutes |
The
|
Defaults to the session's "LOGON_FAIL_TIME" property | integer | 0 to 2147483647 | ||||||||||||||||||||||
logLevel |
Defines what type of messages the replication agent will log. | "warning" | string enum |
"off" - no messages logged "debug" - logs debug, info, warning, and error messages "info" - logs info, warning, and error messages "warning" - logs warning and error messages "error" - logs error messages |
||||||||||||||||||||||
logTransformOverwrites |
The optional "logTransformOverwrites" property has a true or false value and defaults to true. When true and a record is inserted into the integration table, the server adds log entries to the log field when a transform step overwrites a field that already contains a value. When true, it protects fields, such as source_payload, from being overwritten accidentally. You typically set "logTransformOverwrites" to true when testing transform steps. Once they are working as expected, you can set it to false. If multiple "recordPath" properties write to the same JSON properties in a "tableFieldsToJson" transform, the server will return an error because "recordPath" cannot overwrite. Multiple occurrences of the "recordPath" property may reference the same property as long as the property is in different fields/tables. Additionally, non-JavaScript transform steps cannot overwrite protected fields or the source_payload field. The only exception is that a single "tableFieldsToJson" transform step may write to the source_payload field. You may create transform steps to take the value of one JSON property and store it in multiple fields as long as no previous transform steps have already put values in these fields. Conversely, you may take the value of one field and store it in multiple JSON properties.
|
false | Boolean |
|
||||||||||||||||||||||
manufacturer |
The optional
This API uses the Label API to manage manufacturers.
|
"unknown" |
string | 1 to 64 bytes | ||||||||||||||||||||||
manufacturerFilter |
The optional "manufacturerFilter" property is an array of strings. Each string is a partial or complete manufacturer name, such as, "manufacturerFilter": [ "Siem", "Rockwell" ]. The action returns things that match at least one item in the array, provided it also satisfies all other specified filter properties. |
[] |
array | zero or more manufacturer strings | ||||||||||||||||||||||
mapOfPropertiesToFields |
The "mapOfPropertiesToFields" property takes fields in the table and maps them to a field containing JSON properties. It is an array of property map objects. Each object maps a field in a table to a JSON property in another field.
|
[] | array |
|
||||||||||||||||||||||
maxCodeVersion |
The
|
Current version | integer | 1 to 2147483647 | ||||||||||||||||||||||
maxDaysBeforePasswordMustChange |
The
|
"" | integer | 0 to 2147483647 | ||||||||||||||||||||||
maxDeliveryRatePerSecond |
The "maxDeliveryRatePerSecond" property sets the throttle rate for current and new subscribers of the topic. This property is optional. If omitted, it defaults to 0, which means no throttling is applied.
|
0 | int32 |
0 to 2147483647 |
||||||||||||||||||||||
maxHealthyBacklogRatePerMinute |
The "maxHealthyBacklogRatePerMinute" property sets the maximum number of backlog messages per minute for a healthy session. A backlog message is one the server has not yet published to subscribers. The backlog of a topic grows when the incoming message rate exceeds the outgoing. You can set it to any positive integer or whole number, such as 10 or 0.1. The default value is 0, which sets no upper bound. A connected session is healthy when its message backlog rate does not exceed the maximum. The "describeMqSessions" action returns the "maxHealthyBacklogRatePerMinute" property and the "sessionHealth" property to report the health of a session. |
0 | integer | |||||||||||||||||||||||
maxHealthySendRatePerMinute |
The "maxHealthySendRatePerMinute" property sets the maximum number of messages per minute for a healthy session. You can set it to any positive integer or whole number, such as 10 or 0.1. The default value is 0, which sets no upper bound. A connected session is healthy when its message send rate does not exceed the maximum. The "describeMqSessions" action returns the "maxHealthySendRatePerMinute" property and the "sessionHealth" property to report the health of a session. |
0 | integer | |||||||||||||||||||||||
maxHealthySubscribedTopicFiltersCount |
The "maxHealthySubscribedTopicFiltersCount" property sets the maximum number of topic filters for a healthy session. You can set it to any positive integer, such as 10. The default value is 0, which sets no upper bound. A connected session is healthy when it has subscribed to at most the maximum number of topic filters. The "describeMqSessions" action returns the "maxHealthySubscribedTopicFiltersCount" property and the "sessionHealth" property to report the health of a session. A topic filter may include MQTT wildcard characters, which allows one topic filter to subscribe to many topics. The "maxHealthySubscribedTopicFiltersCount" property does not limit the number of topics. |
0 | integer | |||||||||||||||||||||||
maximumPacketSize |
The "maximumPacketSize" property is an optional integer that specifies the maximum size of a single packet that the session can receive. |
1024 | integer | |||||||||||||||||||||||
maxInflightMessages |
The "maxInflightMessages" property protects subscribers from receiving messages faster than they can handle. The default value is 0. This property is optional.
|
0 | int32 |
0 to 2147483647 |
||||||||||||||||||||||
maxMessages |
The "maxMessages" property is optional and defaults to 20. It has a minimum value of 1 and a maximum value of 100000. It specifies the number of messages to return from a "getMessages…" action. The number of returned messages will be equal to or less than this maximum. |
20 | integer | 0 to 100000 | ||||||||||||||||||||||
maxMinutesBeforeNextLogin |
The
|
Defaults to the session's "LOGON_MUST_TIME" property | integer | 0 to 35791394 | ||||||||||||||||||||||
maxRecords |
The
|
20 | integer |
-1 to 65535
|
||||||||||||||||||||||
maxSecondsBeforeConnectingToNextServer |
The "maxSecondsBeforeConnectingToNextServer" property is an optional integer that specifies the maximum number of seconds the server will attempt to reconnect to the existing server before it attempts to connect to the next server in the "sourceServers" list. | 30 | int32 | 1 to 65535 | ||||||||||||||||||||||
maxUnsavedEvents |
The optional
|
"disabled" |
integer |
1 to
4294967296
|
||||||||||||||||||||||
memoryArea |
The "memoryArea" property specifies the type of memory area where the connector retrieves data. |
Required - No default value | string |
|
||||||||||||||||||||||
memoryLimit |
The
|
Defaults to the session's "USR_MEMORY" property | integer | 0 to 2147483647 | ||||||||||||||||||||||
memoryRule |
The
|
Defaults to the session's "USR_MEM_RULE" property | string |
|
||||||||||||||||||||||
messages |
The "messages" property is a required array of objects that specifies the message to be published to MQ as well as information about the message. |
[] | array of objects |
1 or more objects including some or all of the following properties:
|
||||||||||||||||||||||
metadata |
The "metadata" property contains user-defined properties that add keywords and tags about the code package. The server indexes this field with a full-text index so you can search for any word or phrase to find code packages. |
{} | object | 0 or more key/value pairs | ||||||||||||||||||||||
metadataFilter |
The
|
null | string | 1 to 65,500 bytes | ||||||||||||||||||||||
minCodeVersion |
The
|
First version | integer | 1 to 2147483647 | ||||||||||||||||||||||
minHealthySendRatePerMinute |
The "minHealthySendRatePerMinute" property sets the minimum number of messages per minute for a healthy session. You can set it to any positive integer or whole number, such as 10 or 0.1. The default value is 0, which sets no lower bound. A connected session is healthy when its message send rate exceeds the minimum. The "describeMqSessions" action returns the "minHealthySendRatePerMinute" property and the "sessionHealth" property to report the health of a session. |
0 | integer | Any positive number | ||||||||||||||||||||||
minHealthySubscribedTopicFiltersCount |
The "minHealthySubscribedTopicFiltersCount" property sets the minimum number of topic filters for a healthy session. You can set it to any positive integer, such as 10. The default value is 0, which sets no lower bound. A connected session is healthy when it has subscribed to at least the minimum number of topic filters. The "describeMqSessions" action returns the "minHealthySubscribedTopicFiltersCount" property and the "sessionHealth" property to report the health of a session. A topic filter may include MQTT wildcard characters, which allows one topic filter to subscribe to many topics. The "minHealthySubscribedTopicFiltersCount" property does not limit the number of topics the wildcards match - rather, it establishes a lower bound on the number of subscribed topic filters an MQ Session is allowed to have. |
0 | integer | Any positive number | ||||||||||||||||||||||
modbusBaudRate |
The optional "modbusBaudRate" property (RTU only) specifies the baud rate of the communication (9600, 19200, 57600, 115200, and so forth). |
19200 | int16 | Any baud rate | ||||||||||||||||||||||
modbusConvertToFloat |
The optional "modbusConvertToFloat" property causes the connector to convert one or two register values into a JSON floating point number. |
"no" | string |
|
||||||||||||||||||||||
modbusDataAccess |
The
|
Required - No default value | string |
|
||||||||||||||||||||||
modbusDataAddress |
The "modbusDataAddress" property specifies where the Modbus protocol should read or write a value to a memory address on a device. By default it is zero-based and ranges from 0 to 65,535. Some vendors document data addresses as one-based values. Set the "modbusDataAddressType" to "oneBased" to configure the "modbusDataAddress" property to use a one-based address, which ranges from 1 to 65,536. |
Required - No default value | int16 | 0 to 65536 | ||||||||||||||||||||||
modbusDataAddressType |
The optional "modbusDataAddressType" property specifies if the modbusDataAddress is zero-based or one-based. |
"zeroBased" | string |
|
||||||||||||||||||||||
modbusDataBits |
The optional "modbusDataBits" property (RTU only) specifies the number of bits of data. |
8 | int16 | 5, 6, 7, or 8 | ||||||||||||||||||||||
modbusDataLen |
The Note: if "modbusDataType" is specified, this value is ignored |
Required if "modbusDataType" is not specified | integer | 1, 2, or 4 | ||||||||||||||||||||||
modbusDataType |
The optional "modbusDataType" property specifies how to convert Modbus binary data types to JSON types. Choose a type that matches the byte order of the data type. The byte order is specified using the letters ABCDEFGH. For more detailed information about the "modbusDataType" property, read our documentation on Modbus data types. |
"" | string |
|
||||||||||||||||||||||
modbusDecimalDigits |
The "modbusDecimalDigits" property is an optional integer that specifies the number of floating-point fractional digits to retain in a floating-point number. Set it to null to retain all digits. Valid values are 0, 1, 2, 3, 4, or 5. The server truncates the floating-point number to the specified number of digits. |
2 | integer | 1 to 5 | ||||||||||||||||||||||
modbusDivisor |
The "modbusDivisor" property is required when "modbusConvertToFloat" is set to "divideByInteger". It is the divisor the server uses to convert an integer value to a float. Use it when you set the "modbusDataType" to one of the integer types, and the server will convert the value to a floating point before writing it to the record. |
Required if "modbusConvertToFloat" is "divideByInteger". Defaults to 1 | integer |
1 to 65536 Typical values are 10, 100, 1000, and 10000 |
||||||||||||||||||||||
modbusParity |
The optional "modbusParity" property (RTU only) specifies the data parity. |
"even" | string | "none", "even", "odd" | ||||||||||||||||||||||
modbusProtocol |
The "modbusProtocol" property specifies the protocol used to connect to the Modbus server. |
Required - No default value | string |
|
||||||||||||||||||||||
modbusSerialPort |
The On Windows, it is necessary to prepend the COM name with "\\.\" if the COM number is greater than 9. For example, "\\\\.\\COM10". For Windows naming conventions, see Naming Files, Paths, and Namespaces . |
Required - No default value | string | No limit | ||||||||||||||||||||||
modbusServer |
The "modbusServer" property (TCP only) specifies the IP/hostname of the Modbus device. |
Required - No default value | string | No limit | ||||||||||||||||||||||
modbusServerPort |
The "modbusServerPort" property (TCP only) specifies the IP Port for the Modbus device for modbusTCP. |
Required - No default value | int16 | 0 to 65535 | ||||||||||||||||||||||
modbusStopBits |
The "modbusStopBits" property (RTU only) specifies the bits of stop. |
1 | int16 | 1 or 2 | ||||||||||||||||||||||
modbusUnitId |
The optional "modbusUnitId" property specifies a device unit number that uniquely identifies a device. Modbus communicates to a device or gateway on one IP address and port. A device or gateway may proxy Modbus communications across multiple Modbus devices. The unit number uniquely identifies each of these devices. This property also applies to serial communications. For serial communication, the range is 1 to 255 Note: The original Modbus specification called this feature a slave address. |
1 | int16 | 0 to 255 | ||||||||||||||||||||||
model |
The optional
This API uses the Label API to manage models.
|
"unknown" |
string | 1 to 64 bytes | ||||||||||||||||||||||
modelFilter |
The optional "modelFilter" property is an array of strings. Each string is a partial or complete model name, such as "modelFilter": [ "ACME-123", "mod_" ]. The action returns things that match at least one item in the array, provided it also satisfies all other specified filter properties. |
[] |
array | zero or more model strings | ||||||||||||||||||||||
mqttPayloadType |
(optional) specifies the variant type format of the "source_payload" field. |
"binary" | string enum |
|
||||||||||||||||||||||
mqttProtocol |
(optional) specifies the version of MQTT protocol to use in your session. | 5.0 | string enum |
|
||||||||||||||||||||||
mtconnectDeviceUuid |
The required "mtconnectDeviceUuid" property specifies the identifier of the device that supplies data to the connector. When the FairCom MTConnect Connector requests data over the MTConnect protocol, the device returns an <MTConnectStreams> XML document, which contains data from one or more devices. The "mtconnectDeviceUuid" property uniquely identifies the data stream the FairCom connector should use to gather data. The device identifier is located in the uuid attribute of the <DeviceStream> element in an <MTConnectStreams> XML document returned from the MTConnect protocol. If the MTConnect protocol returns the following MTConnectStreams XML, you should set the "deviceUuid" property to "X1_373f-4ab9-9c7a-173edd23e4f3". <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
Required - No default value | string | No limit | ||||||||||||||||||||||
mtconnectDataItemId |
The required "mtconnectDataItemId" property specifies the identifier of the data that the MTConnect connector collects. When the FairCom MTConnect Connector requests data over the MTConnect protocol, the device returns an <MTConnectStreams> XML document. Data is located in elements containing the dataItemId attribute. The element's name is its data type and its value is the data. The "mtconnectDataItemId" property identifies a data item by specifying the value of the data element's dataItemId attribute. If the MTConnect protocol returned the following <MTConnectStreams> XML document, you should set the "mtconnectDataItemId" property to "X1_Stamper1_Temperature". The data element is named REAL, which is its data type, and has a data value of "20.1". <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams>
|
Required - No default value | string | No limit | ||||||||||||||||||||||
mtconnectCategoryPropertyPath |
The optional "mtconnectCategoryPropertyPath" property specifies the location in the JSON document to store the MTConnect category of the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the name of the parent element that contains the data item. The parent element may be <Samples>, <Events>, or <Condition>. The connector maps the element name to one of the following category strings: "SAMPLE", "EVENT", or "CONDITION". It then puts the category string in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureCategory", or a complex JSON path, such as "temperature.category". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The element is named <Samples>, which maps to the category of "SAMPLE". <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectComponentNamePropertyPath |
The optional "mtconnectComponentNamePropertyPath" property specifies the location in the JSON document to store the MTConnect component name of the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the value of the name attribute of the <ComponentStream> element that contains the data item. It puts the component name in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureComponent", or a complex JSON path, such as "temperature.component". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The <componentStream> element containing the data element has a name attribute of "Stamper1", which is the component name. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
name="Stamper1"
component="Device"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectDataItemIdPropertyPath |
The optional "mtconnectDataItemIdPropertyPath" property specifies the location in the JSON document to store the MTConnect dataItemID of the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the value of the dataItemID attribute of the element that contains the data item. It puts the dataItemID value in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureDataItemID", or a complex JSON path, such as "temperature.dataItemID". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
name="Stamper1"
component="Device"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectDataNamePropertyPath |
The optional "mtconnectDataNamePropertyPath" property specifies the location in the JSON document to store the MTConnect data name of the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the value of the name attribute of the element that contains the data item. It puts the data name in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureDataName", or a complex JSON path, such as "temperature.dataName". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The element containing the data item has a name attribute of "Temperature", which is the data name. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
name="Stamper1"
component="Device"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectDataTypePropertyPath |
The optional "mtconnectDataTypePropertyPath" property specifies the location in the JSON document to store the MTConnect data type of the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the name of the element that contains the data item and puts it in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureDataType", or a complex JSON path, such as "temperature.dataType". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The element is named REAL, which is the data type of the data value. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectDeviceNamePropertyPath |
The optional "mtconnectDeviceNamePropertyPath" property specifies the location in the JSON document to store the MTConnect device name that provides the data item. Omitting this property removes it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the value of the name attribute of the <DeviceStream> element that contains the data item. It puts the device name in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureDevice", or a complex JSON path, such as "temperature.device". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The <DeviceStream> element containing the data element has a name attribute of "X1", which is the device name. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectDeviceUuidPropertyPath |
The optional "mtconnectDeviceUuidPropertyPath" property specifies the location in the JSON document to store the MTConnect deviceUuid of the device that provides the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector extracts the value of the deviceUuid attribute of the <DeviceStream> element that contains the data item. It puts the deviceUuid in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureDeviceUuid", or a complex JSON path, such as "temperature.deviceUuid". For examples, see Example property paths that group related properties. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The <DeviceStream> element containing the data element has a deviceUuid attribute of "X1_373f-4ab9-9c7a-173edd23e4f3", which is the deviceUuid. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectSequencePropertyPath |
The optional "mtconnectSequencePropertyPath" property specifies the location in the JSON document to store the integer sequence number of the data item. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector puts the value of the MTConnect sequence attribute in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureSequence", or a complex JSON path, such as "temperature.sequence". For examples, see Example property paths that group related properties. When the FairCom MTConnect Connector requests data over the MTConnect protocol, the device returns an <MTConnectStreams> XML document, which contains data elements. A data element contains the dataItemId and sequence attributes. The sequence attribute identifies the device's sequence number of the data value. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The element is named REAL. The value of the sequence attribute is 5. The MTConnect connector converts the sequence number into a JSON integer. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
mtconnectTimestampPropertyPath |
The optional "mtconnectTimestampPropertyPath" property specifies the location in the JSON document to store the timestamp of when the device collects the data item. In contrast, the timestamp built into FairCom's integration table tracks when the FairCom connector collects the data. When a device collects data infrequently, the device timestamp is more accurate than FairCom's built-in timestamp. Omit this property to omit it from the JSON document. When the FairCom MTConnect connector collects data, it generates a JSON document and stores it in the database. The connector puts the value of the MTConnect timestamp in the JSON document at the location specified by this property. You may use a simple property name, such as "temperatureTimestamp", or a complex JSON path, such as "temperature.timestamp". For examples, see Example property paths that group related properties. When the FairCom MTConnect Connector requests data over the MTConnect protocol, the device returns an <MTConnectStreams> XML document, which contains data elements. A data element contains the dataItemId and timestamp attributes. The timestamp attribute identifies when the device collected the element's data value. In the following MTConnectStreams XML document returned over the MTConnect protocol, the data element has a dataItemId of "X1_Stamper1_Temperature". The element is named REAL. The value of the timestamp attribute is "2010-04-06T06:19:35.153141", which is formatted in ISO8601 format. <MTConnectStreams>
<Streams>
<DeviceStream
name="X1"
uuid="X1_373f-4ab9-9c7a-173edd23e4f3">
<ComponentStream
component="Device"
name="Stamper1"
componentId="X1_Stamper1">
<Samples>
<REAL
dataItemId="X1_Stamper1_Temperature"
name="Temperature"
sequence="5"
timestamp="2010-04-06T06:19:35.153141"
>20.1</REAL>
</Samples>
</ComponentStream>
</DeviceStream>
</Streams>
</MTConnectStreams> |
null | string | JSON path | ||||||||||||||||||||||
name |
The The The
|
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
nameFilter |
The
|
[] | array of strings | Each array item is a label string from 1 to 64 bytes | ||||||||||||||||||||||
newCodeName |
The "newCodeName" is an optional string. When present, the server renames the code package from the current "codeName" to the "newCodeName". The server does not change the "codeName" when null or omitted. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
newDatabaseName |
The
|
null | string | 1 to 64 bytes | ||||||||||||||||||||||
newDeprecated |
The |
null | Boolean |
|
||||||||||||||||||||||
newDescription |
The |
"" | string | 1 to 65,500 bytes | ||||||||||||||||||||||
newEnum |
The |
null | smallint |
-32768 to 32767
|
||||||||||||||||||||||
newGroup |
The |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
newKey |
The "newKey" property is required by the "renameKeys" action to rename keys. It is part of a key-rename object and its value is a string. It specifies the new name of a key. Each key-rename object contains "oldKey" and "newKey" properties that specify the current key's name and its new name. See the "renamedKeys" property for more information. |
Required - No default value | string | 1 to 128 bytes | ||||||||||||||||||||||
newMetadata |
The |
{} | JSON | 0 to 65,500 bytes | ||||||||||||||||||||||
newName |
The
|
null | string | 1 to 64 bytes | ||||||||||||||||||||||
newOwnerName |
The
|
null | string | 1 to 64 bytes | ||||||||||||||||||||||
newPosition |
The optional
Request example "fields": [
{
"name": "field1",
"type": "varchar",
"newPosition": 100
}
] |
-1 | integer | -1 to 2500 | ||||||||||||||||||||||
newSequence |
The |
null | double | Any floating point or integer number. | ||||||||||||||||||||||
newSubscriberDeliveryMode |
The "newSubscriberDeliveryMode" property defines how new subscribers receive messages. The default is "newMessages".
|
"newMessages" |
string |
|
||||||||||||||||||||||
newSubscriberMaxDeliveredMessages |
The "newSubscriberMaxDeliveredMessages" property is the maximum number of previously stored historical messages a client receives automatically when subscribing to a topic. The default is 0.
|
-1 | integer or "all" | -1 to 2147483647 or "all" | ||||||||||||||||||||||
newTableName |
The optional "newTableName" property is a string containing a new name for the table. Use the "newTableName" property to rename a table. See table name in System limits for the table naming requirements and limitations.
|
null | string | 1 to 64 bytes | ||||||||||||||||||||||
newTagName |
The
|
Required when a transform step in the "createIntegrationTable" or "alterIntegrationTable" actions includes the "tagProvenance" property and one of its objects has "provenanceAction" set to "calculateNew".
|
string | 1 to 256 bytes | ||||||||||||||||||||||
newThingName |
The optional
|
If present, it must be a unique thing name
|
string | 1 to 64 bytes | ||||||||||||||||||||||
newValue |
The |
null | JSON | 0 to 65,500 bytes | ||||||||||||||||||||||
normalLowerLimit |
The optional, inclusive
![]()
Scenario
NOTES
|
"disabled" |
integer | No limit | ||||||||||||||||||||||
normalUpperLimit |
The optional, inclusive
![]()
Scenario
NOTES
|
"disabled" |
integer | No limit | ||||||||||||||||||||||
nullable |
The "nullable" property is an optional Boolean. When true, it allows a field to contain a NULL value. To require a field to have a non-null value, set "nullable" to false. "fields": [
{
"name": "company",
"type": "varchar",
"nullable": true
}
] |
true | Boolean |
|
||||||||||||||||||||||
numberFormat |
The "numberFormat" property is an optional, case-insensitive string enum. It defines the format of JSON numbers. The default value for "numberFormat" is the "defaultNumberFormat" defined in the "createSession" or "alterSession" actions. If it is omitted there, it defaults to the value of the "defaultNumberFormat" property in the <faircom>/config/services.json file. When "numberFormat" occurs in "mapOfPropertiesToFields", it tells the server how to encode or decode a number assigned to a JSON property. For example, including "numberFormat" in a "tableFieldsToJson" transform step controls if the server encodes a number in a JSON property as a number or a number embedded in a string. Possible values:
Example request {
"action": "someAction",
"responseOptions":
{
"numberFormat": "string"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
"number" |
string |
|
||||||||||||||||||||||
offset |
The "offset" property specifies the offset to the starting byte in the memory area where the connector retrieves data. |
Required - No default value | integer | 0 to 4294967296 | ||||||||||||||||||||||
oldKey |
The "oldKey" property is required by the "renameKeys" action to rename keys. It is part of a key-rename object and its value is a string. It specifies the current key that will be renamed. Each key-rename object contains "oldKey" and "newKey" properties that specify the current key's name and its new name. See the "renamedKeys" property for more information. |
Required - No default value | string | 1 to 128 bytes | ||||||||||||||||||||||
onChangeScope |
The optional
Use cases
Code Example
|
"saveAllTags" |
string enum |
|
||||||||||||||||||||||
onChangeScopeTags |
The conditional
NOTES
|
Required when the "onChangeScope" property is set to "saveSpecificTags".
|
array of strings | 1 or more strings | ||||||||||||||||||||||
onChangeTrigger |
The optional
NOTES
|
"saveWhenAnyTagHasChanged" |
string enum |
"saveWhenAnyTagHasChanged""saveWhenAllTagsHaveChanged""saveWhenAnySpecifiedTagHasChanged""saveWhenAllSpecifiedTagsHaveChanged"
|
||||||||||||||||||||||
onChangeTriggerTags |
The conditional
NOTES
|
required when the "onChangeTrigger" property has one of the following values: "saveWhenAnySpecifiedTagHasChanged" or "saveWhenAllSpecifiedTagsHaveChanged".
|
array of strings | 1 or more strings | ||||||||||||||||||||||
onError |
The "onError" property is an optional string that determines when to stop or continue the execution of all SQL statements. It defaults to "continue".
|
"continue" | string |
|
||||||||||||||||||||||
opcNamespace |
The "opcNamescpace" property specifies the OPC UA namespace that this variable exists in. |
Required - No default value | int16 | 0 to 32767 | ||||||||||||||||||||||
opcNodeName |
The "opcNodeName" property specifies the name of the OPC UA variable for this data. |
Required - No default value | string | No limit | ||||||||||||||||||||||
opcServerUrl |
The "opcServerUrl" property specifies the IP or URL to your OPC UA device, including the port. |
Required - No default value | string | No limit | ||||||||||||||||||||||
opcServerUser |
The optional "opcServerUser" property specifies the username for your OPC UA device. |
"" | string | No limit | ||||||||||||||||||||||
opcServerPassword |
The optional "opcServerPassword" property specifies the password for your OPC UA device. |
"" | string | No limit | ||||||||||||||||||||||
operationIntent |
The "operationIntent" property is optional. It clarifies the intent of the method as an "insert", "update", or "upsert". The default intent is "upsert". The "operationIntent" property values and their descriptions are as follows:
|
"upsert" | string |
|
||||||||||||||||||||||
operator |
The "operator" property is a required string enum. When the server filters records in a query, it goes through each record and uses the comparison operator to compare a field value to a constant value or expression. When the comparison evaluates to true, the record is included in the result. The following comparison operators are available:
|
Required - No default value | string |
|
||||||||||||||||||||||
outputName |
The "outputName" property is an optional string that specifies a unique name for mapping an integration table to an output plugin to an external system. | A FairCom generated name that follows the pattern "Output #n from <databaseName>.<schemaName>.<tableName> to <pluginName>" |
string | 1 to 64 bytes | ||||||||||||||||||||||
outputNames |
The "outputNames" property is an array of strings, each specifying the name of an output. The response will include details about all outputs with an "outputName" that matches one of the strings in the array. |
[] | array |
1 or more strings | ||||||||||||||||||||||
outputPayloadField |
The "outputPayloadField" property specifies the field that the MQTT Subscription service should use as the payload when it sends the payload to subscribers. If omitted or if it is an empty string, it defaults to "source_payload".
This makes it possible for the output from any transform to be used as the payload delivered to subscribers. |
"source_payload" |
string |
A user-defined field |
||||||||||||||||||||||
ownerName |
The You specify this property when you want to use a different account instead of the default. Your session's account must have the appropriate privileges to access the code package. This property is useful because objects, such as tables and code packages, can have the same name in the same database as long as different accounts own each object. This feature allows you to create duplicate objects for different users on the same server and reuse the same JSON actions on those objects. For example, an administrator can copy objects from a production environment to her account so she can troubleshoot an issue using the same JSON actions, JavaScript, and SQL code. It is an error to set If no default owner is specified during |
Defaults to the session's "defaultOwnerName" property | string | 1 to 64 bytes | ||||||||||||||||||||||
packageSize |
The optional "packageSize" property specifies the package size in bytes used to communicate with the PLC. Higher numbers allow the connector to retrieve more data in fewer requests. |
If not specified, the PLD PDU size is used. | integer | 240 to 960 | ||||||||||||||||||||||
padValue |
The "padValue" property is a decimal number from 0 to 255. It is optional. If omitted, it defaults to 0. The server uses this decimal number as a byte value to pad all "char" and "binary" fields in a table when the contents of these fixed-length fields is shorter than the field size. All fixed-length fields in a table are padded with the same pad value.
Reasons to use fixed-length fields:
Reasons for padding fixed-length fields:
How padding works:
CHAR padding behavior:
BINARY padding behavior:
Example 1. Turning off padding
If a table's "padValue" is set to 0, the ASCII NULL character with the hexadecimal value of 0x00 is used to pad unfilled byte positions. So when the JSON string "12" is inserted into a "char" field that has a "length" of 4 bytes, the binary value of 0x31320000 is stored in the field. The value returned is a JSON string of "12" because it recognizes the ASCII NULL character as a string terminator. In other words, the ASCII NULL character allows the server to automatically trim the length of a string that is stored in a fixed-length field before it returns the string in JSON. So, by default, the same JSON string inserted into a "char" field is always returned by the JSON DB API. This behavior is safe for UTF-8 strings, which is the string encoding used by JSON. Example 2. Padding s a string with spaces
When a table's "padValue" is set to 32, which is hexadecimal 0x20, and a JSON string of "12" is assigned to a "char" field that has a "length" of 4 bytes, the binary value of 0x31322020 is stored in the field. When the JSON DB API retrieves the value, it returns it as a JSON string of "12". This is because the value 32 is the ASCII space character " ". Example 3. Padding a string with hyphens
If a table's "padValue" is set to 54, which is hexadecimal 0x36, and a JSON string of "12" is assigned to a "char" field that has a "length" of 4 bytes, the binary value of 0x31323636 is stored in the field. When the JSON DB API retrieves the value, it returns it as a JSON string of "12--". This is because the value 54 is the ASCII character "-". Example 4. Manually padding a string
Assigning "12**" to a "char" field that has a "length" of 4 bytes stores "12**" into the field regardless of the table's "padValue". Example 5. Right-aligning a value in a string
Assigning " $12.34" to a "char" field that has a "length" of 8 bytes stores " $12.34" into the field regardless of the table's "padValue". Example 6. Avoiding padding
Use the variable-length char and binary field types ("varchar", "lvarchar", "lvarchar", "varbinary", and "lvarbinary"). Each of these field types is stored in the table with length information, so the data returned matches the data stored.
Request example {
"api": "db",
"action": "createTable",
"params": {
"padValue": 32
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
0 | integer | 0 to 255 | ||||||||||||||||||||||
partialClientName |
The "partialClientName" property is a string that is used to specify which sessions to return from the "listMqSessions" action. This property behaves as a "begins with" search. |
"" | string | |||||||||||||||||||||||
partialDatabaseName |
The "partialDatabaseName" property filters the returned databases by applying partial matches to the beginning of database names. It is an optional string from 0 to 64 bytes. It defaults to an empty string.
|
"" | string | 0 to 64 bytes | ||||||||||||||||||||||
partialGroupFilter |
The
|
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
partialKey |
The "partialKey" property is an optional string or array that defines the range of returned records. The "getRecordsByPartialKeyRange" action uses the "partialKey" to find a starting position in the index where it can start returning records. It defaults to an empty string or empty array.
String "partialKey": "Mi" Array (multi-field) "partialKey": [ "2023-01-01", true, "full string", -3.4, "TWk=" ] In the Key-Value API, the required
|
"" or [] Required in the Key-Value API |
string or array |
1 or more strings/arrays 1 to 128 bytes in the Key-Value API |
||||||||||||||||||||||
partialName |
The
|
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
partialNameFilter |
The
This example uses a group filter to list all labels with the matching groups. {
"api": "admin",
"action": "listLabels",
"params": {
"groupFilter": [ "myGroup1", "myGroup2", "" ],
"partialNameFilter": "myNa"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}This example uses a partial name filter to list labels with matching names. The labels may be part of any group. {
"api": "admin",
"action": "listLabels",
"params": {
"partialNameFilter": "myNa"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
null | array of strings | 1 or more strings, each up to 64 bytes long. | ||||||||||||||||||||||
partialNames |
The "params": {
"partialNames": [
"adm",
"NewAccount"
]
}, |
[] | array | 1 to 64 bytes | ||||||||||||||||||||||
partialTableName |
The "partialTableName" property is an optional string from 0 to 64 bytes that filters the returned databases by applying partial matches to database names. It defaults to an empty string.
|
"" | string | 0 to 64 bytes | ||||||||||||||||||||||
password |
The
|
"" Required for the "createSession" action |
string | 0 to 256 bytes | ||||||||||||||||||||||
path |
The "path" property is a string that identifies the path of the database folder.
Create the test_db_max.dbs database in the c:\temp\ folder {
"action": "createDatabase",
"params": {
"databaseName": "test_db_max",
"path": "c:\\temp"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}
"path" omitted or set to null If the FairCom server is installed in the C:\FairCom\FairCom-Edge.windows.64bit.v4.5.1.170\ folder, this code example creates the test3.dbs database in C:\FairCom\FairCom-Edge.windows.64bit.v4.5.1.170\data\. {
"action": "createDatabase",
"params": {
"databaseName": "test3"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}
Forward slash {
"action": "createDatabase",
"params": {
"databaseName": "test4",
"path": "c:/temp"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
"" | string | 0 to 2,048 bytes | ||||||||||||||||||||||
payload |
The "payload" property is a required string that specifies the actual payload of the message. |
Required - No default value | string | The message's payload | ||||||||||||||||||||||
permanentlyDeleteLabels |
The |
null | Boolean |
|
||||||||||||||||||||||
permanentlyDeleteSession |
The "permanentlyDeleteSession" property is a Boolean that specifies whether or not you want to permanently delete the specified session. When set to true, it permanently deletes a session and removes its data from the server. When set to false, it marks a session as deleted without removing the session's data. |
false | Boolean |
|
||||||||||||||||||||||
permanentSession |
The "permanentSession" property is an optional Boolean that indicates if a session is permanent. It defaults to false.
If "permanentSession" is set to true when "createSession" is called, the server sets the authtoken as permanent. The authtoken is associated with the settings and authorizations of the user who created the session. It is always valid even after the server restarts. A permanent authToken works like an API Key and authenticates an application without the need for a username/password or a client certificate. Multiple applications can use the same permanent authToken.
|
false | Boolean |
|
||||||||||||||||||||||
photo |
The optional "photo" property contains a photo of a thing. It defaults to null and is a binary value up to 2 GB in size. You cannot use it for lookups and filtering. |
null |
string containing a binary value | Up to 2 GB | ||||||||||||||||||||||
plcAddress |
The "plcAddress" property specifies the IP address or hostname and optional port from the PLC, in the format IPaddress:Port, with Port being optional. |
Required - No default value | string |
Examples: 172.16.0.1 172.16.0.1:4401 |
||||||||||||||||||||||
plcType |
The
|
Required - No default value | string |
|
||||||||||||||||||||||
preserve |
The "preserve" property is an optional, case-insensitive string enum that determines how data, if any, that is associated with an integration table or MQTT topic is preserved. It defaults to "data". Possible values:
|
"data" |
string enum |
|
||||||||||||||||||||||
primaryKey |
This optional property identifies a table's primary key.
Each table created by the JSON DB API has a primary key that uniquely identifies each record. "createTable" automatically adds the "id" field as the primary key to your table. It makes "id" an auto-increment bigint field and indexes the field with a unique index named "id_pk". Using the "id" field as the primary key is a best practice. You can specify one or more fields to be the primary key of the table instead of the "id" field. To do so, you must add the "primaryKeyFields" property to "createTable" or use the "fields" property's "primaryKey" to specify which field(s) are in the primary key.
If multiple fields are specified for the key, the index is named "pk". If only one field is specified for the key, the index is named "<fieldname>_pk". If you use the "primaryKey" property to specify multiple fields as the primary key, the assigned value from 1 to n specifies the order of the fields in the primary key. Assign "primaryKey": 1 to the first field in the primary key, "primaryKey": 2 to the second, and so forth. If you create a primary key with multiple fields, the index is named "pk". If you specify just one field, the index is named "<fieldname>_pk".
Example "fields": [
{
"name": "a",
"type": "tinyint",
"primaryKey": 1
},
{
"name": "b",
"type": "smallint",
"primaryKey": 2
},
{
"name": "c",
"type": "integer",
"primaryKey": 3
}
] |
null | integer | 0 to 32 | ||||||||||||||||||||||
primaryKeyFields |
This property specifies the fields to use for the table’s primary key. The "primaryKeyFields" property creates a unique "primary key" index on these fields. The index is named "field1_fieldN_pk" where field1 through fieldN are the names of the specified fields. When the table already has a primary key index, altering a table with this property may create an additional "primary key index". The user can use "deleteIndexes" to remove extra indexes. |
[] | array of strings | ["field1", …,"fieldN"] | ||||||||||||||||||||||
primaryKeys |
The "primaryKeys" property is an array of arrays containing key-value pairs. The default value is "null", but it is required if the "ids" property is omitted. It is used to specify search criteria and to show the results found.
If your table uses the "first_name" and "last_name" fields as the primary key, the following "primaryKeys" property will retrieve two records.
"primaryKeys":
[
[
{ "fieldName": "first_name", "value": "Sam" },
{ "fieldName": "last_name", "value": "I-am" }
],
[
{ "fieldName": "first_name", "value": "The Cat" },
{ "fieldName": "last_name", "value": "in the Hat" }
]
]
|
"null" It is required when "ids" is omitted. |
array of arrays |
1 or more array of key/value pairs. | ||||||||||||||||||||||
privateKeyFilename |
The "privateKeyFilename" is an optional string that specifies the name and optional path of a server key file. | "" | string | No limits | ||||||||||||||||||||||
problemTypeFilter |
The "problemTypeFilter" property is an optional array of strings that filters the response to match the specified types of problems. You may omit this property or set it to null to return all problem types. |
null | array of strings |
|
||||||||||||||||||||||
propertyMapList |
The "propertyMapList" property specifies which data the connector requests and where to put it in the generated JSON. |
Required - No default value | array of objects |
zero or more objects containing zero or more of the following properties:
|
||||||||||||||||||||||
propertyPath |
The "propertyPath" property specifies the name of the data to be defined by "propertyValue". | Required - No default | string | 0 to 256 bytes | ||||||||||||||||||||||
propertyValue |
This is a required object that contains properties that define the data values of a "propertyPath". It is required and has no default value. The data values specified in the "propertyValue" object can be a string or an object.
|
Required - No default | object |
|
||||||||||||||||||||||
purpose |
The "purpose" property is an optional string that provides a short description of the specified server's purpose.
In the Thing API, the optional
The Thing API uses the Label API to manage purposes.
|
""
|
string | 1 to 64 bytes | ||||||||||||||||||||||
purposeFilter |
The optional "purposeFilter" property is an array of strings. Each string is a partial or complete purpose, such as, "purposeFilter": [ "myPur", "Manage an Acid Bath" ]. The action returns things that match at least one item in the array, provided it also satisfies all other specified filter properties. |
[] |
array of strings | zero or more purpose strings | ||||||||||||||||||||||
rack |
The "rack" property specifies the PLC Rack number. |
Required - No default value | integer | 0 to 7 | ||||||||||||||||||||||
rebuildTable |
The "rebuildTable" property is an optional Boolean that defaults to false. When true, the server stops accepting read, insert, and update requests and rebuilds the table. Rebuilding a table creates new table files and writes existing records to the new files.
|
false | Boolean |
|
||||||||||||||||||||||
receiveMaximum |
The "receiveMaximum" property is an optional integer that specifies the maximum number of QoS 1 and QoS 2 publish messages that the MQTT client is willing to process concurrently. |
1024 | integer | 1 to 65535 | ||||||||||||||||||||||
receiveMyMessages |
The "receiveMyMessages" property is an optional Boolean property that allows a client's subscription to receive messages published by the client. It defaults to true. |
true | Boolean |
|
||||||||||||||||||||||
receiveRetainedFlagAsPublished |
The "receiveRetainedFlagAsPublished" is an optional Boolean property that specifies how the FairCom server sets the "retain" property on messages it sends to subscribers. When a client publishes a message, it sets the "retain" property to true to tell the FairCom server that it should retain the message and publish this message on behalf of the client when another client subscribes to a topic. A retained message is typically a special message that provides a new subscriber with status information about the topic. When "receiveRetainedFlagAsPublished" is true, the FairCom server follows the MQTT 3 specification and passes the value of the "retain" property set by the publisher to the subscriber. Thus, a subscriber sees the value of the "retain" property that is set by the publisher. This notifies the subscriber that the message is a special status message from the client. This approach has the downside that a subscriber does not know when it gets a message sent by the FairCom server on behalf of the client in response to subscribing to a topic. When "receiveRetainedFlagAsPublished" is false, the FairCom server follows the MQTT 5 specification and sets the "retain" property to true only when the FairCom server sends a retain message to a subscriber on behalf of a publisher, such as when a client subscribes to a topic. The MQTT 5 approach lets a subscriber know when it receives a retain message sent by the FairCom server vs. when it receives a normally published message from a client. This approach has the downside that a subscriber does not get the value of the "retain" property as set by the client who published the message. The MQTT 5 approach is generally better because the subscriber can tell when it is receiving a retained message in response to a subscription as opposed to a message published by a client. |
true | Boolean |
|
||||||||||||||||||||||
receiveRetainedMessages |
The "receiveRetainedMessages" property is an optional enumerated string that specifies how MQTT 5 subscribers receive retained messages. It has three enumerated values: "onSubscription", "onNewSubscription", and "never". It defaults to "onSubscription".
|
"onSubscription" | enum |
|
||||||||||||||||||||||
reconnectFrequencySeconds |
The "reconnectFrequencySeconds" property is the number of seconds that the broker waits between attempts to reconnect to an external broker. This property is optional. If omitted, it defaults to 15 seconds. If it is set to 0, the broker does not attempt to reconnect when it loses a connection or fails to connect. FairCom's servers attempt to connect to an external broker when it is configured as a subscriber to topics on an external broker or when it is configured to forward messages to an external broker. To stop the reconnect process, send the "configureBrokerConnection" message with the command property set to "disconnect". To restart the reconnect process, send the "configureBrokerConnection" message with the command property set to "reconnect". |
15 | int32 | 1 to 65535 |
||||||||||||||||||||||
recordFilter |
The "recordFilter" property is a string that specifies a FairCom expression that must match a record's field values before the record is included as a data change event. |
"" | string | 1 to 65,000 bytes | ||||||||||||||||||||||
recordFormat |
The "recordFormat" property is a string that includes the record's value in the data change event as a binary-encoded string or individual field values. |
"fields" | string enum |
|
||||||||||||||||||||||
recordPath |
The "recordPath" property specifies the location in a record where the server reads or writes a JSON value. It specifies a field name followed by an optional JSONPath. Depending on the context, it refers to a value the server reads or writes. For example, in the "tableFieldsToJson" transform method, "recordPath" is the location where the transform step writes a transformed value. In the "jsonToTableFields" and "jsonToDifferentTableFields" transform methods, "recordPath" is the location where the transform step reads the value that it transforms.
Several FairCom APIs, such as the DB and Transform APIs, treat each record in each table as a JSON document. The top-level fields in the record are treated as top-level properties in the JSON document. In other words, you can think of each record as a JSON document, and you can use the "recordPath" property to refer to any field in the record and any JSON property or array item within a JSON field. When the server writes a value to a "recordPath", it looks for the specified field and JSONPath and does the following.
When the server reads a value from a "recordPath", it looks for the specified field and JSONPath and does the following.
Simple "recordPath" example For example, a recordPath of "temperature" refers to a field named "temperature". Example record in an integration tableThe following record contains three fields: id, source_payload, and create_ts.
JSON representation of the example recordThe following JSON shows how the JSON DB and Transform APIs represent the previous record. The top-level properties are fields in the integration table. {
"id": 1,
"source_payload":
{
"humidity":
[
{
"temperature": 20.1,
"pressure": 1003
}
]
},
"create_ts": "2025-07-07T14:14:02.012"
}
"recordPath" properties for each value in the example record
The required "recordPath" property specifies the location of a JSON property in a record. It starts with the name of a field in the table followed by an optional JsonPath to a JSON property within that field.
|
Required - No default value | string | 0 to 256 bytes | ||||||||||||||||||||||
remove |
The optional |
{} | array of objects |
|
||||||||||||||||||||||
renamedKeys |
The
|
Required - No default value | array of key-rename objects | |
||||||||||||||||||||||
requestProblemInformation |
The "requestProblemInformation" property is an optional Boolean that specifies whether or not to include problem Information in the response. |
true | Boolean |
|
||||||||||||||||||||||
requestResponseInformation |
The "requestResponseInformation" property is an optional Boolean that specifies whether or not to include response information in the response. |
false | Boolean |
|
||||||||||||||||||||||
rerunTransformScope |
The required "rerunTransformScope" property defines the scope of this action. It is a string enum with one of the following values:
|
Required - No default value | string enum |
|
||||||||||||||||||||||
responseOptions |
The "responseOptions" property is an optional object that configures the server to return a customized response.
|
null | object |
|
||||||||||||||||||||||
responseTopic |
The "responseTopic" property is an optional string containing a topic name. When a published message has a "responseTopic", an MQTT 5 subscriber can send a message response to that topic, and the message will include the "correlationData" value (if any) to connect the response to the published message. |
"" | string | topic name for the response | ||||||||||||||||||||||
retain |
The "retain" property is optional in the "publishMessagesToMq" action and defaults to false. When true, it tells the FairCom server to retain this message for automatically sending to new subscribers as the first message they receive. When an action returns the "retain" property, it indicates the publisher published the message as a retained message. |
false | Boolean |
|
||||||||||||||||||||||
retentionPeriod |
The "retentionPeriod" property specifies how many units of data to retain. It must be an integer value from 1 to 100. It refers to the unit of time specified by the "retentionUnit" property — for example, if "retentionPeriod" is 14 and "retentionUnit" is "day", then message data is retained for 14 days. This property is optional.
When partitions are auto-purged, some data are maintained "forever" in a global index. Auto-purge does not prevent these files from growing without bounds and filling up your hard drive. If not specified, the default found in the services.json file is used. Initially, it is 4 (weeks). Automatically purging data is important to ensure that retained data does not consume all storage and shut down the computer. The default value of 4 weeks allows FairCom's servers to store 1 TB of messages when 200 topics send one 2K message per second.
|
30 |
integer | 1 to 100 | ||||||||||||||||||||||
retentionPolicy |
The "retentionPolicy" property controls how messages are persisted. This property is optional. If not specified, the default found in the services.json file is used. Initially, it is "autoPurge". retentionPolicy values:
|
"autoPurge" |
string |
|
||||||||||||||||||||||
retentionUnit |
Each time this unit cycles, FairCom purges expired messages. For example, if you want a week's worth of messages to be purged once a week, set "retentionUnit" to "week". This property is optional. If not specified, the default found in the services.json file is used. Initially, it is "week".
|
"day" |
string |
|
||||||||||||||||||||||
retrySeconds |
The "retrySeconds" property is the number of seconds that FairCom's MQTT broker will wait for the next expected packet from a client during a QoS 1 or QoS 2 PUBLISH packet exchange/PUBLISH handshake with an MQTT client. The default value is 5. It applies when a client is publishing to the broker and when the broker is publishing to a client. This property does not apply to QoS 0 PUBLISH operations because QoS 0 PUBLISH operations are not answered. "retrySeconds" is optional.
|
20 |
integer | 1 to 65535 |
||||||||||||||||||||||
returnCursor |
The "returnCursor" property is an optional Boolean. When true, an action returns a cursor instead of directly returning records. It defaults to "false".
|
false | Boolean |
|
||||||||||||||||||||||
returnTagsBy |
The optional "returnTagsBy" property is an enumerated string with the following values: "tagName" and "id". It defaults to "id". It is used by the "listTags" action to specify whether it returns tags identified by ID or name. |
"id" |
string enum |
|
||||||||||||||||||||||
returnThingsBy |
The optional "returnThingsBy" property is an enumerated string with the following values: "name" and "id". It defaults to "id". It is used by the "listThings" action to specify whether it returns things identified by ID or "name". |
null |
string enum |
|
||||||||||||||||||||||
revealAfterValueOnFilteredDelete |
The "revealAfterValueOnFilteredDelete" property is a Boolean that includes the "afterValue" property in the notification message when true. When "recordFilter" filters out a record based on field values, an update causes a deleted change event to occur when its field values no longer match the filter. The "afterValue" property, when present, reveals the new field values and leaks information. |
false | Boolean |
|
||||||||||||||||||||||
revealBeforeValueOnFilteredInsert |
The "revealBeforeValueOnFilteredInsert" property is a Boolean that includes the "beforeValue" property in the notification message when true. When "recordFilter" filters out a record based on field values, an update causes an insert change event when previous field values did not match the filter but now match it. The "beforeValue" property, when present, reveals the old field values and leaks information. |
false | Boolean |
|
||||||||||||||||||||||
reverseCompare |
This property is an optional boolean with a default of false, so bytes in an index key field are compared starting from the beginning to the end of the key When true, bytes in an index key field are compared starting from the end to the beginning of the key. This speeds comparisons when the unique parts of the bytes are at the end of keys. "fields": [
{
"reverseCompare": true
}
] |
false | Boolean |
|
||||||||||||||||||||||
reverseOrder |
The "reverseOrder" is an optional Boolean. When true, it is used in query actions to return results in reverse order. It defaults to "false".
|
false | Boolean |
|
||||||||||||||||||||||
roleName |
The
|
Required when "keystore": "role"
|
string | 1 to 64 bytes | ||||||||||||||||||||||
roleNames |
The optional "add": [
{
"roleNames": [
"admin"
],
"usernames": [
"NewAccount1"
]
}
] |
[] | array | 1 or more strings, each between 1 and 64 bytes. | ||||||||||||||||||||||
scale |
The "scale" property is required only for the "number" and "money" data types because they require fixed precision. It is ignored for all other data types. See also Data types. The scale specifies the number of fixed decimal places to the right of the decimal point. Its value must always be less than or equal to the field's length. The value of "scale" must be an integer from 0 to the number of digits specified by the "length" property. The maximum length is 32, which allows the scale to have up to 32 digits. The default value of length is 32. A scale of 0 creates an integer number. A scale equal to the length creates a number that can only have a fractional value. The "money" field type must have a scale of 2 or 4. The default is 4. You may optionally use the "length" property to specify fewer than 32 total digits to limit the total number of digits available to the number. A length limit reduces the maximum size of the scale. For example, a length of 3 allows the scale of a "number" to be 0, 1, 2, or 3. Example numbers allowed in "number" and "money" field types with a length of 4 and a scale from 0 to 4.
Request Example Create a table that contains all field types that use the "scale" property. "fields": [
{
"name": "j",
"type": "number",
"scale": 32
},
{
"name": "k",
"type": "number",
"scale": 4
} |
null | integer | 0 to 32 | ||||||||||||||||||||||
search |
The "search" property is an optional string that searches the content of the "metadata" property that is part of each topic and integration table.
|
"" | string | 0 to 64 bytes | ||||||||||||||||||||||
sequence |
The |
0 | double | Any floating point or integer number. | ||||||||||||||||||||||
sequenceFilter |
The |
[] | array of doubles | Each array item is a floating-point or integer number. | ||||||||||||||||||||||
serialNumber |
The optional "serialNumber" property specifies a thing's serial number. Typically a serial number uniquely identifies a thing, but things from different manufacturers may have the same serial numbers. It defaults to "unknown" and is a string from 1 to 64 bytes. You can use it to do partial lookups and filtering. |
"unknown" |
string | 1 to 64 bytes | ||||||||||||||||||||||
serialNumberFilter |
The optional "serialNumberFilter" property is a string that can be a complete or partial serial number, such as, "serialNumberFilter": "AB678". The action returns things that match the serial number, provided it also satisfies all other specified filter properties. |
"" |
string | 1 to 64 bytes | ||||||||||||||||||||||
serviceLibrary |
The Library files are located in the <faircom>/server/web/ folder. The full path includes the |
"" | string | no limits | ||||||||||||||||||||||
serviceName |
The "serviceName" property contains the name of a FairCom input or output service. This property is required. See the "params" topic of each specific service for the requirements of this property. The following services are available as of the V5 release:
|
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
sessionExpiryInterval |
The "sessionExpiryInterval" property specifies the number of seconds that a temporary session can be inactive before the server deactivates it. This property defaults to 0 when "temporarySession" is true and to 4294967296 when "temporarySession" is false. When a temporary session expires, the server removes its subscriptions and message delivery queue. The "sessionExpiryInterval" property has no effect on a permanent session because it does not expire.
The "temporarySession" property sets the value of the "sessionExpiryInterval" property.
|
If "temporarySession" is true, "sessionExpiryInterval" defaults to 0 to ensure the temporary session expires when the JSON session does. If "temporarySession" is false, it defaults to 4294967296 because a permanent session never expires. | integer | 0 to 4294967296 | ||||||||||||||||||||||
sessionHealth |
The "sessionHealth" property is included in the response to the "describeMqSessions" action. It is an enumerated string with the following values: "healthy", "unhealthy", and "offline":
The server excludes a metric from the calculation when it is set to the default value of 0. The session health properties include:
|
Required - No default value | enum |
|
||||||||||||||||||||||
sessionStatus |
The "sessionStatus" property specifies the status of an MQTT or MQ API session as "normal", "hidden", "banned", or "inactive" to hide its visibility in API results and the dashboard views, ban a client from connecting, or mark a client as inactive. A banned session prevents clients from using the session to publish and subscribe to messages. When "sessionStatus" is omitted, it defaults to "normal".
|
"normal" | string enum |
|
||||||||||||||||||||||
sessionStatusFilter |
The "sessionStatusFilter" property is an optional array that filters the returned sessions by the selected session statuses. |
[] | array |
|
||||||||||||||||||||||
sessionTypeFilter |
The "sessionTypeFilter" property is an optional array that filters the returned sessions by the selected session types. |
[] | array |
|
||||||||||||||||||||||
settings |
The "settings" property contains properties that are specific for each connector type. Settings for Modbus are different than settings for OPC UA, and so forth. See the API reference "params" property of each connector for details of the "settings" property for that connector. Connector-specific "settings" |
{} | object | |||||||||||||||||||||||
significantMagnitude |
The optional, inclusive
![]()
NOTES
|
|||||||||||||||||||||||||
skipRecords |
The "skipRecords" property is an optional string value that defaults to 0. It is used with "maxRecords" to paginate the results. If the value is not null or omitted, the server returns results from the beginning. If it is > 0, the server skips over the specified number of records and returns results starting from that point up until it returns the maximum number of results as defined by "maxRecords". |
0 | integer |
0 to 9223372036854775807
|
||||||||||||||||||||||
| slot | The "slot" property specifies the PLC Slot number. |
Required - No default value | integer | 1 to 31 | ||||||||||||||||||||||
smallFile |
The "smallFile" is an optional Boolean. When true, a table is optimized for data files that cannot grow larger than 4 GB. It defaults to false.
Example request {
"api": "db",
"action": "createTable",
"params": {
"smallFile": true
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
false | Boolean |
|
||||||||||||||||||||||
sortAscending |
The "sortAscending" property is an optional string that sorts the returned sessions in ascending order based on the last time the sessions connected or disconnected, the sessions' "clientName" properties, or the sessions' IP addresses. |
"" | string |
|
||||||||||||||||||||||
sortDescending |
The "sortDescending" property is an optional string that sorts the returned sessions in descending order based on the last time the sessions connected or disconnected, the sessions' "clientName" properties, or the sessions' IP addresses. "fields": [
{
"sortDescending": true
}
] |
false | Boolean |
|
||||||||||||||||||||||
sourceData |
The optional "sourceData" property contains either an array of objects or an array of arrays (depending on the specified "dataFormat") in each object or nested array is the source data for an insert or update operation |
[] | array | An array of arrays or an array of objects | ||||||||||||||||||||||
sourceDatabaseName |
The "sourceDatabaseName" property is a string that specifies the database name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
Defaults to the "defaultDatabaseName" value that is set during "createSession". If no default is set during "createSession", then "faircom" is used. | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceDatabaseNameFilter |
The "sourceDatabaseNameFilter" property is an optional string that specifies a partial match for the database name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceDataField |
The "sourceDataField" property is an optional string that contains the name of a field from an integration table. It defaults to "source_payload". |
Required - No default value |
string |
|
||||||||||||||||||||||
sourceDataFilePath |
The "sourceDataFilePath" property is a string that specifies the data file path of the table on the FairCom DB or RTG server that generates the stream's data change events. It can be a full path or a relative path from the server's data directory. |
Required - if "sourceTableName" is not specified | string | No limits | ||||||||||||||||||||||
sourceDataFilePathFilter |
The "sourceDataFilePathFilter" property is an optional string that specifies a partial match for the file name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceDataFormat |
The "sourceDataFormat" property specifies the format of the "source_payload" field. You can set this property to any of the following values:
|
"json" | string |
|
||||||||||||||||||||||
sourceFieldName |
The optional
|
"" |
string | 1 to 64 bytes | ||||||||||||||||||||||
sourceFields |
The optional "sourceFields" property specifies the fields the FairCom server makes available to the output connector. The server creates a JSON object from the fields you specify, and the output connector uses it as its source data. If "sourceFields" is omitted, set to null or [], the FairCom server defaults to creating a JSON document that contains all fields from the integration table. This default allows the output connector to send data to a device from any field in the table. An integration table has many fields, such as fields populated by transforms and MQTT. Converting all fields into JSON is slower than converting only the fields needed by the output connector. For example, input connectors and MQTT messages store their data in the source_payload field. You can use "sourceFields": ["source_payload"] to make only the source_payload field available to the output connector. When you configure an output connector, you add propertyMap objects to the "propertyMapList". Each propertyMap object extracts data from one field and writes that data to the connected device. The value of the "propertyPath" property is a string containing the path of the data. It always starts with a field name in the "sourceFields" property. For example, if "sourceFields" is set to ["pressure"], then you must set "propertyPath" to "pressure" to use the pressure field’s value in your output. If the value you want to extract is a JSON property nested inside a field, you must add its full path to the "propertyPath". For example, if "sourceFields" is set to ["source_payload"] and source payload contains a JSON object with a "temperature" property, then you must set "propertyPath" to "source_payload.temperature". |
[] | array | One or more fields form the integration table. | ||||||||||||||||||||||
sourceHostname |
The "sourceHostname" property is a required string that specifies a unique host name or TCP/IP address of a FairCom DB or RTG server. | Required - No default value | string | 1 to 255 bytes | ||||||||||||||||||||||
sourceHostnameFilter |
The "sourceHostnameFilter" property is an optional string that specifies a partial match for a hostname. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceOwnerName |
The "sourceOwnerName" property is a string that specifies the account that owns the table on the FairCom DB or RTG server that generates the stream's data change events. |
Defaults to the "defaultOwnerName" value that is set during "createSession". If no default is set during "createSession", then "admin" is used. | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceOwnerNameFilter |
The "sourceOwnerNameFilter" property is an optional string that specifies a partial match for the owner name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sourcePassword |
The "sourcePassword" property is an optional string that specifies the login password of a FairCom DB or RTG server. | "ADMIN" | string | 1 to 128 bytes | ||||||||||||||||||||||
sourcePayloadBinaryFormat |
The optional
|
"hex" |
string enum |
|
||||||||||||||||||||||
sourcePayloadDateFormat |
The optional
|
"iso8601" |
string enum |
"ccyy.mm.dd""mm.dd.ccyy""mm.dd.yy""dd.mm.ccyy""dd.mm.yy""ccyymmdd""iso8601""yymmdd""utc"
|
||||||||||||||||||||||
sourcePayloadNumberRounding |
The optional
|
"truncate" |
string enum |
|
||||||||||||||||||||||
sourcePayloadPath |
The required
|
required by the "createTag" action; otherwise, it is optional
|
string | 1 to 2048 bytes | ||||||||||||||||||||||
sourcePayloadTimeFormat |
The optional
|
"iso8601" |
string enum |
"hh.mm.ss.ttt""hh.mm.am/pm""hh.mm.ss.am/pm""hh.mm.ss""hh.mm""hhmm""iso8601""utc"
|
||||||||||||||||||||||
sourcePayloadVariantFormat |
The optional
|
"json" |
string enum |
"json""variantObject""binary""string"
|
||||||||||||||||||||||
sourcePort |
The "sourcePort" property is an optional integer that specifies the ISAM TCP/IP port of a FairCom DB or RTG server. | 5597 | int16 | 1 to 65535 | ||||||||||||||||||||||
sourcePortFilter |
The "sourcePortFilter" property is an optional integer that specifies a complete match for a port number. |
null | integer | 1 to 65535 | ||||||||||||||||||||||
sourceServerName |
The "sourceServerName" property is a conditional string that specifies the server name of a FairCom DB or RTG server. It is the name specified by the SERVER_NAME keyword defined in the target server's configuration file, ctsrvr.cfg. The server name used by most FairCom DB and RTG servers is "FAIRCOMS". This property is required if the "sourceHostname" is not defined. | Required if "sourceHostname" is not defined - No default value | string | 1 to 255 bytes | ||||||||||||||||||||||
sourceServerNameFilter |
The "sourceServerNameFilter" property is an optional string that specifies a partial match for a server name. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceServers |
The "sourceServers" property is a required array containing a list of FairCom DB or RTG server connection objects. FairCom MQ attempts to connect to the first server in the list. If that fails, it attempts to connect to the next one. If it reaches the last server in the list, it attempts to connect to the first. | Required - No default value | array of server connection objects | {
"purpose": "Primary Server",
"sourceServerName": "FAIRCOMS",
"sourceHostname": "10.70.13.112",
"sourcePort": 5597,
"sourceUsername": "ADMIN",
"sourcePassword": "ADMIN",
"tls": {
"enabled": true,
"caCertificateFilename": "ca.crt",
"allowedCipherSuites": "",
"clientCertificateEnabled": true,
"clientCertificateFilename": "admin_client.crt",
"clientPrivateKeyFilename": "admin_client.key"
}
}
|
||||||||||||||||||||||
sourceTableName |
The "sourceTableName" property is a string that specifies the name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
Required if "sourceDataFilePath" is not specified | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceTableNameFilter |
The "sourceTableNameFilter" property is an optional string that specifies a partial match for the table name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sourceUsername |
The
|
Required - No default value | string | 1 to 31 bytes | ||||||||||||||||||||||
sourceUsernameFilter |
The "sourceUsernameFilter" property is an optional string that specifies a partial match for a user name. |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
sql |
The |
Required - No default value |
string | 1 to 32,000,000 bytes | ||||||||||||||||||||||
sqlForwardOnly |
The optional |
false |
Boolean |
|
||||||||||||||||||||||
sqlParams |
The "sqlParams" is an optional array of values. Each value becomes a parameter in the SQL statement.
|
[] | array | An array of values | ||||||||||||||||||||||
sqlStatements |
The There is one SQL statement per string. |
Required - No default value |
array of strings | 1 or more sql statements | ||||||||||||||||||||||
startFrom |
The optional "startFrom" property sets the cursor to a known position. |
"currentPosition" | string |
|
||||||||||||||||||||||
startTimestamp |
The "startTimestamp" property is an optional string that contains an ISO8601 timestamp, which filters the response to return problems that started on or after its value. If any parts of the timestamp are missing or omitted, the server defaults the remaining parts to 0. |
null | string containing an ISO8601 timestamp |
|
||||||||||||||||||||||
status |
The optional
When the
To create, alter, and list inactive items, set the |
"active" |
string enum |
|
||||||||||||||||||||||
statusFilter |
The
When using the tag actions, this property finds tags based on their status. You can include zero or more status values. The
|
[] | array |
When using tag actions, |
||||||||||||||||||||||
streamingConnectionName |
The "streamingConnectionName" property is a required string that specifies a unique, user-defined name for a streaming connection. The API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server. | Required - No default value | string | 1 to 64 characters | ||||||||||||||||||||||
streamingConnectionNameFilter |
The |
null | string | 1 to 64 bytes | ||||||||||||||||||||||
streamParallelism |
The "streamParallelism" property is an optional integer that specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server. | 8 | integer | 1 to 65535 | ||||||||||||||||||||||
streams |
specifies an array of stream definitions. | Required - No default value | Array of stream definitions | 1 or more stream definitions | ||||||||||||||||||||||
stringFormat |
The optional "stringFormat" property in "responseOptions" changes how "char", "varchar", "lvarchar", and "variant" string field values are returned. This property applies to all "getRecords..." actions, except for "getRecordsUsingSql" because SQL controls the format of strings it returns. |
"json" |
string |
|
||||||||||||||||||||||
subscribeToExternalBroker |
The "subscribeToExternalBroker" property is optional. When this property is set to a valid broker connection, FairCom 's servers connect to the external MQTT broker and subscribes to this topic on that broker. Thus, these servers become a client to another MQTT broker. Each message sent to this topic on the external broker becomes an incoming message in FairCom 's servers – as if it were sent directly to them . The topic works the same as any other topic.
|
"" | string | Any previously defined name of a broker connection (see "configureBrokerConnection") |
||||||||||||||||||||||
subscriptionActions |
The "subscriptionActions" property is an array of subscription objects that add or remove a topic filter from a client's subscriptions. Each subscription object contains a "topicFilter" and an optional "subscriptionIdentifier".
|
[] | array |
|
||||||||||||||||||||||
subscriptionIdentifier |
The "subscriptionIdentifier" is an integer number from 1 to 268435455 optionally provided by the subscriber that uniquely identifies the "topicFilter" to the subscriber. Each subscriber may assign its own "subscriptionIdentifier" to each "topicFilter". When the FairCom server delivers a message to the subscriber, it includes the "subscriptionIdentifier" with the message. The purpose of Subscription Identifiers is to make it easy and fast for an MQTT 5 client to process an incoming message. The client can use the Subscription Identifier in a message to associate a message with a specific handler. A client receiving a message with multiple Subscription Identifiers can send the message to multiple handlers – one for each Subscription Identifier. |
268435455 | integer | 0 to 268435455 | ||||||||||||||||||||||
tableFileExtension |
The "tableFileExtension" property is an optional string from 0 to 64 bytes. It specifies the file system extension to use for a table's data files. If omitted, it defaults to ".dat".
Example request "params": {
"tableName": "test1",
"tableFileExtension": ".dat"
} |
".dat" | string | 0 to 64 bytes | ||||||||||||||||||||||
tableFilter |
The "tableFilter" property is an optional string with no practical size limit. No table filter is applied when it is an empty string, a null value, or is omitted. It is a server-side filter of the records in a table. It includes records in the result only when they match the filter requirements. It works like a SQL WHERE clause except for using C syntax and C functions.
|
"" | string | 0 to unlimited bytes | ||||||||||||||||||||||
tableName |
The required See table name in System limits for the table naming requirements and limitations.
"params": {
"tableName": "ctreeTable"
} |
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
tableNames |
The "tableNames" property is a required array of strings. Each string is a table name.
|
Required - No default value |
array | 1 to 64 bytes | ||||||||||||||||||||||
tables |
The "tables" property contains an array of objects. Each object identifies a table. It defaults to a single default object. Each object in the "tables" array contains three properties:
|
{} | array of objects |
0 or more objects containing the following properties:
|
||||||||||||||||||||||
tagChanges |
The "tagChanges" property is a string that specifies when to add "changed": true to field objects in the data change event to indicate when a field changed value. |
"forEachField" | string enum |
|
||||||||||||||||||||||
tagDataType |
The optional
|
"json" |
string enum |
"string""number" "boolean" "date" "time" "timestamp" "json" "variant" "binary"
|
||||||||||||||||||||||
tagDataTypeFilter |
The optional "tagDataTypeFilter" property is an array of strings that specifies one or more tag data types. Each item in the array is the exact name of a tag data type. It is a string from 1 to 64 bytes. The "listTags" action returns tags that match one of the specified values. |
[] |
array of strings | 1 to 64 bytes | ||||||||||||||||||||||
tagElementCount |
The optional "tagElementCount" property specifies the number of elements in the tag. All tags are treated as arrays. Tags that are not arrays are considered to have a length of one element. |
1 | int32 | 0 and negative values are invalid. | ||||||||||||||||||||||
tagName |
The required
When using connectors, this property specifies the full name of a tag, such as MyTag[10,42] for CIP-based PLCs. For CIP-based PLCs, use the format Program:<program name>.<tag>.
Examples: Program:MyProgram.MyTag accesses the tag MyTag in the program MyProgram. PCCC-based PLC examples include N7:4, ST18:26, L20:2, MG14:6.en, B3:4/2, and so forth. Many common field name abbreviations are supported. |
Required - No default value | string | 1 to 256 bytes | ||||||||||||||||||||||
tagNameFilter |
The optional "tagNameFilter" property specifies a partial or full name of a tag to describe. It is a string from 1 to 64 bytes. The action returns tags that match the partial or full name of the tag, provided it satisfies all other specified filter properties. |
"" |
string | 1 to 64 bytes | ||||||||||||||||||||||
tagNames |
The required
|
Required - No default value | string | 1 to 256 bytes | ||||||||||||||||||||||
tagPath |
The optional p is the communication Port Type
s is the slot number where the PLC is installed, such as 0, 1, 2. |
"1,0" | string | String with the format "p,s" | ||||||||||||||||||||||
tagType |
The "tagType" property specifies the binary format of the PLC data represented by the tag. |
Required - No default value | string |
|
||||||||||||||||||||||
tagSize |
The If not specified, the buffer size is defined based on the tagType. For example, 1 for int8 and 4 for int64. For string tagType, the default value is 0 which will set the buffer to the maximum string size for the device. Let the server define this property. and set it yourself only when necessary. |
Optional - depending on the dataType value | Integer | 0, 1, 2, 4 or 8 | ||||||||||||||||||||||
targetDatabaseName |
The "targetDatabaseName" property is the optional name of the database that contains the target table. See "databaseName" for more information. |
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
targetOwnerName |
The "targetOwnerName" property is the optional name of the account that owns the target table. See "ownerName" for more information. |
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
targetTableName |
The required "targetTableName" property specifies the name of the target table that has its transform steps replaced by this action.
|
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
temporarySession |
The "temporarySession" property is an optional Boolean property that defaults to false when omitted or set to null. It is used in the "createMqApiSession" and "alterMqSession" actions to make a session temporary or permanent. When set to true, the session is temporary; otherwise, it is permanent. When true, the MQ engine resets the current session, and when the client disconnects, the engine removes the session's settings, subscriptions, and message position. Because you normally want the engine to remember your message position between sessions, you rarely set "temporarySession" to true. Use the "temporarySession" property to control session permanency rather than the "cleanSession" property because its name is more intuitive. The server returns an error if you include both and set them to opposite values. |
false | Boolean |
|
||||||||||||||||||||||
testDatabaseName |
The optional "testDatabaseName" property specifies the database of the test table where this action tests the transform steps. When set to null or omitted, the server uses the default "databaseName" defined in the "createSession" action. For more information, see the "createSession" action and the "defaultDatabaseName" property.
|
Defaults to the "defaultDatabaseName" defined in the "createSession" action. | string | 1 to 64 bytes | ||||||||||||||||||||||
testOwnerName |
The optional "testOwnerName" property specifies the owner account of the test table where this action tests the transform steps. When set to null or omitted, the server uses the default "ownerName" defined in the "createSession" action. For more information, see the "createSession" action and the "defaultOwnerName" property.
|
Defaults to the "defaultOwnerName" defined in the "createSession" action. | string | 1 to 64 bytes | ||||||||||||||||||||||
testTableName |
The required "testTableName" property specifies the name of the test table where this action tests the transform steps.
|
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
testTransformScope |
The required "testTransformScope" property defines the behavior of this action. It is a string enum with one of the following values:
The "logTransformOverwrites" property, when true, causes the action to log attempts by JavaScript to overwrite a field value. |
Required - No default value | string enum |
|
||||||||||||||||||||||
thingIdFilter |
The optional "thingIdFilter" property is the unique integer ID of a thing. The "listTags" action includes tags associated with the specified thing, which is a device or software application. |
[] |
array of integers | zero or more thing id integers | ||||||||||||||||||||||
thingName |
The required "thingName" property is a string that specifies the unique name of a thing. It is a string from 1 to 64 bytes. It cannot be the empty string "". |
Required - No default value | string | 1 to 64 bytes | ||||||||||||||||||||||
thingNameFilter |
The optional "thingNameFilter" property specifies a partial or full name of a thing to describe. It is a string from 1 to 64 bytes. The action returns things that match the specified partial or full name of the thing, provided it satisfies all other specified filter properties. |
"" |
string | 1 to 64 bytes | ||||||||||||||||||||||
thingNames |
The required "thingNames" property is an array of strings that specifies one or more thing names. Each item in the array is the exact name of a thing. It is a string from 1 to 64 bytes. You can use it to describe or delete things. |
Required - No default value | array | one or more thing name strings | ||||||||||||||||||||||
thingType |
The optional
This API uses the Label API to manage types.
|
"unknown" |
string | 1 to 64 bytes | ||||||||||||||||||||||
thingTypeFilter |
The optional "thingTypeFilter" property is an array of strings. Each string is a partial or complete type, such as, "thingTypeFilter": [ "myTy", "PLC" ]. The action returns things that match at least one item in the array, provided it also satisfies all other specified filter properties. |
[] |
array of strings | zero or more type strings | ||||||||||||||||||||||
threads |
The "threads" property is the number of threads assigned to a topic to write published messages to disk. This property is optional. The default value is 1.
|
1 | integer |
|
||||||||||||||||||||||
timeFormat |
The optional "timeFormat" property specifies the format of a time or a datetime embedded in a JSON string. The server uses it when it needs to transform or convert a time or datetime embedded in a JSON string into a FairCom time or timestamp. It also uses it when it needs to convert a time or datetime field value into a time embedded in a JSON string. It is an enumerated string with one of the following values: "hh.mm.ss.ttt", "hh.mm.am/pm", "hh.mm.ss.am/pm", "hh.mm.ss", "hh.mm", "hhmm", "iso8601", and "utc". The default value for "timeFormat" is the "defaultTimeFormat" property defined in the "createSession" or "alterSession" actions. If it is omitted there, it defaults to the value of the "defaultTimeFormat" property in the <faircom>/config/services.json file. If it is not there, the FairCom server defaults it to "iso8601" because the ISO8601 date is the defacto standard in JSON. The enumerated string defines how the server parses a time in a JSON string. The following key explains the parts of each enumerated value:
UTC datetime format Coordinated Universal Time (UTC) is an industry-standard for dates and times that uses the ISO8601 datetime format: "ccyy-mm-ddThh:mi:ss.fffz" or "ccyy-mm-ddThh:mi:ss.fff±hh:mi":
|
"hh.mm.am/pm" | string |
|
||||||||||||||||||||||
tls |
The "tls" property is a JSON object that defines the public server certificate filename, the private key filename, the certificate authority filename, the cipher suites that are allowed, and whether the client certificate is required. This property is optional. It defaults to an empty object. | {} | object |
|
||||||||||||||||||||||
topic |
The
|
"" | string | 1 to 65,500 bytes | ||||||||||||||||||||||
topicAliasMaximum |
The "topicAliasMaximum" property is an optional integer that specifies the maximum number of topic aliases that the MQTT client can support. |
0 | integer | 0 to 65535 | ||||||||||||||||||||||
topicFilter |
The "topicFilter" property is an optional UTF-8 string containing a topic filter, which may contain MQTT wildcard characters, #, and +. Without wildcard characters, it matches one topic. When containing wildcard characters, it may match one or more topics. |
"" | UTF-8 string | topic names | ||||||||||||||||||||||
topicIdFilter |
The optional "topicIdFilter" property is the unique integer ID of an MQTT topic. The "listTags" action includes tags associated with the specified topic. |
[] |
array of integers | zero or more topic id integers | ||||||||||||||||||||||
topics |
The "topics" property specifies the name of each "topic" that you want to be described in the results. |
[] | array |
0 or more topic strings | ||||||||||||||||||||||
transactionDescription |
The "transactionDescription" property identifies the object by this description. |
"" |
string | 0 to 65,500 bytes | ||||||||||||||||||||||
transactionId |
The "transactionId" property optionally identifies a transaction in which the specified action will be included. |
"" | string | 0 to 255 bytes | ||||||||||||||||||||||
transactionModel |
The "transactionModel" property is an optional, case-insensitive, string enum. It defines how the server processes transactions for a table. The default is "logTransactions". Possible values:
Example request {
"api": "db",
"action": "createTable",
"params": {
"transactionModel": "noTransactions"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
"logTransactions" | string |
|
||||||||||||||||||||||
transactionSavepointId |
The "transactionSavepointId" is a string that the server generates and returns in a "createTransactionSavepoint" action. The generated ID represents a point in a transaction's progress. In requests, it defaults to an empty string.
|
"" |
string | 0 to 255 bytes | ||||||||||||||||||||||
transformBufferInitialBytes |
The "transformBufferInitialBytes" property is optional and defaults to 0. It is a positive integer that specifies the number of bytes for the session to allocate initially for its transform buffer. Omit this property or set it to 0 when you do not plan on using the "transformCodeName" property to transform the JSON returned from the "getRecords..." actions. If you plan on transforming the JSON, you can set the "transformBufferInitialBytes" property to the number of bytes that you anticipate the server will need to store the results of each transform. If the server needs more memory, it automatically increases the buffer size; thus, this property is an optimization that helps prevent the server from doing expensive memory allocations. |
0 | integer | 0 or more bytes | ||||||||||||||||||||||
transformCodeName |
The "transformCodeName" property is an optional string that specifies the name of an existing code package with a "codeType" of "getRecordsTransform". When this property is present in a "getRecords..." transform, the server passes the query results to the code package as an array of objects. The code transforms the records and returns a valid JSON value. The server places the value in the "data" property of the response to the "getRecords..." action. |
Optional name of a code package | string | The string must contain the name of an existing code package with a "codeType" of "getRecordsTransform" | ||||||||||||||||||||||
transformName |
(deprecated) specifies the name of a transform process you have created. Replaced by the "transformSteps" property. |
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
transformNameFilter |
The "transformNameFilter" property is an optional string that specifies which assigned transform the response will be filtered by. If no integration tables are assigned to the transform, the action returns no tables. If omitted or set to null, the "listIntegrationTables" action will not filter by transform name. |
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
transformStepMethod |
The "transformStepMethod" property is a required string that specifies the type of transform, such as the "javascript" transform method that runs JavaScript to change the table's data or the "jsonToTableFields" transform method that extracts values from properties in a JSON field and stores them in other fields.
The value of the "transformStepMethod" affects the value of the "transformService" property. The following table defines the possible values of the "transformService" property when combined with the "transformStepMethod". Notice that some transform step methods are built into the server and do not require you to specify the "transformService".
|
Required - No default value | string enum |
|
||||||||||||||||||||||
transformStepName |
The "transformStepName" property is an optional string that assigns a name to each transform step. |
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
transformSteps |
specifies an array of transform objects. | Required - No default value | array of objects |
0 or more objects containing 1 or more of the following properties:
|
||||||||||||||||||||||
transformStepService |
The "transformStepService" property is an optional string that specifies the name of a transform service, which is the user-defined name for a library (.dll, .so, .dylib) that implements the transform step method. This property allows you to register your own transform libraries or use an older version of a FairCom library for backward compatibility. Transform services are defined in the services.json file under the "transformServices" section. You can add and remove transform libraries to this list, such as your own transform libraries or specific versions of FairCom's transform libraries. Use the "serviceName" property to give each transform library a unique transform service name and use the "serviceLibrary" property to specify the filename of the library that implements the transform step method. On Windows the library filename ends with .dll. On Linux it ends with .so. On MacOS it ends with .dylib. Lastly, you must enable the transform service by setting "enabled" to true. Example "transformServices" section in the services.json file. "transformServices": [
{
"serviceName": "v8TransformService",
"serviceLibrary": "v8transformservice.dll",
"enabled": true
}
],
|
"" | string | 1 to 64 bytes | ||||||||||||||||||||||
triggers |
The "triggers" property is an array of enumerated strings that specifies a list of events on a table that create data change events. |
[ "insert", "update", "delete" ] | array of enum strings |
|
||||||||||||||||||||||
type |
The required "type" property specifies the field's data type. It has no default value. See Data types for the limits, valid values, and whether "length" and "scale" are required.
Request example "fields": [
{
"name": "j",
"type": "number"
}
] |
Required - No default value | string |
|
||||||||||||||||||||||
unique |
The "unique" property is an optional Boolean. When true, the "createIndex" action creates a unique index, which requires the columns in the index to have a unique value for each record in the table. It defaults to false. "params": {
"unique": true
} |
false | Boolean |
|
||||||||||||||||||||||
unsetHealthMeasures |
The "unsetHealthMeasures" property is an optional Boolean that specifies whether or not to include sessions without health measures in the response. |
true | Boolean |
|
||||||||||||||||||||||
uri |
The "uri" property specifies the identifier name of the Rest resource. | Required - No default | string | 1 to 1024 bytes | ||||||||||||||||||||||
username |
The
In
In Key-Value actions, the
|
Required - No default value
Defaults to the account name of the currently logged-in user for Key-Value actions
|
string | 1 to 64 bytes | ||||||||||||||||||||||
usernameFilter |
The |
[] | array | 1 to 64 bytes | ||||||||||||||||||||||
usernames |
The optional "usernames" property specifies the names of the accounts that the action will target. |
[] | array | 0 or more usernames, each between 1 and 64 bytes. | ||||||||||||||||||||||
userProperties |
The "userProperties" property is optional in the "publishMessagesToMq" action and defaults to null. When present, it is an array of key-value objects. A key-value object contains a "key" property and a "value" property with string values. You can assign multiple key-value pairs to an MQTT 5 message; the server includes them in the messages it delivers to subscribers. The server may process specific key-value pairs as instructions that modify its behavior. "userProperties": [
{
"key": "some key",
"value": "some value"
}
] |
null | array | 0 or more key/value pairs | ||||||||||||||||||||||
validateMqttPayload |
The optional "validateMqttPayload" property is a Boolean property that defaults to the value of "defaultValidateMqttPayload" in the services.json settings file, which is true by default.
Example error object describing an invalid MQTT payload
|
Defaults to the "defaultValidateMqttPayload" value in the services.json file, which is true by default. | Boolean |
|
||||||||||||||||||||||
value |
The
In Key-Value actions, the required |
Required - No default value | string |
|
||||||||||||||||||||||
variantFormat |
The "variantFormat" property tells the server how to interpret the variant data included in a JSON Action request. The "variantFormat" property has one of the following values: "binary", "json", "string", and "variantObject". It tells the server how to store and return values stored in variant fields. The server applies the "variantFormat" property to all variant fields affected by a JSON action, such as all variant fields inserted by the "insertRecord" action or all variant fields returned by the "getRecordsByIndex" action. If you want more control, set the "variantFormat" property to "variantObject" and you can use variant objects to independently set the variant type and encoding of each variant field in a JSON action. A variant field is a flexible, strongly-typed field. It is flexible because each variant field in each record can store any type of data. It is strongly typed because each variant field in each record stores the type of value it contains. A variant field's type can currently be set to "binary", "json", "string", and "boolean" values. In the future, you will be able to set it to other values, such as "jpeg", "xml", and user-defined types. The following sections describe each value of the "variantFormat" property. |
"json" | string |
|
||||||||||||||||||||||
verifyLinks |
The |
true | Boolean |
|
||||||||||||||||||||||
waitToBeLoaded |
The "waitToBeLoaded" property is an optional Boolean. When true, the "createIndex" action will not return until the index is created. It defaults to false.
"params": {
"waitToBeLoaded": true
} |
true | Boolean |
|
||||||||||||||||||||||
willContentType |
The "willContentType" property is an optional string that specifies the content type of the last will message. |
"" | string |
IanaMediaType CustomType |
||||||||||||||||||||||
willCorrelationData |
The "willCorrelationData" property is an optional JSON value that can be used to set will request-response messages. |
"" | JSON | 0 to 65,500 bytes | ||||||||||||||||||||||
willDelaySeconds |
The "willDelaySeconds" property is an optional integer that specifies the number of seconds the server will wait before sending the last will message. |
60 | integer | |||||||||||||||||||||||
willExpirySeconds |
The "willExpirySeconds" property is an optional integer that specifies the number of seconds before the last will message expires. |
60 | integer | |||||||||||||||||||||||
willPayload |
The "willPayload" property is required when a will message is present. It contains the payload of the last will message. You can set it to any JSON value, including binary values embedded in a JSON string or array. |
Required - No default value | JSON | |||||||||||||||||||||||
willPayloadFormatIndicator |
The "willPayloadFormatIndicator" property is an optional enumerated value that specifies the payload format for the last will message. |
"none" | ENUM |
|
||||||||||||||||||||||
willQoS |
The property "willQoS" is reserved. The server sets it to 2. |
2 | integer | |||||||||||||||||||||||
willResponseTopic |
The "willResponseTopic" property is an optional string that specifies the topic for the last will message response. |
"" | string | |||||||||||||||||||||||
willRetain |
The "willRetain" property is optional. It defaults to false. When true, it tells the FairCom server to send the will message to new subscribers as the first message they receive when subscribing to a topic. |
false | Boolean |
|
||||||||||||||||||||||
willTopic |
The "willTopic" property is optional. It is a UTF-8 string containing the topic that the FairCom server will use to publish the will message. If you set it to an empty string, "", null, or omit it, the FairCom server will not add the will message to the connection. |
"" | UTF-8 string | |||||||||||||||||||||||
willUserProperties |
The "willUserProperties" property is an optional array that assigns key-value pairs to the last will messages. |
[] | array |
Response examples
Note If the target object does not exist, the response returns success, and the debug property contains a warning that the object was not found.
Minimal
{
"result": {
"dataFormat": "objects",
"fields": [
{
"name": "databaseName",
"type": "varchar",
"length": 8192,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey": 0,
"autoValue": "none"
},
{
"name": "path",
"type": "varchar",
"length": 8192,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey": 0,
"autoValue": "none"
},
{
"name": "uid",
"type": "bigint",
"length": null,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey": 0,
"autoValue": "none"
}
],
"data": [
{
"databaseName": "test_db_min",
"path": ".\\test_db_min.dbs\\SQL_SYS",
"uid": 1005
}
]
},
"requestId": "1",
"debugInfo": {
"request": {
"action": "deleteDatabase",
"params": {
"databaseName": "test_db_min"
},
"requestId": "00000014",
"debug": "max",
"authToken": "replaceWithAuthTokenFromCreateSession"
},
"serverSuppliedValues": {
"databaseName": null,
"ownerName": null
},
"errorData": {
"errorData": null
},
"warnings": []
},
"errorCode": 0,
"errorMessage": "",
"authToken": "replaceWithAuthTokenFromCreateSession"
}Maximal
{
"result": {
"dataFormat": "objects",
"fields": [
{
"name": "databaseName",
"type": "varchar",
"length": 8192,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey": 0,
"autoValue": "none"
},
{
"name": "path",
"type": "varchar",
"length": 8192,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey": 0,
"autoValue": "none"
},
{
"name": "uid",
"type": "bigint",
"length": null,
"scale": null,
"defaultValue": null,
"nullable": false,
"primaryKey": 0,
"autoValue": "none"
}
],
"data": [
{
"databaseName": "test_db_max",
"path": "c:\\\\test_db_max.dbs\\SQL_SYS",
"uid": 1007
}
]
},
"requestId": "2",
"debugInfo": {
"request": {
"api": "db",
"action": "deleteDatabase",
"params": {
"databaseName": "test_db_maxasdfasdf"
},
"apiVersion": "1.0",
"requestId": "2",
"responseOptions": {
"binaryFormat": "hex",
"dataFormat": "objects",
"numberFormat": "string"
},
"debug": "max",
"authToken": "replaceWithAuthTokenFromCreateSession"
},
"serverSuppliedValues": {
"databaseName": null,
"ownerName": null
},
"errorData": {
"errorData": null
},
"warnings": []
},
"errorCode": 0,
"errorMessage": "",
"authToken": "replaceWithAuthTokenFromCreateSession"
}
Response properties
Response properties
Universal response properties list
| Property | Description | Type | Contents | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accounts |
The "accounts": [
{
"username": "admin",
"accountDescription": "",
"lockoutAfterNFailedAttempts": 0,
"maxDaysBeforePasswordMustChange": 0,
"maxMinutesBeforeNextLogin": 0,
"memoryLimit": 0,
"memoryRule": "default",
"roles": [
{
"roleName": "ADMIN"
}
]
}
|
array of objects | One object per matching account. | ||||||||||||
affectedRows |
The "affectedRows" property specifies the number of records that were affected by the SQL statement. |
integer | number of records affected by the statement. | ||||||||||||
allowedCipherSuites |
The "allowedCiperSuites" property is an optional string that specifies an array of ciphers that the server will accept for communications with clients. It defaults to an empty string.
|
string | No limits | ||||||||||||
applicationRoot |
The "applicationRoot" property is a string that specifies the location of web applications relative to <faircom>/server/. The default value of "./web/apps/" translates to the folder <faircom>/server/web/apps. There is rarely a reason to change the "applicationRoot". For information on how to add your own web applications, which can use any of FairCom's jsonAction APIs, contact FairCom. |
string | The filepath to the folder where FairCom's apps are located. | ||||||||||||
applications |
The "applications" property is an array of objects that describes and controls web applications that can run with the FairCom server. It defaults to an empty array which means no applications are configured to run. FairCom and other custom web applications are single-page, browser-based applications served from folders in the default <faircom>/server/web/apps/ folder. An app server is a backend service used by one or more web applications. It listens to HTTP and/or WebSocket requests and then returns results. Contact FairCom for information on how to build and add your own app servers using C or C++. The following "applications" properties should be considered for each web app:
|
array of objects | One object per application. | ||||||||||||
authToken |
The "authToken" property signifies that the client is authenticated and authorized. It is required. It is supplied by the server in response to the connect action. Clients must include it in all subsequent requests to validate that they are authenticated and authorized. If the client does not supply the correct values, the server returns an unauthorized error. |
string | 0 to 255 bytes | ||||||||||||
autoValue |
The optional Only one of these values is allowed per field.
Request "fields": [
{
"name": "signed_int32",
"type": "integer",
"autoValue": "incrementOnInsert"
}
]
Response {
"result": {
"dataFormat": "objects",
"data": [
{
"changeIdField": "changeId",
"createRecByteIndex": false,
"databaseName": "ctreeSQL",
"fieldDelimiterValue": 0,
"fields": [
{
"autoValue": "incrementOnInsert",
"defaultValue": null,
"length": null,
"name": "signed_int32",
"nullable": true,
"primaryKey": 0,
"scale": null,
"type": "integer"
}
]
}
]
},
"errorCode": 0,
"errorMessage": "",
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
string |
|
||||||||||||
averageMessagesPerDay |
The "averageMessagesPerDay" property describes how many messages the specified topic publishes per day on average. | integer | The average number of messages published per day | ||||||||||||
averageMessagesPerHour |
The "averageMessagesPerHour" property describes how many messages the specified topic publishes per hour on average. | integer | The average number of messages published per hour | ||||||||||||
averageMessagesPerMinute |
The "averageMessagesPerMinute" property describes how many messages the specified topic publishes per minute on average. | integer | The average number of messages published per minute | ||||||||||||
binaryFormat |
string | One of the following: "base64", "hex", or "byteArray". |
|||||||||||||
body |
The "body" property specifies information to send to a REST server by defining the "propertyPath" and "propertyValue" properties. | array of objects |
|
||||||||||||
brokerConnectionNames |
The "brokerConnectionNames" property is a required array that contains a list of "brokerConnectionName" strings. It defaults to an empty array.
|
array of objects |
1 object for each broker connection matching the request containing some or all of the following properties:
|
||||||||||||
brokerHostname |
The "brokerHostname" property is required. It must not be a zero-length string or contain only whitespace. It has a maximum length of 255 characters. When these rules are violated the following errors will be displayed:
|
string | the unique broker host name or TCP/IP address of the specified broker connection. | ||||||||||||
brokerPort |
The "brokerPort" property is optional. It defines the TCP/IP port. If it is not present, it defaults to 1883.
|
integer | the TCP/IP port of the specified broker connection. | ||||||||||||
brokerUserName |
The "brokerUsername" property is the login name to the external broker. This property is an optional string from 1 to 64 bytes. If omitted, it defaults to an empty string.
|
string | the login name to the external broker. | ||||||||||||
caCertificateFilename |
The "caCertificateFilename" property is an optional string that specifies the name and optional path of the CA certificate file (such as "ca.pem"). It defaults to an empty string.
"tls": {
"enabled": true,
"caCertificateFilename": "ca.crt",
"allowedCipherSuites": "",
"clientCertificateEnabled": true,
"clientCertificateFilename": "admin_client.crt",
"clientPrivateKeyFilename": "admin_client.key"
} |
string | No limits | ||||||||||||
certificateFilename |
The "certificateFilename" property is an optional string that specifies the name and optional path of a server certificate file. "tls": {
"allowedCipherSuites": "",
"certificateAuthoritiesFilename": "",
"certificateFilename": "",
"privateKeyFilename": ""
}, |
string | No limits | ||||||||||||
changedLabels |
The "changedLabels": [
{
"id": 4,
"group": "myLabelGroupName",
"name": "myLabelName",
"value": 99,
"enum": 0,
"sequence": 1.2,
"deprecated": false,
"description": "My label description.",
"metadata": {}
}
] |
array of objects | An object for each changed label. | ||||||||||||
changeIdField |
This property's value designates the name of the field used for change-tracking functionality if you are not using the "changeId" field for change tracking. "createTable" automatically creates the "changeId" field to hold the change tracking number used for optimistic locking. Using the "changeId" field for optimistic locking is a best practice. However, if you use the name "changeId" for another purpose, you can use the "changeIdField" property to designate a different field as the change tracking number field.
Request example "params": {
"changeIdField": "changetrackingid"
} |
string | 1 to 64 bytes | ||||||||||||
clientCertificateEnabled |
The "clientCertificateEnabled" property is an optional boolean that enables client certificate authentication if true. The target FairCom DB or RTG server must be configured to accept client certificates. | boolean |
|
||||||||||||
clientCertificateFilename |
string | The file name of a client certificate. | |||||||||||||
clientPrivateKeyFilename |
string | The file name of a client certificate private key file. | |||||||||||||
clientName |
uniquely identifies an MQ session. | string | |||||||||||||
clonedCodeId |
The "clonedCodeId" indicates which copy the specified code package is out of all existing code package clones. If the specified code package is the original one, its value will be 0. "result": {
"data": [
{
"codeId": 1,
"databaseName": "faircom",
"ownerName": "admin",
"codeName": "convertTemperature",
"codeVersion": 1,
"clonedCodeId": 0
]
}, |
integer | The cloned code ID. | ||||||||||||
codeServices |
The "codeServices" property is an optional array of objects that specifies which programming languages are available in the product. |
array of objects |
|
||||||||||||
codeVersion |
The "codeVersion" property indicates the version of the specified code package. "result": {
"data": [
{
"codeId": 1,
"databaseName": "faircom",
"ownerName": "admin",
"codeName": "convertTemperature",
"codeVersion": 1,
"clonedCodeId": 0
]
}, |
integer | The version of the specified code package. | ||||||||||||
collectStats |
identifies whether usage statistics are being collected and stored. | boolean |
|
||||||||||||
compression |
identifies whether the index is compressed. | string |
|
||||||||||||
conditionalExpression |
identifies an optional conditional expression that filters which records are included in the index. It is null when there is no conditional expression. | string |
null or a string containing a conditional expression. |
||||||||||||
connectionStatus |
The "connectionStatus" property is returned by the "describeMqSessions" action to indicate if and how a client is connected to an MQ session. It has the following values:
|
string |
|
||||||||||||
connectorName |
In the Tag actions, the
|
string | 1 to 64 bytes | ||||||||||||
connectorId |
The
|
integer |
0 to 9223372036854770000
|
||||||||||||
createdBy |
The "createdBy" property indicates the name of the account used to create the specified code package. "result": {
"data": [
{
"createdBy": "ADMIN",
"createdOn": "2025-08-25T21:48:38.109",
"updatedBy": "ADMIN",
"updatedOn": "2025-08-25T21:48:38.109"
},
] |
string | The name of the account used to create the code package. | ||||||||||||
createdOn |
The "createdOn" property indicates the date and time the code package was created. "result": {
"data": [
{
"createdBy": "ADMIN",
"createdOn": "2025-08-25T21:48:38.109",
"updatedBy": "ADMIN",
"updatedOn": "2025-08-25T21:48:38.109"
},
] |
timestamp | The date and time when the code package was created. | ||||||||||||
createdTimestamp |
The "createdTimestamp" property is the date and time when something, such as a thing or key, was originally created in ISO 8601 format, such as "2025-08-28T10:47:13.041". It is never null. |
timestamp | An ISO 8601 timestamp | ||||||||||||
creationTime |
The "creationTime" property details the date and time when the specified topic was created. This property stores the creation date in an ISO 8601 timestamp. | timestamp | An ISO 8601 timestamp | ||||||||||||
cursorid |
The "cursorId" property is a required string from 0 to 255 bytes. It is a unique identifier returned by the server.
|
string | 0 to 255 bytes | ||||||||||||
data |
The "data" property contains a response message. Its contents are defined by the action. It is an empty array when no results are available. The following is an example of the data property from a code package action. "result": {
"data": [
{
"codeId": 6,
"databaseName": "faircom",
"ownerName": "admin",
"codeName": "convertAndCategorizeTemperature",
"codeVersion": 1,
"clonedCodeId": 1,
"codeStatus": "active",
"codeLanguage": "javascript",
"serviceName": "javascript",
"codeType": "module",
"description": "optional new description",
"metadata": {},
"createdBy": "ADMIN",
"createdOn": "2025-08-25T21:48:38.109",
"updatedBy": "ADMIN",
"updatedOn": "2025-08-25T21:48:38.109",
"comment": "Cloned from convertTemperature",
"codeFormat": "utf8"
},
] |
array of objects | The action determines its contents. | ||||||||||||
databaseConnectionString |
The "databaseConnectionString" property specifies the connection string for the database that holds the persistence table. | string | No limits | ||||||||||||
databaseName |
The
"params": {
"databaseName": "mainDatabase"
} |
string | 1 to 64 bytes | ||||||||||||
databaseUserName |
The "databaseUserName" property specifies the user name of the account logged into the database that holds the persistence table. | string | 0 to 64 bytes | ||||||||||||
dataChangeStreamFirstStartTimestamp |
The "dataChangeStreamFirstStartTimestamp" property specifies the UTC date and time in ISO-8601 format when the stream first started.
|
string timestamp | "2025-06-07T12:23:19.275" | ||||||||||||
dataChangeStreamLastPausedTimestamp |
The "dataChangeStreamLastPausedTimestamp" property specifies the UTC date and time in ISO-8601 format when the stream last paused.
|
string timestamp | "2025-06-07T12:23:19.275" | ||||||||||||
dataChangeStreamLastStartTimestamp |
The "dataChangeStreamLastStartTimestamp" property specifies the UTC date and time in ISO-8601 format when the stream last restarted.
|
string timestamp | "2025-06-07T12:23:19.275" | ||||||||||||
dataChangeStreams |
lists the data change streams that match the filters in the request as separate objects. | array of objects |
0 or more objects including 1 or more of the following properties:
|
||||||||||||
dataChangeStreamStatus |
The "dataChangeStreamStatus" property specifies the status of the data change stream. It may specify any of the following states: | string enum |
|
||||||||||||
dataFormat |
The "dataFormat" property is a case-insensitive string enum that defines the format of the "data" property. The default format is an array of arrays. The alternative is an array of objects. The default for "dataFormat" can be changed during a "createSession" action by assigning a different value to the "dataFormat" property in "defaultResponseOptions". There are three different (but similar) versions of the "dataFormat" property:
Two of those versions occur in a request, and another occurs in a response. They all indicate how data is formatted.
|
string |
|
||||||||||||
defaultApi |
The "defaultApi" property specifies the default value of the "api" property when it is omitted from an action request. The default value for "defaultApi" is "admin", which is the API used by all session actions. "params": {
"username": "CHANGE",
"password": "CHANGE",
"description": "optional user description of session for troubleshooting",
"defaultApi": "db",
"defaultDebug": "max",
"defaultDatabaseName": "ctreeSQL",
"defaultOwnerName": "admin",
"defaultBinaryFormat": "hex"
}, |
string enum |
|
||||||||||||
defaultBinaryFormat |
|
string | One of the following: "base64", "hex", or "byteArray". |
||||||||||||
defaultDatabaseName |
The "defaultDatabaseName" property is an optional string that specifies which database name to use when the "databaseName" property is omitted. Its value is case insensitive. "params": {
"username": "CHANGE",
"password": "CHANGE",
"description": "optional user description of session for troubleshooting",
"defaultApi": "db",
"defaultDebug": "max",
"defaultDatabaseName": "ctreeSQL",
"defaultOwnerName": "admin",
"defaultBinaryFormat": "hex"
}, |
string | 1 to 64 bytes | ||||||||||||
defaultDebug |
The "defaultDebug" property is an optional string that defines the default value of the "debug" property for all requests in a session. It defaults to "max".
|
string enum |
|
||||||||||||
defaultOwnerName |
The optional "defaultOwnerName" property is is used by "createSession" and "alterSession" to specify the default owner of objects created by the session. Its value must be a valid username of an account. If it is omitted, null, or "", it defaults to the value of the session's "username" property.
|
string | 1 to 64 bytes | ||||||||||||
defaultValue |
The optional "defaultValue" property identifies the default value of the field. |
string | 0 to 65,500 bytes | ||||||||||||
defaultVariantFormat |
The "defaultVariantFormat" property sets the default value of the "variantFormat" property when a JSON Action request does not include it. |
string |
|
||||||||||||
defaultResponseOptions |
The "defaultResponseOptions" property is a "responseOptions" object. It defines a default value for "responseOptions" that is used by default in all other action calls. It defaults to an empty object. JSON NAV allows you to choose how your program detects errors. By default, all error properties are included in each response – unless you override this behavior as shown in the example. The example omits the error object in all responses which makes it easier for statically typed languages, such as C, C++, Java, C#, and VB, because they prefer properties to always be present. To help these languages, the "errorCode", "errorMessage", and "errorData" properties are always present whether there is an error or not. Example "defaultResponseOptions": {
"binaryFormat": "hex",
"dataFormat": "objects",
"numberFormat": "number",
"variantFormat": "json"
} |
object |
|
||||||||||||
defaultRetentionPeriod |
The "defaultRetentionPeriod" property specifies how many retention units will be retained if the "retentionPeriod" property is omitted. It is used in tandem with "defaultRetentionUnit", the retention period describing how many units, and the retention unit describing what kind of unit of measurement. For example, if the "defaultRetentionPeriod" is set to 4, and the "defaultRetentionUnit" is set to "week", the server will purge messages once 4 weeks have passed by default. "params": {
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4
}, |
integer |
1 to 100
|
||||||||||||
defaultRetentionPolicy |
The "defaultRetentionPolicy" property specifies the default way in which messages are persisted if the "retentionPolicy" property is omitted. Using this property, you can configure messages to persist indefinitely, be purged according to the retention unit and period, or be immediately purged by default. "params": {
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4
}, |
string enum |
|
||||||||||||
defaultRetentionUnit |
The "defaultRetentionUnit" property specifies the type of retention unit if the "retentionUnit" property is omitted. It is used in tandem with "defaultRetentionUnit", the retention period describing how many units, and the retention unit describing what kind of unit of measurement. For example, if the "defaultRetentionPeriod" is set to 4, and the "defaultRetentionUnit" is set to "week", the server will purge messages once 4 weeks have passed by default. "params": {
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4
}, |
string enum |
|
||||||||||||
defaultValue |
specifies the default value of a field. | string | 0 to 65,500 bytes | ||||||||||||
deferindexing |
identifies whether deferred indexing is enabled. A deferred index builds and updates asynchronously. This speeds up inserts, updates, and deletes, with a slight delay from including the changes in the index. | boolean |
|
||||||||||||
deletedLabels |
The "deletedLabels": [
{
"id": 4,
"group": "myLabelGroupName",
"name": "myLabelName",
"value": 99,
"enum": 0,
"sequence": 1.2,
"deprecated": false,
"description": "My label description.",
"metadata": {}
}
] |
array of objects | An object for each deleted label. | ||||||||||||
deletedTags |
The "deletedTags" property is an array of objects that describe the tags that were deleted. |
array of objects |
zero or more objects containing the following properties:
|
||||||||||||
deprecated |
The |
Boolean |
|
||||||||||||
description |
The Markdown is a good language for formatting description text. You must ensure the text is compatible with a JSON string. For example, you must escape a double quote character using the backslash character: \".
In the Thing API, It defaults to
|
string | 1 to 65,500 bytes | ||||||||||||
elapsedMilliseconds |
The "elapsedMilliseconds" property specifies the number of milliseconds it took for the server to execute the SQL statement. |
integer | The number of seconds it took to execute the statement. | ||||||||||||
enabled |
The "enabled" property is an optional Boolean that specifies whether or not the feature is enabled. The example below enables the TLS feature. "tls": {
"enabled": true,
"caCertificateFilename": "ca.crt",
"allowedCipherSuites": "",
"clientCertificateEnabled": true,
"clientCertificateFilename": "admin_client.crt",
"clientPrivateKeyFilename": "admin_client.key"
} |
Boolean |
|
||||||||||||
enablePermanentJsonApiSessions |
The "enablePermanentJsonApiSessions" property enables or disables permanent sessions. When set to false, permanent sessions cannot be created. |
Boolean |
|
||||||||||||
endTimestamp |
The "endTimestamp" property is an optional string that contains an ISO8601 timestamp, which filters the response to return problems that ended before or on its value. If any parts of the timestamp are missing or omitted, the server defaults the remaining parts to 0.
|
string containing an ISO8601 timestamp |
|
||||||||||||
enum |
The
|
smallint | -32768 to 32767 | ||||||||||||
errorCode |
The "errorCode" property indicates an error when set to a non-zero integer or success when 0. | integer | -2147483648 to 2147483647 | ||||||||||||
errorMessage |
The "errorMessage" property displays a human-readable error message. | string | 0 to 256 bytes | ||||||||||||
estimatedBacklogSeconds |
The "estimatedBacklogSeconds" property is an integer that reports the approximate time, in seconds, needed by the FairCom MQ server to apply data changes from the source server. |
integer | 0 to 4294967296 | ||||||||||||
fields |
The "fields" property is an array of objects. It is required when creating a table. Each object in the array defines a field by specifying its properties.
"fields": [
{
"autoValue": "none",
"name": "name",
"type": "varchar",
"length": 50,
"scale": null,
"defaultValue": null,
"nullable": false
}
] |
array |
|
||||||||||||
fixedOutput |
includes all properties in a data change event when true. | Boolean |
|
||||||||||||
group |
The The The group name may contain up to 64 bytes of UTF-8 encoded characters. If the When you assign a group name to a label, the server automatically checks if the group name exists in the list of groups that the
|
string | 1 to 64 bytes | ||||||||||||
hierarchyDelimiter |
The optional
The
|
string | 1 byte | ||||||||||||
host |
The "host" property specifies the IP or hostname of the Rest resource, including the port. | string | 1 to 1024 bytes | ||||||||||||
hostIpAddresses |
The "hostIpAddresses" property specifies the IP addresses of the sessions host. "sessions": [
{
"hostname": "host's name",
"hostUuid": "561d3f41-37da-4d03-bcc2-9cf2b671119f",
"hostIpAddresses": [
"fe80::7b21:ec4f:fbb0:7d45",
"169.254.188.125",
"fe80::62c9:6f17:6132:d13f",
"169.254.150.200",
"fe80::6e3f:653a:ac7b:3074",
"169.254.169.237",
"fe80::c98f:a8f0:25c5:91e4",
"10.250.250.201",
"fe80::48d2:30ab:3798:6a6d",
"169.254.35.210"
],
"hostServerNamePort": "FAIRCOMS",
"hostSQLPort": 6597
}
] |
array of strings | The host's IP addresses | ||||||||||||
hostname |
The "hostname" property specifies the name of the host device. "sessions": [
{
"hostname": "host's name",
"hostUuid": "561d3f41-37da-4d03-bcc2-9cf2b671119f",
"hostIpAddresses": [
"fe80::7b21:ec4f:fbb0:7d45",
"169.254.188.125",
"fe80::62c9:6f17:6132:d13f",
"169.254.150.200",
"fe80::6e3f:653a:ac7b:3074",
"169.254.169.237",
"fe80::c98f:a8f0:25c5:91e4",
"10.250.250.201",
"fe80::48d2:30ab:3798:6a6d",
"169.254.35.210"
],
"hostServerNamePort": "FAIRCOMS",
"hostSQLPort": 6597
}
] |
string | The name of the host device. | ||||||||||||
hostnames |
The optional
When you use the
The Thing API implements the
|
array | zero or more hostname strings | ||||||||||||
hostServerNamePort |
The "hostServerNamePort" property specifies the server's ISAM port or server name. "sessions": [
{
"hostname": "host's name",
"hostUuid": "561d3f41-37da-4d03-bcc2-9cf2b671119f",
"hostIpAddresses": [
"fe80::7b21:ec4f:fbb0:7d45",
"169.254.188.125",
"fe80::62c9:6f17:6132:d13f",
"169.254.150.200",
"fe80::6e3f:653a:ac7b:3074",
"169.254.169.237",
"fe80::c98f:a8f0:25c5:91e4",
"10.250.250.201",
"fe80::48d2:30ab:3798:6a6d",
"169.254.35.210"
],
"hostServerNamePort": "FAIRCOMS",
"hostSQLPort": 6597
}
] |
string | The name of the server or ISAM port. | ||||||||||||
hostSQLPort |
The "hostSQLPort" property contains the server's SQL port. "sessions": [
{
"hostname": "host's name",
"hostUuid": "561d3f41-37da-4d03-bcc2-9cf2b671119f",
"hostIpAddresses": [
"fe80::7b21:ec4f:fbb0:7d45",
"169.254.188.125",
"fe80::62c9:6f17:6132:d13f",
"169.254.150.200",
"fe80::6e3f:653a:ac7b:3074",
"169.254.169.237",
"fe80::c98f:a8f0:25c5:91e4",
"10.250.250.201",
"fe80::48d2:30ab:3798:6a6d",
"169.254.35.210"
],
"hostServerNamePort": "FAIRCOMS",
"hostSQLPort": 6597
}
] |
string | The name of the server's SQL port. | ||||||||||||
hostUuid |
The "hostUuid" property specifies the universal identifier of the server instance. "sessions": [
{
"hostname": "host's name",
"hostUuid": "561d3f41-37da-4d03-bcc2-9cf2b671119f",
"hostIpAddresses": [
"fe80::7b21:ec4f:fbb0:7d45",
"169.254.188.125",
"fe80::62c9:6f17:6132:d13f",
"169.254.150.200",
"fe80::6e3f:653a:ac7b:3074",
"169.254.169.237",
"fe80::c98f:a8f0:25c5:91e4",
"10.250.250.201",
"fe80::48d2:30ab:3798:6a6d",
"169.254.35.210"
],
"hostServerNamePort": "FAIRCOMS",
"hostSQLPort": 6597
}
] |
string | A UUID | ||||||||||||
id |
The |
integer |
0 to 2147483647 0 to 9223372036854770000 in the Thing API |
||||||||||||
idleConnectionTimeoutSeconds |
The "idleConnectionTimeoutSeconds" property is an optional integer from 0 to 2147483647. It is the number of seconds that a session with no activity will stay open. A value of 0 keeps a session open indefinitely. |
integer |
0 to 2147483647
|
||||||||||||
idleCursorTimeoutSeconds |
The "idleCursorTimeoutSeconds" property is an optional integer from 0 to 2147483647. It is the number of seconds to keep a cursor open.
|
integer |
0 to 2147483647
|
||||||||||||
ids |
The
|
array | 0 or more ids | ||||||||||||
immutableKeys |
identifies whether the key's values can be changed. | boolean |
|
||||||||||||
inactiveTimestamp |
The "inactiveTimestamp" property is the date and time when the thing was last made inactive. It is null when the thing is active. It is returned in ISO 8601 format, such as "2025-08-28T10:47:13.041". |
timestamp | ISO 8601 timestamp | ||||||||||||
includedFields |
The "includedFields" property is an array of strings that includes specified source table fields in the data change event or all fields when empty. |
array of strings | 0 or more strings | ||||||||||||
includeExistingRecordsFilter |
The "includeExistingRecordsFilter" property is a Boolean that returns streams that synchronize existing records if true. |
Boolean |
|
||||||||||||
includeMetadata |
The "includeMetadata" property is an array of metadata objects that adds user-defined properties to each data change event. |
array of metadata objects | [
{
"propertyPath": "myPath",
"propertyValue": "myValue"
}
] |
||||||||||||
includePrimaryKey |
The "includePrimaryKey" property is an enumerated string that specifies when to add the "pk" property to the data change event's "fields" object to indicate the field's position in the primary key. |
string |
|
||||||||||||
indexes |
is an array of objects where each object identifies the characteristics of each index in the table. | array |
|
||||||||||||
inputConnectors |
The
|
array of objects |
zero or more objects containing zero or more of the following properties:
|
||||||||||||
inputName |
The "inputName" property is a required string that specifies the unique name of an input. | string | 1 to 64 bytes | ||||||||||||
integrationServices |
The "integrationServices" property is an array of objects that describes and controls FairCom's integration services. It defaults to an empty array.
|
array of objects |
|
||||||||||||
isConnected |
The "isConnected" property indicates whether the specified broker connection is active. | Boolean |
|
||||||||||||
jsonActionApiDefaults |
The default settings for the FairCom jsonAction APIs and browser-based applications are specified in the services.json file in the "jsonActionApiDefaults" property.
Default settings for jsonAction APIs "jsonActionApiDefaults": {
"defaultApi": "db",
"defaultBinaryFormat": "hex",
"defaultVariantFormat": "json",
"defaultDatabaseName": "faircom",
"defaultDebug": "max",
"defaultOwnerName": "admin",
"defaultResponseOptions":
{
"binaryFormat": "hex",
"variantFormat": "json",
"dataFormat": "objects",
"numberFormat": "number"
},
"idleConnectionTimeoutSeconds": 3600,
"idleCursorTimeoutSeconds": 600,
"defaultRetentionPolicy":"autoPurge",
"defaultRetentionPeriod":"4",
"defaultRetentionUnit":"week"
}
The property names and values in "jsonActionApiDefaults" are identical to those in the "params" property of "createSession", "alterSession", and "describeSessions". Each FairCom product ships with different default settings that make sense for that product — for example, in FairCom DB, the "defaultAPI" property is set to "db", in FairCom MQ it is set to "mq", and in FairCom Edge it is set to "hub". You can change the values of the properties in services.json, and all jsonAction APIs and browser-based user interfaces will use these properties as their default. If any of the properties in "jsonActionApiDefaults" are omitted from services.json, the property values may vary depending on the JSON action performed.
Keeping SQL_DATABASE and "jsonActionApiDefaults" in sync
ctsrvr.cfg SQL_DATABASE my_new_database services.json "": {
"defaultApi": "db",
"defaultBinaryFormat": "hex",
"defaultDatabaseName": "my_new_database",
"defaultDebug": "max",
"defaultOwnerName": "admin",
"defaultResponseOptions":
{
"binaryFormat": "hex",
"dataFormat": "objects",
"numberFormat": "number"
},
"idleConnectionTimeoutSeconds": 3600,
"idleCursorTimeoutSeconds": 600,
"defaultRetentionPolicy":"autoPurge",
"defaultRetentionPeriod":"4",
"defaultRetentionUnit":"week"
} |
object |
|
||||||||||||
key |
The "key" property is part of an optional key-value object that is defined in an array in the "userProperties" property. It is a user-defined string value. In the Key-Value API, this property is required. |
string | 1 to 128 bytes | ||||||||||||
keys |
The required "keys" property contains an array of keys for an action to work on and return, such as [ "key1", "key2" ]. |
array of strings | one or more key strings | ||||||||||||
keyStore |
The required
|
string enum |
|
||||||||||||
keyValuePairDetails |
The
|
array of objects | |
||||||||||||
keyValuePairs |
The "keyValuePairs" property contains an array of objects. Each object represents a key-value pair and contains "key" and "value" properties, such as { "key": "k1", "value": 1 }. |
array of key-value objects | |
||||||||||||
keyWithoutHierarchy |
The
|
string | 1 to 128 bytes | ||||||||||||
labels |
The The
When using tag actions, the optional
When you use the
You can use the
The Tag API implements the
|
array of objects |
1 or more label objects
Values are managed in the Label API with the group of |
||||||||||||
lastCollectedTimestamp |
The
It returns the ISO 8601 date and time of the last data collected by the input connector. If no data has been collected, the value is |
ISO 8601 timestamp | The ISO 8601 date and time of the last data collected by the input connector. | ||||||||||||
lastDeliveredTimestamp |
The
It returns the ISO 8601 date and time of the last data delivered by the output connector. If no data has been delivered, the value is |
ISO 8601 timestamp | The ISO 8601 date and time of the last data delivered by the output connector. | ||||||||||||
length |
Identifies the length of the field. | integer | 1 to 65500 | ||||||||||||
listeners |
The "listeners" property is an array of objects that describes and controls FairCom's listeners. It defaults to an empty array.
|
array of objects |
|
||||||||||||
localDatabaseName |
The "localDatabaseName" property is a string that specifies the database name of the table on the FairCom MQ server that stores the stream's data change events. |
string | 1 to 64 bytes | ||||||||||||
localDataFilePath |
The "localDataFilePath" property is a string that specifies the data file path of the table on the FairCom MQ server that stores the stream's data change events. It can be a full path or a relative path from the server's data directory. |
string | No limits | ||||||||||||
localOwnerName |
The "localOwnerName" property is a string that specifies the account that owns the table on the FairCom MQ server that stores the stream's data change events. |
string | 1 to 64 bytes | ||||||||||||
localTableName |
The "localTableName" is a string that specifies the name of the table on the FairCom MQ server that stores the stream's data change events. |
string | 1 to 64 bytes | ||||||||||||
location |
The optional
This API uses the Label API to manage manufacturers.
|
string | 1 to 64 bytes | ||||||||||||
logLevel |
Defines what types of messages the replication agent will log. | string enum |
"off" - no messages logged "debug" - logs debug, info, warning, and error messages "info" - logs info, warning, and error messages "warning" - logs warning and error messages "error" - logs error messages |
||||||||||||
manufacturer |
The optional
This API uses the Label API to manage manufacturers.
|
string | 1 to 64 bytes | ||||||||||||
maxConnectionsPerIpAddress |
The "maxConnectionsPerIpAddress" property is the number of TCP/IP connections the app server will accept from a single TCP/IP address. This feature is implemented at the FairCom App Server level to prevent the app server from being overwhelmed by a DoS attack. It protects against simultaneous DoS attacks across multiple protocols: HTTP, HTTPS, MQTT, MQTTS, WS, and WSS. The default is 25 connections. A value of 0 disables this protection. This property can be added to the top level of the services.json file and/or to each listener object in the "listeners" array. At the top level, the property applies to all listeners. Within a listener, it applies only to that listener. In the case that your connections are routed through a firewall or load balancer, you may need to disable this feature since the connections will come from the same IP address.
{
"maxConnectionsPerIpAddress": 5,
"listeners": [
{
"serviceName": "https8443",
"description": "Port 8443 using TLS-secured HTTPS protocol for REST and Web Apps on all TCP/IP addresses bound to this server",
"port": 8443,
"protocol": "https",
"enabled": true,
"maxConnectionsPerIpAddress": 5,
"tls": {
"certificateFilename": "./web/fccert.pem"
}
}
]
} |
integer | 1 to 2147483647 | ||||||||||||
maxDeliveryRatePerSecond |
The "maxDeliveryRatePerSecond" property sets the throttle rate for current and new subscribers of the topic. This property is optional. If omitted, it defaults to 0, which means no throttling is applied.
|
integer | 0 to 2147483647 | ||||||||||||
maxJsonApiSessions |
The "maxJsonApiSessions" property is the total number of JSON API sessions the app server will accept. This setting ensures the server does not consume so many resources that it becomes unstable. The default value is the maximum number of JSON API connections allowed by the license. A value of 0 disables this protection and allows JSON API sessions up to the maximum number of connections allowed by the license file. This property is added to the "jsonActionApiDefaults" object. |
integer | 1 to 2147483647 | ||||||||||||
maxJsonApiSessionsPerIpAddress |
The "maxJsonApiSessionsPerIpAddress" property is the number of JSON API sessions the app server will accept from the same client IP Address. The default value is 50. The maximum possible number of connections is determined by the license file. A value of 0 disables this protection and allows JSON API sessions with the same IP Address up to the maximum number of connections allowed by the license file. This property is added to the "jsonActionApiDefaults" object. In the case that your connections are routed through a firewall or load balancer, you may need to disable this feature since the connections will come from the same IP address. |
integer | 1 to 2147483647 | ||||||||||||
maxJsonApiSessionsPerUsername |
The "maxJsonApiSessionsPerUsername" property is the number of JSON API sessions the app server will accept with the same username. Because of this, an application may use a different account for each JSON API session. The default value is 50. The maximum possible number of connections is determined by the license file. A value of 0 disables this protection and allows unlimited sessions with the same username up to the maximum number of connections allowed by the license file. If your application uses one account for all JSON API sessions, this feature will need to be disabled. This property is added to the "jsonActionApiDefaults" object. See the example below.
|
integer | 1 to 2147483647 | ||||||||||||
maxSecondsBeforeConnectingToNextServer |
The "maxSecondsBeforeConnectingToNextServer" property is an optional integer that specifies the maximum number of seconds the server will attempt to reconnect to the existing server before it attempts to connect to the next server in the "sourceServers" list. | int32 | 1 to 65535 | ||||||||||||
messageCount |
The "messageCount" property defines the total number of messages published by the topic. | BigInteger | 0 to 9223372036854775807 | ||||||||||||
metadata |
The |
JSON | 0 to 65,500 bytes | ||||||||||||
model |
The optional
This API uses the Label API to manage models.
|
string | 1 to 64 bytes | ||||||||||||
mqttPayloadType |
The "mqttPayloadType" property is an optional string that specifies the expected data type of the MQTT payload. When omitted or set to null, it defaults to "binary". It defines the expected data type of message payloads sent to a topic. It controls how the MQTT broker stores and validates the MQTT payload. It also determines how the payload is delivered to JavaScript transform steps. For example, if "mqttPayloadType" is set to "json", an MQTT message containing a JSON payload is delivered to transform steps as a JavaScript object; otherwise, it is delivered as a variant object. This property is useful because the FairCom server allows you to configure each topic to receive a specific type of data in MQTT payloads. Different topics may expect different types of payloads. For example, one topic may expect to receive JSON and another may expect images. The server can validate the expected type and log errors in the error and log fields, which allows users, applications, and JavaScript transform steps to identify and troubleshoot invalid MQTT messages. When the server receives an MQTT message, it takes the binary value from the MQTT payload and stores it in the source_payload field. The source_payload field is a variant, which means it stores the value along with its data type. If there are no errors in validating the MQTT payload to match the type specified in "mqttPayloadType", the server assigns the value of "mqttPayloadType" as the variant field's type. If "validateMqttPayload" is true, the server validates the MQTT payload to ensure it matches the type specified by "mqttPayloadType". The server may also convert the MQTT payload into another form before storing it. If the MQTT payload does not match the type or cannot be converted, the server stores the payload in the source_payload field, sets its variant type to "binary", and sets the error field to 1 to indicate there is an error. It also adds an error entry to the JSON array in the log field.
FairCom's MQTT server does the following when a topic receives an MQTT message and "mqttPayloadType" is set to one of the following values:
|
string enum |
|
||||||||||||
name |
The The The
|
string | 1 to 64 bytes | ||||||||||||
newKey |
The "newKey" property is required by the "renameKeys" action to rename keys. It is part of a key-rename object and its value is a string. It specifies the new name of a key. Each key-rename object contains "oldKey" and "newKey" properties that specify the current key's name and its new name. See the "renamedKeys" property for more information. |
string | 1 to 128 bytes | ||||||||||||
newSubscriberDeliveryMode |
The "newSubscriberDeliveryMode" property defines how new subscribers receive messages. The default is "newMessages".
|
string enum |
|
||||||||||||
newSubscriberMaxDeliveredMessages |
The "newSubscriberMaxDeliveredMessages" property is the maximum number of previously stored historical messages a client receives automatically when subscribing to a topic. The default is 0.
|
integer | -1 to 2147483647 | ||||||||||||
nullable |
Identifies whether a field can contain a NULL value. | Boolean |
|
||||||||||||
numberFormat |
The "numberFormat" property is an optional, case-insensitive string enum. It defines the format of JSON numbers. The default value for "numberFormat" is the "defaultNumberFormat" defined in the "createSession" or "alterSession" actions. If it is omitted there, it defaults to the value of the "defaultNumberFormat" property in the <faircom>/config/services.json file. When "numberFormat" occurs in "mapOfPropertiesToFields", it tells the server how to encode or decode a number assigned to a JSON property. For example, including "numberFormat" in a "tableFieldsToJson" transform step controls if the server encodes a number in a JSON property as a number or a number embedded in a string. Possible values:
Example request {
"action": "someAction",
"responseOptions":
{
"numberFormat": "string"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
} |
string |
|
||||||||||||
oldKey |
The "oldKey" property is required by the "renameKeys" action to rename keys. It is part of a key-rename object and its value is a string. It specifies the current key that will be renamed. Each key-rename object contains "oldKey" and "newKey" properties that specify the current key's name and its new name. See the "renamedKeys" property for more information. |
string | 1 to 128 bytes | ||||||||||||
outParams |
The "outParams" property specifies the output values of a stored procedure. |
array of objects |
|
||||||||||||
output |
The "output" property specifies the results returned by a stored procedure or SELECT statement. |
object |
|
||||||||||||
outputConnectors |
The
|
array of objects |
Zero or more objects containing zero or more of the following properties:
|
||||||||||||
outputName |
The "outputName" property is an optional string that specifies a unique name for mapping an integration table to an output plugin to an external system. | string | 1 to 64 bytes | ||||||||||||
outputPayloadField |
The "outputPayloadField" property specifies the field that the MQTT Subscription service should use as the payload when it sends the payload to subscribers. If omitted or if it is an empty string, it defaults to "source_payload".
This makes it possible for the output from any transform to be used as the payload delivered to subscribers. |
string |
"source_payload" or a user-defined field |
||||||||||||
ownerName |
The "params": {
"ownerName": "SuperUser"
} |
string | 0 to 64 bytes | ||||||||||||
partialKey |
The "partialKey" property is an optional string or array that defines the range of returned records. The "getRecordsByPartialKeyRange" action uses the "partialKey" to find a starting position in the index where it can start returning records. It defaults to an empty string or empty array.
String "partialKey": "Mi" Array (multi-field) "partialKey": [ "2023-01-01", true, "full string", -3.4, "TWk=" ] In the Key-Value API, the required
|
string or array |
1 or more strings/arrays 1 to 128 bytes in the Key-Value API |
||||||||||||
password |
The "password" property is a required string from 0 to 256 bytes. "password" authenticates an account.
|
string | 0 to 256 bytes | ||||||||||||
permanentSession |
The "permanentSession" property is an optional Boolean that indicates if a session is permanent. It defaults to false.
If "permanentSession" is set to true when "createSession" is called, the server sets the authtoken as permanent. The authtoken is associated with the settings and authorizations of the user who created the session. It is always valid even after the server restarts. A permanent authToken works like an API Key and authenticates an application without the need for a username/password or a client certificate. Multiple applications can use the same permanent authToken.
|
Boolean |
|
||||||||||||
persistence |
The "persistence" property is an object that defines the parameters of the persistence table. | object |
|
||||||||||||
photo |
The optional "photo" property contains a photo of a thing. It defaults to null and is a binary value up to 2 GB in size. You cannot use it for lookups and filtering. |
string | up to 2 GB | ||||||||||||
port |
The "port" property is an integer that specifies the port number. |
integer | an integer port number | ||||||||||||
previousTransformSteps |
The "previousTransformSteps" property is a JSON array that contains the transform step objects assigned to the integration table before they were replaced by the "copyIntegrationTableTransformSteps" action. | array | the transform step objects of the specified transform before they were replaced by the action. | ||||||||||||
primaryKey |
When > 0, the "primaryKey" property identifies the ordinal position of the field within the table's primary key. | integer | 0 to 32 | ||||||||||||
primaryKeys |
This optional property identifies a table's primary key.
Each table created by the JSON DB API has a primary key that uniquely identifies each record. "createTable" automatically adds the "id" field as the primary key to your table. It makes "id" an auto-increment bigint field and indexes the field with a unique index named "id_pk". Using the "id" field as the primary key is a best practice. You can specify one or more fields to be the primary key of the table instead of the "id" field. To do so, you must add the "primaryKeyFields" property to "createTable" or use the "fields" property's "primaryKey" to specify which field(s) are in the primary key.
If multiple fields are specified for the key, the index is named "pk". If only one field is specified for the key, the index is named "<fieldname>_pk". If you use the "primaryKey" property to specify multiple fields as the primary key, the assigned value from 1 to n specifies the order of the fields in the primary key. Assign "primaryKey": 1 to the first field in the primary key, "primaryKey": 2 to the second, and so forth. If you create a primary key with multiple fields, the index is named "pk". If you specify just one field, the index is named "<fieldname>_pk".
Example "fields": [
{
"name": "a",
"type": "tinyint",
"primaryKey": 1
},
{
"name": "b",
"type": "smallint",
"primaryKey": 2
},
{
"name": "c",
"type": "integer",
"primaryKey": 3
}
] |
array of arrays | an array of arrays | ||||||||||||
primaryKeyFields |
This optional property specifies the fields of the table’s primary key when multiple fields are combined to form the primary key.
The order of fields in this property is the order of fields in the primary key index. The "fields" property contains the name and type of each field that is specified in the "primaryKeyFields" array. A primary key with multiple fields has an index named "pk". If you specify just one field, the index is named "<fieldname>_pk". If only one field is used as the primary key, the "primaryKey" property defines the primary key.
Example "primaryKeyFields": [
"a",
"b",
"c"
],
"fields": [
{
"name": "a",
"type": "tinyint"
},
{
"name": "b",
"type": "smallint"
},
{
"name": "c",
"type": "integer"
}
] |
array | an array | ||||||||||||
privateKeyFilename |
The "privateKeyFilename" is an optional string that specifies the name and optional path of a server key file. "tls": {
"allowedCipherSuites": "",
"certificateAuthoritiesFilename": "",
"certificateFilename": "",
"privateKeyFilename": ""
}, |
string | No limits | ||||||||||||
problemCode |
The "problemCode" property is an integer that specifies a unique code number that identifies the type of problem. |
integer | A unique code number | ||||||||||||
problemData |
The "problemData" property is an object that contains data about the problem stored in a JSON object. The data is stored in the object as key/value pairs. |
object | 1 or more key/value pairs | ||||||||||||
problemMessage |
The "problemMessage" property is a string that contains a message describing the problem. |
string | A message detailing the problem | ||||||||||||
problems |
The "problems" property is an array of objects that lists problems that match the request parameters. Each problem is contained in a separate object. | array of objects |
0 or more objects containing 1 or more of the following properties:
|
||||||||||||
problemTimestamp |
The "problemTimestamp" property is a string that lists the date and time the problem occurred. The timestamp is formatted as an ISO8601 timestamp embedded in the string. |
string containing an ISO8601 timestamp |
|
||||||||||||
problemType |
The "problemType" property is a string that details the type of problem that occurred, such as an error or warning. |
string |
|
||||||||||||
propertyPath |
The "propertyPath" property specifies the name of the data to be defined by "propertyValue". | string | 0 to 256 bytes | ||||||||||||
propertyValue |
This is a required object that contains properties that define the data values of a "propertyPath". It is required and has no default value. The data values specified in the "propertyValue" object can be a string or an object.
|
object |
|
||||||||||||
protocol |
The "protocol" property is a string that specifies the name of a protocol. |
string | the name of a protocol | ||||||||||||
publishedTopics |
The "publishedTopics" property returns a list of the topics the client has published since the session was first created. |
string | 1 to 65,500 bytes | ||||||||||||
purpose |
The "purpose" property is an optional string that provides a short description of the specified server's purpose.
In the Thing API, the optional
This API uses the Label API to manage purposes.
|
string | 1 to 64 bytes | ||||||||||||
reactions |
The "reactions" property contains the data returned by a SQL SELECT statement. | array of objects |
|
||||||||||||
reconnectFrequencySeconds |
The "reconnectFrequencySeconds" property is the number of seconds that the broker waits between attempts to reconnect to an external broker. This property is optional. If omitted, it defaults to 15 seconds.
|
int32 | the number of seconds the broker will wait between attempts to reconnect to an external broker. | ||||||||||||
recordAfterBeingTransformed |
The "recordAfterBeingTransformed" property contains an object with one property for each field in the record. Each property value is from the record after it was modified by the transform steps. |
object | 0 or more properties | ||||||||||||
recordBeforeBeingTransformed |
The "recordBeforeBeingTransformed" property contains an object with one property for each field in the record. Each property value is from the record before it was modified by the transform steps. |
object | 0 or more properties | ||||||||||||
recordFilter |
The "recordFilter" property is a string that specifies a FairCom expression that must match a record's field values before the record is included as a data change event. |
string | 1 to 65,000 bytes | ||||||||||||
recordFormat |
The "recordFormat" property is a string that includes the record's value in the data change event as a binary-encoded string or individual field values. |
string |
|
||||||||||||
renamedKeys |
The
|
array of key-rename objects | |
||||||||||||
requestedRecordCount |
The "requestedRecordCount" property is a signed, 32-bit integer set by the server in response to the "getRecordsFromCursor" method.
|
integer | 0 to 2147483647 |
||||||||||||
requestIterationMilliseconds |
The "requestIterationMilliseconds" property specifies the number of milliseconds the server will wait between attempting the request. |
integer | 1 to 2147483647 | ||||||||||||
requestMaxThreads |
The "requestMaxThreads" property specifies the maximum number of threads allowed in the request. |
integer | 1 to 2147483647 | ||||||||||||
retentionPeriod |
The "retentionPeriod" property specifies how many units of data to retain. It must be an integer value from 1 to 100. It refers to the unit of time specified by the "retentionUnit" property — for example, if "retentionPeriod" is 14 and "retentionUnit" is "day", then message data is retained for 14 days. This property is optional.
When partitions are auto-purged, some data are maintained "forever" in a global index. Auto-purge does not prevent these files from growing without bounds and filling up your hard drive. If not specified, the default found in the services.json file is used. Initially, it is 4 (weeks). Automatically purging data is important to ensure that retained data does not consume all storage and shut down the computer. The default value of 4 weeks allows FairCom's servers to store 1 TB of messages when 200 topics send one 2K message per second.
|
integer | 1 to 100 | ||||||||||||
retentionPolicy |
The "retentionPolicy" property controls how messages are persisted. This property is optional. If not specified, the default found in the services.json file is used. Initially, it is "autoPurge". retentionPolicy values:
|
string enum |
|
||||||||||||
retentionUnit |
Each time this unit cycles, FairCom purges expired messages. For example, if you want a week's worth of messages to be purged once a week, set "retentionUnit" to "week". This property is optional. If not specified, the default found in the services.json file is used. Initially, it is "week".
|
string enum |
|
||||||||||||
retrySeconds |
The "retrySeconds" property is the number of seconds that FairCom's MQTT broker will wait for the next expected packet from a client during a QoS 1 or QoS 2 PUBLISH packet exchange/PUBLISH handshake with an MQTT client. The default value is 5. It applies when a client is publishing to the broker and when the broker is publishing to a client. This property does not apply to QoS 0 PUBLISH operations because QoS 0 PUBLISH operations are not answered. "retrySeconds" is optional.
|
integer | 1 to 65535 | ||||||||||||
returnedRecordCount |
The "returnedRecordCount" is a 32-bit integer set by the server in response to the "getRecordsFromCursor" method.
|
integer | 0 to 2147483647 |
||||||||||||
returnTagsBy |
The optional "returnTagsBy" property is an enumerated string with the following values: "tagName" and "id". It defaults to "id". It is used by the "listTags" action to specify whether it returns tags identified by ID or name. |
string enum |
|
||||||||||||
returnThingsBy |
The optional "returnThingsBy" property is an enumerated string with the following values: "name" and "id". It defaults to "id". It is used by the "listThings" action to specify whether it returns things identified by ID or "name". |
string enum |
|
||||||||||||
revealAfterValueOnFilteredDelete |
The "revealAfterValueOnFilteredDelete" property is a Boolean that includes the "afterValue" property in the notification message when true. When "recordFilter" filters out a record based on field values, an update causes a deleted change event to occur when its field values no longer match the filter. The "afterValue" property, when present, reveals the new field values and leaks information. |
Boolean |
|
||||||||||||
revealBeforeValueOnFilteredInsert |
The "revealBeforeValueOnFilteredInsert" property is a Boolean that includes the "beforeValue" property in the notification message when true. When "recordFilter" filters out a record based on field values, an update causes an insert change event when previous field values did not match the filter but now match it. The "beforeValue" property, when present, reveals the old field values and leaks information. |
Boolean |
|
||||||||||||
roleName |
The
|
string | 1 to 64 bytes | ||||||||||||
roleNames |
The "params": {
"partialNames": [
"adm",
"NewAccount"
]
}, |
array of strings | An array of 1 or more strings between 1 and 64 bytes. | ||||||||||||
rows |
The "rows" property specifies the rows returned by a stored procedure of a SELECT statement and metadata about the results. |
object | The rows returned by a stored procedure. | ||||||||||||
scale |
If the type is "number" or "money", the "scale" property identifies the number of places to the right of the decimal point,. | integer | 0 to 32 | ||||||||||||
schemaName |
The "schemaName" property is an optional string from 1 to 64 bytes that specifies the unique name of the account that owns an object. The default value is the "username" of the logged-in account. Things to know:
|
string | 1 to 64 bytes | ||||||||||||
sequence |
The |
float | Any floating point or integer number. | ||||||||||||
serialNumber |
The optional "serialNumber" property specifies a thing's serial number. Typically a serial number uniquely identifies a thing, but things from different manufacturers may have the same serial numbers. It defaults to "unknown" and is a string from 1 to 64 bytes. You can use it to do partial lookups and filtering. |
string | 1 to 64 bytes | ||||||||||||
serviceLibrary |
The "serviceLibrary" property is a string that specifies the filename of a dynamic library that provides the API used by the web application. Library files are located in the <faircom>/server/web/ folder. The full path includes the "serviceLibrary" value — for example, the Monitor app has a "serviceLibrary" name of ctmonitor.dll, and its full path in the file system is <faircom>/server/web/ctmonitor.dll. |
string | The file name for the service library. | ||||||||||||
serviceName |
The "serviceName" property contains the name of a FairCom input or output service. This property is required. See the "params" topic of each specific service for the requirements of this property. The following services are available as of the V5 release:
|
string | A service name between 1 and 64 bytes. | ||||||||||||
serverVersion |
The "serverVersion" property indicates which version of the FairCom server the request was made to. "result": {
"sessionStartTimestamp": "2025-08-28T15:44:56",
"sessionLastAccessedTimestamp": "2025-08-28T18:07:07",
"defaultRetentionPolicy": "autoPurge",
"defaultRetentionUnit": "week",
"defaultRetentionPeriod": 4,
"serverVersion": "FairCom EDGE Server - V4.2.4.109(Build-250819)"
}, |
string | The name of the version of the FairCom server to which the request was made. | ||||||||||||
sessionLastAccessedTimestamp |
The "sessionLastAccessedTimestamp" property indicates the date/time when the session was last accessed. "result": {
"sessionStartTimestamp": "2025-08-27T20:26:25",
"sessionLastAccessedTimestamp": "2025-08-27T20:56:25"
}, |
timestamp | An ISO 8601 timestamp | ||||||||||||
sessionPresent |
Boolean that specifies whether the broker will use a previously stored session state, including the client's previous descriptions. |
Boolean |
|
||||||||||||
sessions |
The "sessions" property is an array of session objects where each session object minimally describes a session. |
array of objects |
|
||||||||||||
sessionStartTimestamp |
The "sessionStartTimestamp" property indicates the date/time when the session was first initialized. "result": {
"sessionStartTimestamp": "2025-08-27T20:26:25",
"sessionLastAccessedTimestamp": "2025-08-27T20:56:25"
}, |
timestamp | An ISO 8601 timestamp | ||||||||||||
sessionType |
specifies which type of session the requested client is currently running. | string |
|
||||||||||||
settings |
The "settings" property contains properties that are specific for each connector type. Settings for Modbus are different than settings for OPC UA, and so forth. See the API reference "params" property of each connector for details of the "settings" property for that connector. Connector-specific "settings" |
object | |||||||||||||
sourceDatabaseName |
The "sourceDatabaseName" property is a string that specifies the database name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
string | 1 to 64 bytes | ||||||||||||
sourceDataField |
The "sourceDataField" property is an optional string that contains the name of a field from an integration table. It defaults to "source_payload". |
string |
|
||||||||||||
sourceDataFilePath |
The "sourceDataFilePath" property is a string that specifies the data file path of the table on the FairCom DB or RTG server that generates the stream's data change events. It can be a full path or a relative path from the server's data directory. |
string | No limits | ||||||||||||
sourceDataFormat |
The "sourceDataFormat" property specifies the format of the "source_payload" field. You can set this property to any of the following values:
|
string enum |
|
||||||||||||
sourceFieldLength |
The
The following field types have a user-defined length:
|
integer | The field's length as defined by the integration table. | ||||||||||||
sourceFieldName |
The optional
|
string | 1 to 64 bytes | ||||||||||||
sourceFields |
The optional "sourceFields" property specifies the fields the FairCom server makes available to the output connector. The server creates a JSON object from the fields you specify, and the output connector uses it as its source data. If "sourceFields" is omitted, set to null or [], the FairCom server defaults to creating a JSON document that contains all fields from the integration table. This default allows the output connector to send data to a device from any field in the table. An integration table has many fields, such as fields populated by transforms and MQTT. Converting all fields into JSON is slower than converting only the fields needed by the output connector. For example, input connectors and MQTT messages store their data in the source_payload field. You can use "sourceFields": ["source_payload"] to make only the source_payload field available to the output connector. When you configure an output connector, you add propertyMap objects to the "propertyMapList". Each propertyMap object extracts data from one field and writes that data to the connected device. The value of the "propertyPath" property is a string containing the path of the data. It always starts with a field name in the "sourceFields" property. For example, if "sourceFields" is set to ["pressure"], then you must set "propertyPath" to "pressure" to use the pressure field’s value in your output. If the value you want to extract is a JSON property nested inside a field, you must add its full path to the "propertyPath". For example, if "sourceFields" is set to ["source_payload"] and source payload contains a JSON object with a "temperature" property, then you must set "propertyPath" to "source_payload.temperature". |
array | One or more fields from the integration table. | ||||||||||||
sourceFieldScale |
The
|
integer | The field's scale as defined by the integration table. | ||||||||||||
sourceFieldType |
The
|
string | The field's type as defined by the integration table. | ||||||||||||
sourceHostname |
The "sourceHostname" property is a required string that specifies a unique host name or TCP/IP address of a FairCom DB or RTG server. | string | 1 to 255 bytes | ||||||||||||
sourceOwnerName |
The "sourceOwnerName" property is a string that specifies the account that owns the table on the FairCom DB or RTG server that generates the stream's data change events. |
string | 1 to 64 bytes | ||||||||||||
sourcePassword |
The "sourcePassword" property is an optional string that specifies the login password of a FairCom DB or RTG server. | string | 1 to 128 bytes | ||||||||||||
sourcePayloadBinaryFormat |
The optional
|
string enum |
|
||||||||||||
sourcePayloadDateFormat |
The optional
|
string enum |
"ccyy.mm.dd""mm.dd.ccyy""mm.dd.yy""dd.mm.ccyy""dd.mm.yy""ccyymmdd""iso8601""yymmdd""utc"
|
||||||||||||
sourcePayloadFormat |
deprecated version of "mqttPayloadType". Please use "mqttPayloadType". | string |
|
||||||||||||
sourcePayloadNumberRounding |
The optional
|
string enum |
|
||||||||||||
sourcePayloadPath |
The required
|
string | 1 to 2048 bytes | ||||||||||||
sourcePayloadTimeFormat |
The optional
|
string enum |
"hh.mm.ss.ttt""hh.mm.am/pm""hh.mm.ss.am/pm""hh.mm.ss""hh.mm""hhmm""iso8601""utc"
|
||||||||||||
sourcePayloadVariantFormat |
The optional
|
string enum |
"json""variantObject""binary""string"
|
||||||||||||
sourcePort |
The "sourcePort" property is an optional integer that specifies the ISAM TCP/IP port of a FairCom DB or RTG server. | int16 | 1 to 65535 | ||||||||||||
sourceServerName |
The "sourceServerName" property is a conditional string that specifies the server name of a FairCom DB or RTG server. It is the name specified by the SERVER_NAME keyword defined in the target server's configuration file, ctsrvr.cfg. The server name used by most FairCom DB and RTG servers is "FAIRCOMS". This property is required if the "sourceHostname" is not defined. | string | 1 to 255 bytes | ||||||||||||
sourceServers |
The "sourceServers" property is a required array containing a list of FairCom DB or RTG server connection objects. FairCom MQ attempts to connect to the first server in the list. If that fails, it attempts to connect to the next one. If it reaches the last server in the list, it attempts to connect to the first. | array of server connection objects | {
"purpose": "Primary Server",
"sourceServerName": "FAIRCOMS",
"sourceHostname": "10.70.13.112",
"sourcePort": 5597,
"sourceUsername": "ADMIN",
"sourcePassword": "ADMIN",
"tls": {
"enabled": true,
"caCertificateFilename": "ca.crt",
"allowedCipherSuites": "",
"clientCertificateEnabled": true,
"clientCertificateFilename": "admin_client.crt",
"clientPrivateKeyFilename": "admin_client.key"
}
}
|
||||||||||||
sourceTableName |
The "sourceTableName" property is a string that specifies the name of the table on the FairCom DB or RTG server that generates the stream's data change events. |
string | 1 to 64 bytes | ||||||||||||
sourceUsername |
The "sourceUsername" property is an optional string that specifies the name of a FairCom DB or RTG server. | string | 1 to 64 bytes | ||||||||||||
sql |
The "sql" property specifies the original SQL statement that was executed. |
string | The original SQL statement | ||||||||||||
startTimestamp |
The "startTimestamp" property specifies the time at which the query was initiated. |
timestamp | A timestamp | ||||||||||||
stats |
contains stats about describeMqSessions. | object |
|
||||||||||||
status |
The optional
When the
To create, alter, and list inactive items, set the |
string enum |
|
||||||||||||
statusCode |
The "statusCode" property displays the status code for the specified broker connection. | integer | See error codes | ||||||||||||
statusMessage |
The "statusMessage" property describes the status code with a written explanation. | string | 0 to 1024 bytes | ||||||||||||
streamingConnection |
The "streamingConnection" property is an object that contains the current values of the streaming connection object that connects FairCom MQ to the source FairCom DB or RTG server. |
object | "streamingConnection": {
"sourceServerName": "FAIRCOMS",
"sourceHostname": "10.70.13.112",
"sourcePort": 5597,
"sourceUsername": "ADMIN",
"sourcePassword": "ADMIN",
"maxSecondsBeforeConnectingToNextServer": 15,
"tls": {
"enabled": true,
"caCertificateFilename": "ca.crt",
"allowedCipherSuites": "",
"clientCertificateEnabled": true,
"clientCertificateFilename": "admin_client.crt",
"clientPrivateKeyFilename": "admin_client.key"
},
"metadata": {}
}
|
||||||||||||
streamingConnectionName |
The "streamingConnectionName" property is a required string that specifies a unique, user-defined name for a streaming connection. The API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server. | string | 1 to 64 characters | ||||||||||||
streamParallelism |
The "streamParallelism" property is an optional integer that specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server. | integer | 1 to 65535 | ||||||||||||
streamingConnectionName |
The "streamingConnectionName" property is a required string that specifies a unique, user-defined name for a streaming connection. The API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server. | string | 1 to 64 characters | ||||||||||||
streamingConnectionNameFilter |
The "streamingConnectionNameFilter" property is an optional string that specifies a partial match for a connection name. | string | 1 to 64 bytes | ||||||||||||
streamingConnections |
The "streamingConnections" property is an array of objects that list the streaming connections that match the filters in the request as separate objects. |
array of objects |
0 or more objects containing 1 or more of the following properties:
|
||||||||||||
streamParallelism |
The "streamParallelism" property is an optional integer that specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server. | integer | 1 to 65535 | ||||||||||||
stringFormat |
The optional "stringFormat" property in "responseOptions" changes how "char", "varchar", "lvarchar", and "variant" string field values are returned. This property applies to all "getRecords..." actions, except for "getRecordsUsingSql" because SQL controls the format of strings it returns. |
string |
|
||||||||||||
subscribedTopics |
The "subscribedTopics" property lists the topics that the specified topic is subscribed to. | array | No limits | ||||||||||||
subscriberCount |
specifies the number of subscribers | integer | Number of subscribers | ||||||||||||
tableName |
The required See table name in System limits for the table naming requirements and limitations. "params": {
"tableName": "ctreeTable"
} |
string | 1 to 64 bytes | ||||||||||||
tableReplicationReady |
The "tableReplicationReady" property enables the transaction log on the persistence table. Transaction logs must be enabled before a table can be replicated. | Boolean |
|
||||||||||||
tagChanges |
The "tagChanges" property is a string that specifies when to add "changed": true to field objects in the data change event to indicate when a field changed value. |
string |
|
||||||||||||
tagDataType |
The optional
|
string enum |
"string""number" "boolean" "date" "time" "timestamp" "json" "variant" "binary"
|
||||||||||||
tagName |
The required
|
string | 1 to 256 bytes | ||||||||||||
tagNames |
The required
|
string | 1 to 256 bytes | ||||||||||||
thingName |
The required "thingName" property is a string that specifies the unique name of a thing. It is a string from 1 to 64 bytes. It cannot be the empty string "". |
string | 1 to 64 bytes | ||||||||||||
thingNames |
The required "thingNames" property is an array of strings that specifies one or more thing names. Each item in the array is the exact name of a thing. It is a string from 1 to 64 bytes. You can use it to describe or delete things. |
array of strings | 1 or more thingName strings | ||||||||||||
things |
The "things" property occurs in the response to Tag API actions when the "includeThingProperties" property is in the request. It is an array of objects that contains all devices and software related to a tag. Each object contains the requested device properties. See "includeThingProperties" for examples and additional information. |
array of objects | All devices and software related to a tag. | ||||||||||||
thingType |
The optional
This API uses the Label API to manage types.
|
string | 1 to 64 bytes | ||||||||||||
testDatabaseName |
The optional "testDatabaseName" property specifies the database of the test table where this action tests the transform steps. When set to null or omitted, the server uses the default "databaseName" defined in the "createSession" action. For more information, see the "createSession" action and the "defaultDatabaseName" property.
|
string | 1 to 64 bytes | ||||||||||||
testOwnerName |
The optional "testOwnerName" property specifies the owner account of the test table where this action tests the transform steps. When set to null or omitted, the server uses the default "ownerName" defined in the "createSession" action. For more information, see the "createSession" action and the "defaultOwnerName" property.
|
string | 1 to 64 bytes | ||||||||||||
testTableName |
The required "testTableName" property specifies the name of the test table where this action tests the transform steps.
|
string | 1 to 64 bytes | ||||||||||||
testTransformScope |
The "testTransformScope" property is the same value specified in the call to the "testIntegrationTableTransformSteps" to the action. | string enum |
|
||||||||||||
threads |
The "threads" property is the number of threads assigned to a topic to write published messages to disk. This property is optional. The default value is 1.
|
integer |
|
||||||||||||
tls |
The "tls" property is a JSON object that defines the public server certificate filename, the private key filename, the certificate authority filename, the cipher suites that are allowed, and whether the client certificate is required. This property is optional. It defaults to an empty object.
|
object |
|
||||||||||||
topic |
The "topic" property is an optional string that specifies the MQTT topic on the external broker to which messages will be forwarded. |
string | A topic name between 1 and 65,500 bytes | ||||||||||||
topics |
The "topics" property occurs in the response to Tag API actions when the "includeTopicProperties" property is in the request. It is an array of objects that contains all topics related to a tag. Each object contains the requested topic properties. See "includeTopicProperties" for examples and additional information. |
array of objects | All topics related to a tag. | ||||||||||||
totalRecordCount |
The "totalRecordCount" property contains the total available number of records that can be returned from a query.
|
integer | -1 to 99999999999999999999999999999999 |
||||||||||||
transactionId |
The "transactionId" property identifies a server-generated ID that represents a point in the progress of a transaction. |
string | 0 to 255 bytes | ||||||||||||
transactionSavePointId |
The "transactionSavepointId" is a string that the server generates and returns in a "createTransactionSavepoint" action. The generated ID represents a point in a transaction's progress. In requests, it defaults to an empty string.
|
string | 0 to 255 bytes | ||||||||||||
transformBufferInitialBytes |
The "transformBufferInitialBytes" property is optional and defaults to 0. It is a positive integer that specifies the number of bytes for the session to allocate initially for its transform buffer. Omit this property or set it to 0 when you do not plan on using the "transformCodeName" property to transform the JSON returned from the "getRecords..." actions. If you plan on transforming the JSON, you can set the "transformBufferInitialBytes" property to the number of bytes that you anticipate the server will need to store the results of each transform. If the server needs more memory, it automatically increases the buffer size; thus, this property is an optimization that helps prevent the server from doing expensive memory allocations. |
integer | 0 or more bytes | ||||||||||||
transformPercentComplete |
The "transformPercentComplete" property is an integer between 0 and 99 that is an estimate of the transformation progress when either the "rerunIntegrationTableTransformSteps" or "testIntegrationTableTransformSteps" action is transforming existing records in the integration table.
|
integer | 0 to 99 | ||||||||||||
transformServices |
The "transformServices" property is an optional array of objects that describes and controls FairCom's transform services. It defaults to the services connected when the server last started up. "transformServices" [
{
"serviceName": "siemensUDT2JSON",
"serviceLibrary": "siemensudtservice.dll",
"enabled": true
}
], |
array of objects |
|
||||||||||||
transformStatus |
The "transformStatus" property is a string that describes the state of the transform process. Example values include "running" and "done". | string | the status of the transform | ||||||||||||
transformStepMethod |
The "transformStepMethod" property is a required string that specifies the type of transform, such as the "javascript" transform method that runs JavaScript to change the table's data or the "jsonToTableFields" transform method that extracts values from properties in a JSON field and stores them in other fields.
The value of the "transformStepMethod" affects the value of the "transformService" property. The following table defines the possible values of the "transformService" property when combined with the "transformStepMethod". Notice that some transform step methods are built into the server and do not require you to specify the "transformService".
|
string enum |
|
||||||||||||
transformStepName |
The "transformStepName" property is an optional string that assigns a name to each transform step. |
string | 1 to 64 bytes | ||||||||||||
transformSteps |
specifies an array of transform objects. | array of objects | 0 or more objects | ||||||||||||
transformStepService |
The "transformStepService" property is an optional string that specifies the name of a transform service, which is the user-defined name for a library (.dll, .so, .dylib) that implements the transform step method. This property allows you to register your own transform libraries or use an older version of a FairCom library for backward compatibility. Transform services are defined in the services.json file under the "transformServices" section. You can add and remove transform libraries to this list, such as your own transform libraries or specific versions of FairCom's transform libraries. Use the "serviceName" property to give each transform library a unique transform service name and use the "serviceLibrary" property to specify the filename of the library that implements the transform step method. On Windows the library filename ends with .dll. On Linux it ends with .so. On MacOS it ends with .dylib. Lastly, you must enable the transform service by setting "enabled" to true. Example "transformServices" section in the services.json file. "transformServices": [
{
"serviceName": "v8TransformService",
"serviceLibrary": "v8transformservice.dll",
"enabled": true
}
],
|
string | 1 to 64 bytes | ||||||||||||
triggers |
The "triggers" property is an array of enumerated strings that specifies a list of events on a table that create data change events. | array of enum strings |
|
||||||||||||
type |
Identifies the type of the field. See Data types. | string |
|
||||||||||||
unmatchedKeys |
The
|
array of strings | zero or more key strings | ||||||||||||
updatedBy |
The "updatedBy" property indicates the name of the account last used to update the code package. "result": {
"data": [
{
"createdBy": "ADMIN",
"createdOn": "2025-08-25T21:48:38.109",
"updatedBy": "ADMIN",
"updatedOn": "2025-08-25T21:48:38.109"
},
] |
string | The name of the account last used to update the code package. | ||||||||||||
updatedOn |
The "updatedOn" property indicates the date and time the code package was last updated. "result": {
"data": [
{
"createdBy": "ADMIN",
"createdOn": "2025-08-25T21:48:38.109",
"updatedBy": "ADMIN",
"updatedOn": "2025-08-25T21:48:38.109"
},
] |
timestamp | The date and time the code package was last updated. | ||||||||||||
updatedTimestamp |
The "updatedTimestamp" property is the date and time when the thing was last updated. It is the same as the "createdTimestamp" property when the thing has never been updated. It is returned in ISO 8601 format, such as "2025-08-28T10:47:13.041". |
timestamp | ISO 8601 timestamp | ||||||||||||
uri |
The "uri" property specifies the identifier name of the Rest resource. | string | 1 to 1024 bytes | ||||||||||||
uriPath |
The "uriPath" property is optional. It is a string that indicates the path where the "serviceLibrary" file is stored. If specified, this value is appended to the default <faircom>/server/web/ folder path. |
string | The file path for the service library. | ||||||||||||
username |
The "username" property is a required string from 1 to 64 bytes. It is the account name of a user or application. It is required by the "createSession" action for authentication. All API actions are performed in the context of the account identified by "username". For example, all tables created by an account are owned by the account. All queries use tables owned by the account. In JSON DB API and JSON Hub API, use the "ownerName" property to cause an action to use a different account name than the value of "username". This allows an account to use tables created by another account and to create tables that are owned by another account. Unlike other property names, such as "databaseName", "username" is all lowercase. A zero-length username is invalid.
In Key-Value actions, the
|
string
Defaults to the account name of the currently logged-in user for Key-Value actions |
1 to 64 bytes | ||||||||||||
validateMqttPayload |
The "validateMqttPayload" property determines whether the FairCom server will attempt to validate the incoming MQTT message payload against the expected data type specified in the "mqttPayloadType" property. | Boolean |
|
||||||||||||
value |
The
When you use the
In Key-Value actions, the required |
JSON | 0 to 65,500 bytes | ||||||||||||
variantFormat |
string |
|
|||||||||||||
verifyLinks |
The "verifyLinks" property is an optional Boolean property. When omitted or null, it defaults to true. When true, the action verifies that the specified labels, records, and tables exist. If your application has already validated that the labels, records, and tables exist, it can set "verifyLinks" to false, which provides a performance boost because the action does not need to look up this information. |
Boolean |
|
||||||||||||
willPayload |
The "willPayload" property is required when a will message is present. It contains the payload of the last will message. You can set it to any JSON value, including binary values embedded in a JSON string or array. |
JSON | |||||||||||||
willQoS |
The property "willQoS" is reserved. The server sets it to 2. |
integer | |||||||||||||
willRetain |
The "willRetain" property is optional. It defaults to false. When true, it tells the FairCom server to send the will message to new subscribers as the first message they receive when subscribing to a topic. |
Boolean |
|
||||||||||||
willTopic |
The "willTopic" property is optional. It is a UTF-8 string containing the topic that the FairCom server will use to publish the will message. If you set it to an empty string, "", null, or omit it, the FairCom server will not add the will message to the connection. | UTF-8 string |




