Releases: SchmidtDSE/api_dock
Releases · SchmidtDSE/api_dock
Release list
v0.6.1
- new features
- Remote proxy responses are now streamed (FastAPI) — upstream bytes are piped to the client as they arrive instead of being buffered fully in memory
- New
timeoutsetting (default 10s) for the upstream request; set tonull/falseto disable
- bug fixes
- Large upstream responses no longer return 502 — streamed via
StreamingResponseinstead of reading the whole body into memory Content-Encoding(gzip/br/deflate) is now preserved on compressed responses — raw bytes are streamed viaaiter_raw()so the header stays valid and the client can decompress- Slow upstreams (e.g. large aggregation queries) no longer 502 at httpx's hardcoded 5s default — the timeout is now configurable via the
timeoutsetting
- Large upstream responses no longer return 502 — streamed via
- cleanup / other improvements
- Added
PreparedRequestdataclass and split route validation/resolution intoRouteMapper.prepare_remote_request(); the FastAPI adapter issues the streaming HTTP call map_route()(buffered) retained for the Flask/sync path- Added streaming test coverage (
TestStreamUpstream, plusprepare_remote_requestand streaming-header tests) — 53 tests total
- Added
v0.6.0
- new features
- Cookie injection: dict entries in the
cookieslist inject server-side cookies into upstream requests, withenv:MY_VARenv var support and literal value support
- Cookie injection: dict entries in the
- bug fixes
- Binary responses (image, audio) no longer corrupted — raw bytes passed through with correct content-type
- 3xx redirects returned to client when
follow_redirects: false(previously followed internally, doubling egress) - Upstream response headers (Cache-Control, ETag, Last-Modified, etc.) now forwarded to client
- Upstream 4xx/5xx error bodies passed through verbatim (previously wrapped/swallowed)
- JSON responses no longer re-serialized — raw bytes returned as-is, preserving exact upstream payload
api-dock initnow works correctly when installed from PyPI (example configs moved inside theapi_dockpackage soimportlib.resourcesresolves them)
- cleanup / other improvements
- Added
ProxyResponsetyped dataclass as the return contract formap_route()andmap_database_route() - Added test suite (38 tests covering proxy pipeline and cookie injection)
- Replaced stale
config/templates with cleanexample_api_dock_config/(removed unimplemented features; real advanced features kept as commented examples) - Removed broken root
__init__.pythat caused pytest import conflicts - Bumped cryptography dependency to >=48.0.0,<49.0.0
- Added