Skip to content

[NAE-2464] Post release fixes - #464

Merged
machacjozef merged 24 commits into
release/7.0.2from
NAE-2464
Aug 3, 2026
Merged

[NAE-2464] Post release fixes#464
machacjozef merged 24 commits into
release/7.0.2from
NAE-2464

Conversation

@renczesstefan

@renczesstefan renczesstefan commented Jul 10, 2026

Copy link
Copy Markdown
Member

Description

Post release fixes after 7.0.1

Implements NAE-2464

Dependencies

No new dependencies were introduced

Third party dependencies

No new dependencies were introduced

Blocking Pull requests

There are no dependencies on other PR

How Has Been This Tested?

This was tested manually and with unit tests.

Test Configuration

Name Tested on
OS macOS Tahoe 26.3
Runtime Java 21
Dependency Manager Maven 3.9.9n
Framework version Spring Boot 3.4.4
Run parameters
Other configuration

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • My changes have been checked, personally or remotely, with @machacjozef
  • I have commented my code, particularly in hard-to-understand areas
  • I have resolved all conflicts with the target branch of the PR
  • I have updated and synced my code with the target branch
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing tests pass locally with my changes:
    • Lint test
    • Unit tests
    • Integration tests
  • I have checked my contribution with code analysis tools:
  • I have made corresponding changes to the documentation:
    • Developer documentation
    • User Guides
    • Migration Guides

Summary by CodeRabbit

  • New Features
    • Improved asynchronous action execution and context handling.
    • Enhanced full-text search with matching, case handling, field weighting, and wildcard support.
    • Expanded Groovy scripting imports and action discovery.
  • Bug Fixes
    • Updated case, role, and migration lookups for current identifiers.
    • Improved asynchronous execution-state safety.
  • Security
    • Restricted anonymous management access to health checks and disabled remote shutdown.
  • Configuration
    • Expanded monitoring endpoint visibility and updated migration settings.
  • Release
    • Updated the application to version 7.0.2.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

The PR adds executor-backed asynchronous action execution, updates Elastic full-text queries and Groovy action imports, revises composite identifier queries, qualifies migration dependencies, narrows management access, expands script imports, and updates release references to 7.0.2.

Changes

Asynchronous action execution

Layer / File(s) Summary
Executor-backed action lifecycle
application-engine/src/main/groovy/com/netgrif/application/engine/AsyncRunner.groovy, application-engine/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/logic/action/ActionDelegate.groovy
AsyncRunner submits work through the qualified TaskExecutor. It retains and releases nested ActionDelegate instances around asynchronous execution.
Async action integration coverage
application-engine/src/test/groovy/com/netgrif/application/engine/action/ActionDelegateTest.groovy, application-engine/src/test/resources/petriNets/async_run.xml
The test imports a Petri net with async.run and creates a case to exercise asynchronous action execution.

Elastic full-text search

Layer / File(s) Summary
Full-text query construction
application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java, application-engine/src/main/java/com/netgrif/application/engine/elastic/service/model/FullTextField.java
Search terms use normalized, escaped wildcard queries with case-insensitive matching, field boosts, and per-term field matching.

Groovy action import discovery

Layer / File(s) Summary
Classpath action-import selection
application-engine/src/main/java/com/netgrif/application/engine/event/GroovyShellFactory.java
Configured package patterns are scanned recursively. Test and metadata classes are excluded. Import conflicts and loading failures are handled explicitly.

Composite identifier migration

Layer / File(s) Summary
Composite identifier query transition
application-engine/src/main/java/com/netgrif/application/engine/petrinet/domain/roles/ProcessRoleRepository.java, application-engine/src/main/java/com/netgrif/application/engine/workflow/domain/repositories/CaseRepository.java, application-engine/src/main/java/com/netgrif/application/engine/workflow/service/CaseEventHandler.java
Composite lookups use shortProcessIdentifier queries. Previous network-ID methods are deprecated. Deletion handling reads shortProcessIdentifier.

Migration and management configuration

