Commit Graph

25 Commits

Author SHA1 Message Date
Avgustin Marinov
1be473b22c [#2845] Bump Spring boot to 4.x (#2941)
Notes:
1. (!) Eclipselink shall be migrated to 5.0 (in 4.0.8 there are incompatible classes, e.g EJBQueryImpl doesn't implement some newer methods). In the moment is with beta (5.0.0-B12) - JUST for testing!
2. (!) Ethlo plugin doesn't work with Eclipselink 5.0, it builds with Eclipselink 4.0.8 (could be a problem)
3. Dependencies - new starters, test starters changes, some dependencies refactoring
4. Auto-configs split - package changes, some properties classes changes
5. Spring nullable org.springframework.lang.Nullable/NonNull are depecated and replaced with jspcify -> org.jspecify.annotations.Nullable/NonNull (NullMarked)
6. Lombok config - adding lombok.addNullAnnotations=jspecify - to do not mess annotations
7. Distributed lock table changes - SP_LOCK table db migration
8. Spring Retry replaced with Spring Core Retry - does repace retry in hawkbit
9. Specifications -> added Update/Delete(/Predicate) Specifications and JpaSpecificationExecutor changed
10. HawkbitBaseRepositoryFactoryBean modified to register properly
11. Jackson - 2 -> 3, package migrations, finals are not deserialized by default(enable finals deserialization, consider make non-final), too ‘smart’ tries to set complex objects instead of using non args constructor (-> @JsonIgnore), some other default configs made

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-04-14 11:31:41 +03:00
Avgustin Marinov
a1608cce19 Remove DB migrations up to 1.0.0 baseline (#2953)
For the existing DBs the 0.10.0 release shall be applied before hawkbit 1.0.0!

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-03-09 16:58:31 +02:00
Vasil Ilchev
51e3e3f806 Add rollout_group index on parent column (#2952) 2026-03-06 16:02:47 +02:00
Vasil Ilchev
937195af1e Tenant Configuration values varchar to text - support bigger values f… (#2938)
* Tenant Configuration values varchar to text - support bigger values for configs
access_control_context varchar to text - support bigger values for configs

* Add size constraint in App for Tenant 'conf.value' and rollout/target_filter_query 'access_control_context

* add explicitly not null constraint for clarity
2026-02-26 12:15:43 +02:00
Avgustin Marinov
6631bf8344 Add baselines for hawkbit 1.0 (#2902)
* Add baselines for hawkbit 1.0

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

* Add SQL format, close to the already used

* Organize and unify

* Refactor B1_POSTGRES index names

* Revert ignoreMigrationPattern - will be included in separate PR

---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
Co-authored-by: vasilchev <vasil.ilchev@bosch.com>
2026-02-24 11:36:27 +02:00
Avgustin Marinov
6b3fbef400 Fix postgres unify migration (#2932)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-02-23 15:16:47 +02:00
Avgustin Marinov
2660bca4c7 Unify sp_rollout_group.target_percentage type REAL -> FLOAT (#2930)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-02-23 14:38:39 +02:00
Vasil Ilchev
ea3fe213e0 Schema changes int->tinyint and foreginkeys/indexes rename (#2922)
* Schema changes int->tinyint and foreginkeys/indexes rename

* Optimize schema migration to do all related changes within one statement per table - i.e. no redundant table re-builds

* Foreign key checks disabled for huge dbs

* Merge unify and convergence schemas as they both do migrations on common tables - reduce downtime

* Rename unify schema
2026-02-19 13:43:47 +02:00
Avgustin Marinov
a0e8c411c8 Drop sp_idx_rollout_group_parent index for mysql (#2911)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-02-09 14:38:18 +02:00
Avgustin Marinov
738234f0e2 Add to unification also index rename (#2909)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-02-09 13:15:02 +02:00
Avgustin Marinov
075701d07d Unify flyway schemas and fix PostgreSQL v1_12_35 (#2906)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2026-02-09 08:52:33 +02:00
Avgustin Marinov
2d562f64cb Fix properties change migration scripts (#2783)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-28 13:18:38 +02:00
Avgustin Marinov
64bdced682 Tune/fix action cleanup tenant properties (#2782)
* actions.cleanup.onQuotaHit.percent -> action.cleanup.onQuotaHit.percent
* action.cleanup.enabled - removed - instead enabled / disable <=> expire < / >= 0
* action.cleanup.actionExpiry -> action.cleanup.auto.expiry and action.cleanup.auto.status - so both are under action.cleanup.auto, and differentiate from on quota hit
* auto db convert of props with one backward incompatibility - if you had action.cleanup.enabled=true and not set action.cleanup.actionExpiry (assuming default 30 days) - auto cleanup will be disabled
  you should set action.cleanup.auto.expiry=2592000000 in order to get the old behavior
* Note that if you have configured global action cleanup the properties are changed also this config you shall change manually

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-10-28 12:40:37 +02: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
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
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
023c6f06f5 Sets default Flyway ingore-migration-patterns (#2379)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-04-28 14:59:32 +03:00
Avgustin Marinov
ffc550fcc7 Fix/db refactoring rename (#2365)
* Refactor datbase - renaming

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

* Final refactoring

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

---------

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-04-25 16:08:23 +03:00
Avgustin Marinov
df398c9a74 Standalone tool for initializing of hawkBit Database (#2369)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-04-24 16:27:28 +03:00
Avgustin Marinov
7486f54291 Add DS type to distrubution set unique key (#2364)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-04-17 10:00:18 +03:00
Avgustin Marinov
2af5439b39 Clustering: Add distributed lock (#2333)
To support sync of activities in cluster setups

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2025-04-02 12:25:08 +03: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
e41c0efd3d Add postgress docker compose examples + Flyway Modularity Support (#2089)
* added postgress docker compose examples
* move mysql flyway into server (remove from hawkbit-repository-jpa-flyway)
* in starters is added posgress and sqlserver flyway support - see [Flyway Modularity](https://github.com/flyway/flyway/issues/3780)

_release_notes_

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-20 18:08:11 +02:00
Avgustin Marinov
e917c0847d Rename HawkBitFlywayAutoConfiguration -> HawkbitFlywayAutoConfiguration unify 'hawkbit' class names (#2077)
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-18 14:46:34 +02:00
Avgustin Marinov
f62f9fa97b Move Flyway into separate artifact (#2025)
Now it is not part of the ddi and dmf starters - only mgmt (where could be excluded on packaging)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
2024-11-14 11:51:23 +02:00