Table of Contents


Overview

Tanium is an endpoint management and security platform. An agent runs on every managed machine and the agents form a peer chain, so a question asked at the console propagates across the estate and answers come back in seconds rather than through a central server polling each device in turn. That architecture is what makes Tanium useful as a source of truth about endpoints: it reports what is on the machine now, not what a scan recorded some time last month. The Asset module builds on that live data to keep a normalised inventory of hardware, installed software, network identity and last-seen times, and publishes it over a REST API.

The ReadyWorks connector calls that REST API through the json_rest_api.php driver. Authentication is different from the password-based connectors: no authentication recipe is stored, and the credential travels as a custom header on the request itself. The connection form ships with one header pre-populated, named session, and you paste a Tanium token into its value. You also supply the API domain of the Tanium server and a server-side working path used while responses are parsed.

Tanium is normally the strongest device feed an organisation has, which makes it the natural spine of the ReadyWorks estate rather than one more source among many. Reconciling it against Active Directory, the CMDB and the endpoint-management tools exposes the machines each of those has wrong: devices present in the directory that no agent has seen for months, devices reporting to Tanium that no asset record covers, and hardware specifications that decide whether a machine can take the next operating system. Last-seen times and hardware attributes together drive readiness scoring and wave assignment for device refresh and platform migration programmes.

The connector is registered as bidirectional. Two inbound templates ship, one of them a real Asset pull and the other a blank REST shell, and both are disabled until you enable them. The outbound side posts a record from ReadyWorks to an endpoint you nominate and captures status, message and record key from the reply, and it ships untargeted.

NOTE: The “Get Devices” template calls a path under the Asset module plugin. Deployments that have Tanium without the Asset module licensed and installed will get an error from this endpoint rather than data.

Connector Properties

PropertyValue
IdentifierTANIUM
NameTanium
DescriptionConnector for pulling Device data from Tanium
Job TypesBoth Inbound and Outbound
Order130
EnabledYes
LockedYes
Block UpdateNo
Single AuthenticationNo
Windows OnlyNo
Connector Version2025-11-18
HooksNone
Additional Job FieldsNone
Image

Authentication Methods

Tanium offers a single authentication method, and it is the default for new connections. It sends a token in a custom header instead of negotiating a credential.

MethodIdentifierBase MethodScriptOrderEnabledConfig Fields
TaniumTANIUM_customJSON Rest API_customjson_rest_api.php60Yes4

Method 1: Tanium (TANIUM_custom)

Connect to a GET method API with custom header fields

Sends whatever headers you define in the Custom Header Fields list on every request. The list is pre-populated with one entry named session, which is the header Tanium’s API expects the token in, and its value is stored encrypted. Paste a Tanium API token generated for a service account with read access to the Asset data you intend to collect.

Connection Configuration Fields (4)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
210Custom Header Fieldsfields_listYes[{"name":"session","value":""}]Enter the list of custom header fields for the connection
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

No authentication recipe is stored. The driver script authenticates natively using the fields above.

NOTE: ReadyWorks stores the header value exactly as entered and never refreshes it. If you use a token that expires, collection stops silently on the expiry date and the token has to be regenerated in Tanium and re-entered here.

NOTE: No authentication recipe is stored against this method, so there is no separate authentication call for a Single Authentication setting to suppress. This is why the connection form does not offer that field.

Inbound Job Fields Enabled (44)

Inbound jobs expose the full REST field set, including three levels of enumeration and all five pagination modes.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
20Job SchedulelookupYesDailySelect frequency Job should run
30EnabledradioYesYesChoose if Job is enabled
40Use Unparsed DataradioNoNoChoose if you wish to parse the incoming data, or leave it in its raw format
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
70Destination TabletextYesEnter name of the destination table
80Data IdentitytextNoEnter identity of the Job
120Append New Data to Existing TablesradioNoNoChoose if new data will append to the existing destination table, or will create a new destination table
130Fields to IndextextNoEnter fields to index
170Method TypeselectYesGETSelect method type of the Job
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
220Raw JSON Body DatatextareaNoEnter the raw JSON body to send. Do not use body selections in the API Parameters if this is used.
230API Return Data NodetextNoEnter API return data node of the Job
250Pagination TypeselectNoNoneSelect request paging type of the Job
270API Pagination NodetextNoEnter API pagination node of the Job
280Pagination Offset StarttextNoEnter request paging offset start of the Job
290Pagination LimittextNoEnter request pagination limit of the Job
300Pagination Termination NodetextNoEnter request paging termination node and value of the Job
310Maximum API CallstextNoEnter maximum number of API calls for the Job to make
320Enumeration 1 TypeselectNoNoneEnter enumeration level 1 type
330Enumeration 1 ETL JoblookupNoSelect ETL job for the enumeration values
340Enumeration 1 Data Typedata_typeNoSelect the data type and fields for enumeration 1 values
350Enumeration 1 Keys End PointtextNoEnter enumeration 1 keys end point of the Job
360Enumeration 1 NodetextNoEnter enumeration 1 node of the Job
370Enumeration 1 Fieldsfields_listNoEnter enumeration 1 fields of the Job
380Enumeration 2 TypeselectNoNoneEnter enumeration level 2 type
390Enumeration 2 ETL JoblookupNoSelect ETL job for the enumeration 2 values
400Enumeration 2 Data Typedata_typeNoSelect the data type and fields for enumeration 2 values
410Enumeration 2 Keys End PointtextNoEnter enumeration 2 keys end point of the Job
420Enumeration 2 NodetextNoEnter enumeration 2 node of the Job
430Enumeration 2 Fieldsfields_listNoEnter enumeration 2 fields of the Job
440Enumeration 3 TypeselectNoNoneEnter enumeration level 3 type
450Enumeration 3 ETL JoblookupNoSelect ETL job for the enumeration 3 values
460Enumeration 3 Data Typedata_typeNoSelect the data type and fields for enumeration 3 values
470Enumeration 3 Keys End PointtextNoEnter enumeration 3 keys end point of the Job
480Enumeration 3 NodetextNoEnter enumeration 3 node of the Job
490Enumeration 3 Fieldsfields_listNoEnter enumeration 3 fields of the Job
500Pause EnumerationtextNoEnter values for pausing enumeration every X calls for Y seconds
510Kill Enumeration on ErrorradioNoNoChoose to stop the enumeration loop on an error or continue processing the loop
520Additional Fieldsfields_listNoEnter list of additional fields to add to staging data
550Retry PausetextNoEnter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds.
560OrdertextYesEnter order of the Job

