HTTP Ingester API
There are three RESTful endpoints within the HTTP Ingester which are described in detail below:
POST /documents/{route}/upload
Where {route}
should be replaced with the appropriate route name configured in the application.
This endpoint accepts a content type of multipart/form-data
allowing multiple native documents to be uploaded at once.
A number of headers can also be added to the request which will be passed on to the Kafka message and propagate through the document pipeline. These headers include:
Request-ID
: A unique ID for the request.Distribution-Id
: The distribution ID for the documents being uploaded.Security-Label
: The default security label that applies to the documents being uploaded.Policy-Information
: The EDH or IDH policy information for the documents being uploaded.
On successful upload the endpoint will return a JSON response like the example below with an HTTP status code of 202.
{
"documents": [
{
"successful": true,
"filename": "example.pdf",
"id": "33002c05-a04e-4915-9bf8-9fdf6e9096e6",
"status": "Accepted by route local"
}
]
}
In the event of an error during upload, a response code of 400 will be returned together with a response such as the following:
{
"documents": [
{
"successful": false,
"filename": "example_too_large.pdf",
"id": "46c52572-ef6d-4ca2-81db-e8c280be32af",
"status": "Exceeds maximum permitted document size 681574"
}
]
}
GET /healthz
This endpoint returns the health status of the service as well as information the current configuration being used. An example response is shown below:
{
"healthy": true,
"config": {
"local": {
"name": "local",
"topic": "ingested_content",
"namespace": "https://example.org/ns#",
"securityLabel": null,
"headers": [
{
"name": "Owner",
"defaultValue": "Platform Team",
"priority": "CONFIGURATION"
},
{
"name": "Distribution-Id",
"defaultValue": "13bce3bf-7edb-4efb-a54f-574327458dd7",
"priority": "REQUEST"
},
{
"name": "Policy-Information",
"defaultValue": "{\"EDH\":{\"classification\":\"O\",\"permittedNats\":[\"GBR\"],\"permittedOrgs\":[\"Telicent\"],\"orGroups\":[],\"andGroups\":[]}}",
"priority": "REQUEST"
}
]
}
}
}
GET /version-info
This endpoint returns version for the HTTP Ingester as well as some of its internal dependencies. An example response is shown below:
{
"http-ingester": {
"buildEnv": "Mac OS X 15.6 (aarch64)",
"groupId": "io.telicent.smart-caches.documents",
"name": "Telicent Smart Caches - Documents - Services - HTTP Ingester",
"artifactId": "http-ingester",
"version": "0.1.0-SNAPSHOT",
"revision": "fd0fd8bab309ccb4a6669c9a4f5ff1f18bf46d29",
"timestamp": "2025-08-07 12:19:44"
},
"projectors-core": {
"buildEnv": "Linux 6.11.0-1018-azure (amd64)",
"groupId": "io.telicent.smart-caches",
"name": "Telicent Smart Caches - Projectors - Core API",
"artifactId": "projectors-core",
"version": "0.29.3",
"timestamp": "2025-07-29 13:35:57",
"revision": "01f67817b76766a8d5fe2f6825361122fcb0eb58"
},
"routes-api": {
"buildEnv": "Mac OS X 15.6 (aarch64)",
"groupId": "io.telicent.smart-caches.documents",
"name": "Telicent Smart Caches - Documents - Routes API",
"artifactId": "routes-api",
"version": "0.1.0-SNAPSHOT",
"revision": "fd0fd8bab309ccb4a6669c9a4f5ff1f18bf46d29",
"timestamp": "2025-08-07 12:19:42"
},
"jaxrs-base-server": {
"buildEnv": "Linux 6.11.0-1018-azure (amd64)",
"groupId": "io.telicent.smart-caches",
"name": "Telicent Smart Caches - JAX-RS Base Server",
"artifactId": "jaxrs-base-server",
"version": "0.29.3",
"timestamp": "2025-07-29 13:36:53",
"revision": "01f67817b76766a8d5fe2f6825361122fcb0eb58"
},
"event-source-kafka": {
"buildEnv": "Linux 6.11.0-1018-azure (amd64)",
"groupId": "io.telicent.smart-caches",
"name": "Telicent Smart Caches - Event Sources - Kafka",
"artifactId": "event-source-kafka",
"version": "0.29.3",
"timestamp": "2025-07-29 13:36:24",
"revision": "01f67817b76766a8d5fe2f6825361122fcb0eb58"
}
}