All notable changes to OrmAI are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- CI/CD — All GitHub Actions workflows now pass (test, lint, typecheck, validate, security audit, CodeQL, secrets scan).
- Python type checking — Reduced mypy errors from 1200+ to zero in production code; added per-file overrides for deep legacy type debt.
- Pytest failures — Fixed
Principalroles type mismatch (list to tuple conversion), Django adapter_model_mapinitialization, SQLModeltotal_countassertion, andFrozenInstanceErroronRunContextmutation. - Security workflows — Fixed TruffleHog base ref on push to main; fixed
npm civsnpm installlockfile sync issues. - Publish workflow — Switched to OIDC trusted publishing for PyPI; added job-level environments for protection rules.
- README — Completely rewritten with equal Python and TypeScript coverage, architecture diagrams, feature matrices, and SEO-friendly keywords.
- Dependencies — Bumped TypeScript to 6.0.3, Vitest to 4.1.5, and Zod to 4.4.3.
- Added CodeQL analysis for Python and JavaScript/TypeScript.
- Added pip-audit and npm audit to scheduled security scans.
- Added TruffleHog secrets scanning on every push and PR.
- Environment Detection:
ORMAI_ENVenvironment variable for production vs development mode - Rate Limiting: New
ormai.middlewaremodule withRateLimitersupporting per-tenant/user limits - Health Checks: New
ormai.healthmodule withHealthChecker,/health,/health/live,/health/readyendpoints - Structured Logging: New
ormai.loggingmodule with JSON and text formatters, context injection - Audit Retention:
RetentionPolicyandRetentionManagerfor automated log cleanup - Security Scanning: GitHub Actions workflow for pip-audit, CodeQL, and Gitleaks
- Dependabot: Automated dependency update configuration
- Production-safe authentication defaults (enforced by default in production)
- Warnings when running without authentication in production mode
- Rate limiting integration in MCP server and FastAPI
enforce_authinMcpServerFactorynow auto-detects based onORMAI_ENV(defaults to True in production)- Development principals renamed from
DEFAULT_DEV_*to_DEV_*(internal use only) - Improved error logging in background tasks (policy sync, heartbeat, audit flush)
- Fixed test fixture naming issues across test suite
- MCP server now requires authentication by default. Set
ORMAI_ENV=developmentfor local development or provide anauthfunction.
- Set
ORMAI_ENV=developmentfor local development environments - Configure authentication for production deployments
- Consider enabling rate limiting for production
- ORM-native capability runtime for AI agents
- Policy-based access control with tenant isolation
- Field-level redaction for sensitive data
- Budget enforcement for query cost control
- Cursor-based pagination (offset and keyset)
- SQLAlchemy adapter with sync/async support
- Tortoise ORM adapter (async)
- Peewee adapter (sync)
- Full CRUD operations (create, update, delete, bulk_update) for all adapters
- Audit logging infrastructure with multiple store backends
- JSONL file-based store for development
- SQLAlchemy-based store for production
- Peewee-based store
- Tortoise ORM-based store
- Audit middleware for automatic logging
- MCP (Model Context Protocol) server for AI agent integration
- FastAPI integration
- LangGraph integration
- Generic query, get, and aggregate tools
- Domain-specific tool generation
- Deferred execution with approval workflows
- Policy registry with versioning
- Instance management
- Federated audit aggregation
- Health monitoring
- Code generation for views and domain tools
- Comprehensive type annotations
- Property-based testing with Hypothesis
- Automatic tenant_id injection into all queries
- Field masking and redaction based on policy
- Policy validation before query execution
- Audit trail for all operations
See ormai-ts/CHANGELOG.md for TypeScript package changes.
- Rich split-screen CLI with live progress
- Concurrent execution across GPT-4 and Claude
- Safety metrics (policy blocks, unsafe query detection)
- Spider dataset auto-download and caching
- Benchmark dependencies: New
ormai[benchmark]extra withrich,openai,anthropic
- Environment Detection:
ORMAI_ENVenvironment variable for production vs development mode - Rate Limiting: New
ormai.middlewaremodule withRateLimitersupporting per-tenant/user limits - Health Checks: New
ormai.healthmodule withHealthChecker,/health,/health/live,/health/readyendpoints - Structured Logging: New
ormai.loggingmodule with JSON and text formatters, context injection - Audit Retention:
RetentionPolicyandRetentionManagerfor automated log cleanup - Security Scanning: GitHub Actions workflow for pip-audit, CodeQL, and Gitleaks
- Dependabot: Automated dependency update configuration
- Production-safe authentication defaults (enforced by default in production)
- Warnings when running without authentication in production mode
- Rate limiting integration in MCP server and FastAPI
enforce_authinMcpServerFactorynow auto-detects based onORMAI_ENV(defaults to True in production)- Development principals renamed from
DEFAULT_DEV_*to_DEV_*(internal use only) - Improved error logging in background tasks (policy sync, heartbeat, audit flush)
- Fixed test fixture naming issues across test suite
- MCP server now requires authentication by default. Set
ORMAI_ENV=developmentfor local development or provide anauthfunction.
- Set
ORMAI_ENV=developmentfor local development environments - Configure authentication for production deployments
- Consider enabling rate limiting for production
- ORM-native capability runtime for AI agents
- Policy-based access control with tenant isolation
- Field-level redaction for sensitive data
- Budget enforcement for query cost control
- Cursor-based pagination (offset and keyset)
- SQLAlchemy adapter with sync/async support
- Tortoise ORM adapter (async)
- Peewee adapter (sync)
- Full CRUD operations (create, update, delete, bulk_update) for all adapters
- Audit logging infrastructure with multiple store backends
- JSONL file-based store for development
- SQLAlchemy-based store for production
- Peewee-based store
- Tortoise ORM-based store
- Audit middleware for automatic logging
- MCP (Model Context Protocol) server for AI agent integration
- FastAPI integration
- LangGraph integration
- Generic query, get, and aggregate tools
- Domain-specific tool generation
- Deferred execution with approval workflows
- Policy registry with versioning
- Instance management
- Federated audit aggregation
- Health monitoring
- Code generation for views and domain tools
- Comprehensive type annotations
- Property-based testing with Hypothesis
- Automatic tenant_id injection into all queries
- Field masking and redaction based on policy
- Policy validation before query execution
- Audit trail for all operations
See ormai-ts for TypeScript package changes.