HookMesh & CDR Integration Document Legacy Version(s)
This page group has the documentations about old versions of HookMesh, if you will/are using the versions v2.1.4 do not follow the documentation here.
Documentation
The system provides a way to run files through a specific flow (e.g., for CDR sanitization) and then retrieve the analysis results once processing is complete. The workflow is as follows:
POST File to Flow: Submit a file to a specified flow for processing.
Check Submission Status: Poll the system until the file processing is complete, through /listen/{uuid} request.
Download Sanitized File: Once the processing is done, download the sanitized file if available(CDR has been successfully ran).
Authentication
All requests to the public API endpoints require an Authorization
header containing a Bearer token:
Authorization: Bearer <hookmesh api token>
Replace <hookmesh api token>
with your valid token.
Endpoints
Run Flow
Endpoint:
POST /public-api/runFlow/{flowId}
Description: This endpoint takes in a file, processes it through the specified flow, and returns a UUID representing the submission. Use this UUID to check the status and retrieve results.
Path Parameters:
flowId
(string, required): The ID or Alias of the flow.
Headers:
Authorization: Bearer <hookmesh api token>
Request (multipart/form-data):
file
: The file to be analyzed/sanitized. Provide the file from your local system.
cURL Example:
curl --location 'https://<IP_OR_DOMAIN>/public-api/runFlow/{flowId}' \
--header 'Authorization: Bearer <hookmesh api token>' \
--form 'file=@"/path/to/yourfile.pdf"'
Success Response Example:
{
"uuid": "fc10193b-eb5c-4c8c-be09-d9b325bf3cca",
"message": "Successfully ran the flow, you can check your submission by sending GET request to /listen/:uuid."
}
Notes:
After you get the success message, you will need to periodically query the
/listen/{uuid}
endpoint to check the submission status.
Listen for Submission Results
Endpoint:
GET /public-api/listen/{uuid}
Description: Check the status of a previously submitted file. Once processing is complete, details about the sanitized file and other metadata are returned.
Path Parameters:
uuid
(string, required): The UUID returned from therunFlow
request.
Headers:
Authorization: Bearer <hookmesh api token>
cURL Example:
curl --location 'https://<IP_OR_DOMAIN>/public-api/listen/541c5d79-86b3-423f-b320-7a4bda1ed2f1' \
--header 'Authorization: Bearer <hookmesh api token>'
Example Successful Response
{
"submission": {
"result": [
{
"moduleId": "6731ed402266ca5d56e95a7f",
"moduleName": "CDR",
"startTime": "17 December 2024 14:20:49",
"endTime": "17 December 2024 14:20:53",
"moduleData": {
"link": "https://<IP_OR_DOMAIN>/public-api/download/module_result?moduleId=6731ed402266ca5d56e95a7f&uuid=541c5d79-86b3-423f-b320-7a4bda1ed2f1"
},
"links": [
{
"link": "https://<IP_OR_DOMAIN>/public-api/download/module_file?id=676188c5efb6046f975337a7&uuid=541c5d79-86b3-423f-b320-7a4bda1ed2f1",
"linkName": "HookMesh_Docs_sanitized.pdf"
}
]
}
],
"uuid": "541c5d79-86b3-423f-b320-7a4bda1ed2f1",
"filename": "HookMesh_Docs.pdf",
"fileSize": 63970,
"source": "<IP_OR_DOMAIN>",
"status": {
"statusID": 3,
"statusString": "Completed"
},
"level": "Not Measured",
"sanitized": true,
"submissionDate": "17 December 2024 14:20:49",
"startDate": "17 December 2024 14:20:49",
"endDate": "17 December 2024 14:20:53",
"createdAt": "17 December 2024 14:20:49",
"updatedAt": "17 December 2024 14:20:53",
"hashes": {
"md5": "e74f9fdc64e4890e23fca50f3bbf9e4b",
"sha1": "b0a6a46a985c6abf5b570cadb68978a7511585e6",
"sha256": "c2ae040166d35ddc5546129b0b9e9ea70d8ea1504639d891b030f40ee5365ca7"
}
}
}
Response Details
submission.status.statusID
indicates the current status of processing:1
or2
: Processing or pending.3
: Completed (File has been analyzed and sanitized).
submission.hashes
includes hash values (MD5, SHA1, SHA256) for the submitted file.submission.level
indicates the risk or maliciousness level of the file if available.Not Measured
Informative
Suspicious
Malicious
Download Sanitized File
Endpoint:
GET /public-api/download/module_file?id={moduleId}&uuid={uuid}
PS: Since this link will be provided in both Webhook & Listen Request you don't need to build this URL in your own, just use the URL provided to you in result[0].links[0].link
.
Query Parameters:
id
(string, required): The module ID retrieved from the listen response.uuid
(string, required): The UUID retrieved from the original submission.
Headers:
Authorization: Bearer <hookmesh api token>
cURL Example:
curl --location 'https://<IP_OR_DOMAIN>/public-api/download/module_file?id=676188c5efb6046f975337a7&uuid=541c5d79-86b3-423f-b320-7a4bda1ed2f1' \
--header 'Authorization: Bearer <hookmesh api token>' \
--output sanitized_file.pdf
Troubleshooting
401 Unauthorized: Ensure your
Authorization
header and token are correct.404 Not Found: Check if you used the correct
uuid
ormoduleId
.Timeouts: The sanitization process can take time. If no webhook is used, continue polling until completion.
If you checked this document and still the issue persists, send email to [email protected]
Last updated