Jury Release Notes: JuryFlex v5.3.7 - v6.0.8
This document contains release notes for JuryFlex versions 5.3.7 through v6.0.8.
Version 6.0.8
Release Date: July 27, 2026
Improvements
- Appearance date filtering — additional null-safety checks added around
appearanceDatePickerinPoolMasterGrid, and imports updated to useDateRangefromEnhancedDateRangePicker; the fix was reapplied after a merge to ensure it landed onupdate-spring-vaadin(67fabc1a, ec2e926a) - Summons Ready grid — adjusted column and layout widths in
SrMessageGridfor improved UI consistency (ca982047)
Version 6.0.7
Release Date: July 21, 2026
Bug Fixes
-
JURYSVC-64 / JURYCLOUD-87 — Juror Search, Juror Details: Cannot Undo Permanent Excusal (767a8307)
- Removed stale Hibernate caching annotations and juror-related caches from
JurorMasterServicethat were preventing permanent-excusal reversal from being reflected - Optimized cache configuration and added logging/robustness improvements to
JurorMasterDetailandJurorMasterDetailView
- Removed stale Hibernate caching annotations and juror-related caches from
-
JURYSVC-80 / JURYCLOUD-85 — Columbia JuryFlex Conversion Issue: Pool Master ID vs. Pool Number Mismatch (4a7063af)
- Replaced
DateTimePickerwithEnhancedDateRangePickerfor the appearance-date filter inPoolMasterGrid, withLumoUtility-based CSS overrides for alignment - Updated filtering logic to support proper date-range selection
- Replaced
-
JURYCLOUD-82 — Unable to Recycle Jurors (d7d3c21a)
- Enhanced juror availability check logging in
PoolGroupCheckinView - Added
@JsonIgnoreto panel and pool master mappings inSysTrialCodeandSysJudgeCodeto prevent recycling failures caused by serialization issues
- Enhanced juror availability check logging in
-
JURYSVC-94 / JURYCLOUD-80 — Trial Panel Numbers Shown in App Do Not Match On All Screens (d308209f)
PoolGroupMembersCheckedInGridnow displays the panel number instead of the internal panel IDPanelDetailViewpanel references are now clickable links to the correspondingPanelDetailview
Improvements
-
JURYSVC-92 / JURYCLOUD-81 — Spring UI: Dev 6.0.5 vs. Test 5.6.7 (3193b740)
- Standardized padding and spacing across the UI using
LumoUtility - Refactored layout and component styles in
JurorsSummoned,JurorNotifications,JurorRequests, andVoucherMainViewfor consistency - Introduced reusable grid constants for styling
- Standardized padding and spacing across the UI using
-
JasperReports loader fallback refactor (f3b1b3eb)
- Extracted
installJacksonReportLoaderFallbackfor clearer fallback handling in nested JAR environments - Introduced
JacksonReportLoaderFallbackRegistryfor modular, consistent extension discovery - Added a
loadJasperDesignmethod for direct JRXML loading viaJacksonReportLoader, with clearer error diagnostics
- Extracted
-
Vaadin push tenant context recovery (ae8cd1c9)
- Added session-based tenant ID resolution (
resolveTenantId) with a fallback path inConfigureUIServiceInitListener TenantContextcan now recover the tenant from the Vaadin session when push RPCs bypass the normal request path
- Added session-based tenant ID resolution (
-
JURYSVC-96 / JURYCLOUD-78 — "Juror Name Change" activity for new tenants (80ee6519)
- Corrected the new-tenant Liquibase changelog so the
JUROR_NAME_CHANGEactivity code is seeded for newly provisioned tenants, not just existing ones
- Corrected the new-tenant Liquibase changelog so the
-
Documentation — added
RELEASE_NOTES_JIRA.mdandRELEASE_NOTES_JIRA.htmlas a support-facing, ticket-indexed companion to this document (fa341ec6, 972b55d1)
Version 6.0.6
Release Date: July 9, 2026
Bug Fixes
- JURYSVC-99 / JURYCLOUD-79 — Unable to undo Call Offs in JuryFlex (ddf86999)
- Adjusted
PoolMemberExtendedServicevalidation for exempt code comparison so a call-off can be undone correctly
- Adjusted
Improvements
-
JURYCLOUD-78 / JURYSVC-96 — Juror Name Change activity (c758149e)
- Added the "Juror Name Change" activity to
sys_activity_codefor all non-default tenants via Liquibase changeset202603080000001_add_name_change_sys_activity.xml - Increased retry max attempts to 75 and decreased juror file processor parallelism to 1 in production config
- Added the "Juror Name Change" activity to
-
Security scan documentation (f0071b3b)
- Documented known Vaadin Flow scanner false positives in
CLAUDE.md - Added a
form-actiondirective to the Content Security Policy
- Documented known Vaadin Flow scanner false positives in
-
Security headers (517ccb93)
- Integrated
JHipsterPropertiesfor dynamic CSP configuration - Added Strict-Transport-Security, Referrer-Policy, and X-Content-Type-Options headers in
VaadinSecurityConfiguration - Updated the
frame-ancestorsCSP directive
- Integrated
-
.gitignore— excluded thesecurity-scans/directory from version control (60b33580)
Version 6.0.5
Release Date: June 15, 2026
Bug Fixes
- JasperReports in nested JAR environments (fcad846c)
- Installed
JacksonReportLoaderso report compilation works correctly when the application is packaged as a nested (Spring Boot fat) JAR - Added a default password placeholder in the production config template
- Installed
Version 6.0.4
Release Date: June 15, 2026
Changes
- Removed a deprecated HTTP cache configuration property from
application-prod.yml(ac714350)
Version 6.0.3
Release Date: June 15, 2026
Deployment & Configuration
-
Unified prod/cloud configuration (53cf6e67)
- Consolidated
application-prod.ymlandapplication-cloud.yml, externalizing all remaining environment variables - Hardened security defaults and added deployment templates:
northflank-env.templateandjuryflex-service.xml(Windows Service definition)
- Consolidated
-
Docker support (9c30916c, 3a853b43)
- Added
application-docker.ymlfor streamlined Docker deployments behind a reverse proxy - Updated Docker Compose logging profile and
.env.examplefor the newdockerprofile - Removed Hibernate dialect and UUID JDBC type overrides that were unnecessary for the Docker profile
- Added
-
Build workflow (e90ebd05, 80c395c1, e5f578c3)
- Enabled Gradle caching in the multi-arch build workflow and removed a redundant
cleantask from the Buildpacks image build - CORS filter now supports
allowedOriginPatternsalongsideallowedOrigins - Externalized server port configuration and removed redundant conditional checks from the workflow
- Enabled Gradle caching in the multi-arch build workflow and removed a redundant
Version 6.0.2
Release Date: June 12, 2026
Features
- JURYCLOUD-75 —
SrApplicationPropertiesadmin UI (a8dace82)- New
SrApplicationPropertiesentity with a dedicated sequence, seeded with default data and tenant-specific initialization via Liquibase - Read/write service and extended service implementation
- New admin view (
sr-application-properties-admin) under the "Summons Ready" navigation section
- New
Improvements
- JURYCLOUD-76 — Indexing (8942e5d4)
- Added indexes for the
juror_historyandpool_membertables via Liquibase changeset202606110000002_added_indexes_for_sr.xml
- Added indexes for the
Security
- JURYCLOUD-77 — Security scan findings (a722844f)
- Enabled CORS handling on the Vaadin security filter chain and documented why
/api/**and/VAADIN/pushare exempted from CSRF protection - Hardened
application.yml,application-prod.yml, andapplication-cloud.ymlsecurity settings - Added the v6.0.0 Burp Suite scan report and markdown summary under
security-scans/JuryFlex_v6/for audit traceability
- Enabled CORS handling on the Vaadin security filter chain and documented why
Version 6.0.1
Release Date: June 10, 2026
Changes
- Added
Content-Dispositionheaders toStreamResourceinstances inTrialPanelReportsView,DownloadStatewideFileHelper, andSrMessageGridfor consistent file-download behavior across browsers (002f7507)
Version 6.0.0
Release Date: June 2026
Major Infrastructure Upgrades
This release marks a significant platform upgrade across all core framework dependencies. The major version bump reflects breaking changes at the framework level that require coordinated migration steps (see Configuration Changes and JasperReports sections below).
| Component | Previous | Current |
|---|---|---|
| Spring Boot | 3.5.x | 4.0.6 |
| Vaadin | 24.x | 25.1.5 |
| Hibernate | 6.x | 7.2.12.Final |
| Spring Cloud | — | 2025.1.1 |
| Liquibase Schema Version | 3.9 | 4.6 |
Additional framework-level changes:
VaadinTaskExecutor— new bean introduced inAsyncConfigurationfor Vaadin-managed async tasks (f4e2f87c)- Lit Templates removed — all Lit/TypeScript frontend component templates converted to pure Java Vaadin Flow views (9628f6fa)
- Lumo theme — no longer loaded automatically; replaced with explicit CSS imports via
vaadin-theme(b6b84e4a) - JHipster BOM removed — replaced with standalone utility classes:
ApplicationConstants,DefaultProfileUtil,ExceptionHandlingAsyncTaskExecutor,HeaderUtil,JHipsterProperties,LoggingUtils,PaginationUtil,RandomUtil,ResponseUtil,SpringLiquibaseUtil(520ed84a)
JasperReports 7 Migration
Action required for all environments. All 30 report templates have been migrated to JasperReports 7 format. Ensure the extension modules listed below are on the classpath before building.
Template migration (ba49236a): Every .jrxml file in src/main/resources/jasper/ updated to the JR7 XML schema. This affects all 30 templates: summons letters, payroll reports, seating charts, quarterly performance measures, panel records, and more.
Barcode element syntax change (9617b939): The barcode component namespace changed in JR7. Any custom templates maintained outside this repository must be updated:
<!-- Before (JR6 / short form — no longer valid) -->
<jr:Code39 .../>
<!-- After (JR7 — fully qualified barcode4j namespace required) -->
<barcode4j:Code39 .../>
New Gradle extension modules (b9aa615c, 6bf75840) — required for barcode rendering:
implementation 'net.sf.jasperreports:jasperreports-barcode4j:...' // barcode4j integration
implementation 'net.sf.jasperreports:jasperreports-barbecue:...' // additional barcode/layout support
Template cleanup (9cf1dad2): removed unused static text elements from several templates to reduce rendering overhead.
Compiled
.jasperfiles are automatically deleted beforecompileJavaby thedeleteJasperFilesGradle task. Never commit.jasperfiles.
Database
- PostgreSQL support (e12710b2) — PostgreSQL is now a supported cloud database.
- Juror file bulk loading via PostgreSQL COPY (e6e0ff78) — native bulk insert for
juror_master_stageeliminates entity lifecycle overhead during large DHSMV file loads.
Features
-
JURYCLOUD-70 — Notification System & API Key Authentication (827fefb1, 12a1bfcc, 46c5992c, 10a3843d)
SysApiKeyentity and admin view for managing API keys per tenant- API key authentication resolves to real
UserDetailsauthorities fromDomainUserDetailsService - Real-time Summons Ready notification bell in the app bar via Vaadin Push
SrMessageGridfilter panel; "Include Replied Requests" renamed to "Show Processed Requests"
-
JURYCLOUD-71 — Deny Excusal/Reschedule (a6b473ba)
- Administrators can now deny a juror's request for excusal or reschedule from the SR message grid
- Denial reason is stored and surfaced in the reply letter
-
sendSummonedBulk Messaging (66bb7844)SrMessageService.sendSummoned()sends notifications to all jurors on Summons Ready for a pool- Pool creation now automatically triggers summons notifications
- New
summoned.htmlemail template and i18n messages added
-
JurorFileBatchCompleteEvent (3368f2ec)
- Fires after each DHSMV load completes; triggers automatic non-in-county zip cleanup
-
Juror Notification UI Improvements (74276b16)
JurorNotifications: dynamic send-button state and field-level change listenersNotificationBell: tenant context correctly restored on dismissalJurorRequests: fallback to hostname-based tenant resolution when session context is unavailable
Security
- OAuth2 removed — the Azure AD / OAuth2 client configuration block is removed from
application.yml. (050c8545) VaadinSecurityConfigurationrefactored — migrated from deprecatedWebSecurityconfigurers to theVaadinSecurityConfigurerAPI (e646fa4f, 050c8545)- API key strict validation —
ApiKeyAuthenticationFilterloads real authorities fromDomainUserDetailsServiceand enforces stricter key-owner validation (46c5992c) - Circular serialization fixes —
@JsonIgnoreadded tojurorMastersinSysCountyCodeand relationships inPaymentMemberto prevent serialization stack overflows (88f1ec16, 6d27d234)
UI & Quality Improvements
- Layout refactoring — pool, panel, and payment views updated with
addSeparator()in submenus and consistent flex-based height distribution (c90b7c5a, 18f9e536, a1cf1bb3) - Home Page — query performance optimized; layout configuration cleaned up (f92e4e91)
SysApplicationPropertiesFormView— missing seal/signature images replaced with placeholder icons; error handling added for save operations (3dcf9c18, 1344723f)- Payment card — cleared automatically when employer-paid status changes (639a369f)
CheckInJurorsDialog— focus handling improved (917a6cce)- Panel Attendance view — refactored and caching corrected (d3554cd3)
- Pool detail view — responsiveness improvements (cdfe4ae4)
- Payment creation — optimized to reduce redundant service calls (1a3c00fc)
SysStatusTyperemoved — entity, repository, service, and all references deleted (f194324c)RandomMaster— dependencies onPanelMasterandPoolMasterremoved to eliminate circular load ordering (6eef55a1)Optional.get()eliminated — replaced throughout withOptional.orElseThrow()for safer null handling (43d161ec)- Data Generation Utility —
__pycache__/added to.gitignoreforgenerate_juror_file_stage.py(f064395b)
Configuration Changes
Action required for production deployments. Several properties changed package names or were removed as part of the Spring Boot 4 migration. Review each table below and update
application-prod.ymlaccordingly.
src/main/resources/config/application.yml
| Property | Before | After | Notes |
|---|---|---|---|
spring.jpa.properties.hibernate.batch_versioned_data |
(absent) | true |
Enables batch updates for versioned entities |
spring.jpa.hibernate.naming.implicit-strategy |
org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy |
org.springframework.boot.hibernate.SpringImplicitNamingStrategy |
Package moved in Spring Boot 4 |
spring.task.scheduling.thread-name-prefix |
juryflex-scheduling- |
juryflex-sched- |
Shortened for log readability |
spring.servlet.multipart.max-file-size |
65MB |
250MB |
Supports larger juror file uploads |
spring.servlet.multipart.max-request-size |
65MB |
250MB |
Matches above |
jhipster.mail.from |
jgulisano@gmail.com (hardcoded) |
${MAIL_FROM:jgulisano@gmail.com} |
Now environment-variable driven |
spring.security.oauth2.* |
Azure AD OIDC client block | Removed entirely | OAuth2 authentication dropped |
jhipster.security.oauth2.audience |
present | Removed entirely | No longer needed |
src/main/resources/config/application-dev.yml
| Property | Before | After | Notes |
|---|---|---|---|
logging.level.ROOT |
INFO |
WARN |
Reduce framework noise in dev logs |
logging.level.com.corrus.juryflex |
INFO |
DEBUG |
Full application debug output in dev |
spring.datasource.url |
jdbc:postgresql://rocky-db.corrus.local:5432/devjuryflex |
jdbc:sqlserver://rocky-db.corrus.local:1433;database=devjuryflex;encrypt=false |
Switched back to SQL Server for local dev |
spring.datasource.username |
postgres |
corrus |
Matches SQL Server credential |
server.servlet.session.cookie.* |
(absent) | Added as commented-out block | Template for future cookie tuning (same-site, secure, domain) |
jobs.deceased-process.cron |
0 0/15 * * * * |
0 0/59 * * * * |
Runs less frequently in dev |
jobs.juror-file-process.enabled |
true |
false |
Disabled by default in dev |
jobs.juror-file-process.cron |
0 0/2 * * * * |
0 0/59 * * * * |
Slowed for dev when manually enabled |
src/test/resources/config/application.yml
No changes since v5.6.7. Settings remain stable.
Version 5.6.7
Release Date: June 4, 2026
Bug Fixes
-
SrMessageService: Replace
orElseThrow()withorElseGet(SysExemptCode::new)onSysExemptCodelookup to prevent NPE when an exempt code does not exist (55054a7) -
SrMessageGrid: Remove invalid in-memory comparator on the "Excusal Reason" column that caused sort failures when exempt codes were null or empty (55054a7)
Version 5.6.6
Release Date: June 4, 2026
Improvements
- PoolMemberConversionService – Preload & Deduplication Refactor (55dafda4)
- Moved excusal data loading to a single upfront query (
loadExcusalsForPool()) instead of one database query per juror, significantly reducing database round-trips during conversion - Added
ROW_NUMBER() OVER (PARTITION BY a.juror_id ORDER BY a.juror_pool_id)to handle duplicate jurors in the same pool (addresses the DeSoto County scenario), ensuring only the first occurrence is processed - Moved
SysActivityCodelookups intoprocessExcusal()for better encapsulation and reduced unnecessary service calls - Replaced raw
booleancomparisons withBoolean.TRUE.equals()for null-safe evaluation - Reload
JurorMasterfrom the database before updating reschedule dates to prevent stale-data overwrites when a juror is already rescheduled in an earlier pool
- Moved excusal data loading to a single upfront query (
Version 5.6.5
Release Date: June 3, 2026
Bug Fixes
- PoolMemberConversionService – Regression Fix (7733fd63)
- Fixed operator-precedence bug in the excusal-denied log message where a null check on
reason_descriptionwas never evaluated due to string concatenation precedence; pre-evaluate the value before embedding it in the message - Improved error logging to include
jurorIdandsourcePoolcontext when excusal processing fails, making failures easier to diagnose
- Fixed operator-precedence bug in the excusal-denied log message where a null check on
Improvements
- PoolMemberConversionService: Move
SysActivityCodelookups intoprocessExcusal()(from the outer pool loop) to reduce unnecessary service calls (d13f48f0)
Version 5.6.4
Release Date: May 22, 2026
Improvements
- JURYCLOUD-74: Update pool master conversion query ordering and reduce dev logging verbosity (e6f585b)
- Updated query in
PoolMasterConversionServiceto order results byreporting_dte_tme ASC, ensuring pools are converted in chronological reporting order
- Updated query in
Version 5.6.3
Release Date: May 4, 2026
Improvements
- JURYCLOUD-72: Optimize database queries and caching for juror and pool member conversions (3f9c02e)
- Introduced pre-loading of juror and pool member data into in-memory maps to reduce per-record database queries during conversion
- Added caching for frequently accessed entities in
SourceConvertService,PoolMemberConversionService,PanelMemberConversionService, andCivitekSourceConversionService - Updated
JurorMasterExtendedServicewith new utility methods for bulk data retrieval and mapping
Version 5.6.2
Release Date: April 22, 2026
Changes
-
JURYCLOUD-68: Show excusal reason in SR message grid (b8d00cd)
- Added excusal reason column to the SR message grid in
SrMessageGrid - Updated
SrMessageServiceandSrMessageDTOMapperto populate and map the excusal reason field - Adds Liquibase migration
202604150000001_sr_excuse_code.xml
- Added excusal reason column to the SR message grid in
-
PaymentMember: Extend
@JsonIgnorePropertiesonPaymentMemberentity to prevent serialization issues (c3c4a70)
Version 5.6.1
Release Date: April 12, 2026
Major Features
-
JURYCLOUD-61: DHSMV Load Optimization – CRC32-based change detection and batch processing performance improvements
- Introduces
JurorHashUtilto compute CRC32 hashes for juror records; storesjuror_hashon bothJurorMasterandJurorMasterStageentities - Implements hash-based filtering in
JurorFileUpdateExtendedServiceto skip unchanged records during batch updates - Adds lightweight ID-only keyset pagination (
findTopNIdsAfterId) to advance the batch cursor without loading full entities - Adds hash-filtered fetch (
findChangedInIdRange) to retrieve only new, changed, or inactive jurors per batch window - Introduces deferred batch mode in
JurorHistoryExtendedServiceto buffer history writes and flush at chunk boundaries - Implements
JurorMasterStageBatchInserterfor bulk JDBC inserts into the stage table, eliminating entity lifecycle overhead - Pre-fetches juror records to improve DL number change handling and retries deceased processing logic (ae3c4c5)
- Re-enables juror file stage deletion after hash testing completion (8fc2471)
- Introduces
-
JURYCLOUD-59: Juror Name Change Tracking and Multi-Tenant Admin Views
- Adds
JUROR_NAME_CHANGE(60L) activity constant for auditing juror name changes - Updates juror update process to detect name changes, prioritize update actions, and log related history entries
- Adds "tenant-zero" admin views to monitor juror update history across all tenants
- Switches data normalization to use nulls for empty fields and refactors code for readability (3b841d0, 1791a119)
- Adds
-
JURYCLOUD-60: Fix appearance date not passed into
ReportRequestfor Call-Off Letter (2ed4564)- Bumps version from 5.5.10 → 5.5.11
Improvements
-
GL Payment Exports: Migrates GL export mappings from inline JSON to a dedicated database table (a21d3f6)
- Removes the inline JSON editor from
SysApplicationPropertiesFormView - Adds Liquibase migration
202603310000001_default_export_donation_mapping.xml - Adds row numbering and juror address details to GL export output
- Fixes donation GL account assignment and vendor mapping in
PaymentMemberService
- Removes the inline JSON editor from
-
Juror Check-In: Renames check-in confirmation properties and introduces an optional second confirmation dialog (0d4b777)
-
Logging – Grafana/Loki Monitoring: Adds Docker Compose stack for log monitoring with Grafana and Loki (aca38bb)
- Includes Promtail, Loki, and Grafana provisioning configs
- Adds multi-tenant SQL performance and batch processing dashboards
- Includes setup scripts and architecture documentation under
docker/
-
Bug Fix: Fix juror first name mapping in
JurorMasterExtendedServiceto use VM-provided value instead of incorrect field (f743d80)
Configuration Changes
Note: The following changes apply to
application.ymlandapplication-dev.yml. Production environments (application-prod.yml) are unaffected unless otherwise noted.
application.yml
- Scheduling thread name prefix shortened:
juryflex-scheduling-→juryflex-sched-(ce3860e)yaml spring: task: scheduling: thread-name-prefix: juryflex-sched- # was: juryflex-scheduling- - Tenant context added to MDC:
TenantInterceptor,TenantContext, andTenantAwareTaskDecoratornow set/clear atenantMDC key so the tenant identifier is included in all log output for multi-tenancy traceability (ce3860e)
application-dev.yml
- Deceased processor retry settings added (ce3860e)
yaml deceased: retry: max-attempts: 50 retry-delay: 200 retry-multiplier: 2.0 retry-max-delay: 45000
Version 5.5.10
Release Date: March 4, 2026
Changes
- Tenant Creation: Add default location to new tenant provisioning
- Adds a default "Jury Assembly Room" record to the system location codes template used for new tenant provisioning (8db2b2b)
- Bump version to 5.5.10
Version 5.5.9
Release Date: February 25, 2026
Major Features
- JURYCLOUD-56: Implements the ability to void one or more panel members from a panel (9ed0131)
- Introduces
priorLastSummonsDt,priorLastServeDt, andpriorReschedDtfields to PoolMember to store original juror master dates - These fields are set upon pool member creation and during check-in to facilitate state restoration
- Enhances the
undoCheckInprocess to accurately restore juror master service dates using the newly introduced prior dates - Integrates a dedicated confirmation dialog in the UI to guide users through the voiding process
- Ensures comprehensive cleanup of related entities, including:
- Nullifying panel member references in juror history
- Deleting associated panel member days
- Updating pool member status
- Decrementing panel juror counts
- Adds a new activity constant (
JUROR_VOIDED_FROM_PANEL) for auditing this operation - Refines the juror history grid to prevent null pointer exceptions when a panel member reference is no longer present
- Introduces a
saveWithoutChecksmethod in PoolMemberExtendedService for specific transactional requirements
- Introduces
Bug Fixes
- JURYCLOUD-57: Unable to undo panel removal (25e662a)
- Fixed issue in PanelMemberExtendedService
Version 5.5.8
Release Date: January 24, 2026
Changes
- JURYCLOUD-55: Prevent duplicate pool members for DeSoto County in the conversion
- Bump version to 5.5.8
- Build v5.5.8
Version 5.5.7
Release Date: January 20, 2026
Changes
- JURYCLOUD-54: DeSoto County Summons: QR Code
- Add QR Code support via Barcode4J and ZXing libraries, and bump version to 5.5.7
- Build v5.5.7
Version 5.5.6
Release Date: January 11, 2026
Changes
- JURYCLOUD-53: Fixed juror's suffix not being converted in automated load (fe23d3c, 7395b27)
- Build v5.5.6 (260f1e8)
Version 5.5.5
Release Date: January 6, 2026
Changes
- JURYCLOUD-53: Fixed juror's suffix not being converted in automated load (7395b27)
Version 5.5.4
Release Date: January 2, 2026
Changes
- JURYCLOUD-52: Added
bvsIdfield toSysCountyCode, updated bindings and references, and introduced Liquibase migration (f8e90d2)
Version 5.5.3
Release Date: January 2, 2026
Changes
- JURYCLOUD-51: Fixed DMV Load duplicate history entries (834be01)
- JURYCLOUD-34: Fixed tenant leak and added payment breakdown (304c0c3)
Version 5.5.2
Release Date: December 22, 2025
Changes
- JURYCLOUD-50: Update tenant reports on application startup
- Refactored: Renamed
is_system_defaulttosystem_defaultthroughout project and updated related references (0e53d50)
- Refactored: Renamed
Version 5.5.1
Release Date: December 22, 2025
Changes
- JURYCLOUD-50: Update tenant reports on application startup (4680bb0)
Version 5.5.0
Release Date: December 19, 2025
Major Changes
-
JURYCLOUD-40: Jury Quarterly Report – Quarterly Update
- Refactored
PerformanceMeasuresReportandPerformanceMeasuresMetricRowtoQuarterlyPerformanceReportandQuarterlyPerformanceMetricRow - Enhanced data model with additional fields for detailed reporting
- Adjusted Jasper report template for updated metrics
- Incremented project version to 5.5.0 (5799b3f)
- Refactored
-
JURYCLOUD-41: Article V Performance Measures Report (45eaf1f)
-
JURYCLOUD-43: Adjusted text field width and alignment to prevent DL number truncation in Venire Facias template (eaea73e)
-
JURYCLOUD-46: Pool ID Display Inconsistency
- Print Juror Summons Refactor: Renamed
idtopoolNumberin Juror Summons View and updated related bindings and log messages (de0995b)
- Print Juror Summons Refactor: Renamed
-
JURYSVC-33: JuryFlex Statewide Grand Jury Export
- Enhanced
EntityGraphinPoolMemberExtendedRepositoryto includejurorMaster.sysCountyCode - Updated
StatewideGrandJuryDTOMapperwith corrected county and ZIP code assignment logic - Renamed
execDownloadtoexecuteStatewideFileDownloadfor clarity inDownloadStatewideFileHelper - Cleaned up unused imports and redundant logic in
PoolReportsFlowView(de9ee98)
- Enhanced
Improvements
- Updated sys_report_artifact insert query to set
is_system_defaultto 1 for new tenant migrations (f602aad) - WIP - Concurrent Load (8839a6a)
Version 5.4.3
Release Date: December 2, 2025
Changes
- Build v5.4.3 (36b8636)
Version 5.4.2
Release Date: December 2, 2025
Changes
- Removed db/schema name from query (2ed6a03)
Version 5.4.1
Release Date: December 2, 2025
Changes
- Fixed GitHub Action (621fa0f)
Version 5.4.0
Release Date: November 2025
Required Configuration Changes
Updates are required for two configuration files. These modifications have already been applied to the Development and Test environment.
1. File: application-prod.yml
Action: Add the following properties after the section labeled:
# ===================================================================
# Application specific properties
# Add your own application properties here, see the ApplicationProperties class
# to have type-safe configuration, like in the JHipsterProperties above
#
# More documentation is available at:
# https://www.jhipster.tech/common-application-properties/
# ===================================================================
Action: Add the following section:
# The following properties are used by the DeceasedProcess to determine how often to run.
jobs:
deceased-process:
enabled: false
cron: 0 45 * * * *
zone: UTC
juror-file-process:
enabled: false
cron: 0 0 * * * *
zone: UTC
#The following properties are used by the DeceasedProcessor to determine how many tenants to process at a time.
deceased:
processor:
parallelism: 1
queueCapacity: 200
lock-at-most-for: PT10H
lock-at-least-for: PT10S
#The following properties are used by the JurorFileProcessor to determine how many tenants to process at a time.
juror-file:
processor:
parallelism: 3
queueCapacity: 200
lock-at-most-for: PT10H
lock-at-least-for: PT10S
update-batch-size: 250 #match with hibernate.jdbc.fetch_size
retry:
max-attempts: 50
retry-delay: 200
retry-multiplier: 2.0
retry-max-delay: 45000
2. File: application.yml
Action: Modify the existing properties after the section labeled:
# ===================================================================
# Application specific properties
# Add your own application properties here, see the ApplicationProperties class
# to have type-safe configuration, like in the JHipsterProperties above
#
# More documentation is available at:
# https://www.jhipster.tech/common-application-properties/
# ===================================================================
# application:
juryflex:
show-test-banner: true
brand-expression-logo: juryflex_logo_full_color_rgb_247px@72ppi.png
brand-expression-logo-min: brand-expression-logo-300px.png
brand-expression-title: JuryFlex
brand-expression-use-title: false
brand-expression-appbar-test-logo: testEnvLogoV2.png
brand-expression-appbar-logo: prodEnvLogo.png
master-tenant: tenant-zero
Major Features
- JURYCLOUD-18: Process BVS file (WIP) (cc468cf)
- JURYCLOUD-10: Automate DHSMV loads (ce0dd6f)
- Added county_id to tenant master (ce0dd6f)
- Renamed county if to dhsmv id in staging table (09e1c51)
- Added additional address lines for future imports (b5c57fa)
- Fixed dropped city column by mistake (ded37a4)
- Added debugging output (7c7a7c4)
- Don't allow duplicate dl_num in file stage (2b4d9d9)
- Fixed bug in repo delete statement (22f03b5)
- Removed debug filtering of tenants (81ef70d)
- Reduced info logging (5f15b05)
- Cleanup and use param properties (fa13ad4)
- Final changes to feature (de62682)
GitHub Actions & CI/CD
- GitHub Action - Create Release (5f8e093)
- Multiple GitHub Action improvements and fixes (e5cc306, 3c6a0822, 213031b, 18909a9, f5f380d, 1188861, 5724b36, 3027673)
- Fixed GitHub Action (8552c93)
- Cleaned up gradle build file (db9b467)
- Added action comment (68ce933)
- Renamed action file (d88af10)
- Allowed action to run on branches (61f5a99)
- Provided Vaadin License (5853b66)
- Fixed action script (d262be4)
- Allowed manual workflow trigger (97b1ee4)
- Added diagnostic step (6e0fab1)
- Renamed Vaadin offlinekey (eda6262)
- Added access token to GH Secrets (2cb607d)
- Removed arm64 from GitHub Action (d5a6ff2)
Improvements
- Updated the header logo and cleanup (57da9c2)
- Added activity code to track BVS excusals (da3c7ea)
- Configured job to run every 20 minutes (e829da8)
- Allowed access to management endpoints (2cb607d)
Summary Statistics
Total Releases: 31 releases (5.4.0 through 6.0.8)
Release Period: December 2025 - July 2026
Major Features: Spring Boot 4 / Vaadin 25 / Hibernate 7 platform upgrade, JasperReports 7 migration, PostgreSQL support, DHSMV automation, BVS file processing, Quarterly reports, Statewide Grand Jury export, Void Panel Member functionality, CRC32 hash-based juror change detection, GL export mapping migration, Grafana/Loki log monitoring, API key authentication, real-time push notifications, sendSummoned bulk messaging, conversion query optimization and caching, pool member conversion preload and deduplication, SrApplicationProperties admin UI, unified prod/cloud deployment configuration with Docker support, CORS and CSP security hardening
Bug Fixes: 17 major bug fixes (JURYCLOUD-34, 43, 46, 51, 52, 53, 55, 60, 78, 79, 80, 82, 85, 87, panel removal fix, SrMessageService NPE, PoolMemberConversionService regression)