SQLGuard Ninja v0.7.0
Highlights
- Interactive playground. Try SQL policy enforcement on a synthetic retail database with three roles: Sales Analyst, Customer Support and Store Manager. It has 20 example queries, explanations with fixes, lineage, tenant-isolation demonstrations, a role-permission browser, and a benchmark dashboard that labels every result as internal (1,070) and shows that no independent results exist (0). There is no login or API key:
pip install "sqlguard-ninja[demo]" && sqlninja demo serve.
- A sandbox the database enforces. Allowed queries run in an in-memory synthetic SQLite database with an authorizer allowlist,
query_only, engine limits and a time budget. Denied and review queries never run.
- Runs in the browser.
scripts/build_static_demo.py builds a static site in which Pyodide runs the same code in a Web Worker. Everything is self-hosted and checksum-verified, and a browser test confirms the site makes no third-party requests.
- Deployment references. A hardened Dockerfile, Compose and Kubernetes manifests with health checks, validated configuration, rate limiting, body limits, query timeouts, non-root execution and resource limits. CI builds and runs the container under those restrictions and validates the manifests.
Notes
- Live demo: https://pratik653.github.io/SQLGuard_Ninjapy/ (GitHub Pages; added after release, once deployment was verified in an unauthenticated browser).
- All benchmark results remain internal (issues #5 and #6). SQL Server and Oracle remain parser-level experimental.
Installation
python -m pip install "sqlguard-ninja[demo]==0.7.0"
sqlninja demo serve
PyPI: https://pypi.org/project/sqlguard-ninja/0.7.0/