7.2
tip
This release contains breaking changes. These are listed at the end of this page.
Server
Features
- (Settings plugin): generate config jar from main module and remove config internal module
- (router): add flag to provide enhanced HEARTBEAT_PONG messages and expose "onHeartbeatPing" hook in script definition to handle custom business logic
- (router): expose settings for Websocket frame sizes, fix frame aggregation and - allow Websocket binary payload using MsgPack format
- (settings-plugin): project type properties so import not required
- Add PrimaryIfSingleNode system definition setting to automatically set a cluster node as primary if no other hosts are defined
- Add SQL high performance mode configuration and enable by default on postgres and mssql
- Add gzip compression option for table dumps
- Add inject method to AuthPermissionsScript
- Add minimal cfg zip to distribution and distribution plugin.
- Add option to exclude fields from results in data servers and request servers
- Add support for reading gzipped CSV files in SendIt
- Added new pipeline API to GSF
- Enhance purger scripts to support csv and csv.gz backups
- Implement Early Failure for Invalid Mandatory to Optional Field Overrides in Metadata Definitions
- Implement max safe integer and update numeric type fields
- Improve logging on Streamer Clients
- Only log defaulting value statement if running SendIt in verbose mode
- Support subtable syntax using inline fields
- Update SQL database connection pool size parameter handling
- Update scripts to include local imports and implement metaInf producers
- Add data load flag to remap, and upsertAll flag to SendIt
- Enable autoIncrement for LONG fields
- Introducing pbc build gradle plugin
- Log auth map and fields on dataserver auth usage
- Logs with traceability in query and caching
- New table syntax to support inline field definitions
- Refactor Excel to Genesis to allow usage from Genesis create
- Site specific distribution plugin and remove site specific internal module
- Support for update queue using JMS as underlying implementation
- Update enum syntax in tables
Fixes
- (exec plugin): copy site specific files from main module
- (manifest): path for finding script modules in simplified structure
- (pal-dataserver): disableAuthUpdates flag works as expected again
- Add 'enabled' property to ManifestCreationTask
- Add TIMESTAMP support to DbMon distinct command
- Add support for dataserver pagination mode when using HTTP requests
- Add template processing feature in ProductDetailsCreatorPlugin
- Convert evaluator expression parser as well as writer to use logical AND
- Create new task to depend on _genesisInstall and generated code
- Fix Moving view logic so the timestamp sorted references are always in sync with the rows in view
- Fix Operating System incompatibilities in purger config (Windows) and path resolution (MacOS)
- Implement annotation script handling in Gradle plugin
- JMS UpdateQueue to do not close consumer if there are still listeners -LoginNack to cause the username in the channel context to be erased
- MORE_COLUMNS messages now successfully change the payload of future QUERY_UPDATE messages
- Prevent duplicate cache entries in views generated dao jar
- Prevent malformed payloads from evaluator result expressions
- Refactor file storage and alert tables in genesis configuration
- Remap fail when field becomes non-nullable and added to key at the same change set
- Resources are not copied to site-specific internal module in simple app
- Respect asterisk in project overview builder
- Update FindCommand to handle null dbEntity
- Update Long.MIN/MAX_SAFE_INTEGER and refactor tables in genesis config
- Update backport.yml
- Add MetaInf directory to all codegen tasks to ensure they respect gradle rules for caching and task avoidance
- Add process arguments to project overview json
- BundleGeneratedClasses=false works when project type is application
- Correct path to config folder in site specific for simple structure
- Correct remap's handling of dictionary comparison for old and new table syntax
- Dictionary cache main module now assembles all the submodules on assemble.
- Distinct/search commands not working in DBMon for enums
- Distribution cfg and scripts folder paths
- Distribution zip file version with dist plugin
- Do not attempt to handle OOM in ScriptHost
- Ensure we always add generated jars dependencies
- Finding product name in settings plugin
- Fix copy task dependencies for simplified project structure
- GenerateCache option is now respected as expected
- Handle multiple modules in processes.xml in project overview builder
- Include all cfg and script files in PBC distribution
- Including audit generated builders in the dao cache
- Only add version constraints of artifacts from a product's manifest where version is same as product version
- pal-dataserver: updates batched at MessageSet level now preserve old row data
- Remove hardcoded genesis artifactory config in site specific template
- Remove projectOverviewBuilder task dependency on genesisSync
- Replaced endsWith() to !=.
- Update implementation of createManifestTask to work with changes to simple structure
- View enriched fields returns null after DATA_LOGOFF message
Dependency changes
- Fixing snapshot version
- Bump jacksonVersion from 2.16.2 to 2.17.0
- Move awsJdbcWrapperVersion from genesis-db to genesis-dependencies
- Update owasp-false-positives.xml to exclude Quartz forever
- Upgrade gradle license report plugin from 2.0 to 2.7
- Bump actions/cache from 3 to 4
- Bump actions/checkout from 2 to 4
- Bump up actions/upload-artifact from 2 to 4
- Bump up actions/upload-artifact from 3 to 4
- Bump aeronVersion from 1.43.0 to 1.44.0
- Bump byteBuddyVersion from 1.14.11 to 1.14.13
- Bump camelVersion from 4.3.0 to 4.4.0
- Bump camelVersion from 4.4.0 to 4.4.1
- Bump camelVersion from 4.4.1 to 4.5.0
- Bump com.github.oshi:oshi-core from 6.4.11 to 6.4.12
- Bump com.github.oshi:oshi-core from 6.4.12 to 6.4.13
- Bump com.github.oshi:oshi-core from 6.4.13 to 6.5.0
- Bump ump com.github.vertical-blank:sql-formatter from 2.0.4 to 2.0.5
- Bump com.google.errorprone:error_prone_annotations from 2.24.1 to 2.25.0
- Bump com.google.errorprone:error_prone_annotations from 2.25.0 to 2.26.0
- Bump com.google.errorprone:error_prone_annotations from 2.26.0 to 2.26.1
- Bump com.google.guava:guava from 32.1.3-jre to 33.0.0-jre
- Bump com.google.guava:guava from 33.0.0-jre to 33.1.0-jre
- Bump com.google.jimfs:jimfs from 1.1 to 1.3.0
- Bump com.google.protobuf:protobuf-java from 3.25.2 to 3.25.3
- Bump com.google.protobuf:protobuf-java from 3.25.3 to 4.26.0
- Bump com.google.protobuf:protobuf-java from 4.26.0 to 4.26.1
- Bump com.jakewharton.fliptables:fliptables from 1.1.0 to 1.1.1
- Bump com.jfrog.artifactory from 5.1.10 to 5.1.14
- Bump com.jfrog.artifactory from 5.1.14 to 5.2.0
- Bump com.jfrog.artifactory from 5.1.14 to 5.2.0
- Bump com.microsoft.sqlserver:mssql-jdbc from 12.4.2.jre11 to 12.6.0.jre11
- Bump com.microsoft.sqlserver:mssql-jdbc from 12.6.0.jre11 to 12.6.1.jre11
- Bump commons-codec:commons-codec from 1.16.0 to 1.16.1
- Bump commons-io:commons-io from 2.15.1 to 2.16.0
- Bump commons-io:commons-io from 2.16.0 to 2.16.1
- Bump debeziumVersion from 2.5.0.Final to 2.5.1.Final
- Bump debeziumVersion from 2.5.1.Final to 2.5.2.Final
- Bump debeziumVersion from 2.5.2.Final to 2.5.3.Final
- Bump debeziumVersion from 2.5.3.Final to 2.5.4.Final
- Bump debeziumVersion from 2.5.4.Final to 2.6.0.Final
- Bump gradle/gradle-build-action from 2 to 3
- Bump groovyVersion from 3.0.20 to 3.0.21
- Bump io.github.classgraph:classgraph from 4.8.165 to 4.8.167
- Bump io.github.classgraph:classgraph from 4.8.167 to 4.8.168
- Bump io.github.classgraph:classgraph from 4.8.168 to 4.8.170
- Bump io.netty:netty-all from 4.1.104.Final to 4.1.106.Final
- Bump io.netty:netty-all from 4.1.106.Final to 4.1.107.Final
- Bump jacksonVersion from 2.16.1 to 2.16.2
- Bump joda-time:joda-time from 2.12.6 to 2.12.7
- Bump junitVersion from 5.10.1 to 5.10.2
- Bump ktorVersion from 2.3.7 to 2.3.8
- Bump ktorVersion from 2.3.8 to 2.3.9
- Bump ktorVersion from 2.3.9 to 2.3.10
- Bump log4jVersion from 2.22.1 to 2.23.0
- Bump log4jVersion from 2.23.0 to 2.23.1
- Bump micrometerVersion from 1.12.1 to 1.12.2
- Bump micrometerVersion from 1.12.1 to 1.12.2
- Bump micrometerVersion from 1.12.2 to 1.12.3
- Bump micrometerVersion from 1.12.3 to 1.12.4
- Bump micrometerVersion from 1.12.4 to 1.12.5
- Bump mockitoVersion from 5.10.0 to 5.11.0
- Bump mockitoVersion from 5.8.0 to 5.9.0
- Bump mockitoVersion from 5.9.0 to 5.10.0
- Bump msgpackVersion from 0.9.7 to 0.9.8
- Bump nettyVersion from 4.1.107.Final to 4.1.108.Final
- Bump org.agrona:agrona from 1.20.0 to 1.21.0
- Bump org.agrona:agrona from 1.21.0 to 1.21.1
- Bump org.apache.activemq:artemis-jakarta-client from 2.32.0 to 2.33.0
- Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0
- Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1
- Bump org.assertj:assertj-core from 3.25.1 to 3.25.2
- Bump org.assertj:assertj-core from 3.25.2 to 3.25.3
- Bump org.java-websocket:Java-WebSocket from 1.5.5 to 1.5.6
- Bump org.jfrog.buildinfo:build-info-extractor-gradle from 5.1.14 to 5.2.0
- Bump org.jfrog.buildinfo:build-info-extractor-gradle from 5.1.14 to 5.2.0
- Bump org.jline:jline from 3.24.1 to 3.25.1
- Bump org.jlleitschuh.gradle.ktlint from 11.5.1 to 12.1.0
- Bump org.mockito.kotlin:mockito-kotlin from 5.2.1 to 5.3.1
- Bump org.postgresql:postgresql from 42.7.1 to 42.7.2
- Bump org.postgresql:postgresql from 42.7.2 to 42.7.3
- Bump org.zeromq:jeromq from 0.5.4 to 0.6.0
- Bump slf4jVersion from 2.0.11 to 2.0.12
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.3.2 to 2.3.3
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.3.3 to 2.3.4
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.3.4 to 2.3.5
- Bump sshdVersion from 2.11.0 to 2.12.0
- Bump sshdVersion from 2.11.0 to 2.12.0
- Bump sshdVersion from 2.12.0 to 2.12.1
- Bump testcontainersVersion from 1.19.3 to 1.19.4
- Bump testcontainersVersion from 1.19.4 to 1.19.5
- Bump testcontainersVersion from 1.19.5 to 1.19.6
- Bump testcontainersVersion from 1.19.6 to 1.19.7
Patch releases
7.2.28
Features
genesis-pal-consolidator: Add support for minBy and maxBy functions
7.2.27
Features
genesis-pal-dataserver: Improve data server duplicate key error message and logging around start up
Fixes
genesis-pal-dataserver: Ensure insert updates are evaluated using dataserver where clausegenesis-pal-dataserver: Fix numerous out of sync update processing issues
7.2.26
Fixes
genesis-pal-dataserver: Port across async handling fix from master
7.2.25
Fixes
genesis-pal-dataserver: Correct handling of out of sequence update processing
7.2.24
Features
genesis-pal-dataserver: Improve memory profile of data server enriched fields
Fixes
genesis-dataserver2: Fixed a race condition when a modify event matching thewhereclause quickly follows a non-matching insert event
7.2.23
Fixes
- dataserver: Ensure we use LMDB as source of truth when the
oldRecordinformation in the table update is not available - db: When db cache inserts are enabled, write inserts to the cache if existing cache entry value is null
7.2.22
Features
- Optimise memory usage
BackwardJoinCachefor 1-2-1 joins
Fixes
- Optimize index matching for non-consecutive fields
DumpTablenow produces a file with headers when there are rows but the supplied criteria doesn't match any records- Ensure
TRACElevel is set correctly forGenesisMessageEncoderandGenesisMessageDecoderwhen `DATADUMP_ON is activated - Ensure cookie based
REFRESH_AUTH_TOKENvalue is correctly added toEVENT_LOGIN_AUTHpayload ResourceDaemondoesn't properly evaluateClusterMode- Ensure
DataDumpManageruses different loggers forGenesisMessageDecoderandGenesisMessageEncoder - Option to register root records in back join cache to ensure they exist when child record is registered
- Add sync backwards join cache impl
- Increase producer hwm for zeromq update layer
- Increase zero mq subscriber worker high water mark value to
Integer.MAX_VALUE - genesis-pal-dataserver: Handle multiple updates for same record in data server
- Race condition when processing multiple back join table modifications on different fields at the same time
7.2.21
Fixes
- Populate missing DETAILS.SESSION_AUTH_TOKEN field for inbound EVENT_LOGIN_DETAILS messages at the router level
7.2.20
Fixes
- Remove ReflectionToStringBuilder from ClusterMessage
7.2.19
Fixes
- (pal-dataserver): Indices on DOUBLE fields are now correctly sorted correctly in LMDB
- Disable copyDependencies task in gradle-plugin-common and improve publish-plugin-config configuration to ensure no plugin modules ever run copyDependencies task
Features
- Print additional statement to system.log if killProcess ends up calling 'kill -9' after the waiting grace period expires
7.2.18
Fixes
- Fixed an issue in Remap for Oracle DB where foreign keys would be violated for auto increment columns
7.2.17
Fixes
- Add debug logging to FullDuplexClientHandler around subscription management
7.2.16
Fixes
- remap: table removal + table rename to the table name of the removed table now works as expected
7.2.15
Fixes
- (codegen): include dependant scripts in codegen cache key
- ResourceDaemon: Fix Dependency Injection initialisation on startup
7.2.14
- Fixes
- Dataserver backwardsJoin view does not recover in case of a buffered out-of-order update
7.2.13
Fixes
- deploy-plugin: find project jars from gradle jar task, not from version
- Consul: improve session check logic used to determine primary process demotion to avoid race conditions
- Criteria validation and compilation should handle StackOverflow errors
- Mon dies when system is not able to connect to CONSUL but is configured to do so
7.2.12
Features
- Metrics: make logging of zero values optional in logger reporter
Fixes
- Add clientHandler router config with option to close client channel if becomes full
7.2.11
Fixes
- Fix Auth key concatenation for enriched auth clauses and AuthCache re-registration operation now uses correct record ids
- Exclude data folder from site specific folder copy
7.2.10
Fixes
- DOUBLE fields generated using the new table DSL to accept negative values by default
- Update SetLogLevel to use data classes and workflow, re-add countdown latch to script
7.2.9
Features
- Add metric for tracking the number of users per dataserver query
7.2.8
Features
- Add non-blocking threading model for database subscriptions
Fixes
- getRangeFromEnd default method without fields parameter now calls correct getRangeFromEnd method
- FDB alias cache will now respect fields with same name and different type defined in different tables
7.2.7
Features
- Add validation for enum field values
- Added field macros for common field patterns
Fixes
Update all references of python to python3
- Add type conversion from Integer to Short
- Improve handling in builder for fields with IS_ prefix
- Process json aliased enums correctly
7.2.6
Fixes
- Add empty REQUEST when message body and parameters is empty on request replies
- Correct issue in updateTablesDictionary gradle task (updateTablesDictionary)
7.2.5
Fixes
- USER_ATTRIBUTES table should use new table field syntax for dynamic fields for compatibility purposes
7.2.4
Fixes
- Fixed issues in schema validation with BigDecimal handling and embedded type info
- Ensure heartbeat pong provides accurate information about authentication status at all times
7.2.3
Features
- Added support for null values in criteria JSON API
7.2.2
Features
- Add new genesisSyncCompact task to support compact processes and update ProjectOverviewBuilderTask
- Support compact processes in project overview
Fixes
- UserSessionCache now handles multiple expiry listeners for the same auth token
Breaking changes
7.2 breaking
- API enhancements for dynamic rule creation forms, split new SYSTEM_ENTITY request into two
- Always add userName to rule expression substitutions in DynamicRuleFactory
- Standardised python script shebang lines to make compatible with systems running python2 and python3
- Add --excludeFields arg to DumpIt
- Using indy compilation
- Router parses request bodies correctly for reqrep server message
- GenesisScriptCache is not consistently hit
7.2.1 breaking
- Always start GENESIS_EVALUATOR by default