Skip to content

Changelog

All notable changes to ORMDB are documented here.

[Unreleased]

Added

  • Initial public release
  • Core database engine with ACID transactions
  • GraphQuery API for efficient data fetching
  • Relation includes with configurable depth
  • Row-level security (RLS) support
  • Change Data Capture (CDC) streaming
  • Rust, TypeScript, and Python clients

Security

  • Authentication System
  • API Key authentication (ORMDB_API_KEYS environment variable)
  • Bearer token authentication (ORMDB_TOKENS environment variable)
  • JWT authentication with configurable secret/public key
  • Pluggable authenticator architecture

  • Authorization & Access Control

  • Capability-based access control with entity scoping
  • Fine-grained read/write/delete/admin permissions
  • Wildcard capabilities (read:*, write:User)
  • Row-level security (RLS) policy integration

  • Transport Security

  • TLS support for client-server communication
  • TLS support for Raft cluster communication
  • Rate limiting to prevent abuse
  • Connection limiting

  • Security Hardening

  • Query budget enforcement (max depth, entities, edges)
  • Message size limit (4 MB) to prevent DoS
  • Parser recursion limit (100) to prevent stack overflow
  • Field count limit (10,000) per entity
  • Error message sanitization to prevent information disclosure

  • Audit Logging

  • File-based audit logger with NDJSON format
  • Logs authentication, queries, mutations, and access denied events
  • Environment variable configuration (ORMDB_AUDIT_FILE)

Version History

[1.0.0] - Initial Release

Core Features

  • Graph Queries
  • Fetch entities with related data in single query
  • Configurable include depth and limits
  • Query budgets to prevent runaway queries

  • Type-Safe Protocol

  • Strongly typed GraphQuery and Mutation types
  • Value enum with all scalar types
  • Compile-time validation in Rust client

  • Relations

  • One-to-one, one-to-many, many-to-many support
  • Configurable delete behaviors (cascade, set null, restrict)
  • Foreign key constraints

  • Filtering

  • Comparison operators (eq, ne, lt, le, gt, ge)
  • Pattern matching (like, ilike)
  • Set operations (in, not_in)
  • Null checks (is_null, is_not_null)
  • Logical operators (and, or, not)

  • Mutations

  • Insert with auto-generated IDs
  • Update by ID or filter
  • Delete with cascade support
  • Upsert operations
  • Batch mutations

  • Transactions

  • ACID compliance
  • Optimistic concurrency control
  • Transaction isolation

Storage

  • Embedded storage engine based on Sled
  • Efficient B+ tree indexes
  • Write-ahead logging (WAL)
  • Automatic compaction
  • Configurable cache size

Security

  • Row-level security policies
  • Capability tokens for fine-grained access
  • Field masking for sensitive data
  • Audit logging

Operations

  • Prometheus metrics endpoint
  • Health and readiness checks
  • CLI for administration
  • Backup and restore
  • Schema migrations

Clients

  • Rust Client
  • Native async/await support
  • Connection pooling
  • Type-safe queries

  • TypeScript Client

  • Direct client API
  • Prisma-style adapter
  • Drizzle adapter
  • TypeORM adapter

  • Python Client

  • Sync and async support
  • SQLAlchemy integration
  • Django integration

Migration Guides

Upgrading from Pre-release

If upgrading from a pre-release version:

  1. Backup your data

    ormdb backup create pre-release-backup.ormdb
    

  2. Stop the server

    ormdb server stop
    

  3. Update the binary

    cargo install ormdb-cli --version 1.0.0
    

  4. Run migrations

    ormdb migrate run
    

  5. Start the server

    ormdb server start
    


Versioning Policy

ORMDB follows Semantic Versioning:

  • MAJOR: Incompatible API changes
  • MINOR: New features, backward compatible
  • PATCH: Bug fixes, backward compatible

Stability Guarantees

Component Stability
Wire protocol Stable after 1.0
Rust client API Stable after 1.0
TypeScript client API Stable after 1.0
Python client API Stable after 1.0
CLI interface Stable after 1.0
Configuration May change with migration path
Internal APIs No guarantees

Release Schedule

  • Patch releases: As needed for bug fixes
  • Minor releases: Approximately monthly
  • Major releases: As needed for breaking changes

Reporting Issues

Found a bug or have a feature request?

When reporting bugs, please include:

  1. ORMDB version (ormdb --version)
  2. Operating system and version
  3. Steps to reproduce
  4. Expected vs actual behavior
  5. Relevant logs or error messages