Commit Graph

130 Commits

Author SHA1 Message Date
Avgustin Marinov
4f63a66a6d Fix docker images and micro-service compose (#1560)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com
2024-01-22 09:52:12 +02:00
Avgustin Marinov
7440d90f59 [#1383] Spring Boot 3 migration Step 2 (#1559)
* [#1383] Spring Boot 3 migration Step 2

Some of the steps:

1. Change spring version parent and versions in root pom.xml
2. update eclipselink versions
3. javax.annotation -> jakarta.annotation (*.java)
4. javax.persistence -> jakarta.persistence (*.java)
5. javax.servlet -> jakarta.servlet (*.java, pom.xml)
6. javax.validation:validation-api -> jakarta.validation:jakarta.validation-api (pom.xml)
7. javax.validation -> jakarta.validation (*.java)
8. javax.transaction -> jakarta.transaction (*.java)
9. replace spring-cloud-stream-binder-test (hawkbit-repository-test) with
```
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-stream-test-binder</artifactId>
</dependency>
```
, TestSupportBinderAutoConfiguration.class }) -> })
@Import(TestChannelBinderConfiguration.class)
10. Set to Simple UI standard parent
11. requestMatchers to securityMatcher
12. @SpringBootApplication(scanBasePackages = "org.eclipse.hawkbit") (otherwise for instance flyway doesn't work - suffix is default ".sql", not H2.sql and don't differentiate dbs? strange is there a change?)
13. @NonEmpty for Long leads to validation exception - replaced with @NotNull
14. RSQLUtilityTest.correctRsqlBuildsPredicate - fixed - mock query builder add method
15. https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#spring-mvc-and-webflux-url-matching-changes - aliases as targers/ return 404 - remove trailing slash
16. firewall tests (allowedHostNameWithNotAllowedHost) doesn't throw 'rejected exception' but return 400 instead (as probably is expected anyway)

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

* Fix tenant listing to do not mix with multitenancy

Tenant metadata is not multitenancy aware while depend on distribution set type
which is. Thus querying all tenant metadata (in non tenant context) sometimes leads to
resolution of distribution set type which is tenant scoped and leads to problems.

So, now listing tenant lists just their ids - not fill entities.

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

