|
5 months ago | |
---|---|---|
plugins/rpjios | 5 months ago | |
scripts | 7 months ago | |
.gitignore | 8 months ago | |
Makefile | 7 months ago | |
README.md | 6 months ago | |
go.mod | 8 months ago | |
go.sum | 8 months ago | |
main.go | 5 months ago | |
types.go | 7 months ago |
Currently there are only two distinct pieces functionality implemented, specifically proxying:
LRANGE
command in both standard and domain-specific waysHowever, combined these allow relatively powerful client implementations, such as this weather data dashboard.
channel
in path to GET
request /sub/[channel]
, providing valid credentials as Basic authorization
users.json
, a simple username-as-key to client-as-password mapping/sub/...
request was valid & authorized, it will return a one-time token SUB_TOKEN
/ws/sub?SUB_TOKEN
The entirety of the aforementioned procedure can be perfomed on the CLI via wscat
and curl
:
wscat -c ws://HOST:PORT/ws/sub?`curl -H "Authorization: Basic B64_CRED" http://HOST:PORT/sub/CHANNEL`
where HOST
, PORT
, B64_CRED
& CHANNEL
should be replaced with appropriate values.
LRANGE
proxyingMake GET
requests to /list/[key]?<options>
, where <options>
may be composed of:
Name | Description |
---|---|
start |
directly corresponds to the start argument of LRANGE |
end |
directly corresponds to the stop argument of LRANGE |
The rpjios
plugin enables the following options when loaded:
Name | Description |
---|---|
back |
how many minutes backward from the current time to gather data (iteratively in chunks) |
cad |
the downsampling “cadence”, in seconds; e.g. 600 returns samples separated by at least 600 seconds (10 minutes) |
Processing is short-circuited such that only one of the entities above can respond to any given request. Accordingly, only one set of options can be used in conjunction.
For example, back
and start
should not be combined: if they are (and assuming the value given for back
is valid), the rpjios
plugin will handle the request and the value given for start
will be ignored.