Avgustin Marinov
2c995b3665
Add fine grained sm/ds type permission ( #2649 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-09-04 15:05:32 +03:00
Avgustin Marinov
2e97d67489
Small Artifact storage refactoring ( #2648 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-09-03 17:05:59 +03:00
Avgustin Marinov
59cb320fcc
Get rid of artifactRepository naming of ArtifactStorage ( #2645 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-09-03 11:55:14 +03:00
Avgustin Marinov
0e5f1d6526
Fix ArtifactStorage availability in tests ( #2644 )
...
After renaming of LocalArtifactRepository to ArtifactRepository
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-09-03 09:29:37 +03:00
Avgustin Marinov
93f7e51565
Rename LocalArtifactRepository to ArtifactRepository ( #2643 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-09-03 08:53:11 +03:00
Avgustin Marinov
2a636328a0
20250828 cleanup ( #2639 )
...
* Cleanup
* Refactor artifact management
2025-09-02 16:08:14 +03:00
Avgustin Marinov
4f0a8893c7
Abstract RepositoryManagement test ( #2631 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-28 12:58:53 +03:00
Avgustin Marinov
42b0bc06a9
Fix Sonar findings ( #2630 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-26 09:32:43 +03:00
Vasil Ilchev
8a2257c1f6
Remove obsolete *ManagementSecuritiyTest classes with manual method tests in favor of new dynamic ManagementSecurityTest ( #2620 )
...
Co-authored-by: vasilchev <vasil.ilchev@bosch.com >
2025-08-25 15:24:10 +03:00
Avgustin Marinov
b4edde8cc3
Refactor Management interfaces: find/get pattern ( #2609 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-15 16:18:32 +03:00
Avgustin Marinov
8abf7275c4
Unified secman test ( #2606 )
...
* Unified Security Management Test
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
* Add unified ManagementSecurityTest
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
---------
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-13 12:12:16 +03:00
Avgustin Marinov
c5bbbeaac7
Align DeploymentRequestBuilder with the rest of the builders ( #2607 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-13 08:58:35 +03:00
Stanislav Trailov
45cd012532
Introduce Stop of a rollout ( #2595 )
...
* Stop of a rollout feature
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* remove some test comments
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* make stop transactional
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* attempt to fix hibernate failed tests
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix some sonar issues
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* changes after review
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix build
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fixes after review
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* finish all rollout groups on deletion of rollout
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* refactor finishing groups
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
* fix RolloutManagementTest
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io >
2025-08-12 17:13:50 +03:00
Avgustin Marinov
441b78460d
Improve Permission Management ( #2604 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-12 14:09:27 +03:00
Avgustin Marinov
124fef189e
Remove Rollout(Group) builders ( #2603 )
...
* Fix entityManager.merge for ds and sm
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
* Remove Rollout(Group) builders
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
* Remove EntityFactory
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
---------
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-11 14:01:03 +03:00
Avgustin Marinov
861483f0d6
Fix entityManager.merge for ds and sm ( #2602 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-08 16:39:18 +03:00
Avgustin Marinov
bff77ac224
Cleanup TargetManagement ( #2601 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-08 13:13:28 +03:00
Avgustin Marinov
5217297c24
Fix Sonar findings ( #2600 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-08 10:33:17 +03:00
Avgustin Marinov
c038c507a9
TargetManagement over RepositoryManagement ( #2599 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-07 17:20:22 +03:00
Avgustin Marinov
08ff739bbe
Fix DS Type update to do not remove mandatory/optional module types ( #2598 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-07 14:29:54 +03:00
Avgustin Marinov
b3e32c14b6
Fix Sonar Findings ( #2596 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-07 09:27:52 +03:00
Avgustin Marinov
e2805fd386
Refactor SofrwareModule Management ( #2594 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-05 17:26:22 +03:00
Avgustin Marinov
6aa8ccaa9c
Refactor DS Management ( #2591 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-05 15:45:41 +03:00
Vasil Ilchev
1a4df60c59
Introducing TargetUpdatedServiceEvent, ActionCreatedServiceEvent, Act… ( #2588 )
...
* Introducing TargetUpdatedServiceEvent, ActionCreatedServiceEvent, ActionUpdatedServiceEvent
* Fix ActionServiceEvents with payload annotation and add ActionEvents and ActionService tests to message converters
* Adapted EventVerifier to expect new ServiceEvents
---------
Co-authored-by: vasilchev <vasil.ilchev@bosch.com >
2025-08-05 10:16:08 +03:00
Avgustin Marinov
7b24981a1d
Implement TargetFilterQueryManagement with AbstractJpaRepositoryManagement ( #2587 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-05 09:53:24 +03:00
Avgustin Marinov
43f717fc8d
Improve JsonBuilder's ( #2585 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-04 12:54:12 +03:00
Vasil Ilchev
1d4e0e9959
Fix Protostuff message converter ( #2583 )
...
Co-authored-by: vasilchev <vasil.ilchev@bosch.com >
2025-08-04 10:09:20 +03:00
Avgustin Marinov
e7b553cd5d
Fix Sonar Findings ( #2584 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-04 09:35:43 +03:00
Avgustin Marinov
a689733d4c
TargetType management over common RepositoryManagement ( #2581 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-01 19:24:49 +03:00
Avgustin Marinov
fd9c0fc50d
Implement target tag management using common RepositoryManagement (and abstract JPA impl) ( #2580 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-01 13:41:20 +03:00
Avgustin Marinov
5d75c9b0cc
Absract metatype impl ( #2575 )
...
* Add common "interface" for metadata supporting entities
* Add common metadata implementation for distribution set and software module
* Extract PermissionSupport + extend by TargetManagement
* TargetManagement tags are now protected by Target permissions - as it should be
---------
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-08-01 12:41:53 +03:00
Vasil Ilchev
cca105c80e
Move EventPublisher to hawkbit-repository-core making hawkbit-reposit… ( #2576 )
...
* Move EventPublisher to hawkbit-repository-core making hawkbit-repository-api non dependent to rabbit binders
* Move EventPublisherHolder to org.eclipse.hawkbit.repository.event
* Fix overriding default values of RemoteEvents and rabbit binder
---------
Co-authored-by: vasilchev <vasil.ilchev@bosch.com >
2025-08-01 08:48:07 +03:00
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
10da0288d9
Fix sonar findings ( #2572 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-30 10:13:23 +03:00
Avgustin Marinov
d6978e5270
Fix ObjectCopyUtil ( #2571 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-29 13:31:25 +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
Avgustin Marinov
7752ec6c24
Fix comple attribute RSQL filters ( #2564 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-24 14:01:49 +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
Birk Blechschmidt
f249544f5d
Support cache eviction in microservice mode ( #2503 )
...
When running in microservice mode, updating configuration properties via
the management component does not automatically update caches in other
services.
This change introduces support for distributed cache eviction using
Spring Cloud Bus. It listens for remote tenant configuration events and
evicts the relevant cache key upon receipt.
Signed-off-by: Birk Blechschmidt <birk.blechschmidt@liebherr.com >
2025-07-11 09:16:37 +03:00
Avgustin Marinov
c5efce4ad8
Fix eclipselink static instrumentation of entity classes ( #2542 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-10 18:55:57 +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
edd6dabb90
Move artifact encryption to hawkbit-artifact-api where it does belong ( #2540 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-10 11:57:44 +03:00
Avgustin Marinov
ea06783fa2
Refactor RSQL Utility - make it singleton and injectable ( #2536 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-07 17:16:26 +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
baab05f009
Rename hawkbit-repository-ql to hawkbit-repository-jpa-ql ( #2532 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-03 14:47:43 +03:00
Avgustin Marinov
426bdbf179
Move Query Language (RSQL) in separate package and add Entity Matcher ( #2531 )
...
* Move Query Language (RSQL) in separate package - hawkbit-repository-ql
* Add Entity Matcher which match an entity object agains filter
* Spec to string utils now in runtime (as a library) - could be used in tests or to dump something in runtimes
* Move eclipselink/hibernate profiles in new QL module, this way provided / set to hawkbit-repository-jpa
* Remove unused javax.el imports
2025-07-03 14:41:55 +03:00
Avgustin Marinov
8c6d56f177
Make some test timeouts (await) configurable ( #2525 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-02 12:45:26 +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