Store API
The supervisor exposes a HTTP API for interacting with the store. By default, it
listens on a Unix domain socket at ./store/sock
.
Endpoints
GET /
Cat the stream
# Cat all framescurl --unix-socket ./store/sock http://localhost/
# Long poll for new framescurl --unix-socket ./store/sock -H "Accept: text/event-stream" \ "http://localhost/?follow=true"
Query Parameters:
follow
- Long poll for new framestail
- Begin reading from end of streamlast_id
- Start reading from specific frame IDlimit
- Maximum number of frames to return
Response: newline-delimited JSON frames or SSE stream, based on Accept header.
Use "Accept: text/event-stream"
for SSE.
POST /{topic}
Append frame to topic
curl --unix-socket ./store/sock \ -H "xs-meta: {\"key\":\"value\"}" \ -X POST --data "content" \ "http://localhost/topic?ttl=forever"
Query Parameters:
ttl
- Time-to-live for frame:forever
- Never expireephemeral
- Remove after readingtime:<ms>
- Expire after durationhead:<n>
- Keep only N most recent frames
Headers:
xs-meta
- Optional JSON metadata
Response: Frame JSON
GET /{id}
Get frame by id
curl --unix-socket ./store/sock http://localhost/03BCPN2DNQ529QRQKBQCZ4JV4
Response: Frame JSON or 404 if not found
DELETE /{id}
Remove frame
curl --unix-socket ./store/sock -X DELETE \ http://localhost/03BCPN2DNQ529QRQKBQCZ4JV4
Response: 204 on success
GET /head/{topic}
Get most recent frame for topic
curl --unix-socket ./store/sock http://localhost/head/topic
Response: Most recent frame for topic or 404 if not found
POST /cas
Store content in CAS
curl --unix-socket ./store/sock \ -X POST --data "content" http://localhost/cas
Response: Content hash
GET /cas/{hash}
Get content from CAS
curl --unix-socket ./store/sock http://localhost/cas/sha256-hash
Response: Raw content or 404 if not found
POST /import
Import frame as-is
curl --unix-socket ./store/sock \ -H "Content-Type: application/json" \ -X POST --data '{"topic":"test","id":"03BCPN2DNQ529QRQKBQCZ4JV4"}' \ http://localhost/import
Response: Imported frame JSON
GET /version
Get version info
curl --unix-socket ./store/sock http://localhost/version
Response: Version information JSON
Status Codes
- 200 - Success
- 204 - Success (no content)
- 400 - Bad request
- 404 - Not found
- 500 - Internal server error