v5.33.0


New Features

  • PostgreSQL End-to-End Support — First MJ release where a fresh PostgreSQL database can be migrated, codegen'd against, signed into, and synced from mj sync push without manual intervention. Full SAVEPOINT-based transaction nesting, proper CRUD sproc generation, and RDS-compatible startup.

  • Admin App Reorganization — Streamlined from 10 to 4 top-nav sections with container-based architecture: Identity & Access, Data & Schema, Monitoring, and Developer Tools. Features URL deep-linking and persistent view state across navigation.

  • Developer Tools Suite — Comprehensive 7-inspector toolkit including GraphQL Console with syntax highlighting and schema introspection, Event Monitor with live tail, Class Registry browser, Lazy Loading inspector, Settings Explorer, and App/Layout state viewers. All preferences persist per-user.

  • Identity Card Profile Dialog — Modern replacement for legacy Settings with slide-in panels for photo/theme editing, functional notification toggles, role chips, and account info. Includes new About MemberJunction dialog with framework version and diagnostics.

  • Universal Search Performance Layer — Honor EntityField.UserSearchPredicateAPI for index-seekable queries (Exact/BeginsWith), escape LIKE metacharacters, 5-second per-entity timeouts, and LRU result caching. Added guardrails to prevent indexing of log/audit entities.

Improvements

  • Single Source Database Platform Vocabulary — Unified DatabasePlatform type ('sqlserver' | 'postgresql') across all packages. Replaced inconsistent dbType/DB_TYPE with standardized dbPlatform/DB_PLATFORM configuration.

  • SQLDialect Type Classification System — Centralized SQL type mapping with 11 typed getters (Boolean, String, Date, etc.) replacing scattered hardcoded type lists. Enables seamless multi-platform SQL generation.

  • JSON-Arg CRUD Stored Procedures — Enhanced PostgreSQL compatibility with wide entity support and improved parameter handling for complex database operations.

  • Enhanced Map Views — Fixed regressions in Regions and Boundary modes, improved coordinate resolution from EntityField.ExtendedType, and better data reloading across grid/map transitions.

  • Configurable CodeGen Timeouts — Added dbRequestTimeout configuration via mj.config.cjs or MJ_CODEGEN_REQUEST_TIMEOUT environment variable for long-running schema operations.

  • Smart Cache Resilience — Tolerate malformed timestamps in cache checks, degrading to cache misses instead of throwing errors. Improved GraphQL operation logging with JSON variable rendering.

Bug Fixes

  • Database Grant Compatibility — Fixed runtime SQL paths that referenced BaseTable directly, which fails under tightened DB grants. All queries now use BaseView with proper dialect-aware SQL generation.

  • Search Metacharacter Escaping — User search queries containing %, _, and other LIKE wildcards now match literally instead of being interpreted as SQL patterns, aligning with documented behavior.

  • PostgreSQL Boolean Operations — Added coerceBooleanLiteralsInSQL pass to convert SQL Server bit literals (= 1/= 0) to PostgreSQL boolean literals (TRUE/FALSE) for cross-platform compatibility.

  • Flyway String Truncation — Fixed silent NVARCHAR(4000) truncation in template literal processing that corrupted component specifications during migration apply.

  • View Self-Join Virtual Fields — Disabled problematic view self-joins for virtual NameFields across all CodeGen providers to prevent SQL generation errors.

  • FK Constraint Violation in Deletes — Fixed delete stored procedures to properly pass _Clear flag for tolerant update operations, preventing constraint violations when deleting conversations and related entities.