Commit Graph

127 Commits

Author SHA1 Message Date
Avgustin Marinov
08cacf9034 Soft Module metadata as complex map value (#2568)
---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-07-30 17:29:02 +03:00
Vasil Ilchev
4a8e60764f Remote Events migrated from Spring Bus to Spring Cloud Stream (#2563)
* Remote Events migrated from Spring Bus to Spring Cloud Stream

---------

Co-authored-by: vasilchev <vasil.ilchev@bosch.com>
2025-07-30 16:58:00 +03:00
Avgustin Marinov
2b66449ff1 Fine grained repository permissions (#2562)
1. Introduce @PrreAuthorize check based on hasPermission - allowing custom processing (compared with non-modifiable hasAuthority/Role processing)
2. Dedicated permissions could be implemented on management api level. Check is made by plugged in PermissionEvaluator
3. Thus common XXX_REPOSITORY permissions could differ for extending services
4. Change create/update entity builder pattern - not via EntityFactory but via clean static lombok based builders (with fine fluent api).
5. Implement abstract repository management jpa class that handles the boilerplate code from extending classes in single place consistently -> AbsreactJpaRepositoryManagement
6. Register management api-s as **Sevice**-s instead of **Bean**-s in order to make easier maintainable and get away from heavy argument forwading
7. Simplify custom hawkbit repository registration + adding proxy to handle exception mapping at lower level - thus not depending on Aspects for converting exceptions
8. Implemented general purpose 'copy' utility (ObjectCopyUtil) that using getter/setter patterns is able to copy (e.g. Create/Update) objects to other objects (e.g. JPA entity objects)
2025-07-28 14:57:33 +03:00
Stanislav Trailov
b4793fcce1 Introduce target grouping (#2538)
* Introduce target grouping

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* minor refactor

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* throw validation exception instead direct returning bad request response

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* fix group query parameter

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* remove wrongly added import

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* add review fixes

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* apply latest review changes

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* apply latest changes after sybnc/review

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

* fix after review

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>

---------

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
2025-07-14 15:48:37 +03:00
Avgustin Marinov
e7373275bf Add distribution set and target type fine grained permissions (#2545)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-07-14 14:52:36 +03:00
Avgustin Marinov
21581c4ea4 Fine-grained permissions (#2535)
* Fine-grained permissions

Adds support for permissions of type <permission>(/<rsql filter scope>)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>

* Apply review fixes

---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-07-10 13:51:49 +03:00
Avgustin Marinov
7f97d6f441 Add support for pollingTime overrides (#2533)
* Add support for pollingTime overrides

* the current format HH:mm:ss is still supported
* add option for deviation percent (HH:mm:ss~\d{1,2}%) which allows the system to do some randomizing of the poll interval
* add support for overriding default polling time interval for devices matching some RSQL filters (in order), e.g. 01:00:00~10%, group == 'eu' -> 00:02:00~15%, status != in_sync -> 00:05:00
* IMPORTANT: overdue time is calculated according to the default polling time. So, the overdue status might be incorrect for targets with overridden poll interval

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>

* Remove min polling time from the tenant config - it is a system configuration

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>

* Add support for bigger poll intervals and overdue + duration format config support

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>

---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-07-07 16:33:55 +03:00
Avgustin Marinov
affae1026a Improve Spring Bus usage (remove stream direct use) (#2521)
* Improve Spring Bus usage (remove stream direct use)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>

* Remove getApplicaton when creating remote events

---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-07-02 08:32:55 +03:00
Avgustin Marinov
cd2c68081f Refactor RabbitMQ configuration (#2519)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-06-30 15:50:30 +03:00
Avgustin Marinov
ef25aa59f0 Fix new line after @Test (#2486)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-06-20 17:42:55 +03:00
Avgustin Marinov
cb7f1107fe Remove allure (phase2) (#2483)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-06-20 15:51:06 +03:00
Avgustin Marinov
12140e468d [#2176] RSQL filtering with exist/not-exist support (#2396)
* [#2176] RSQL filtering with exist/not-exist support

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>

* [#2176] Big Refactoring

* RSQL: all maps with joins with on

---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-05-16 16:13:04 +03:00
Avgustin Marinov
ea8fa4e1bd Small code style refactoring (#2302)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-02-25 17:22:23 +02:00
Avgustin Marinov
54a53a3631 Remove anonymous download (#2291)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-02-19 14:28:15 +02:00
Avgustin Marinov
46caed139d Remove unused group repo methods (#2263)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-02-04 17:21:04 +02:00
Avgustin Marinov
e3c41eb0b2 Fix CustomBaseRepositoryBean - not initialized in some cases (#2241)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-27 14:53:28 +02:00
Avgustin Marinov
ef4c0c6d18 Sonar Fixes (#2234)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-24 17:22:34 +02:00
Avgustin Marinov
a61e9cd6ae Sonar Fixes (#2233)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-24 15:41:06 +02:00
Avgustin Marinov
bb9c9bfad8 Remove some of the field injections (Sonar recomendtion) (#2218)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-23 09:52:29 +02:00
Avgustin Marinov
4909a65d8c Improve autowiring for tests (Sonar) (#2217)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-22 15:20:57 +02:00
Avgustin Marinov
f09db20b71 Sonar Fixes (7) (#2215)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-21 16:40:16 +02:00
Avgustin Marinov
567e8b38f1 Sonar Fixes (5) (#2211)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-21 11:20:50 +02:00
Avgustin Marinov
5dabe9117a Fix SonarQube issues (2) (#2205)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-20 16:29:45 +02:00
Avgustin Marinov
e1f43c8705 Lombok Usage Improvements (#2192)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-01-10 11:58:35 +02:00
Avgustin Marinov
8774ab734d Remove dash from bus endpoint config (#2158)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-12-20 14:29:12 +02:00
Avgustin Marinov
42b6b597fe Fix endpoint config deprecations (#2157)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-12-20 14:24:00 +02:00
Vasil Ilchev
1d52d3b102 Fix NPE when DMF Status Messages contain null element (#2119)
Co-authored-by: vasilchev <vasil.ilchev@bosch.com>
2024-12-05 11:25:09 +02:00
Vasil Ilchev
b4215a9d76 Add timestamp to Actions (#2113)
* Add timestamp to Actions

Signed-off-by: Vasil Ilchev <Vasil.Ilchev@bosch.com>

* Add Timestamp to All Actions Feedback DDI/DMF

* After review

* Removed Action timestamp as we have timestamp in each ActionStatus so use that instead

* Unify to use everywhere System.currentTimeMillis()

* Add constructor w/o timestamp to DmfActionUpdateStatus

---------

Signed-off-by: Vasil Ilchev <Vasil.Ilchev@bosch.com>
Co-authored-by: vasilchev <vasil.ilchev@bosch.com>
2024-12-04 09:53:10 +02:00
Avgustin Marinov
a9f3d1491a JPA Refactoring (3) (#2109)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-12-02 13:50:06 +02:00
Avgustin Marinov
794f26bea2 JPA Refactoring (2) (#2108)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-12-02 11:52:30 +02:00
Avgustin Marinov
e91cc5a349 Move EventuPublisherConfiguration into repository (#2100)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-22 19:19:58 +02:00
Avgustin Marinov
4de34eacc3 Fix AmqpMessageDispatcherServiceTest.testSendCancelRequest - set action tenant (#2098)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-22 17:36:07 +02:00
Avgustin Marinov
a3468b2ba9 Fix some issues found by qodana (#2083)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-19 17:04:19 +02:00
Avgustin Marinov
9c8c82fd8b Switch from deprecated EnableGlobalMethodSecurity to EnableMethodSecurity (#2081)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-19 16:46:31 +02:00
Avgustin Marinov
4861e7c29f Refactor the tenantcy configuration (#2080)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-19 08:45:50 +02:00
Avgustin Marinov
f9bb48d697 Code refactoring of hawkbit-repository (#2056)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-17 15:03:03 +02:00
Avgustin Marinov
b912f2aa9a Fix AbstractActionStatusCreate.messages -> mutable list (#2046)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-15 22:16:26 +02:00
Avgustin Marinov
05dd580a28 Remove CustomEvents - unused (#2039)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-15 20:01:18 +02:00
Avgustin Marinov
fe8fb3a602 Move ControllerPollProperties -> org.eclipse.hawkbit.tenancy.configuration (#1981)
_release_notes_

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-08 17:52:48 +02:00
Avgustin Marinov
da7fa9e022 Code format hawkbit-repository-core (#1927)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-11-05 09:46:55 +02:00
Avgustin Marinov
8e82a9252f Fix applying createdat less or equal to rollout group filter (#1765)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-11 16:04:24 +03:00
Avgustin Marinov
494170405a Small Rollout create code improvements (#1754)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-06-26 11:06:56 +03:00
Avgustin Marinov
8b3434fc17 Add support for dynamic rollout group template (#1752)
1. Add support in REST and Mgmt API for dynamic group template
2. If present - groups follows the pattern of this template, otherwise - the last static group
3. This allows to create pure dynamic rollout with 0 static groups - auto assignment equivalent with groups

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-06-26 08:31:01 +03:00
Avgustin Marinov
40f99962d2 Add REST method for update rollout (#1749)
* adds PUT method for updating name and description of a rollout
* restrict RolloutUpdate to changing only name and description
* small refactoring

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-06-24 09:16:39 +03:00
Avgustin Marinov
3f060e84a3 [#1651] Fix tenant level config for DistributionSet implicit lock (enabled by default) (#1679)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-08 14:16:31 +02:00
Avgustin Marinov
9ac51ab988 [#1651] Implement tenant level config for DistributionSet implicit lock (#1678)
enabled by default

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-08 12:43:53 +02:00
Avgustin Marinov
ce9918ce00 [#1651] Add SoftwareModule and DistributionSet unlock (REST) (#1677)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-08 11:28:24 +02:00
Avgustin Marinov
850fa3507f [#1580] Software Module & Distribution Set lock: add lock at rest level (#1646)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-15 11:46:06 +02:00
Avgustin Marinov
c320a45b55 Refactoring/Improving source: dmf 2 (#1612)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-04 11:46:43 +02:00
Avgustin Marinov
ba685ef429 Refactoring/Improving source: repository & fix log() (#1601) (#1602)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-03 17:25:30 +02:00