You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-6Lines changed: 27 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,8 @@ Same body shape as `meta.json` / `RunRecord`. Idempotent via SHA-256 of canonica
32
32
curl -s -X POST http://127.0.0.1:8000/runs -H "Content-Type: application/json" -d @fixtures/example_run/meta.json
33
33
```
34
34
35
-
If `RUNSTREAM_API_KEY` is set, send `Authorization: Bearer <key>`.
35
+
-**Dev (default):** if only `RUNSTREAM_API_KEY` is set, send `Authorization: Bearer <key>` on POST.
36
+
-**Production (recommended):** set `RUNSTREAM_REQUIRE_AUTH=1` and **`RUNSTREAM_API_KEY`** — POST without a valid Bearer returns 401/503. Docker Compose enables this by default; override the key via env (see `.env.example`).
On `meta.json` create/modify under the watched tree, ingest re-runs after **debounce** seconds (default 2). Ctrl+C stops.
53
54
55
+
### Rate limit & access logs (API)
56
+
57
+
When **`RUNSTREAM_ENABLE_RATE_LIMIT=1`**, each client IP is limited to **`RUNSTREAM_RATE_LIMIT_RPM`** requests per sliding 60s window (default **120**). `/health`, `/docs`, `/openapi.json`, and `/redoc` are exempt.
58
+
59
+
With **`runstream serve`**, one-line access logs go to stderr under the logger **`runstream.access`**. Set **`RUNSTREAM_DISABLE_ACCESS_LOG=1`** to turn them off.
60
+
61
+
### Parquet export
62
+
63
+
```bash
64
+
pip install 'runstream[parquet]'# or dev extra already includes pyarrow
0 commit comments