Manifest Files
When the Tenable system finishes sending payload files, it sends a manifest file that lists the files in the order they were sent, along with metadata and file paths. The system generates a manifest file as often as every 15 minutes.
Using Manifest Files
You can reference manifest files when building logic to ingest vulnerability data into your application. To do this, apply a handler to the manifest file so the resulting process consumes payload files in order.
For example, let’s say the Tenable system sends 100 findings payload files to your AWS bucket between 12:00 PM and 12:15 PM and they are saved in …/finding/<export-date>/. At 12:15 PM, the system sends a manifest file to …/manifest_finding/<export-date>/ in this format with a list of the files.
This process works the same way for all payload file types: assets, findings, and tags.
Manifest File Properties
The following table defines the properties that appear in Tenable Data Stream manifest files.
Property | Data Type | Description |
---|---|---|
type | string | The type of manifest file: MANIFEST_ASSET, MANIFEST_FINDING, or MANIFEST_TAGS. |
payload_type | string | The type of payload the manifest contains: ASSET, FINDING, or TAGS. |
payloads[].path | string | The path to the payload file in your AWS bucket. |
payloads[].md5 | string | The MD5 hash value of the payload file. |
payloads[].version | integer | The version identifier for the manifest file. |
payloads[].num_updates | integer | The number of updates in the payload file. |
payloads[].num_deletes | integer | The number of deleted items in the payload file. |
payloads[].first_record_timestamp | integer | The Unix timestamp of the first entry in the payload file. |
payloads[].last_record_timestamp | integer | The Unix timestamp of the last entry in the payload file. |
payloads[].scan_id | string | The grouping ID for assets, findings, or tags in the payload file. If there is no grouping ID, this value is empty. |
Example Manifest Files
The following examples show the format of the manifest files sent by the Tenable system. In the files, each payload file is one object in an array.
Asset Manifest File
{
"type": "MANIFEST_ASSET",
"payload_type": "ASSET",
"payloads": [
{
"path": "path-prefix/asset/2024-09-23/asset-1727096558876-17-5a0ffa7d-6b2c-4af6-a0f1-f506fe769dba.json.gz",
"md5": "c515b063ad68680fc90257444f782e94",
"version": 1,
"num_updates": 1,
"num_deletes": 0,
"first_record_timestamp": 1727096558490,
"last_record_timestamp": 1727096558490,
"scan_id": "5a0ffa7d-6b2c-4af6-a0f1-f506fe769dba"
}
]
}
{
"type": "MANIFEST_FINDING",
"payload_type": "FINDING",
"payloads": [
{
"path": "path-prefix/finding/2024-09-23/finding-1727096618967-60-5a0ffa7d-6b2c-4af6-a0f1-f506fe769dba.json.gz",
"md5": "e6919aaffa6967e0c6de3908c9a04a78",
"version": 1,
"num_updates": 2,
"num_deletes": 0,
"first_record_timestamp": 1727096618799,
"last_record_timestamp": 1727096618820,
"scan_id": "5a0ffa7d-6b2c-4af6-a0f1-f506fe769dba"
}
]
}
Tags Manifest File
{
"type": "MANIFEST_TAGS",
"payload_type": "TAGS",
"payloads": [
{
"path": "path-prefix/tags/2024-09-23/tags-1727096866393-5.json.gz",
"md5": "d641c41a287911d4779d1215edb2406d",
"version": 1,
"num_updates": 1,
"num_deletes": 0,
"first_record_timestamp": 1727096866345,
"last_record_timestamp": 1727096866345,
"scan_id": ""
}
]
}