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 pushwithout 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.UserSearchPredicateAPIfor 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
DatabasePlatformtype ('sqlserver' | 'postgresql') across all packages. Replaced inconsistentdbType/DB_TYPEwith standardizeddbPlatform/DB_PLATFORMconfiguration. -
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
dbRequestTimeoutconfiguration viamj.config.cjsorMJ_CODEGEN_REQUEST_TIMEOUTenvironment 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
BaseTabledirectly, which fails under tightened DB grants. All queries now useBaseViewwith 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
coerceBooleanLiteralsInSQLpass 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
_Clearflag for tolerant update operations, preventing constraint violations when deleting conversations and related entities.