Skip to content

v0.3.0

Choose a tag to compare

@jezdez jezdez released this 16 Apr 14:04
b56240c

Added

  • Interactive API documentation (Scalar UI) at / with auto-generated OpenAPI 3.1 schema at /openapi.json, replacing the hand-written ~190-line schema dictionary.
  • Production middleware: brotli compression with gzip fallback, CORS (configurable via CONDA_PRESTO_CORS_ORIGINS, default *), structured request logging, and rate limiting (configurable via CONDA_PRESTO_RATE_LIMIT, default 300 req/min, 0 to disable).
  • New environment variables: CONDA_PRESTO_RATE_LIMIT, CONDA_PRESTO_CORS_ORIGINS, CONDA_PRESTO_LOG_LEVEL.
  • Native request body size enforcement via Litestar's request_max_body_size (configurable via CONDA_PRESTO_MAX_BODY_BYTES, default 1 MB).

Changed

  • Migrated HTTP API framework from Starlette to Litestar. Typed request validation via ResolveRequest dataclass replaces manual JSON parsing.
  • Migrated ResolvedPackage and SolveResult from dataclasses to msgspec.Struct for faster serialization and lower memory. Litestar encodes these natively to JSON without intermediate dicts.
  • Startup initialization uses Litestar's on_startup hook with app.state instead of module-level globals.
  • Application log level configurable via CONDA_PRESTO_LOG_LEVEL (default INFO).
  • Renamed project from conda-resolve to conda-presto (package, CLI subcommand, environment variables, Docker images).