Commit Graph

1254 Commits

Author SHA1 Message Date
Avgustin Marinov
a3cf835ae2 Fix sonar findings (#2769)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-22 15:12:37 +03:00
Stanislav Trailov
1b62bee92f Add update repositopry permission to handleMaxAssignmentsExceeded in deployment management (#2768)
* Action history cleanup/purge initial

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

* apply changes after review

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

* fix hibernate build by annotating delete methods with transactional annotation

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

* changes after review and new test cases for new requirements

* accept 0 for keep last

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

* Fix ManagementSecurityTest

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

* apply object utils check

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

* fix for oldestAction deletion

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

* remove unused comment

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

* rename action ids variable

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

* Fix access control handling

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

* Add update repositopry permission to handleMaxAssignmentsExceeded in deployment management

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

---------

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
Co-authored-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-22 14:54:40 +03:00
Avgustin Marinov
8a36ba6203 Fix action delete access control - to require only target update (not delete also) (#2767)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-22 13:33:56 +03:00
Avgustin Marinov
3caa9d9eda Switch completely to locked for checking if DS could be functionally modified (#2766)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-22 11:46:36 +03:00
Avgustin Marinov
e154e1b18a [#2429] Add completeness property for software modules (#2765)
* add `min artifacts` requirement on the Software Module Type level for Software Module completeness
* removed `complete` Distribution Set property from DB - calculated runtime
* Distribution Set and Software Module completeness is calcualted on demand in memory (TODO: implement cache)
* locking of Software Module now requires the software module to be `completed`
* removed 'complete' search field for DistributionSet type. Still keep (DEPRECATED) limited support for search with 'complete' -
  only on the first level of expression and with AND. I.e. complete==true, complete==false and id=in=(1, 3) is suppoted,
  while complete==false or id=in=(1, 3) and id=in(1, 3) and (type==os and complete==true) are not

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-22 09:57:45 +03:00
Stanislav Trailov
f1c3d0175e Action history cleanup/purge initial (#2728)
* Action history cleanup/purge initial

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

* apply changes after review

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

* fix hibernate build by annotating delete methods with transactional annotation

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

* changes after review and new test cases for new requirements

* accept 0 for keep last

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

* Fix ManagementSecurityTest

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

* apply object utils check

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

* fix for oldestAction deletion

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

* remove unused comment

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

* rename action ids variable

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

* Fix access control handling

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

---------

Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
Co-authored-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-21 10:34:58 +03:00
Avgustin Marinov
66da13a038 Add option to provide flyway callbacks to db init (#2764)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-20 14:00:48 +03:00
Avgustin Marinov
b10955f3eb Remove System Management REST (#2761)
* the only non repository module using @PreAuthorize
* the only service for "sys admins" - it's a little bit out of scopes
* caches management is not supposed to be via REST
* delete tenant shall not be provided when we don't have create
* metrics shall be reported via metrics colectins services, or db

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-17 10:45:11 +03:00
Avgustin Marinov
4b3c3cc870 Remove org.eclipse.hawkbit.repository.jpa.specifications.SpecificationsBuilder and fix deprecated Specification.where (#2760)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-16 16:01:29 +03:00
Avgustin Marinov
8da851a75a [#2758] Add test for JpaTargetManagment - findByTargetFilterQueryAndNonDSAndCompatibleAndUpdatable (#2759)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-16 15:29:18 +03:00
Avgustin Marinov
811b163d22 Optimize get targets via REST API (#2757)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-15 14:08:58 +03:00
Avgustin Marinov
6ad20252ba Refactor UserAuthoritiesResolver - to run in tenant context (#2756)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-14 17:28:57 +03:00
Avgustin Marinov
04cd9fb30d Refactor TenantAware - remove TenantRunner and replace with standard Runnable / Callable (#2755)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-14 16:36:42 +03:00
Avgustin Marinov
b390a0f8ef Fix sonar findings (#2742)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-10 14:32:09 +03:00
Avgustin Marinov
ebc3755469 Fix ACM tests (#2739)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-10 12:58:59 +03:00
Avgustin Marinov
3447ac3b1b Fix system context resolving in ACM (#2737)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-10 12:02:16 +03:00
Avgustin Marinov
e7d9ee7990 Add Target(Type)Management tests (#2735)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-10 08:36:08 +03:00
Avgustin Marinov
39ab8275bc Add SM and SM type ACM tests (#2734)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-09 13:50:03 +03:00
Avgustin Marinov
9a70fffeb5 Simplify/Refactor RolloutExecutor ACM test (#2733)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-09 12:48:05 +03:00
Avgustin Marinov
bc96c24983 Add RolloutManagement ACM test (#2732)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-09 12:29:28 +03:00
Avgustin Marinov
95e37268bd Add Rollout Execution ACM Test (#2731)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-09 12:29:20 +03:00
Avgustin Marinov
82bbb2a553 Fix rollout handler all metric (#2730)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-09 11:02:55 +03:00
Avgustin Marinov
4ba09f127e Add DistributionSetManagementTest and TargetTypeQueryManagementTest (#2727)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-08 16:53:37 +03:00
Avgustin Marinov
e23d2aa920 Add DeploymentManagement ACM test (#2726)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-08 11:07:15 +03:00
Avgustin Marinov
cc36ca8801 Fix EntityMatcher when for Identifiable.getId (#2724)
* Fix EntityMatcher to process properly filters of type targetType.id - to resolve correctly the getter return type Long not T
* Add AutoAsssignTest access control test
* Simplify rest of the ACM tests

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-07 15:26:04 +03:00
Stanislav Trailov
0134a67241 Try to fix flaky Rollout mgmt test (#2716)
Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
2025-10-02 18:03:42 +03:00
Avgustin Marinov
cf89861f1e Fix Sonar Findings - add @Override (#2712)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-01 09:15:14 +03:00
Avgustin Marinov
ccecf9b8d6 Rename READ_SOFTWARE_MODULE_DOWNLOAD to READ_SOFTWARE_MODULE_ARTIFACT (#2710)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-30 16:13:41 +03:00
Avgustin Marinov
4b98d89ab0 Remove deprecated DOWNLOAD_REPOSITORY_ARTIFACT permission (#2709)
use READ_SOFTWARE_MODULE_DOWNLOAD

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-30 15:40:15 +03:00
Avgustin Marinov
4715278ee5 Sonar Findings (#2708)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-30 09:30:23 +03:00
Avgustin Marinov
3714d408d0 Cleanup QL parse and tranform API (#2707)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-29 16:36:41 +03:00
Avgustin Marinov
e747d55a38 Fix EntityMatcher case sentsitivity config (#2706)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-29 15:08:21 +03:00
Avgustin Marinov
ebfaa1d51e Fix sonar findings (#2705)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-29 13:19:08 +03:00
Avgustin Marinov
a2929757d8 Encapsulate time overdue into VirtualPropertyResolver (#2704)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-29 13:14:40 +03:00
Avgustin Marinov
1919af4a9d Remove VirtualPropertyReplacer (#2701)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-26 17:17:38 +03:00
Avgustin Marinov
1954fbe829 Add simple value support for default query parser mapping (#2700)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-26 17:09:42 +03:00
Avgustin Marinov
a6867219b1 Remove FieldValueConverter (#2699)
* (because) used only for ActionFields.STATUS
* could be part of new Node mapping mechanism
* simplify
* Deprecate ActionFields.STATUS, add / replace it with ActionFields.ACTIVE. In future STATUS will become the real action status (and DETAILSTATUS will be removed)
* Deprecate MgmtAction.getStatus add / replace it with MgmtAction.isActive. In future status will become the real action status (and detailStatus will be removed)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-26 16:57:10 +03:00
Avgustin Marinov
1abfa0a2f4 Add support for plugable QL for EntityManager (#2698)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-26 15:39:21 +03:00
Avgustin Marinov
4434484d35 Deprecate VirtualPropertyReplacer (#2697)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-26 14:56:32 +03:00
Avgustin Marinov
b181b66ee5 Extend Query Langage Support (#2696)
* add option for parser replacement - so, one could replace the query language and don't use RSQL
* add easy way to modify query root Node 
* add easy Node modification utilities
* code refactored and naming more 'QL' than 'RSQL' oriented

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-26 14:19:25 +03:00
Avgustin Marinov
c906c2f2eb Type Access Controllers enabled by default if AC is enabled (#2694)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-25 16:53:19 +03:00
Avgustin Marinov
c20ee8bdf3 Fix fine-grained permissions config (#2688)
* disabled by default
* evaluaton context considers fine-grained only when acm is enabled

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-24 09:40:27 +03:00
Avgustin Marinov
e7765bf4d2 Add suppor for deeper RSQL search (#2682)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-23 17:15:48 +03:00
Avgustin Marinov
b702ea41d1 Implement Action Access Control (#2687)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-23 13:31:17 +03:00
Avgustin Marinov
9ab0a8628e First level suppor for RsqlQueryFields shortcut support (#2686)
* now it is possible to have a showrtcut for a sub attributes (i.e. calling it directly with enum name, e.g. type -> type.key) with directly specifying the defaultSubEntityAttribute
* no need to have single sub attribute in order to have a default sub attribute
* added TYPE search field for TargetFields (sinonim of targettype)
* targettype is deprecated - to be decided if and when to be removed
* returned back "type" direct search (with meaning type.key) for DistributionSet and SoftwareModule as non-depricated
* add serche with "type" as type.key for Target

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-23 10:56:26 +03:00
Avgustin Marinov
117f2bf683 Fix Sonar Findings (#2683)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-19 16:01:57 +03:00
Avgustin Marinov
8bdcc51985 Add actions contxt management (#2680)
* based on TARGET permissions - action is accessible iff it its target is accessible
* add some more (id) serch fields
* (backward incompatible) software module search supports now search by name (type.name) and the old search by type (indead by type key) is now with type.key

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-19 15:47:20 +03:00
Avgustin Marinov
dce133dfae Add some id based searches and software module search by type (#2681)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-19 15:45:43 +03:00
Avgustin Marinov
e19b11290d Fix Sonar Findings (#2679)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-19 10:25:18 +03:00
Avgustin Marinov
7980b5defb Remove Java security context serialization (#2677)
Remove Java security context serialization - it is replaced by JSON security context serialization (optimized as size). Backward incompatible change.
Java security context serialization was not used in default hawkbit runtime out of the box. So, it's assumed none uses it. 
Anyway, if anyone has enabled it, he could, in order to keep backward compatibility, get the java security context serialization from the previous hawkbit releases/commits and register it again as a spring bean in his hawkbit extension.

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-09-18 14:46:51 +03:00