---------

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-20 15:57:17 +02:00
Avgustin Marinov
54ccc4bee9 [#1510] Remove Vaadin v8 UI: Remove Lib - FIX (#1555)
Fixes the security vulerability in previous commit: 76996c7b4a

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-19 13:41:24 +02:00
Avgustin Marinov
d9481ed43f [#1510] Remove Vaadin v8 UI: Remove Libs (#1554)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-19 12:34:42 +02:00
Avgustin Marinov
b929b86437 [#1510] Remove Vaadin v8 UI: Remove Application (#1553)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-19 12:11:19 +02:00
Avgustin Marinov
c1cf90f7cf Fix Simple UI for 0-SNAPSHOT (#1552)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-18 17:19:48 +02:00
Avgustin Marinov
12ec3eae4d Switch to revision 0-SNAPSHOT (#1551)
Now there is no necessity to change revision on every relase
Note: when release docker images from nexus repo - version shall always be passed

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-18 16:37:38 +02:00
Stanislav Trailov
b5e9bc8caa Fix/update docker images (#1543)
* update docker images with latest released version and set revision ot 0.5.0-SNAPSHOT

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

* simple ui rev ision to 0.5.0-SNAPSHOT

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

---------

Signed-off-by: TRS1SF3 <Stanislav.Trailov@bosch.io>
2024-01-13 10:29:20 +02:00
Avgustin Marinov
ae47b1b338 Add Simple UI Source & rename java package (#1542)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-11 18:50:14 +02:00
Avgustin Marinov
d1bdca04a1 Rename simple ui package com -> org (#1541)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-11 18:07:24 +02:00
Avgustin Marinov
48e445fba4 Try to fix Simple UI Deploy (#1538)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-11 17:06:40 +02:00
Avgustin Marinov
1ae913e30d Fix Simple UI deploy (#1537)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-01-11 12:25:31 +02:00
Stanislav Trailov
e6efdd0407 fix dist repos of simple ui in order to be properly released (#1536)
Signed-off-by: TRS1SF3 <Stanislav.Trailov@bosch.io>
2024-01-11 11:23:19 +02:00
Avgustin Marinov
586a9d64c7 Fix hawkbit dependency versions of Simple UI (#1527)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-22 11:02:24 +02:00
Avgustin Marinov
6fe4d3fe88 Fix monolith docker compose - waiting for MySQL (#1526)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-21 16:44:57 +02:00
Avgustin Marinov
46ae06bdde Add version support for simole UI (#1525)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-21 16:28:22 +02:00
Avgustin Marinov
ba648cae0e Bump Spring Boot version -> 2.7.18 (#1519)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-15 12:56:32 +02:00
Avgustin Marinov
4289f464c5 Update RolloutView.java / fix sonar finding 2023-12-10 16:12:45 +02:00
Avgustin Marinov
dfd4edb7e6 Fix Sonar findings of Simple UI (#1507)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-10 00:52:28 +02:00
Avgustin Marinov
5468218615 Add DDI Server PreAuthorize enabled test (#1506)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-08 11:57:27 +02:00
Avgustin Marinov
aa1bad91e1 Add @PreAuthorize enabled check for applications (#1503)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-07 22:23:40 +02:00
Avgustin Marinov
c0f8a8c848 Mark new micro-service setup as experimental (#1502)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-07 15:15:12 +02:00
Avgustin Marinov
026ebe0f7f Allign docker doc (#1500)
* allign docker documentation
* remove fabric8 files as this is duplicated way for building docker images (along with docker files)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-04 15:15:54 +02:00
Avgustin Marinov
3b66281c08 Initial draft of Simple UI (#1499)
A very simple UI based on Vaadin 24.
2023-12-04 15:00:18 +02:00
Avgustin Marinov
d0bb7b61d8 hawkbit docker containers made to wait for mysql (#1498)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-04 11:11:49 +02:00
Avgustin Marinov
341e8a4a0c Dockerfiles use non-root user (#1497)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-04 10:52:19 +02:00
Avgustin Marinov
855124eca8 Improve docker build script (#1496)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-04 09:02:59 +02:00
Avgustin Marinov
6a3b584bd1 Fix artifact repo in docker & compose (#1495)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-12-01 17:44:41 +02:00
Avgustin Marinov
a6fa75697f Splitting monolith app to micro services (#1490)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-11-30 15:41:12 +02:00
Avgustin Marinov
b362698af8 Move REST API Doc build in docs/ (#1492)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-11-29 09:52:40 +02:00
Avgustin Marinov
a015a23615 Adding dev docker builds (#1489)
Adds option to build docker images using locally built hawkBit apps. This allows for instance building images from snapshots.

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-11-27 17:32:08 +02:00
Avgustin Marinov
51255feb1b Improved Docker build and docker images (#1488)
* Using upacked Spring layers for faster boot
* Added option to pass JAVA_OPT to modify the environment variables in both flavours
* Build support for different hawkbit apps - could be used in future if hawkBit is split in multiple micro-services
* Removed templates and replacing with parameterized (via build ARGs) docker builds

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-11-27 15:51:04 +02:00
Avgustin Marinov
0021b03c9a CI friendly maven poms - use $revision for version (#1477)
https://maven.apache.org/maven-ci-friendly.html

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-11-16 17:23:01 +02:00
Avgustin Marinov
042e867e5d Docker version upgraded to 17.0.9_9 (#1466)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-11-01 12:52:00 +02:00
Denislav Prinov
22ce1c27a4 Rest API doc generation test - fix (#1453)
* Added SharedSqlTestDatabaseExtension in Rest API doc test - generation

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

* Remove Active profile import

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

---------

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
2023-10-17 13:37:08 +03:00
Denislav Prinov
a4204956e6 Openapi restdoc generation v2 (#1442)
* OpenApi restdoc generation v2

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

* Attach json and yaml artifacts only if -DskipTests is not provided

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

* Add missing header

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

* Add license header

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

---------

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
2023-10-02 11:04:52 +03:00
Avgustin Marinov
5eb84cba4e Fix/Improvement of docker stuff (#1440)
* old docker files removed as not needed anymore
* base docker image upgraded
* mariadb version upgraded and dockerfile fixed to work with new jdks
  as extended libs approach seem to be not supporte anymore
* deprecated rabbitmq default vhost config removed
  (https://github.com/eclipse/hawkbit/issues/1157)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-09-28 08:24:28 +03:00
Tronje
c5bb8b6e3c Remove default vhost environment variable for RabbitMQ in Docker setup (#1167)
RABBITMQ_DEFAULT_VHOST is deprecated. As the default vhost setting
defaults to "/" anyway, it can be safely removed.

Fixes #1157.

Signed-off-by: Tronje Krabbe <t.krabbe+eclipse@protonmail.com>
Co-authored-by: Tronje Krabbe <t.krabbe+eclipse@protonmail.com>
2023-09-27 17:04:10 +03:00
Denislav Prinov
3978454900 HTTP documentation generation from OpenApi documentation (#1438)
* Generating rest doc from swagger json

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

* refactoring and adding doc

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

* refactoring

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

* Don't directly inject files in the executable jar since it brakes it

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

* using the attachArtifact configuration to generate secondary artifact

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

* Splitting the json documentation into mgmt and ddi. And some refactoring

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

* refactoring

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

* Split mgmt and DDI components from the json

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

---------

Signed-off-by: Denislav Prinov <denislav.prinov@bosch.com>
2023-09-27 11:44:30 +03:00
Stanislav Trailov
b51a5d6c90 Feature/swagger support (#1432)
* Swagger support initial concept

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

* Add descriptions for Target tags

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

* Add target filter queries descriptions

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

* Add target api descriptions

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

* Add software modules API descriptions

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

* Add descriptions for DS, DSTags and SMTypes

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

* Add DistributionSetType API descriptions

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

* Add Rollout API descriptions

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

* Bring back test scope to mariaDb

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

* Add tags and descriptions to System config API

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

* Move away OpenAPI config from Start.java

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

* provide license header and project version for openapi

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

* Fix error responses with example error body

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

* Add DDI API to swagger and make proper API grouping

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

* Revert changes from not merging before commit

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

* Remove more changes

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

* fix circle ci build

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

---------

Signed-off-by: Stanislav Trailov <Stanislav.Trailov@bosch.io>
2023-09-25 13:44:55 +03:00
Avgustin Marinov
9c86729a68 [#1393,#1008] Switch to Eclipse v2.0 license (#1427)
Switching license from EPL v1 to v2. Following
https://www.eclipse.org/legal/epl-2.0/faq.php#h.tci84nlsqpgw

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-09-14 11:03:20 +03:00
Stanislav Trailov
0ee081dafc hawkBit Swagger support (#1423)
* Swagger support initial concept

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

* Add descriptions for Target tags

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

* Add target filter queries descriptions

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

* Add target api descriptions

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

* Add software modules API descriptions

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

* Add descriptions for DS, DSTags and SMTypes

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

* Add DistributionSetType API descriptions

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

* Add Rollout API descriptions

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

* Bring back test scope to mariaDb

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

* Add tags and descriptions to System config API

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

* Move away OpenAPI config from Start.java

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

* provide license header and project version for openapi

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

* Fix error responses with example error body

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

---------

Signed-off-by: Stanislav Trailov <Stanislav.Trailov@bosch.io>
2023-09-13 10:40:31 +03:00
Avgustin Marinov
d9205ee4e2 JDK requirements fixed as well as mysql version in (#1425)
docker swarm

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-09-01 10:44:00 +03:00
Stanislav Trailov
b7fb5f131c Add dockerfiles for 0.3.0M9 and fix docker-compose to use mysql 8.0 (#1422)
Signed-off-by: Stanislav Trailov <Stanislav.Trailov@bosch.io>
2023-08-25 15:32:28 +03:00
Avgustin Marinov
56ea5b15c9 [#1383] Spring Boot 3 Migration / Step 1 (#1384)
1. PagingAndSortingRepository doesn't extend CrudRepository anymore. For all extending that interface repositories CrudRepository super interface shall be now declared (https://spring.io/blog/2022/02/22/announcing-listcrudrepository-friends-for-spring-data-3-0 -
```
The popular PagingAndSortingRepository used to extend from CrudRepository, but it no longer does. This lets you combine it
with either CrudRepository or ListCrudRepository or a base interface of your own creation. This means you now have to
explicitly extend from a CRUD fragment, even when you already extend from PagingAndSortingRepository.
```
)
2. org.eclipse.hawkbit.autoconfigure.mgmt.ui -> move in hawkbit-ui (to be ready for removal), anyway - it's a better location for ui related configs
3. extends WebMvcConfigurerAdapter -> implements WebMvcConfigurer
4. remove WebSecurityConfigurerAdapter -> https://docs.spring.io/spring-security/reference/5.8/migration/servlet/config.html#_stop_using_websecurityconfigureradapter, https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
and add @Order to the bean reg!!
5. Use configurers (the other will be deprecated / removed), e.d:  http.csrf().disable() -> http.csrf(AbstractHttpConfigurer::disable)
6. configure(final AuthenticationManagerBuilder auth) -> put in httpsecurity config - http.getSharedObject(AuthenticationManagerBuilder.class).... (https://www.baeldung.com/spring-security-authentication-provider)
7. configure(final WebSecurity webSecurity) ->
```
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
    return (web) -> web.ignoring().antMatchers("/documentation/**", "/VAADIN/**", "/*.*", "/docs/**");
}
```
(https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter)
8. AuthenticationManager authenticationManagerBean() ->
```
@Bean
AuthenticationManager authenticationManager(final AuthenticationConfiguration authenticationConfiguration) throws Exception {
    return authenticationConfiguration.getAuthenticationManager();
}
```
(https://backendstory.com/spring-security-how-to-replace-websecurityconfigureradapter/)
9. WebMvcAutoConfiguration could be removed - it uses deprectated methods, and sets properties that are same by default - hence - not neeeded
(https://github.com/spring-projects/spring-framework/issues/23915#issuecomment-563987147)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2023-07-17 10:36:26 +03:00
Sebastian Firsching
41922bfa0c Adapt rel value in properties files
Signed-off-by: Sebastian Firsching <sebastian.firsching@bosch-si.com>
2023-06-20 09:08:05 +02:00
Shruthi Manavalli Ramanna
0759fd80b0 Added support for cdn download url for mgmt API and tests
Signed-off-by: Shruthi Manavalli Ramanna <shruthimanavalli.ramanna@bosch-si.com>
2023-06-02 19:09:31 +02:00
Stefan Behl
43b54b4c36 Fixed Dockerfile for 0.3.0M8-mysql (#1357) 2023-04-26 09:38:20 +02:00
Stefan Behl
a097638d2b Adding Dockerfiles for 0.3.0M8 (#1353) 2023-04-20 17:21:47 +02:00
Michael Herdt
6f854afdae Introduce GitHub action to execute vulnerability scan using Trivy (#1333)
* Introduce docker maven plugin for hawkbit update server
* Introduce GitHub action to execute vulnerability scan using trivy
2023-03-28 07:42:04 +02:00