Skip to content

Releases: MoleculerPy/moleculer-web

v0.1.1

Choose a tag to compare

@explosivebit explosivebit released this 09 Apr 11:14
bcb3230

MoleculerClientError code → HTTP 401/403/404 mapping (KNOWN-ISSUES #19, companion to moleculerpy 0.14.22).

See CHANGELOG.md for details and counterfactual evidence.

v0.1.0 — Stable API Gateway

Choose a tag to compare

@explosivebit explosivebit released this 02 Apr 23:08
7e8f448

moleculerpy-web v0.1.0 — Stable Release

Highlights

  • Rate limit stores refactor: module-level global → per-service instance, fixes asyncio task leak
  • 377 tests (65 E2E), 93% coverage
  • 6,183 req/sec throughput (NFR-001 PASS)
  • All features verified E2E with real NATS broker

Fixed

  • Rate limit store memory/task leak on gateway restart
  • id(config) key collision after GC → deterministic (route_path, window, limit) key
  • stopped() now cleans up all rate limit stores

Changed

  • VALID_ACTION_RE deduplicated to utils.py
  • README Quick Start updated to broker.create_service() pattern
  • Examples consolidated: 10 files → 4
  • Development Status: Alpha → Beta

Full Changelog

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

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

Choose a tag to compare

@explosivebit explosivebit released this 01 Apr 21:30

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

v0.1.0a1 — HTTP API Gateway Alpha

Pre-release

Choose a tag to compare

@explosivebit explosivebit released this 01 Apr 19:43

moleculerpy-web v0.1.0a1

HTTP API Gateway for MoleculerPy — port of Node.js moleculer-web.

Features

  • Starlette (ASGI) + uvicorn
  • Route aliases + REST shorthand
  • Middleware pipeline (hooks, auth, CORS, rate limit)
  • Whitelist/blacklist, error mapping, ctx.meta passthrough
  • 277 tests, 95% coverage, 11.4K req/sec

Install

pip install moleculerpy-web==0.1.0a1

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