cURL
Deploying Pipelines
Create
Create or update a distributed pipeline
POST
cURL
Destinations
There are currently three flavors of destinations available via self-service APIs: Webhooks, WebSockets, and Postgres. There are 16 total that are currently supported by Indexing Co generally though - reach out if you need something else!Webhooks
Here’s an example payload for creating a pipeline that delivers to a webhook:Signing deliveries (HMAC)
For sensitive payloads you can have each delivery signed so your endpoint can verify it came from us, was not modified in transit, and is not a replay. Add asigning block to the webhook connection:
header and tsHeader are optional and default to X-Indexing-Signature and X-Indexing-Timestamp. Each delivery then carries:
| Header | Value |
|---|---|
X-Indexing-Timestamp | Unix time in seconds when the request was signed |
X-Indexing-Signature | sha256=<hex>, where <hex> = HMAC_SHA256(secret, "<timestamp>.<body>") |
"<timestamp>.<rawBody>" and compare it to X-Indexing-Signature in constant time:
Verify against the raw request body bytes, not a re-serialized JSON object — whitespace or key-ordering differences will break the comparison. In Express, capture the raw body with
express.json({ verify: (req, _res, buf) => { req.rawBody = buf.toString('utf8'); } }).WebSockets
Here’s an example payload for creating a pipeline that delivers to a websocket:Postgres
Here’s an example payload for creating a pipeline that delivers to a Postgres database:Make sure your database table is already setup! Importantly, this also includes ensuring that there’s a unique / primary key index on the table matching the provided
uniqueKeys in the pipeline.