Skip to content

0.10.0

Choose a tag to compare

@denislavprinov denislavprinov released this 16 Mar 10:53
· 140 commits to master since this release
51e3e3f

IMPORTANT ❗

hawkBit 0.10.0 is a required migration step and establishes the baseline for the upcoming 1.0.0 release. Deploying 0.10.0 first is mandatory for existing setups and ensures database migrations and configuration changes are applied in the correct order.

🚀 New features

  • New MCP (Model Context Protocol) server for hawkBit (#2871, #2923)
  • Introduced target grouping support (#2538)
  • Rollout Stop operation (#2595) with UI support (#2929)
  • Pause success action for rollout groups (#2867, #2877)
  • Action history cleanup/purge (#2728)
  • Configurable polling time overrides (#2533)
  • Introduced service-level events (#2588)
  • Filter actions by createdAt and lastModifiedAt timestamps (#2546)
  • Fine-grained permissions for targets, distribution sets, target types, distribution set types, software module types, and repository operations (#2535, #2545, #2562, #2649, #2660, #2676)
  • JSON security context serializer (human-readable, smaller footprint) replacing Java serialization (#2652, #2677)
  • Added EntityMatcher for in-memory RSQL evaluation (#2531)
  • Deeper RSQL search support and shortcut fields (#2682, #2686, #2696)
  • Pluggable QL for EntityManager (#2698)
  • Support for action cancellation in DDI controller SDK (#2846)
  • Group support in the create-target dialog in the UI (#2552)
  • Metadata management in the UI (#2870)
  • Target filter query view in the UI (#2892)

👍🏻 Improvements

  • 429 (Too Many Requests) response on quota hit (#2834)
  • REST APIs now return 204 No Content (without body) for successful delete/update operations (#2793)
  • Schema unification across databases (MySQL, PostgreSQL, H2) (#2906, #2909, #2922, #2930)
  • Migrated remote events from Spring Bus to Spring Cloud Stream (#2563, #2576)
  • Extracted RSQL/QL into a separate top-level module (hawkbit-ql) (#2531, #2532, #2808)
  • Software module completeness property (#2765)
  • Distribution set locked flag fully governs functional modification (#2766)
  • Caching improvements: cache eviction in microservice mode (#2503), caches for SM/DS/Target types (#2784), refactored cache infrastructure (#2775, #2777)
  • Tenant configuration values changed from varchar to text for larger values (#2938)
  • AutoAssign scheduler with tenant-level locking and configurable parallelism (#2843)
  • Flyway callback support in DB init (#2764)
  • Auditor-aware principal definition (#2654), username as auditor (#2661)
  • Tenant added to security context for audit logging (#2885)
  • AccessContext.asTenant convenience method (#2838)
  • Refactored TenantAware — removed TenantRunner, uses standard Runnable/Callable (#2755)
  • Optimized target retrieval via REST API (#2757)
  • Optimized API responses (#2880)
  • OAuth2 granted authorities refactoring (#2684)
  • Abstracted repository management with common RepositoryManagement pattern for target tags (#2580), target types (#2581), target filter queries (#2587), distribution sets (#2591), software
    modules (#2594), targets (#2599)
  • Abstract metatype implementation (#2575)
  • EclipseLink static instrumentation fix (#2542)
  • Customizable retry for SDK HTTP client (#2523)
  • Renamed "Simple UI" to just "UI" (#2809)
  • OIDC ID token refresh improvements in the UI (#2534)
  • Various UX improvements: smoother item selection during creation (#2878), clearer target detail view (#2882), tag quoting for whitespace (#2890), and more (#2554, #2901)

🐞 Bugs fixed

  • EclipseLink static instrumentation fix (#2542)
  • Fix register target dialog — controller ID field (#2750)
  • Fix complex attribute RSQL filters (#2564)
  • Fix DS type update not to remove mandatory/optional module types (#2598)
  • Fix getAllAuthorities (#2548)
  • Fix Protostuff message converter (#2583)
  • Fix limited DS complete filtering (#2780)
  • Fix action delete access control — requires only target update (#2767)
  • Fix EntityMatcher case sensitivity config (#2706)
  • Fix EntityMatcher for Identifiable.getId (#2724)
  • Fix auto cleanup actions configuration value on set (#2805)
  • Fix tenant scope on retrieval of target groups (#2847)
  • Fix file upload buffering in SDK (#2610)
  • Fix target view when no last poll available (#2530)
  • Fix Simple UI login (#2674)

⬆️ Version upgrades

  • Docker base image bumps: 21.0.7 → 21.0.8 → 21.0.9 → 21.0.10 (#2592, #2795, #2908)
  • Spring Boot upgrades: 3.5.3 → 3.5.4 → 3.5.5 → 3.5.6 → 3.5.7 → 3.5.8 → 3.5.9 → 3.5.10 → 3.5.11
  • Spring Cloud upgrade to 2025.0.1 (#2862)

❗ Removed features/deprecations and non-backward compatible changes

  • Multi-assignments removed — the feature and all related configuration have been removed (#2893)
  • SYSTEM_ADMIN role removed (#2936)
  • ROLE_CONTROLLER_ANONYMOUS removed (#2948)
  • DOWNLOAD_REPOSITORY_ARTIFACT permission removed (deprecated) (#2709); renamed READ_SOFTWARE_MODULE_DOWNLOAD to READ_SOFTWARE_MODULE_ARTIFACT (#2710)
  • typeName removed from distribution set RSQL filtering (#2570)
  • System Management REST API removed (#2761)
  • VirtualPropertyReplacer removed — replaced by new QL abstractions (#2701)
  • VirtualPropertyReplacer and old Specification builders removed (#2697, #2701, #2801)
  • Legacy RSQL-to-Specification builders removed (#2801)
  • Java serialization of security context removed — JSON serializer is now the only option (#2677)
  • Reverse proxy default headers changes to X-Controller-Id and X-Authority-%d, semantics of authority header changed. The config properties changed (#2954)
  • Maven module restructuring (#2806, #2808) — module paths have changed