8.14
This release contains breaking changes. Further details are listed at the end of this page, along with instructions for migrating from previous releases.
This release contains impactful changes. They are not breaking but typical stumbling blocks for older applications upgrading. Further details are listed at the end of this page, along with instructions to resolve.
This release contains an update to the way Business Component versions are managed. Further details found in the Client Dependencies Update Section.
Server
Breaking changes
- Bump com.github.ben-manes.caffeine:caffeine from 2.9.3 to 3.2.2
- Bump nettyVersion from 4.1.119.Final to 4.2.3.Final
genesis-codegen: Addtimestampproperty to generated DAO classcopymethodgenesis-db: Ensure parameterised view entities cannot call subscribe operationsgenesis-db: Entitydb support for parameterised viewsgenesis-db: Support for criteria at the db level, including direct sql supportgenesis-evaluator: Moved timezone req-rep from evaluator to reporting modulegenesis-openapi-codegen: Revamp openapi code generation to handle more scenarios as well as support multiple spec generations in one modulegenesis-pal-datapipeline: Enhanced acknowledgement mechanism with different error types, including new SinkUnavailable errorgenesis-router: Set cookie authentication by defaultgenesis-console: Disable genesis Console endpoints by default
- refactor(genesis-db)!: Remove deprecated
RxDb.initialisemethod which has been replaced with guice injection
Features
core: Can enable including the Open Telemetry java agent and its properties file through Sys Defcore: Replace ANTLR code parse for Kotlin PSI API to reduce memory footprint and improve performancecore: Support running groovy and GPAL scripts in the same process to aid migration to GPALcoreproduct: Add--printClasspathoption tostartProcessand--dumpClasspathoption tostartServercoreproduct: Add dynamic bash completion generation for Genesis Python scripts with improved option detection and process/group name supportcoreproduct: Enhance python scripts to allow process start flag to be overridden from sysdef or env varscoreproduct: Increase field sizes (ENTITY_ID, SOURCE_ID, PROCESS, PROCESS_NAME) add RIGHT_CODE index to RIGHT_SUMMARY table and timestamp index to USER_AUDIT tabledeploy-gradle-plugin: Adding a task to create a full zip of server and web with all dependenciesexec-gradle-plugin: Improve gradle config phase timing by using better caching of classpathsgenesis-codegen: Prevent compilation error on incorrect use of backwardsJoin flaggenesis-criteria: Add missing Expr functions to criteria validation allowlistgenesis-criteria: ImplementExpr.dateTimeIsInRangefunctionality for time-based filtering andDATE_TIME_IS_IN_RANGEmethod call to support this feature in report generationgenesis-criteria: Improve criteria AST validation to provide more comprehensive checks and support Expr functions in criteria index interval extractiongenesis-db: Can enable metrics for Genesis Db Cachegenesis-db: Can specify optimistic concurrency checks for specific tablesgenesis-db: Support for joining genesis view tables using native SQL queriesgenesis-db: Add deleteAll by entity index to db operationsgenesis-db: Add entity dictionary on entity db and enhance req/rep metadata in criteria only mode to provide criteriaFields and sortableFields informationgenesis-db: Add full support for parameterised views ongetByCriteriaoperationgenesis-db: Add support forfieldsparameter on sql viewsgenesis-db: Add support for ordering and paginationgenesis-db: Add support for sorting by index name ongetByCriteriaoperationgenesis-db: Relax criteria validationgenesis-db: Support for range subscribe when using native sql joinsgenesis-db: Support native sql joins on parameterised reposgenesis-db: Support native sql query getAll operationgenesis-dbmon: Support for getByCriteria in search and updateWhere operationsgenesis-dictionary: Add support for shared enum definitions with aliasesgenesis-environment: Implement GetNextAutoIncrementNumbers script to work similarly to GetNextSequenceNumbersgenesis-environment: Add support for criteria operation in dumpItgenesis-environment: Load rootProject/testData when running remap during local developmentgenesis-gradle: Add support for open telemetry in exec plugin to make it easier to run locallygenesis-jackson: Provide default Jackson XSS safeStringdeserializer named XssSanitizingDeserializer.ktgenesis-testsupport: Support for lazily provided sys def valuesgenesis-metrics: Register metrics for SQL coroutine dispatcher thread pool and Hikari connection poolgenesis-net: Add support for IOUring withinNettyif it is available at the kernel level and the Java propertygenesis.netty.iouring.enabledis set totruegenesis-pal: Add support forauthblocks without a map name in thepermissioningGPAL section of custom req reps and eventhandlersgenesis-pal-datapipeline: Added support for asynchronous calls within operation error handlersgenesis-pal-datapipeline: Improve data pipelines declaration syntax and allow building pipelines in codegenesis-pal-dataserver: Remove experimental DATABASE_DRIVEN processing modegenesis-pal-execution: Can use system definition properties in process config gpal scriptgenesis-pal-requestserver: Add criteria req rep meta datagenesis-pal-requestserver: Add direct offset support for request servergenesis-pal-requestserver: Add direct support for getByCriteria database operationgenesis-pal-streamerclient: Add additional logging when moving to error stategenesis-process: Add Array type support to PAL metadata mappinggenesis-router: Add support for new req rep parameters on http requestgenesis-transform: Added support to apply a timezone to all date time format operations
Performance improvements
codegen-gradle-plugin: Improve gradle plugin kts file caching mechanism to prevent unnecessary cache misses and add other performance improvementsdeploy-gradle-plugin: Update generated dockerfile to set the system definition settingScriptCacheDirvalue to/app/scriptcachegenesis-config: Make GenesisScriptHost construction consistent across the platform in terms of script cache path resolution and improve script cache implementation
Fixes
codegen-gradle-plugin: Add system definition files to fields-dictionary kts evaluation cache to prevent false positive cache hitscodegen-gradle-plugin: UseruntimeClasspathin codegen isolated task execution to ensure correct behaviourcoreproduct: Fix issue in process starter JVM_DEFAULT_ARGS handlingdistribution-gradle-plugin: CopyinstallHooksscripts to the correct application folder as part of distribution file creationgenesis-cluster: Avoid instantiating console web endpoints as part of the package scan mechanism for GENESIS_CLUSTERgenesis-cluster: Fix race condition between Consul service discovery lookup and unicast relay data processinggenesis-codegen: Always write serialised dictionary on codegengenesis-codegen: Generated SysDef object is missing propertiesgenesis-codegen: Handle sys defs with characters that would be illegal in a kotlin name e.g..genesis-console: Revert API classes package movegenesis-db: Correct handling repo modules with suspend methodsgenesis-db: Correct type handling in mssql bulk insert and modify queriesgenesis-db: Fix bug in MSSQL layer insert operation, when writing binary datagenesis-db: Fix bug on RxDb getByCriteria operation handling of fieldsgenesis-db: Fix various issues in db layer: short handling and sequences in mssqlgenesis-dictionary: Ensure shared aliased enums can be serialised/deserialised using Jacksongenesis-environment: Fix registering no-op instance of Optimistic Concurrency builder for scriptsgenesis-environment: InstallHooks functionality should detect existing hooks insite-specific/scripts/installHooksfoldergenesis-environment: Disable optimistic concurrency checks for scriptsgenesis-environment: Fix handling of sys def reading with overlapping product namesgenesis-eventhandler: Change incorrect use of system definition itemUseNettyThreadsInEventHandlerin event handler implementationgenesis-eventhandler: Split different Event Handler APIs into separate implementations to avoid potential coroutine issues when using runBlockinggenesis-gradle: Account for product sys def when processing templated process file with Exec plugingenesis-gradle: Demote info logs related to gradle file cache to avoid polluting the gradle code generation plugins outputgenesis-gradle: Show correct process name inpreCompileScriptsgradle task outputgenesis-testsupport: Fix regression in type binding when using the @ProvidedInstance annotation inGenesisJUnittestsgenesis-pal-datapipeline: All pipelines should have a defaultonUncaughtErrorhandler to avoid the process from crashing and instead sets the process state toWARNINGgenesis-pal-datapipeline: Ensure pipeline is not corrupted when SKIP_ELEMENT action is used on an intermediate pipeline operationgenesis-pal-datapipeline: Improved Data Pipeline acknowledgement mechanismgenesis-pal-datapipeline: Log an error when persistence index is out of sequence and no records will be readgenesis-pal-execution: Fix potential edge case when processing updates that would miss deletes on inner joinsgenesis-pal-permissions: Make auth perms GPALexpressionblock suspending so db lookups can be performedgenesis-pal-streamerclient: Fix issue in chronicle initialisationgenesis-process: EnsureSysDefobject is initialised before reading-process-config.ktsand handle issues withSysDefobject usage in GPAL scripts gracefullygenesis-process: Stacktrace is now shown again when any issues arise during process startupgenesis-testsupport: EnsureGenesisDatabaseTestannotation also initialises `GenesisPaths.genesisHome()`` internallygenesis-transform: Ensure values with different types (i.e.Short,Int,Long) for the same column and format are formatted as expectedremap: Ensure auto increment fields are handled correctly when migrating to new table syntax- Ensure complex event handler payloads are supported by MCP schema
Dependency changes
- Bump Aeron from 1.46.8 to 1.48.4 and Agrona from 1.23.1 to 2.2.4 from 3.2.1
- Bump aeronVersion from 1.48.4 to 1.48.5
- Bump aeronVersion from 1.48.5 to 1.48.6
- Bump byteBuddyVersion from 1.17.6 to 1.17.7
- Bump com.github.oshi:oshi-core from 6.8.2 to 6.8.3
- Bump com.github.oshi:oshi-core from 6.8.3 to 6.9.0
- Bump com.google.errorprone:error_prone_annotations from 2.39.0 to 2.40.0
- Bump com.google.errorprone:error_prone_annotations from 2.40.0 to 2.41.0
- Bump com.google.guava:guava from 33.4.8-jre to 33.5.0-jre
- Bump com.google.jimfs:jimfs from 1.3.0 to 1.3.1
- Bump com.google.protobuf:protobuf-java from 4.31.1 to 4.32.0
- Bump com.google.protobuf:protobuf-java from 4.32.0 to 4.32.1
- Bump com.jfrog.artifactory from 5.2.5 to 6.0.0
- Bump com.jfrog.artifactory from 5.2.5 to 6.0.0
- Bump com.jfrog.artifactory from 6.0.0 to 6.0.1
- Bump com.jfrog.artifactory from 6.0.0 to 6.0.1
- Bump com.networknt:json-schema-validator from 1.5.8 to 1.5.9
- Bump com.opencsv:opencsv from 5.11.2 to 5.12.0
- Bump com.zaxxer:HikariCP from 6.3.0 to 6.3.2
- Bump commons-cli:commons-cli from 1.9.0 to 1.10.0
- Bump commons-codec:commons-codec from 1.18.0 to 1.19.0
- Bump commons-io:commons-io from 2.19.0 to 2.20.0
- Bump commons-net:commons-net from 3.11.1 to 3.12.0
- Bump de.cronn:reflection-util from 2.17.0 to 2.18.0
- Bump debeziumVersion from 3.1.3.Final to 3.2.0.Final
- Bump debeziumVersion from 3.2.0.Final to 3.2.1.Final
- Bump debeziumVersion from 3.2.1.Final to 3.2.2.Final
- Bump io.github.classgraph:classgraph from 4.8.180 to 4.8.181
- Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom from 2.17.0 to 2.17.1
- Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.17.0 to 2.17.1
- Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.17.1 to 2.18.0
- Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.18.0 to 2.18.1
- Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.18.1 to 2.19.0
- Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.19.0 to 2.20.0
- Bump io.reactivex.rxjava3:rxjava from 3.1.10 to 3.1.11
- Bump jacksonVersion from 2.18.3 to 2.19.2
- Bump junitVersion from 5.13.2 to 5.13.3
- Bump junitVersion from 5.13.3 to 5.13.4
- Bump kafkaClientVersion from 4.0.0 to 4.1.0
- Bump ktorVersion from 2.3.12 to 3.2.1
- Bump ktorVersion from 3.2.1 to 3.2.2
- Bump ktorVersion from 3.2.2 to 3.2.3
- Bump log4jVersion from 2.25.0 to 2.25.1
- Bump maven-plugin-api.version from 3.9.8 to 3.9.11
- Bump micrometerVersion from 1.15.1 to 1.15.2
- Bump micrometerVersion from 1.15.2 to 1.15.3
- Bump micrometerVersion from 1.15.3 to 1.15.4
- Bump mockitoVersion from 5.18.0 to 5.19.0
- Bump msgpackVersion from 0.9.8 to 0.9.10
- Bump nettyVersion from 4.2.3.Final to 4.2.4.Final
- Bump nettyVersion from 4.2.4.Final to 4.2.5.Final
- Bump nettyVersion from 4.2.5.Final to 4.2.6.Final
- Bump oracleJdbcVersion from 23.8.0.25.04 to 23.9.0.25.07
- Bump org.apache.activemq:artemis-jakarta-client from 2.41.0 to 2.42.0
- Bump org.apache.camel:camel-bom from 4.10.3 to 4.10.6
- Bump org.apache.commons:commons-compress from 1.27.1 to 1.28.0
- Bump org.apache.commons:commons-csv from 1.14.0 to 1.14.1
- Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0
- Bump org.apache.maven.archetype:archetype-packaging from 3.2.1 to 3.4.0
- Bump org.apache.maven.plugin-tools:maven-plugin-annotations from 3.13.1 to 3.15.1
- Bump org.apache.maven.plugins:maven-archetype-plugin from 3.2.1 to 3.4.0
- Bump org.apache.maven.plugins:maven-clean-plugin from 3.4.0 to 3.5.0
- Bump org.apache.maven.plugins:maven-compiler-plugin from 3.13.0 to 3.14.0
- Bump org.apache.maven.plugins:maven-dependency-plugin from 3.7.1 to 3.8.1
- Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.2 to 3.1.4
- Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.5.0 to 3.6.1
- Bump org.apache.maven.plugins:maven-install-plugin from 3.1.2 to 3.1.4
- Bump org.apache.maven.plugins:maven-plugin-plugin from 3.13.1 to 3.15.1
- Bump org.apache.maven.plugins:maven-release-plugin from 3.1.0 to 3.1.1
- Bump org.apache.maven.plugins:maven-site-plugin from 3.12.1 to 3.21.0
- Bump org.apache.maven:maven-model from 3.9.8 to 3.9.11
- Bump org.apache.shiro:shiro-core from 2.0.4 to 2.0.5
- Bump org.assertj:assertj-core from 3.27.3 to 3.27.4
- Bump org.assertj:assertj-core from 3.27.4 to 3.27.5
- Bump org.checkerframework:checker-qual from 3.49.5 to 3.50.0
- Bump org.checkerframework:checker-qual from 3.50.0 to 3.51.0
- Bump org.codehaus.plexus:plexus-utils from 4.0.1 to 4.0.2
- Bump org.jfrog.buildinfo:artifactory-maven-plugin from 3.6.2 to 3.7.0
- Bump org.jfrog.buildinfo:build-info-extractor-gradle from 5.2.5 to 6.0.0
- Bump org.jfrog.buildinfo:build-info-extractor-gradle from 5.2.5 to 6.0.0
- Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.0 to 6.0.1
- Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.0 to 6.0.1
- Bump org.jline:jline from 3.30.4 to 3.30.5
- Bump org.jline:jline from 3.30.5 to 3.30.6
- Bump org.jlleitschuh.gradle.ktlint from 12.3.0 to 13.0.0
- Bump org.jlleitschuh.gradle.ktlint from 13.0.0 to 13.1.0
- Bump org.jlleitschuh.gradle:ktlint-gradle from 12.3.0 to 13.0.0
- Bump org.jlleitschuh.gradle:ktlint-gradle from 13.0.0 to 13.1.0
- Bump org.junit.platform:junit-platform-launcher from 1.13.2 to 1.13.3
- Bump org.junit.platform:junit-platform-launcher from 1.13.3 to 1.13.4
- Bump org.kiwiproject:consul-client from 1.5.1 to 1.6.0
- Bump org.mockito.kotlin:mockito-kotlin from 5.4.0 to 6.0.0
- Bump org.openapitools:openapi-generator from 7.14.0 to 7.15.0
- Bump org.postgresql:postgresql from 42.7.7 to 42.7.8
- Bump org.twdata.maven:mojo-executor from 2.4.0 to 2.4.1
- Bump pekkoVersion from 1.1.4 to 1.1.5
- Bump pekkoVersion from 1.1.5 to 1.2.0
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.0 to 2.6.1
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.1 to 2.6.2
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.2 to 2.6.3
- Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.3 to 2.6.4
- Bump sshdVersion from 2.15.0 to 2.16.0
Patch releases
8.14.12
Fixes
genesis-db: UseDispatchers.IOto handle database queries used ingetByCriteriaandSqlViewExecutorto avoid deadlocks derived from exhausting thedbCoroutinesContextthread pool
8.14.11
Features
- Allow passing of arbitrary datasource properties to Hikari using
sql.genesissyntax
Fixes
genesis-environment: Ensure field max size schema changes respect each individual table definition and preserve field nullability configuration when applying such changes in SQL Server
8.14.10
Features
genesis-pal: Enabled named injection in gpal kts scripts
Fixes
genesis-dbmon: FindCommand should use UniqueIndex Jackson deserializationgenesis-router: Re-add injector function
8.14.9
Fixes
genesis-clustersupport: STANDBY health checks need to be excluded from Consul service discovery eligibilitygenesis-environment: EnableSendItto handle binary data inLEGACYmode
8.14.8
Features
build-gradle-plugin: Add new gradle task namedcheckAuthPermissionsto check permissions/auth configuration
Fixes
genesis-clustersupport: Process monitors in STANDBY state should be reported as "failed" checks to Consulgenesis-net: Create request log per process
8.14.7
Features
coreproduct: Support compiled GPal definitions
8.14.6
Features
genesis-environment: Support byte array fields inDumpItandSendIt
8.14.5
Fixes
genesis-db: Native sql layer, release connection on failure to execute query
8.14.4
Features
genesis-db: Add support forExpr.dateTimeIsInRangeas part of native SQL querying capabilities
8.14.3
Fixes
genesis-pal-requestserver: Include derivedFields for SQL-based criteria-only request reply workflow
8.14.2
Fixes
genesis-criteria: Fix incorrect index interval generation when translating someExpr.dateIsoperationsgenesis-db: Handle genesis table objects using sql native connectiongenesis-router: Correct collection handling inweb-handler.ktsfiles
8.14.1
Features
genesis-commons: Improve handling inGenesisSetandDbRecordof binary data inByteArraygenesis-config: Transform fromStringtoList,SetandMapin the dependency inject modulegenesis-db: Improve criteria validationgenesis-environment: Support views inDumpItgenesis-pal: Improve error handling in views, when circular join is detectedgenesis-pal-consolidator: Add support for minBy and maxBy functions- Add support for column ordering to match inclusion list
Fixes
genesis-db: Fix issue ingetRangeFromEndoperation whenSqlViewsEnabledis truegenesis-dbmon: Fix view field handling in search and distinct commandsgenesis-environment: Ensure audit records are inserted correctly when using SendItgenesis-pal-consolidator: Fix memory profile in cold start
Client
Dependency Updates
All foundation-ui libraries should be updated from version 14.310.2 to 14.343.0 to ensure compatibility with the latest 8.14 release.
Example: Updating package.json
Below is a sample diff for updating the relevant dependencies in your package.json:
{
- "@genesislcap/pbc-auth-ui": "1.0.9",
- "@genesislcap/pbc-documents-ui": "0.0.12",
- "@genesislcap/pbc-notify-ui": "1.0.62",
- "@genesislcap/pbc-reconciliation-ui": "^0.0.32",
- "@genesislcap/pbc-reporting-ui": "1.0.378",
+ "@genesislcap/pbc-auth-ui": "14.343.0",
+ "@genesislcap/pbc-documents-ui": "14.343.0",
+ "@genesislcap/pbc-notify-ui": "14.343.0",
+ "@genesislcap/pbc-reconciliation-ui": "14.343.0",
+ "@genesislcap/pbc-reporting-ui": "14.343.0",
}
Make sure to run npm install or npm run bootstrap after updating your package.json to apply the changes.
Features
foundation-ui: Add client-side file reader componentgrid-pro: Improve sort column styling when server-side datasource + pagination fixes on SSRMfoundation-ui: Add ability to add icon/svg in categorized-multiselectgrid-pro: Improve datasource error handling and presentation- Update styles for foundation-form group label
- Date IS_CURRENT and IS_PREVIOUS operators for rule expression builder
grid-pro: REVERT #1868 - improve datasource error handling and presentationfoundation-ui: Environment indicatorgrid-pro: RESTORE #1868 - improve datasource error handling and presentationfoundation-ui: Environment indicator- Trigger polling on event handler ack
foundation-utils: Datetime formatter with milliseconds- Enable substring search filtering in Connected Select renderer via filter-mode option
grid-pro: Add position attribute to select cell editordialog: Add close event to modal/dialogfoundation-ui: Add filter mode options to combobox and connected select control- Add statusBarConfig support to Entity Management component
- Add clear method to multiselect component
- Upgrade TypeScript and tslib to latest versions
- Add resize functionality to multiselect component
foundation-ui: Support forward jumping in stepperfoundation-forms: Optional attribute for confirmation message- Add auto step precision feature to number-field component
foundation-ui: Move pbc-notify-ui to foundation-ui repofoundation-entity-management: Add extra slots for custom buttons and elementsfoundation-redux: Add Redux Toolkit integration package with showcase examplesfoundation-ui: Support \n newline escape character in notification componentsfoundation-utils: Add shortcut manager and listener- Add new features to stepper - go to step, hide buttons
vite-builder: Update configuration and dependencies- Migrate PBC Reporting UI to monorepo
foundation-ui: Add client-side file reader component- Stepper component – add option to hide all tabs
- Add divider renderer for foundation-forms
grid-pro: Allow custom error handling template + simplified defaults- Add support for terms and conditions auth handling
foundation-ui: Add path tracking for unauthenticated users in route permission checks- Add inactivity monitoring utility
foundation-ui: Multiselect and forms updates- Improve ReqRep message flows and server-side behavior
foundation-ui: Add toast-position at Notification Listener componentgrid-pro: Add sizeColumnsToFit and sizeColumnsToContent to grid-pro and entity-managementfoundation-entity-management: Enable option to download csv data- Bump to node version 22
foundation-forms: Show error icon in categorized forms tabsfoundation-notifications: Adding optional icon config to notifiactions toast builders- Emit success event from file-upload
- Updates to client react project to use vite
foundation-entity-management: Support adding custom actionsfoundation-entity-management: Csv download formats date and datetime fieldspbc-auth-ui: Migrate pbc to platformfoundation-forms: Showing anyOf error messages in smart formsfoundation-ui: Set additional static part name on icon tagpbc-documents-ui: Migrate pbc document manager to platformpbc-reconciliation-ui: Migrate pbc-reconciliation to platformfoundation-forms: Adding row data mapper connected select rendererfoundation-ui: Adding resizable behavior to modalfoundation-ui: Add section navigator component with scroll navi…grid-pro: Allow custom options in selectEditor
Fixes
- Enable $data References in Foundation Forms for Cross-Field UI Rules
foundation-ui: Correct scroll to option + stop changing grid scroll after interaction- Clear dropdown selections when clearing filter data foundation-filters
foundation-ui: Add part attributes to navigation template- Add sample test to client app
- Reseting connected select control when clearing data on foundation-filters
- Removes broken package with system health alerts
- Update styles for foundation-form group label
- Resolve light mode styling issues with ag-grid side and status bars
- Set time using locale and not UTC
- Update default user rights to access sample page
- Change autocomplete to list as both is not compatible with contains option
eslint-config: Bump version past version with security issue- Prevent foundation-notification container creating secondary design system
- Cleaning now unused api-report.md files and old package-lock refs
- Add rimraf dependency and TypeScript 5.9.2, enhance ESLint rules
foundation-comms: Override analytics nested dependencyfoundation-comms: Pin analytics to the last stable version- Optimize eslint performance and build processes
foundation-comms: Fix req-rep issue when snapshot is init- Update visibility css conflicting with Chrome V139
- Update @playwright/test from 1.46.1 to 1.54.2
foundation-ui: Fix floating point error with countdown timer, add unit parameterfoundation-ui: Address number-field util linting warningsfoundation-login: Remove unnecessary type assertion for Connect propertyfoundation-entity-management: Clear confirmation message if form closed- Ensure existing notification container is used
foundation-ui: Notifications subscription after reconnectionpbc-notify-ui: Update clean script to match other packagesclient-app: Set preserveSymlinks to tsconfig.jsontooling: Add rewrite function for vite compatibilityreact-client-app: Init react client showcase appgrid-pro: Remove setDataValue for numberEditorreact-client-app: Align deps to monorepofoundation-ui: Add autocomplete="off" to multiselect component- Stepper enable programmatic navigation to first/last steps regardless of jump settings
- Address bootstrap and lint script warnings and errors + package.json cleanup
foundation-ui: Prevent false positives from value/control-value precision differencesgrid-pro: Resolve KV storage data structure access bug and add filter persistence- Move notifications below the header bar
foundation-entity-management: Fix circular dependencyfoundation-auth: Improve handling of terms and conditions data loadgrid-pro: Add null checks to prevent errors when params are undefined- Auth-logo not showing custom logos
- Replace hardcoded "zero-" prefix in file-upload component
foundation-header: Remove unused styles + correct slot orderpbc-auth-ui: Remove peer deps- Update typo in error text for Terms and Conditions
- Allow status bar label to be updated
- Added date pickers page to react app
- Added scheduler route in client app for react
- Package.json for recon
- Doc management circular dependencies and package versions
build-kit: Fix usage of vulnerable dependencies- Update to allow blobs for pdf rendering
foundation-ui: Preserve user input during async filtering
Breaking change guidance
Caffeine library upgrade
The genesis platform now uses Caffeine version 3.2. Version 3 added the following changes:
Incompatible changes
- VarExpiration time-based puts now return the old value instead of a boolean result
- Removed jandex resource as no longer utilized by Quarkus
- Split Policy.Expiration into fixed and refresh interfaces
Deprecation removals
- CacheWriter, SingleConsumerQueue, and UnsafeAccess
- StatsCounter.recordEviction variations
- CacheStats constructors
If your genesis application is using Caffeine for any reason, please ensure to adapt your code to the latest changes if needed.
Netty library upgrade
Netty has been upgraded to version 4.2.0+, which introduces a few breaking changes and different behaviour. If your application is using any Netty features directly as opposed to relying on the platform configuration and APIs, please ensure you follow the:
Cookie authentication by default
The genesis-router.kts configuration now uses cookie authentication by default to follow standard security practices. Please ensure your application UI is also set up to use cookies when adopting these changes. For more information about the router configuration visit the cookie authentication documentation.
Database API changes
The database API has been greatly enhanced with new features in this version (e.g. criteria search translation to SQL, native SQL joins for views, etc), but there are a few breaking changes to highlight
- Uses of
global.genesis.db.entity.ViewEntitydirectly as part of thegetBulkdatabase operation will need to be changed forglobal.genesis.db.entity.DbBulkEntity. This new type is a more accurate definition of what types of entities can be read usinggetBulk. - Parameterised views now have a compile time check to ensure they cannot be used in
getBulkandsubscribeoperations as they require an external parameter to run database operations. Before 8.14, the code would fail at runtime. - Parameterised views now work as expected when using the different
EntityDbAPIs. - Generated entities now have the
timestampfield added to thecopyfunction. - An internal deprecated method to initialise
RxDbinstances has been removed.RxDbshould always be retrieved via dependency injection.
External OpenAPI client code generation
The support for code generation of external OpenAPI specifications (see external rest APIs page) has been reworked to support more complex specifications, including generating code for multiple specs in one single gradle module. If you are using this platform feature, please regenerate the external OpenAPI client code using the gradle plugin and pay attention to any potential class definitions moving into separate packages.
Genesis "test" Gradle plugin
If your application is not using the global.genesis.test Gradle plugin, please ensure you apply it in the relevant application modules.
Without it, a series of --add-opens and --add-exports JVM configuration options need to be added, add this can add unnecessary maintenance effort when performing platform upgrades.
Impactful change guidance
New code parsing approach for derived fields
genesis now uses the Kotlin PSI API to parse derived field information from table and view definitions at code generation time instead of using ANTLR. This change should not have any effect on functionality, but will provide a performance and memory improvement.
Core dictionary changes
There have been a few changes in the genesis-tables-dictionary.kts file.
- The varchar field sizes for ENTITY_ID, SOURCE_ID, PROCESS, and PROCESS_NAME have been increased.
- Added a new RIGHT_CODE index to RIGHT_SUMMARY table and a TIMESTAMP index to USER_AUDIT table
If you have overridden this file with a
site-specificversion, please ensure you apply these updates in your custom file to guarantee compatibility with 8.14.
Improved criteria AST validation
The criteria match validation for dataservers and request replies is now more thorough. We don't expect any issues to arise from this change, but you may see different/new rejection messages for invalid criteria.
New metadata information added to req/rep
The request-reply JSON schema metadat ahas been enhanced to provide criteriaFields and sortableFields so the UI knows what fields can be used in criteria evaluation and what fields can be used for native SQL order by purposes.
If your application or tests rely on the old metadata definition please make sure to accommodate these changes moving forward.
Automatic data load in local environments
If your genesis application project contains a /genesis/testData folder (see testData), the data files will be loaded automatically in your dev database as part of local development (e.g. using Genesis Start or the Intellij plugin).
IOUring support for Netty
If your operating system supports IOUring, you can enable Netty's IOUring support for genesis applications setting the JVM property genesis.netty.iouring.enabled to true.
IOUring provides significant performance improvements over Epoll in Linux environments, but can be controversial from a security perspective, and therefore it is not enabled by default.