Layer / File(s) Summary
MongoTemplate and migration wiring
application-engine/src/main/groovy/com/netgrif/application/engine/migration/helpers/*MigrationHelper.groovy, application-engine/src/main/java/com/netgrif/application/engine/configuration/properties/MigrationProperties.java, application-engine/src/test/groovy/com/netgrif/application/engine/TestHelper.groovy
Migration constructors qualify the mongoTemplate bean. Migration properties use the netgrif.engine.migration prefix. Test cleanup uses mongoTemplate.
Actuator and management access settings
application-engine/src/main/resources/application*.properties, application-engine/src/main/resources/application.yaml, docker-compose.yml, application-engine/src/test/resources/application-test.yaml
Management exposure uses explicit endpoint lists. Shutdown is disabled. Unauthenticated management access is narrowed to /manage/health.
Script defaults and test authentication
application-engine/src/main/java/com/netgrif/application/engine/configuration/groovy/GroovyShellConfiguration.java, application-engine/src/test/groovy/com/netgrif/application/engine/action/AssignRemoveTest.groovy
Groovy scripts receive additional default imports. Test authentication uses authoritySet.

Release version updates

Layer / File(s) Summary
7.0.2 version references
pom.xml, */pom.xml, Dockerfile*, docker-compose.yml
Maven parent versions, Docker build arguments, and the Compose image tag change from 7.0.1 to 7.0.2.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested labels: bugfix, improvement, Large

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the broad purpose of the changes as fixes made after a release.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@renczesstefan renczesstefan self-assigned this Jul 10, 2026
renczesstefan and others added 14 commits July 15, 2026 15:16
…elpers to use a dedicated MongoTemplate bean (`migrationMongoTemplate`) with fallback logic in multi-database setups.
…Id` and deprecate `findByNetworkIdAndObjectId`.
…te management and enhanced executor configuration.

- Added methods to `ActionDelegate` to manage asynchronous execution lifecycle (`retainForAsyncExecution`, `releaseAfterAsyncExecution`, `clearAfterExecution`).
- Enhanced `AsyncRunner` with delegate state tracking and custom `actionsExecutor`.
- Added `async_run.xml` test Petri net and corresponding test cases to validate asynchronous action handling.
…te management and enhanced executor configuration.

- Added methods to `ActionDelegate` to manage asynchronous execution lifecycle (`retainForAsyncExecution`, `releaseAfterAsyncExecution`, `clearAfterExecution`).
- Enhanced `AsyncRunner` with delegate state tracking and custom `actionsExecutor`.
- Added `async_run.xml` test Petri net and corresponding test cases to validate asynchronous action handling.
- Update `server-patterns` to replace `/manage/**` with `/manage/health`
- Configure `management.endpoint.shutdown.enabled` as `false` across properties
- Expand `management.endpoints.web.exposure.include` for additional actuator endpoints
…logic; consolidate MongoTemplate usage to default bean.
# Conflicts:
#	application-engine/src/test/groovy/com/netgrif/application/engine/TestHelper.groovy
#	application-engine/src/test/groovy/com/netgrif/application/engine/action/ActionDelegateTest.groovy
… and `TestHelper` for consistency and clarity.
…d` and deprecate `findByNetworkIdAndObjectId`; update tests and enums accordingly.
…tringQuery` with `BoolQuery`, introduce `FullTextField` model, and enhance wildcard handling.
…ce static imports with dynamic discovery, introduce `ACTION_IMPORT_PACKAGES`, and optimize class loading.
@machacjozef
machacjozef changed the base branch from release/7.0.0 to release/7.0.2 July 30, 2026 07:42
[NAE-2464] Release 1.0.1 Bugfixes
@machacjozef
machacjozef marked this pull request as ready for review July 30, 2026 08:21
@coderabbitai coderabbitai Bot added breaking change Fix or feature that would cause existing functionality doesn't work as expected bugfix A change that fixes a bug Large labels Jul 30, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@application-engine/src/main/java/com/netgrif/application/engine/configuration/properties/MigrationProperties.java`:
- Around line 24-33: Use MigrationProperties.mongoTemplateBeanName when wiring
the migration helpers instead of hard-coded `@Qualifier`("mongoTemplate")
injection. Update CaseMigrationHelper, PetriNetMigrationHelper, and
TaskMigrationHelper to resolve the configured bean, falling back to the default
mongoTemplate bean when unavailable; update MigrationProperties only as needed
to support this wiring.

In
`@application-engine/src/main/java/com/netgrif/application/engine/configuration/TaskExecutionConfiguration.java`:
- Around line 20-26: Update the actionsExecutor() ThreadPoolTaskExecutor
configuration to set a finite queue capacity, define a maxPoolSize, and
explicitly configure a RejectedExecutionHandler for submissions beyond available
capacity. Preserve the existing core pool size and thread name prefix while
ensuring overload behavior is intentional.

In
`@application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java`:
- Around line 579-585: Update boost parsing in the fulltext field definition
handling to accept the parsed value only when Float.isFinite(boost) and boost >
0. Treat NaN, infinities, zero, and negative values like NumberFormatException,
log the invalid input, and preserve the default 1.0f fallback.
- Around line 559-566: Update the full-text term normalization stream to
preserve backslashes through splitting and trimming, removing the pre-escaping
backslash deletion and the removeDanglingEscapeCharacters mapping. Ensure terms
flow unchanged into escapeWildcardValue so literal backslashes in paths such as
C:\temp are retained.

In
`@application-engine/src/main/java/com/netgrif/application/engine/event/GroovyShellFactory.java`:
- Around line 57-91: Update selectActionImport to emit a warning when multiple
most-specific candidates remain tied, including the conflicting class names in
the diagnostic, before returning Optional.empty(). Preserve the existing
behavior for unique winners and unresolved conflicts, and add focused tests
covering both tie and non-tie specificity resolution.

In `@application-engine/src/test/resources/petriNets/async_run.xml`:
- Around line 16-19: Make the async fixture in
application-engine/src/test/resources/petriNets/async_run.xml lines 16-19
persist a test-observable side effect instead of only printing useCase.stringId.
Update the test in
application-engine/src/test/groovy/com/netgrif/application/engine/action/ActionDelegateTest.groovy
lines 183-197 to await that persisted side effect with a bounded timeout and
assert it occurred, covering submission, execution, and delegate release.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e64b8de1-0138-4bec-ae5b-11a5a2934a26

📥 Commits

Reviewing files that changed from the base of the PR and between f11c250 and 96c7c17.

📒 Files selected for processing (23)
  • application-engine/src/main/groovy/com/netgrif/application/engine/AsyncRunner.groovy
  • application-engine/src/main/groovy/com/netgrif/application/engine/migration/helpers/CaseMigrationHelper.groovy
  • application-engine/src/main/groovy/com/netgrif/application/engine/migration/helpers/PetriNetMigrationHelper.groovy
  • application-engine/src/main/groovy/com/netgrif/application/engine/migration/helpers/TaskMigrationHelper.groovy
  • application-engine/src/main/groovy/com/netgrif/application/engine/petrinet/domain/dataset/logic/action/ActionDelegate.groovy
  • application-engine/src/main/java/com/netgrif/application/engine/configuration/MongoClientConfiguration.java
  • application-engine/src/main/java/com/netgrif/application/engine/configuration/TaskExecutionConfiguration.java
  • application-engine/src/main/java/com/netgrif/application/engine/configuration/properties/MigrationProperties.java
  • application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java
  • application-engine/src/main/java/com/netgrif/application/engine/elastic/service/model/FullTextField.java
  • application-engine/src/main/java/com/netgrif/application/engine/event/GroovyShellFactory.java
  • application-engine/src/main/java/com/netgrif/application/engine/petrinet/domain/roles/ProcessRoleRepository.java
  • application-engine/src/main/java/com/netgrif/application/engine/workflow/domain/repositories/CaseRepository.java
  • application-engine/src/main/java/com/netgrif/application/engine/workflow/service/CaseEventHandler.java
  • application-engine/src/main/resources/application-old-dev.properties
  • application-engine/src/main/resources/application-old.properties
  • application-engine/src/main/resources/application.yaml
  • application-engine/src/test/groovy/com/netgrif/application/engine/TestHelper.groovy
  • application-engine/src/test/groovy/com/netgrif/application/engine/action/ActionDelegateTest.groovy
  • application-engine/src/test/groovy/com/netgrif/application/engine/action/AssignRemoveTest.groovy
  • application-engine/src/test/resources/application-test.yaml
  • application-engine/src/test/resources/petriNets/async_run.xml
  • docker-compose.yml

Comment thread application-engine/src/test/resources/petriNets/async_run.xml
…ce static imports with dynamic discovery, introduce `ACTION_IMPORT_PACKAGES`, and optimize class loading.
@coderabbitai coderabbitai Bot added Medium and removed breaking change Fix or feature that would cause existing functionality doesn't work as expected labels Jul 30, 2026
@coderabbitai coderabbitai Bot removed the Large label Jul 30, 2026
- Update version to 7.0.2 in all affected `pom.xml` files
- Modify `Dockerfile` and `Dockerfile.multi-stage` to use version 7.0.2
- Adjust `docker-compose.yml` to reflect the new image version
@coderabbitai coderabbitai Bot added improvement A change that improves on an existing feature Large labels Jul 31, 2026
Retoocs
Retoocs previously approved these changes Jul 31, 2026
Remove the dedicated actions executor bean
Log ambiguous automatic Groovy action imports instead of silently skipping them
Prevent dev profile from dropping MongoDB and Elasticsearch data by default
Update deprecated case repository methods to version 7.0.2
Remove obsolete migration MongoTemplate bean configuration
Validate Elasticsearch full-text field boost values before applying them

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java (1)

432-441: 🚀 Performance & Scalability | 🔵 Trivial

Review the cost of leading wildcard queries.

The code wraps every term in *...* and sends it to every configured field. This can multiply wildcard-query cost by the number of terms and fields. Measure this path on representative indexes and use an indexed n-gram or contains strategy if latency is not bounded.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java`
around lines 432 - 441, Review the full-text query construction around the
fullTextTerms and fullTextFields loops, where wildcardValue currently adds
leading and trailing wildcards for every term-field combination. Measure
representative-index latency and replace the leading-wildcard approach with an
indexed n-gram or equivalent contains strategy when needed, while preserving
term matching across the configured fields and existing boosts.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In
`@application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java`:
- Around line 432-441: Review the full-text query construction around the
fullTextTerms and fullTextFields loops, where wildcardValue currently adds
leading and trailing wildcards for every term-field combination. Measure
representative-index latency and replace the leading-wildcard approach with an
indexed n-gram or equivalent contains strategy when needed, while preserving
term matching across the configured fields and existing boosts.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 94f4db83-f583-4be5-98fc-e48aecb45af6

📥 Commits

Reviewing files that changed from the base of the PR and between 56fbc83 and 1a816b2.

📒 Files selected for processing (5)
  • application-engine/src/main/groovy/com/netgrif/application/engine/AsyncRunner.groovy
  • application-engine/src/main/java/com/netgrif/application/engine/configuration/properties/MigrationProperties.java
  • application-engine/src/main/java/com/netgrif/application/engine/elastic/service/ElasticCaseService.java
  • application-engine/src/main/java/com/netgrif/application/engine/event/GroovyShellFactory.java
  • application-engine/src/main/java/com/netgrif/application/engine/workflow/domain/repositories/CaseRepository.java
💤 Files with no reviewable changes (1)
  • application-engine/src/main/java/com/netgrif/application/engine/configuration/properties/MigrationProperties.java

coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 3, 2026
@renczesstefan
renczesstefan requested a review from Retoocs August 3, 2026 09:30
Retoocs
Retoocs previously approved these changes Aug 3, 2026
…r regex handling consistency in full-text search normalization methods.
@renczesstefan
renczesstefan dismissed stale reviews from Retoocs and coderabbitai[bot] via 503ab24 August 3, 2026 11:22
@coderabbitai coderabbitai Bot removed the Medium label Aug 3, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 3, 2026
@sonarqubecloud

sonarqubecloud Bot commented Aug 3, 2026

Copy link
Copy Markdown

@machacjozef
machacjozef merged commit 619465d into release/7.0.2 Aug 3, 2026
9 checks passed
@machacjozef
machacjozef deleted the NAE-2464 branch August 3, 2026 14:14
@coderabbitai coderabbitai Bot mentioned this pull request Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix A change that fixes a bug improvement A change that improves on an existing feature Large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants