Sprint 12 Release Notes
Table of Contents
February 2026
This sprint focused on a massive expansion of the Legal Entity and Party framework, the introduction of Trading & Book hierarchies, and a major infrastructure shift toward a unified database model with Row-Level Security (RLS). It represents a foundational shift in the system's architecture, moving from a basic reference data store to a sophisticated, secure, and hierarchy-aware financial platform. We have significantly matured the organizational model, enhanced security protocols, and established the core infrastructure for trade lifecycle management.
✅ Highlights
- Party & Counterparty Ecosystem: Implemented a comprehensive C++ and SQL stack for managing global legal entities, supporting GLEIF data integration, hierarchical corporate structures, and multi-identifier mapping (LEI, BIC).
- Trading & Risk Foundation: Launched the
ores.tradingcomponent, establishing the "Trade Envelope" and a dual-layer hierarchy of Portfolios (for risk aggregation) and Books (for trade capture). - Unified Security Architecture: Migrated to a single-database model, replacing physical database cloning with Row-Level Security (RLS) to isolate tenant and party-level data.
- Automated Evaluation Onboarding: Introduced a "First Login" wizard for Evaluation Tenants, featuring automated GLEIF hierarchy imports and synthetic data generation for immediate platform testing.
- Finite State Machine (FSM): Developed a native PostgreSQL FSM framework to govern complex entity lifecycles, currently powering trade status transitions and audit-trailed authorizations.
🛠️ Key Improvements
Identity & Access Management (IAM)
- System & Operational Roles: Introduced "System" vs. "Operational" party distinctions and separated "Tenant Admin" from "Super Admin" roles for granular platform control.
- Human-Readable Short Codes: Implemented a mnemonic generation engine to replace UUIDs in daily operations (e.g., "GLDMN" for Goldman Sachs) with built-in collision resolution.
- Audit Integrity: Hardened the audit trail by ensuring
modified_byfields are derived from the authenticated database session, preventing identity spoofing in communication protocols.
Architecture & Infrastructure
- Single-Database Migration: Eliminated
ores_adminandores_templatedatabases in favor of a unified model using a two-phase setup (Superuser vs. DDL user). - SQL Security: Extended the
sqlgenlibrary to support bound parameters, significantly reducing the surface area for SQL injection by moving away from rawlibpqqueries. - Portable Build System: Fixed macOS CI failures by replacing GNU-specific
getoptlogic with portable shell parsing for database scripts.
UI & Developer Experience
- Qt GUI Enhancements: Upgraded the entity list views with a Strategy Pattern to reduce code duplication and added a visual Party Hierarchy Graph for navigating parent-child relationships.
- Advanced List Widgets: Centralized UI metadata (column widths, alignment, persistence) into a single source of truth, ensuring a consistent experience across all 24 MDI windows.
- Interactive Shell: Integrated a REPL shell widget into
ores.qt, allowing administrators to perform bulk tasks (like tenant provisioning) directly from the GUI.
Testing & Data Quality
- FK-Aware Generators: Overhauled synthetic data generation to respect Foreign Key constraints, allowing for the creation of complex, interconnected test datasets (e.g., linking a
party_idto itsidentifiers). - Coverage Hardening: Added 110+ test cases and 12 new unit test files, successfully re-enabling 19 previously skipped tests in the DQ and IAM modules.
- GLEIF Integration: Established an automated pipeline to ingest global LEI data, including specialized detection logic for 93+ central banks and supranational entities.
⚠️ Known Issues & Postponed
- Caching Architecture: Analysis of the
ores.cachinglibrary (using immer for immutable data structures) has been POSTPONED to a future sprint to prioritize core trading functionality. - libpq Transition: Full removal of raw
libpqcalls is BLOCKED pending the official release and package update of the enhancedsqlgenlibrary. - Multi-Schema Model: The story to "Split create schemas from main populate script" was CANCELLED as the project has moved to a unified RLS-based database design.
📊 Time Summary
- Total effort: not tracked
- PRs merged: not tracked
- Sprint duration: 2026-02-06 → 2026-02-20
Next sprint: Sprint 13.