Commit Graph

280 Commits

Author SHA1 Message Date
Walter Bonetti
90898b146d Fix openapi schema key_name in MgmtTypeEntity.java (#1850) 2024-10-01 08:43:32 +03:00
Avgustin Marinov
aed717df57 Add support for efficient tagging and BIG set of targets (#1844)
Adding a method with:

* optimized payload - just controller ids
* no response payload - not needed for that use-case
* targeting - thousands of targets tagged at once

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-09-19 13:56:59 +03:00
Avgustin Marinov
072809be6c Refactor RSQL serach fields related classes (#1834)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-09-09 17:39:45 +03:00
Avgustin Marinov
d958d8e82c Remove download by downloadId functionality (#1820)
This functionallity seems to get via AMQP (after some authentication)
a private (wihtout need of authentication) url to an artifact assigned
to the controller.

By default, DDI or DMF shall provide proper urls (for direct download)
to devices and if they have to be without authentication this shall be
solved in different ways - for instance separate download server providing
dedicated private / signed urls.

This functinallity is not a real hawkBit part but more like something
intended to solve some edge cases.
Since it is complicated, heeds support, doesn't solve wide spread use
cases, and could be achieved with other means - better to be removed.

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-08-14 17:28:46 +03:00
Denislav Prinov
dc5b45b94a Refactoring the DDI Offline Distribution set assignment feature (#1798)
* Refactoring the DDI Offline Distribution set assignment feature

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Tests refactoring

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* make it more visible the featyre is experimental

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

---------

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
2024-08-01 16:14:40 +03:00
Avgustin Marinov
6fd52d4b4a Involve all targets in dynamic rollouts (#1795)
* involve targets into dynamic rollouts eagerly - doesn't wait for dynamic group to become running in order to involve devices
* adds trottling for involving targes into dynamic groups
* small style refactoring

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

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com
2024-08-01 15:36:29 +03:00
Diorcet Yann
2638de25d6 Ignore isEmpty methods in MgmtTargetAttributes and MgmtDistributionSetAssignments in order to avoid invalid schematic (#1794) 2024-08-01 15:19:20 +03:00
Florian BEZANNIER
0013750f78 feat: allow a target to set offline assigned distribution set (#1620)
* feat: allow a target to set offline assigned distribution set

Signed-off-by: Florian Bezannier <florian.bezannier@hotmail.fr>

* refacto: apply @avgustinmm recommendation

* docs: Mark update offline API as experimental

---------

Signed-off-by: Florian Bezannier <florian.bezannier@hotmail.fr>
2024-08-01 11:51:31 +03:00
Diorcet Yann
c7d9366009 Replace APiReponse code from 200 to 201 according to behaviour or POST methods (#1796) 2024-08-01 11:42:28 +03:00
Avgustin Marinov
6106d3c16c Fix sonar findings (#1792)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-29 13:50:42 +03:00
Avgustin Marinov
17432925f9 Improve request/response holder implementation (#1790)
Make use of RequestContextHolder which provides access to request / response out of the box

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-29 12:23:06 +03:00
Avgustin Marinov
950ed398cc Target REST API returns OK with empty list when no tags (#1786)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com
2024-07-26 08:43:20 +03:00
Avgustin Marinov
859cd130f2 Remove UI leftover and small improvements (#1784)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-25 13:47:59 +03:00
Avgustin Marinov
3189531162 Add support for target tag retrieval via REST (#1782)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-24 14:01:40 +03:00
Avgustin Marinov
c1de86b29e Remove target tag to target reference (#1772)
* Remove target tag to target reference

it is not used and could lead to extensive memory usage if JPA provider load targets while loading tags

Also, remove search field controller id as not meaningful

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

* Fix review findings

---------

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-19 13:56:30 +03:00
Denislav Prinov
119d1b5c50 Tests for the new Dynamic Rollouts, including the new Dynamic group definition functionality (#1777)
* Added tests for the new Dynamic Rollouts, including the new Dynamic group definition functionality

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Refactoring

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Additional check before the dynamic group is triggered

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

* Refactoring

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>

---------

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
2024-07-19 08:25:31 +03:00
Avgustin Marinov
bb288eab6b Remove guava dependency (#1776)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-07-17 15:48:24 +03:00
Denislav Prinov
d2ef59781b Fix Target Types filtering by ID (#1763)
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
2024-07-11 12:21:24 +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
7d62e81515 Add PollStatus to result of list targets via REST API (#1734)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-05-22 11:02:21 +03:00
Michael Wiesenbauer
e69c1defdf prevent npe during multipart exception handling (#1721)
Signed-off-by: Michael Wiesenbauer <michael.wiesenbauer@setago.io>
Co-authored-by: Michael Wiesenbauer <michael.wiesenbauer@setago.io>
2024-05-22 10:34:20 +03:00
Avgustin Marinov
195e9e20a0 Remove PermissionService - unused (#1717) (#1718)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-04-18 13:23:23 +03:00
Avgustin Marinov
1f2dd28ab6 [#1712] Fix READ_TENANT_CONFIGURATION hierarchy and add tests (#1714)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-04-12 17:39:31 +03:00
Avgustin Marinov
3611a8eccd [#1712] Introduce READ_TENANT_CONFIGURATION permission (#1713)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-04-12 14:30:29 +03:00
Avgustin Marinov
a37702744c SDK improvements (#1693)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-19 17:35:14 +02:00
Avgustin Marinov
50d34dd81e Expose rollout group dynamic flag via REST (#1691)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-15 16:20:16 +02:00
Avgustin Marinov
60e25b47ec Consistent chain = true fore Mgmt REST API (#1685)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-14 11:49:48 +02:00
Avgustin Marinov
2c4140e76f Improve Java (hence feign) API of the REST API (#1684)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-13 17:04:48 +02:00
Avgustin Marinov
936e6d6d66 [#1651] Implement skip DistributionSet implicit lock on DS tags (#1680)
tags the implicit lock is skipped on are configured via
RepositoryProperties.skipImplicitLockForTags list.
By default skip tags are the ones with names:
"skip-implicit-lock", "skip_implicit_lock", "SKIP_IMPLICIT_LOCK", "SKIP-IMPLICIT-LOCK"

+ this commit centralize the implicit lock enable/disable logic

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-03-08 14:58: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
57450bf31b Add fine graned role and permission for user management (#1670)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-29 12:01:35 +02:00
Avgustin Marinov
ab61b168bd [#1650] Expose externalRef via search filters (#1657)
add option to filter actions using _externalref_ property

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-19 17:23:56 +02:00
Avgustin Marinov
bf1c7df52e [#1650] Expose externalRef via REST API (#1655)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-19 16:21:18 +02:00
Avgustin Marinov
92de2d573c Fix some sonar finings (#1652)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-19 13:42:32 +02:00
Avgustin Marinov
9e76223a91 [#1580] Software Module & Distribution Set lock: implicit (#1649)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-18 23:01:55 +02:00
Avgustin Marinov
5c38af2772 [#1580] Software Module & Distribution Set lock: add lock at rest level (#1647)
+ tests added

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-15 13:28:01 +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
3b6570bca6 Introduce inital draft of hawkBit SDK (#1638)
Intends to provide a Java SDK facilitating:
* development of back-end integrations using mgmt api (including UI-s)
* development of java based high-end devices (which could run Spring apps) to communicate with hawkBit via DDI API
* implementation of demo/test cases using device & management SDK

Status: initial draft
 - Feign client did & management API - done
 - Hal/HATEAOS Support - works (including in non-web apps)
 - device communication works when no software updates (e.g. pulling software base)
 - demo for single and multiple devices simulation (including management API uses)
 - TODO - fix software update flows
 - TODO - provide more integration points for developers to interact with device SDK

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-12 16:30:22 +02:00
Avgustin Marinov
ab10b67d4e Fix lombok toString to call super where needed (#1634)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-09 13:00:12 +02:00
Avgustin Marinov
669f50a4f7 Fix MgmtBaseEntity deserialization (#1633)
Before REST refactoring MgmtBaseEntity was able to deserialize fields
like createdBy. After refactoring, with READ_ONLY access it was dropped
and these fields become null. While this could be a good change, it is
not backward compatible (is that needed) and most importantly will lead
to the fact that Feign client won't be able to access that
data. So, at least for now, I return deserialization back

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-09 12:51:02 +02:00
Avgustin Marinov
0c14e6e05d Fix log in DDI Root Controler (#1632)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-09 08:58:02 +02:00
Avgustin Marinov
8fb6d1ab5a REST doc / Mgmt Tenant - fix missed info (#1631)
When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - Tenant

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 17:15:07 +02:00
Avgustin Marinov
5d24142fa9 Rest mme/fix openapi doc losses targettype (#1630)
* REST doc / Mgmt Target Tag - fix missed info

When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - Target Tag

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

* REST doc / Mgmt Target Type - fix missed info

When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - Target Type

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

---------

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 16:54:01 +02:00
Avgustin Marinov
c944a0da94 REST doc / Mgmt Target Tag - fix missed info (#1629)
When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - Target Tag

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 15:59:49 +02:00
Avgustin Marinov
c4594239a2 REST doc / Mgmt Targets - fix missed info (#1628)
When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - Targets

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 15:50:19 +02:00
Avgustin Marinov
cb88d60226 REST doc / Mgmt Target Filters - fix missed info (#1627)
When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - TargetFilters

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 15:23:32 +02:00
Avgustin Marinov
9afd847cc1 REST doc / Mgmt Software Modules Types - fix missed info (#1626)
When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - SoftwareModules Types

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 15:11:05 +02:00
Avgustin Marinov
f5359d6bc9 REST doc / Mgmt Software Modules - fix missed info (#1625)
When spring restdoc was replaces with swagger & open api some info was lost
This commit returns back this info for Mgmt API - SoftwareModules

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-08 14:55:06 +02:00