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
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
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
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
bdbc658ea9
Fix Sonar findings - DdiRootController unused ( #2524 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-07-02 10:29:03 +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
fde4917c20
Fix integration test reporting ( #2490 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-23 14:52:40 +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
2098dc6223
Unifies security configurations ( #2448 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-12 09:06:50 +03:00
Avgustin Marinov
2992f5c211
Refactor management api style ( #2445 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-10 17:09:03 +03:00
Avgustin Marinov
3e1d6b6dca
Remove OpenAPI registration ( #2440 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-09 17:57:06 +03:00
Avgustin Marinov
6840025ec1
Order rest APIs in openapi doc ( #2438 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-09 15:41:09 +03:00
Avgustin Marinov
5a304af165
Fix swagger config ( #2437 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-09 13:21:24 +03:00
Avgustin Marinov
32ad93c59c
Tune Swagger doc ( #2436 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-06-09 12:52:55 +03:00
Avgustin Marinov
64ee8b9906
JpaSoftwareModule#metadata made map ( #2412 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-05-21 16:59:25 +03:00
Avgustin Marinov
323738bda9
Remove flywat from DDI & DMF servers ( #2370 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-04-24 16:27:48 +03:00
Denislav Prinov
7aa33cd96b
Refactoring the audit log message -> description field
...
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com >
2025-04-22 08:11:53 +03:00
Avgustin Marinov
de4e58d0ee
Add robots.txt to servers - not for bots ( #2358 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-04-15 15:13:36 +03:00
Avgustin Marinov
9290ea194c
[ #1832 ] Fix root redirect to swagger ui ( #2355 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-04-15 09:13:50 +03:00
Avgustin Marinov
36fa915cbc
Improve @Value properties ( #2352 )
...
Implement recommendation from https://docs.spring.io/spring-boot/reference/features/external-config.html to use kebab case for @Values:
If you do want to use @Value, we recommend that you refer to property names using their canonical form (kebab-case using only lowercase letters). This will allow Spring Boot to use the same logic as it does when relaxed binding @ConfigurationProperties.
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-04-11 16:46:34 +03:00
Avgustin Marinov
2b270ddad7
Provide option to disable distributed lock ( #2350 )
...
by setting hawkbit.lock=inMemory the distributed lock could be disabled, e.g. on DDI/DMF servers
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-04-09 15:36:57 +03:00
Fin Maaß
5e209bfecc
remove references to anonymous controller support ( #2345 )
...
`hawkbit.server.ddi.security.authentication.anonymous.enabled` is no
longer supported, so remove the references to it.
Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com >
2025-04-08 17:59:15 +03:00
Avgustin Marinov
32990ab2ea
Add CORS support for DDI API ( #2337 )
...
For instance if used in remote swagger or web apps
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-04-02 09:01:02 +03:00
Denislav Prinov
23154d70cc
Audit Logging in HawkBit ( #2314 )
...
* Introduction of Audit Logging in hawkBit
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com >
* Introduction of Audit Logging in hawkBit
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com >
* Refactoring:
* applied code formatter
* audit moved into hawkbit-security-core
* minimize dependences
* use AuditorAware to retrieve user - so to be compatible with the logs into DB
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
* Move audit entities to security core
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com >
* Introduce audit log method types
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com >
---------
Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com >
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
Co-authored-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-03-31 08:51:54 +03:00
Avgustin Marinov
70949769de
Migrate to jdk 21 ( #2295 )
...
* docker containers using images with jre 21
* project is still building with target java 17 - so jar artifacts are java 17 compatible
* provided option to have different version for client libraries (e.g. ddi and management REST api)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-03-27 09:28:28 +02:00
Avgustin Marinov
21ec2e581a
Fix AMQP retries when attribute characters are invalid ( #2327 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-03-26 16:53:48 +02:00
Avgustin Marinov
4e113f9483
Hibernate: use default HibernateJpaConfiguration ( #2325 )
...
Condifure properties via HibernatePropertiesCustomizer
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-03-21 16:48:14 +02:00
Avgustin Marinov
b2dcc19f5d
[ #2191 ] Remove DB2 and MS SQL support ( #2321 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-03-20 13:43:56 +02:00
Avgustin Marinov
beda747c67
Remove unnecessary JsonProperty annotations ( #2296 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-25 08:40:14 +02:00
Avgustin Marinov
b52ebd0496
Remove unused import ( #2292 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-19 14:31:06 +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
abf043cf87
Fix anonymous download filter ( #2290 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-19 13:43:42 +02:00
Avgustin Marinov
893a3b1f29
Fix security token retrieval in SecurityTokenAuthenticator ( #2289 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-19 11:39:52 +02:00
Avgustin Marinov
2d12ad693a
Remove Unused field from SecurityTokenAuthentictorTest ( #2288 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-19 11:01:53 +02:00
Avgustin Marinov
76ce1cf052
Cleanup and improve the controller authentication ( #2287 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-18 15:10:16 +02:00
Avgustin Marinov
cace8bd20e
Remove anonymous controller support ( #2285 )
...
It's not usable feature, and is error prone - someone could left anonymous enabled by mistake
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-17 17:17:49 +02:00
Avgustin Marinov
0fc076aaca
Optimize DB usage on DDI REST API calls ( #2264 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-02-07 12:32:51 +02:00
Avgustin Marinov
4e59c6c8cc
Fix: don't create action status per progress event ( #2262 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-01-31 13:32:09 +02:00
Avgustin Marinov
406f420f4d
[ #1249 ] Don't create action statuses to log range downloads ( #2261 )
...
In case of range request:
* there could be too many action checks
* there could be too many action statuses - filling the db and hitting the quote
So, this PR skip action existing check and skip logging (following the approach
from #1331 PR by @zyga)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-01-31 13:04:11 +02:00
Avgustin Marinov
881900600f
Sonar Fixes ( #2243 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-01-27 16:46:28 +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
fbaa352f7f
Sonar Fixes (10) ( #2222 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-01-23 16:48:24 +02:00
Avgustin Marinov
a0d149cc1d
Sonar Fixes (9) ( #2221 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-01-23 15:02:03 +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
3d390b9ad7
Sonar Fixes (7) ( #2216 )
...
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com >
2025-01-21 22:13:54 +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