Skip to content

v0.1.0b1 — Phase 3: Service Inheritance, Streaming, Upload, ETag

Pre-release
Pre-release

Choose a tag to compare

@explosivebit explosivebit released this 01 Apr 21:30
· 12 commits to main since this release

moleculerpy-web v0.1.0b1

Phase 3 — Service Inheritance + Advanced Features

New Features:

  • Service Inheritance: ApiGatewayService extends moleculerpy.Service (ADR-002)
  • Internal Actions: api.listAliases, api.addRoute, api.removeRoute via @action
  • Auto-aliases: $services.changed event + action rest annotations
  • Streaming Responses: async/sync generators → StreamingResponse
  • File Upload: multipart/form-data with filename sanitization
  • Static File Serving: Starlette StaticFiles mount
  • ETag + 304: Conditional GET with If-None-Match support

Security Hardening:

  • CRLF injection prevention in response headers
  • Open redirect allowlist (relative paths only)
  • Path traversal prevention in filenames and static files
  • Default-deny guards on addRoute/removeRoute
  • Content-Length pre-check for DoS prevention

Quality:

  • 348 tests, 93% coverage
  • 45-point real NATS E2E verification
  • 7 audit agents, 18 findings fixed
  • mypy: 0 errors, ruff: 0 errors

Install:

pip install moleculerpy-web==0.1.0b1
# With file upload support:
pip install "moleculerpy-web[multipart]==0.1.0b1"

Full Changelog: https://github.com/MoleculerPy/moleculer-web/blob/main/CHANGELOG.md