Skip to main content

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 clause
  • genesis-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 the where clause quickly follows a non-matching insert event

7.2.23

Fixes
  • dataserver: Ensure we use LMDB as source of truth when the oldRecord information 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 BackwardJoinCache for 1-2-1 joins
Fixes
  • Optimize index matching for non-consecutive fields
  • DumpTable now produces a file with headers when there are rows but the supplied criteria doesn't match any records
  • Ensure TRACE level is set correctly for GenesisMessageEncoder and GenesisMessageDecoder when `DATADUMP_ON is activated
  • Ensure cookie based REFRESH_AUTH_TOKEN value is correctly added to EVENT_LOGIN_AUTH payload
  • ResourceDaemon doesn't properly evaluate ClusterMode
  • Ensure DataDumpManager uses different loggers for GenesisMessageDecoder and GenesisMessageEncoder
  • 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