Beep backend accepts PUT requests and publishes a protobuf-ed version to a NATS queue, like some sort of weird HTTP/NATS converter. Also handles authentication of said HTTP requests. Needless to say, relies on a NATS instance being up.
To run this service securely means to run it behind traefik forwarding auth to backend-auth
go build && ./backend-publish
Supply environment variables by either exporting them or editing .env
.
ENV | Description | Default |
---|---|---|
LISTEN | Host and port number to listen on | :8080 |
NATS | Host and port of nats | nats://localhost:4222 |
SECRET | JWT secret | secret |
All requests need to be passed through traefik
calling backend-auth
as Forward Authentication. Otherwise, populate X-User-Claim
with:
{
"userid": "<userid>",
"clientid": "<clientid"
}
PUT /conversation/:key/start/:start
TODO: Description of what this does cos honestly I have no idea Ambrose doesn't write documentation
Name | Type | Description |
---|---|---|
key | String | Audio bite's conversation's ID. |
start | Epoch timestamp | Time the audio bite starts. |
Raw body of audio data in bytes.
Empty body.
Code | Description |
---|---|
400 | start is not an uint/key is not an alphanumeric string/data could not be read from the body/bad user claim |
500 | Error serialising data into a protocol buffer. |
PUT /conversation/:key/start/:start/user
TODO: Description of what this does cos honestly I have no idea Ambrose doesn't write documentation
Name | Type | Description |
---|---|---|
key | String | Audio bite's conversation's ID. |
start | Epoch timestamp | Time the audio bite starts. |
Raw body of audio data in bytes.
Empty body.
Code | Description |
---|---|
400 | start is not an uint/key is not an alphanumeric string/data could not be read from the body/bad user claim |
500 | Error serialising data into a protocol buffer. |