A mini key-value store accessible via HTTP REST API for use in GitHub Actions
Install using uv:
uv sync
Create .env
file containing the following keys:
KVSTORE_TOKEN=xxxx-super-secret-token-xxxx
KVSTORE_PORT=443
KVSTORE_SSL_CERT=/path/to/fullchain.pem
KVSTORE_SSL_KEY=/path/to/privkey.pem
If you omit KVSTORE_SSL_CERT
and KVSTORE_SSL_KEY
, the server will run without SSL.
Run ./run.sh
or uv run server
as root.
- The key and values are arbitrary strings.
- You have to set the HTTP Bearer token authentication header.
- Set a key:
POST /
with the JSON body like{"key": "...", "value": "..."}
.- If the key already exists, it is overwritten.
- Get a key:
GET /?key={key}
- If the key does not exist, it returns 404.
- Delete a key:
DELETE /?key={key}
- If the key does not exist, it returns 404.
- Do the health check:
GET /health
curl -X POST "https://service-url/" \
-H "Authorization: Bearer xxx-super-secret-token-xxx" \
-H "Content-Type: application/json" \
-d '{"key": "example", "value": "data"}'
curl -X GET "https://localhost:8000/?key=example" \
-H "Authorization: Bearer xxx-super-secret-token-xxx"
curl -X DELETE "https://localhost:8000/?key=example" \
-H "Authorization: Bearer xxx-super-secret-token-xxx"