Avgustin Marinov
aa79097c1f
Bump to Spring Boot 4.1.0 ( #3125 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-06-12 11:34:33 +03:00
Vasil Ilchev
9cb8a7cf00
Fix ghost joins in rsql with maps ( #3088 )
...
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
2026-06-12 10:39:55 +03:00
Avgustin Marinov
65c3c97b3a
Declare access controllers as infra ( #3127 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-06-11 16:31:39 +03:00
Avgustin Marinov
19eedab40e
Optimize test logging ( #3126 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-06-11 16:07:00 +03:00
Stanislav Trailov
f44b6268b0
Introduce soft deleted list option for soft deletable entities ( #3093 )
...
* Introduce soft deleted list option for soft deletable entities
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix verify build
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix typo in license
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Add sorting option on deleted field
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* add missing import in tests
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Rename SoftDeletedFilter to SoftDeletedMode and its values
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Introduce MgmtSoftDeletedMode on api layer
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* remove unused imports
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Integrate the enum on API layer
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Fix OpenApi spec
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* address some comments
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Get rid of count(SoftDeletedMode) at all
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* remove formatter for enum - stop supporting lowercase values in API
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-06-08 16:37:05 +03:00
Stanislav Trailov
95680962cc
Fix target group assignment with RSQL negation filters (e.g. tag!=tag… ( #3116 )
...
* Fix target group assignment with RSQL negation filters (e.g. tag!=tag1) failing on EclipseLink/MySQL
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* address comments
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Fix test for chunked calls to use also negate operator
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* address comments
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-06-08 15:15:50 +03:00
Vasil Ilchev
97df5bf8d1
Fix Error/Success Conditions not evaluated case. Fix 'Cancel' final s… ( #3110 )
...
* Fix Error/Success Conditions not evaluated case. Fix 'Cancel' final status not mapped - now mapped to Error. Fix Delete Action does not update properly group count and percentage evaluation.
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
* Add ThreshholdRolloutGroupSuccessCondition
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
* Cancel Action not included in ERROR/SUCCESS. Trigger SuccessAction on SuccessCondition/GroupFINISHED.
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
* Review Findings add comments to tests
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
---------
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
2026-06-05 15:03:20 +03:00
Stanislav Trailov
794455064f
Fix RSQL filter in batch update query in assign target group ( #3107 )
...
* Fix RSQL filter in batch update query in assign target group
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Stick with old approach when using hibernate
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* avoid fully qualified classname
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Refer review changes
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* add link to the bug reported to eclipse link
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-06-02 10:12:43 +03:00
Stanislav Trailov
d6fcbac047
Auto action cleanup rely on hard db update on last modified at rather than hard time limit ( #3103 )
2026-05-26 18:11:09 +03:00
Avgustin Marinov
6311e64ea9
Clean up distribution lock ( #3081 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-05-14 09:10:17 +03:00
Vasil Ilchev
275348d524
Fix JdbcLockRegistry ttl ( #3080 )
...
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
2026-05-13 11:51:29 +03:00
Stanislav Trailov
b63ded1b2b
Use AccessContext.actor() in getApprovalUser in default rollout approval strategy ( #3036 )
...
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-04-24 16:20:53 +03:00
clayly
2e53a66b79
Fix test assertions that depend on undefined row ordering ( #3007 )
...
* Fix test assertions that depend on undefined row ordering
Several tests use containsExactly() or index-based comparison on query
results that have no ORDER BY clause. SQL does not guarantee row ordering
without explicit ORDER BY, and databases like YugabyteDB return results
in a different (but valid) order than PostgreSQL/H2.
These tests verify set membership (correct targets assigned, correct
actions stored), not ordering. Changed to order-independent assertions:
- AutoAssignTest: containsExactly -> containsExactlyInAnyOrder
- ControllerManagementTest: index-based loop -> containsExactlyInAnyOrderElementsOf
- TargetFilterQueryManagementTest: containsExactly -> containsExactlyInAnyOrder
Verified passing on H2 (default) and YugabyteDB (PostgreSQL-compatible).
* Trigger ECA re-check
2026-04-21 17:21:38 +03:00
Avgustin Marinov
c029c88db6
Improved AccessContext ( #3029 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-21 13:51:37 +03:00
Avgustin Marinov
e9aa13e68f
Improved SDK Setup - defaults ( #3027 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-17 16:48:43 +03:00
Avgustin Marinov
37559cdedc
Cleanup/fix jackson 2 -> 3 migration ( #3024 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-16 13:29:26 +03:00
Avgustin Marinov
82ee1cc4e6
Fix sonar findings on 21 style ( #3020 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-15 16:57:10 +03:00
Avgustin Marinov
8015b0e3f1
Fix sonar findings (2) ( #3016 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-15 14:39:28 +03:00
Avgustin Marinov
a00374f455
Fix sonar findings ( #3015 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-15 13:14:31 +03:00
Avgustin Marinov
1be473b22c
[ #2845 ] Bump Spring boot to 4.x ( #2941 )
...
Notes:
1. (!) Eclipselink shall be migrated to 5.0 (in 4.0.8 there are incompatible classes, e.g EJBQueryImpl doesn't implement some newer methods). In the moment is with beta (5.0.0-B12) - JUST for testing!
2. (!) Ethlo plugin doesn't work with Eclipselink 5.0, it builds with Eclipselink 4.0.8 (could be a problem)
3. Dependencies - new starters, test starters changes, some dependencies refactoring
4. Auto-configs split - package changes, some properties classes changes
5. Spring nullable org.springframework.lang.Nullable/NonNull are depecated and replaced with jspcify -> org.jspecify.annotations.Nullable/NonNull (NullMarked)
6. Lombok config - adding lombok.addNullAnnotations=jspecify - to do not mess annotations
7. Distributed lock table changes - SP_LOCK table db migration
8. Spring Retry replaced with Spring Core Retry - does repace retry in hawkbit
9. Specifications -> added Update/Delete(/Predicate) Specifications and JpaSpecificationExecutor changed
10. HawkbitBaseRepositoryFactoryBean modified to register properly
11. Jackson - 2 -> 3, package migrations, finals are not deserialized by default(enable finals deserialization, consider make non-final), too ‘smart’ tries to set complex objects instead of using non args constructor (-> @JsonIgnore), some other default configs made
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-14 11:31:41 +03:00
Stanislav Trailov
f6cb143283
Fix force quit actions to explicitly handle 0 active actions ( #3004 )
...
* Fix force quit actions to explicitly handle 0 active actions
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Fix dynamic rollout behaviour when using Postgres
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-04-09 10:44:06 +03:00
Stanislav Trailov
f9bb49d33e
Remove table alias on SET when stopping rollouts ( #3002 )
...
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-04-07 16:56:55 +03:00
Avgustin Marinov
dd593677fd
Fix stop rollout when using PosgreSQL (2) ( #3000 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-04-07 09:59:34 +03:00
Stanislav Trailov
5498a79534
Fix stop rollout when using PostgreSQL ( #2996 )
...
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-04-07 08:23:31 +03:00
Stanislav Trailov
e9acb301f2
fix flaky controller management test ( #2986 )
...
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-03-30 11:24:17 +03:00
Stanislav Trailov
ba3a08e560
Add Target Poll Event in Service Events ( #2981 )
...
* Add Target Poll Event in Service Events
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Target poll event to service event
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-03-27 10:18:37 +02:00
Stanislav Trailov
f2615fe812
Modify TargetPollEvent to be per batch update (not per target) ( #2965 )
...
* Modify TargetPollEvent to be per batch update (not per target)
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Get use of remote event's timestame for targetPollEvent
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Revert "Get use of remote event's timestame for targetPollEvent"
This reverts commit 27e3b740e2bb0b02cad1d5a6137db7928901f069.
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-03-25 09:29:23 +02:00
Stanislav Trailov
4375cd0887
Increase TTL & refresh for DistributedLockTest ( #2972 )
...
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-03-24 11:00:55 +02:00
Avgustin Marinov
7a642f564e
Remove the ROLE_CONTROLLER_ANONYMOUS ( #2948 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-03-05 10:01:43 +02:00
Avgustin Marinov
b38df5b512
WithUser refactoring ( #2944 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-02-27 14:30:52 +02:00
Avgustin Marinov
5d043b2766
Improve WithUser testing ( #2943 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-02-27 12:59:13 +02:00
Vasil Ilchev
937195af1e
Tenant Configuration values varchar to text - support bigger values f… ( #2938 )
...
* Tenant Configuration values varchar to text - support bigger values for configs
access_control_context varchar to text - support bigger values for configs
* Add size constraint in App for Tenant 'conf.value' and rollout/target_filter_query 'access_control_context
* add explicitly not null constraint for clarity
2026-02-26 12:15:43 +02:00
Avgustin Marinov
3ec7350624
Add Multi-Tenancy delete methods ( #2937 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-02-25 14:11:31 +02:00
Avgustin Marinov
56da119979
Remove SYSTEM_ADMIN ( #2936 )
...
Not needed. Overlaping with system role. Could be added on top of others if needed
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-02-25 14:00:25 +02:00
Avgustin Marinov
62c76311e5
Fix some compile warnings ( #2919 )
...
* Fix some compile warnings
* Some classes made final
* JPA entities made not serializable
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-02-11 14:05:46 +02:00
Avgustin Marinov
87c4cd8cd1
Remove not used WeightValidationHelper ( #2916 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-02-10 12:50:31 +02:00
Desislava Marinova
ff21d788b3
MECS-21328: Tenant metric label case unification ( #2907 )
2026-02-06 09:09:05 +02:00
Stanislav Trailov
c33156b134
Multi-Asssignments feature removal ( #2893 )
...
* Multi-Asssignments feature removal
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix some sonar findings
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fixes after review
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2026-02-04 16:59:09 +02:00
Avgustin Marinov
8cac79f860
Bump spring-cloud-starter-openfeign to 4.3.1 ( #2898 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-01-30 16:38:01 +02:00
Avgustin Marinov
d9e52cb542
Fix #2880 findings ( #2887 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-01-23 10:15:45 +02:00
Avgustin Marinov
d55f1ffa10
Refactor @ApiResponses annotations ( #2879 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2026-01-22 09:10:10 +02:00
Vasil Ilchev
0083d5538a
Introduce Pause Success Action ( #2867 )
...
* Introduce Pause Success Action
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
* Instead of overriding SuccessAction, trigger next group from resume rollout
Fix Rollout Mgmt Resource to accept new Pause Action
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
* Review findings
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
* Remove unused import
---------
Signed-off-by: vasilchev <vasil.ilchev@bosch.com >
2026-01-13 11:20:21 +02:00
Stanislav Trailov
3bc8a91883
Fix tenant scope on retrieval of target groups ( #2847 )
...
* Fix tenant scope on retrieval of target groups
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix build
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2025-12-10 09:37:38 +02:00
Stanislav Trailov
e6367d0b0c
Remove schema generation related annotations in Jpa layer ( #2837 )
...
* Remove schema generation related annotations in Jpa layer
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* Update hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* forgotten foreign key annotations removed
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* remove missed foreign key annotations
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* foreign key from autoConfirmation
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-08 09:26:35 +02:00
Avgustin Marinov
904c8b180d
Align rollouts and autoassign metrics ( #2844 )
...
* Refactor auto-assign locking and metrics
* Align rollouts and autoassign metrics
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-12-03 12:34:40 +02:00
Vasil Ilchev
977b3fe40c
AutoAssign scheduler to obtain lock on Tenant level. Configurable to run separate tenant auto-assign checks in separate threads ( #2843 )
...
Co-authored-by: vasilchev <vasil.ilchev@bosch.com >
2025-12-02 15:40:55 +02:00
Avgustin Marinov
6988f5eafb
Fix nop cache using (especially for testing) ( #2841 )
...
+ fix flaky tests that requires no caches
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-12-01 13:53:08 +02:00
Avgustin Marinov
b8a05e3cbf
Refactor tenant configuration management ( #2840 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-11-28 15:37:12 +02:00
Avgustin Marinov
203598f3a4
Fix auth -> authentication in some props in SDK ( #2839 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-11-28 09:13:41 +02:00
Avgustin Marinov
42384b7e31
Add AccessContext.asTenant and use where possible ( #2838 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-11-27 16:27:56 +02:00