NOTE: Several labels and tooltips in this form carry defects inherited from the shared ETL5 field templates: the Enumeration 1 Node label reads “Enumaration”, the Append New Data label reads “Exisiting”, and the help text on Enumeration 1 Keys End Point and Enumeration 3 Fields both refer to enumeration 2. The underlying fields behave as their labels say.

Outbound Job Fields Enabled (13)

Outbound jobs expose the REST posting field set, including the outbound field list, the return data mapping and an optional raw JSON body template.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
30EnabledradioYesYesChoose if Job is enabled
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
170Method TypeselectYesGETSelect method type of the Job
180Data Sending MethodselectYesJSON Encoded DataSelect method for sending the outbound data
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
260Return Data Fields Listfields_listYesEnter return data fields of the Job
530Outbound Fields Listfields_listYesEnter outbound fields of the Job
540Ignore Empty Outbound FieldsradioNoYesIgnore, and do not include, any outbound fields that are empty and have no data
550Raw JSON Outbound TemplatetextareaNoEnter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields.
560OrdertextYesEnter order of the Job

Inbound Job Templates (2)

Two inbound templates ship: one real Asset collection and one blank REST shell. Both are disabled by default, so enabling “Get Devices” is the first thing to do after testing the connection.

#Job DescriptionDestination TableAPI End PointEnabledWhat It Pulls
1Rest GET APIapi_dataNot setNoAn empty starting point for a GET request, with no API End Point, no return data node and no pagination, writing to a placeholder staging table called api_data. Clone it when you need a Tanium endpoint that “Get Devices” does not cover.
2Get Devicestanium_devices/plugin/products/asset/v1/assetsNoA GET against the Asset module’s assets resource, returning the normalised endpoint inventory Tanium maintains: one row per managed device with its hardware, identity and last-seen attributes as defined by the Asset view the job requests. Rows land in tanium_devices on the Weekly schedule. It pages through the full set 100 records at a time, following the meta.nextAssetId cursor from one call to the next and stopping when the response reports meta.endOfReader as true.

Job Template Configuration

Settings Common to All Two Templates

SettingValue
EnabledNo
Allow Empty TableYes
Append Files to Same Destination TableNo
Append New Data to Existing TablesNo
Use Unparsed DataNo
Convert UUID-Keyed Objects to RowsNo
Ignore XML AttributesNo
Log Raw API CallsNo
Method TypeGET
Body Data Sending MethodJSON Encoded Data

Settings That Vary by Template

TemplateIDOrderJob ScheduleDestination TableData IdentityAPI End PointAPI Return Data Node
Rest GET API20710Daily (15 1 * * *)api_dataapi_dataNot setNot set
Get Devices20820Weekly (30 1 * * 0)tanium_devicestanium_devices/plugin/products/asset/v1/assetsdata

Settings That Vary by Template (continued)

TemplateIDPagination TypeAPI Pagination NodePagination LimitPagination Offset StartPagination Termination Node
Rest GET API207Not setNot setNot setNot setNot set
Get Devices208Next Record Nodemeta.nextAssetId1000meta.endOfReader=true

Job Parameters and Enumeration

Get Devices

API data parameters:

KeyValue
viewId2
minimumAssetId%pagination_offset%
limit%pagination_limit%

NOTE: “Get Devices” is the only template in this connector with pagination fully configured. It uses cursor paging on meta.nextAssetId with an explicit termination condition, which is the pattern to copy if you build further Asset jobs.

Outbound Job Templates (1)

One outbound template ships, and it is the generic REST skeleton.

#Job DescriptionMethodAPI End PointEnabledWhat It Does
1Rest POST APIPOSTNot setNoAn empty POST job. It sends a single required string field named record_key as a JSON body to an endpoint you supply, and reads status, message and data.record_key back out of the response.

Job Template Configuration

Settings

SettingValue
Order10
EnabledNo
Log Raw API CallsNo
Method TypePOST
Body Data Sending MethodJSON Encoded Data
Data Sending MethodJSON Encoded Data
Ignore Empty Outbound FieldsYes

Job Parameters and Enumeration

Rest POST API

Outbound fields list:

LabelNameTypeRequiredPattern
Record Keyrecord_keyStringon

Return data fields:

LabelName
Return Statusstatus
Return Messagemessage
Record Keydata.record_key
Last updated on 11/4/2026

Attachments