Skip to content

Released version 0.7.0#38

Merged
Attakay78 merged 4 commits intomainfrom
develop
Mar 19, 2026
Merged

Released version 0.7.0#38
Attakay78 merged 4 commits intomainfrom
develop

Conversation

@Attakay78
Copy link
Owner

  • Added support for sync functions
  • Refined docs and readme to reflect the new architecture support for only ASGI frameworks
  • Added feature to support env_gated route mutation from dashboard and cli
  • Added support for global rate limiting

**`engine.sync` — synchronous proxy for sync route handlers and
background threads**: every async engine method (`enable`, `disable`,
`set_maintenance`, `schedule_maintenance`, `set_env_only`,
`enable_global_maintenance`, `disable_global_maintenance`,
`set_rate_limit_policy`, `delete_rate_limit_policy`, `reset_rate_limit`,
`get_state`, `list_states`, `get_audit_log`) is now mirrored on
`engine.sync` using `anyio.from_thread.run()`, the same mechanism the
shield decorators use internally.

Use `engine.sync.*` from plain `def` FastAPI handlers (which FastAPI
runs in a worker thread automatically) and background threads — no
event-loop wiring required.
#35)

Reframed all docs and README as ASGI-first; expanded framework support
tables to include Litestar, Starlette, Quart, and Django (ASGI) as
planned adapters; added a dedicated Adapters overview page with a clear
explanation of why WSGI frameworks (Flask, Django WSGI, Bottle) are out
of scope for this project and will be supported in a separate dedicated
library.
#36)

**Env-gate management from dashboard and CLI**: routes can now have
their environment gate set or cleared at runtime — without redeployment
— via the dashboard "Env Gate" button (opens an inline modal) and the
new `shield env set` / `shield env clear` CLI commands.
**Global rate limit** (`engine.set_global_rate_limit`): a single rate
limit policy applied across all routes with higher precedence than
per-route limits checked first, so a request blocked globally never
touches a per-route counter.
Supports all key strategies, burst allowance, and per-route exemptions
(`exempt_routes`).
Configurable from the dashboard Rate Limits page and the new `shield
grl` CLI command group (`get`, `set`, `delete`, `reset`, `enable`,
`disable`).

**Global rate limit pause / resume** (`engine.disable_global_rate_limit`
/ `engine.enable_global_rate_limit`): suspend enforcement without
removing the policy, then resume it later. Per-route policies are always
unaffected.
@Attakay78 Attakay78 self-assigned this Mar 19, 2026
@Attakay78 Attakay78 merged commit 173f03e into main Mar 19, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant