Skip to content

v2.2.1

Choose a tag to compare

@github-actions github-actions released this 01 May 07:10
· 107 commits to master since this release

Highlights

  • Added server-side Hub branding configuration (HubOptions in appsettings.json) covering logo, app name, icon, favicon/manifest, and UI feature toggles, applied at runtime without rebuilding Hub.
  • Registry now auto-upgrades the embedded Hub only when the bundled version exceeds the on-disk version, avoiding unnecessary re-extractions on every startup.
  • [Hub] Added an update notice dialog shown after a Hub upgrade, listing component versions (Hub, Registry, DroneDB) with links to their release pages.

Added / Changed

  • Added HubOptions configuration block in appsettings.json to customize app logo, name, icon, favicon/manifest, and UI feature flags (ShowRegistrationLink, DisableDatasetCreation, DisableStorageInfo, DisableAccountManagement, SingleOrganization, ReadOnlyOrgs).
  • Added /branding/ static route serving {StoragePath}/branding/ for user-supplied logos, favicons, and manifests; the folder is preserved across Hub upgrades.
  • Extended GET /sys/features to return HubVersion, RegistryVersion, and DdbVersion alongside existing feature flags.
  • Made GET /sys/features anonymous so branding and feature flags are available on the login page without authentication.
  • Added Hub version-aware upgrade logic via HubVersionComparer: the embedded Hub is re-extracted only when its version exceeds the on-disk version; a missing or unparseable on-disk version always triggers an upgrade.
  • Restricted Hub extraction to webserver instances only; worker nodes (processing node, thumbnail generator) skip Hub deployment to avoid races on a shared storage folder during upgrades.
  • Added Cache-Control: no-cache, no-store, must-revalidate on index.html responses so browsers fetch a new Hub build after a server-side upgrade.
  • Hub version is now stamped into ClientApp.zip at build time from package.json and written to version.txt inside the archive.
  • Added HubVersionComparer and HubInfo services with unit tests (HubVersionComparerTest).
  • [Hub] Added hubBranding.js to apply HubOptions from /sys/features at runtime, populating window.HubOptions, the document title, and favicon/manifest link tags; branding is applied before login.
  • [Hub] Added hubUpdateChecker.js to detect version mismatches between the running bundle and the server-reported Hub version, forcing a hard reload on mismatch with a per-session loop guard.
  • [Hub] Header branding: AppIcon can now be a URL or path (rendered as an <img>) in addition to a CSS icon class.
  • [Hub] AppName no longer falls back to "DroneDB" when unset; the logo banner takes precedence when no explicit app name is configured.

Fixed

  • [Hub] Fixed embed-mode navigation crash (TypeError: Cannot read properties of null (reading '__vccOpts')) caused by passing null as a named-view component in vue-router 4.6+.
  • [Hub] Fixed map image popup showing a broken Semantic UI icon (external alternate), replaced with fa-solid fa-image.

Merged PRs

Full Changelog: v2.2.0...v2.2.1