Skip to content

Latest commit

 

History

History
456 lines (294 loc) · 24.6 KB

File metadata and controls

456 lines (294 loc) · 24.6 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.13.0 (2026-04-30)

⚠ BREAKING CHANGES

  • backend: rename CHECK_ORIGIN_ALLOWED_ORIGINS to GQL_SUBSCRIPTIONS_ALLOWED_ORIGINS
  • backend: the backend now reads a new environment variable: CHECK_ORIGIN_ALLOWED_ORIGINS that sets the allowed origins for graphql subscriptions. If not set the subscriptions will not work in a Kubernetes environment. Please update your environment accordingly

Features

  • Add download functionality to uploaded files (749490a)
  • add endpoint to check app version (4a45be6)
  • Add file download request subscription (#1313) (d097005)
  • Add Files Upload tab with manual file download request (#1270) (23f8951)
  • add unified file management with upload and download requests (7e59bd7)
  • backend: Add CORS policy for GraphQL subscriptions (#1272) (3d77c0a)
  • backend: add file download campaigns (939a63a)
  • backend: Add single file download request feature (799479c)
  • backend: allow devs to setup database connection (649829a)
  • backend: introduce OpenID Connect fields to Actor (20344f4)
  • frontend: Add realtime subscriptions for deployment pages (f4e8fde)
  • reconcile on retry (aee844d)

Bug Fixes

  • backend: DeploymentEvent interface not working (eed0dcb)
  • correct load of realm management client (d03e737)
  • do not crash on not loaded device attributes (7f4f963)
  • do not erase device names (f7a9e85)
  • run reconciliation after provisioning is complete (d9938eb)
  • S3 presign host parsing for schemeless asset hosts (39ff3f0)
  • Wrong endpoint type in ServerToDevice for fileSizeBytes (d43c948)

Performance Improvements

  • backend: embed Edgehog.Actors.Actor resource (fad68a6)

Miscellaneous Chores

  • backend: rename CHECK_ORIGIN_ALLOWED_ORIGINS to GQL_SUBSCRIPTIONS_ALLOWED_ORIGINS (89f43e4)

0.12.0 (2026-02-18)

⚠ BREAKING CHANGES

  • backend: remove authentication bypass configuration

Features

  • Add Pause and Resume functionality for campaigns (#1204) (35a9aab), closes #277
  • add GraphQL subscriptions for containers (#1224) (6c36e6d)
  • add GraphQL subscriptions for OTA operations (#1220) (db679ce)
  • Add subscriptions for HT and SMPN (#1225) (7d46654)
  • backend: add subscriptions to campaigns domain (2bda866)
  • backend: allow deletion of BaseImage used in completed campaign (46f7aa3), closes #598

Miscellaneous Chores

  • backend: remove authentication bypass configuration (fb5585c)

0.11.0 (2026-02-03)

Features

  • add calculation to expose Base Image name (d3affa5)
  • add device group subscription (#1198) (adb91f4)
  • Additional information on deployment events (ba27473)
  • backend: base_images subscriptions (bf28b85)
  • backend: manual OTA with base image from collection (1af4b8d)
  • backend: run tenant reconciliation at creation (f806909)
  • GraphQL subscription for device updates in table (#1118) (be6a629)
  • implement GraphQL subscriptions for device events (32badc9)
  • OTA updates can be canceled (1daed60), closes #266
  • show partNumber and serialNumber in Device page if available (#1123) (c2261bb), closes #226

Bug Fixes

  • backend: log errors instead of crashing (899f431)
  • device reconciliation not working (ba1b025)
  • Handle reconciler task replies (bec0758)
  • include tenant in socket options (d3c8921)
  • unify device creation and update subscriptions (c09e7de)

[0.10.0] - 2025-12-09

Fixed

  • Migrations now account for the change in constraints in deployment states.
  • Delete campaigns now correctly display the state of targets, without duplicate reports of a success.

[0.10.0-alpha.9] - 2025-12-03

Added

  • Initial draft of the documentation for the container management system.

Changed

  • Astarte 1.3.0-rc.0 is now the first version allowed for device registration and deletion triggers.

Fixed

  • 422 answer when trying to delete a tenant. The API now correctly handles the tenant_id.

[0.10.0-alpha.8] - 2025-10-28

Added

  • Support for stop campaigns: a deployment campaign can send a stop operation on a target release on all devices in a channel.
  • Support for start campaigns: a deployment campaign can send a start operation on a target release on all devices in a channel.
  • Support for upgrade campaigns: a deployment campaign can update a container to a newer version on all devices in a channel.
  • Support for delete campaigns: a deployment campaign can send a delete message on a target release on all devices in a channel.
  • Reconciliation logic: container information gets reconciled with astarte if some messages get lost. The polling system acts on time windows to avoid traffic spikes in astarte.
  • Retry mechanism: users can manually retry to send necessary messages to a device to deploy a container.

Changed

  • The deployment state does no longer incorporate events, instead events are available in the events field of deployments. Users can access them in a log fashion.
  • Removed last_message field in deployment.
  • With Astarte versions >= 1.3, devices are available in Edgehog upon registration, without waiting for their first connection.

Fixed

  • Type error on network and volume options prevented users from using advanced driver options both on volumes and networks.
  • Update messages were sent each time a deployment with some ready actions was stopped. This prevented updated releases from actually being stopped.

[0.10.0-alpha.7] - 2025-10-28

Changed

  • Added a default image for devices that don’t have an associated system model image, replacing the plain grey placeholder
  • Containers now allow to specify binds.
  • Frontend validation for port bindings support the full docker specification: docker documentation.
  • Adds garbage collection utilities for container resources

[0.10.0-alpha.6] - 2025-10-16

Added

  • The backend now allows to define different images with the same reference but different image credentials associated.

Changed

  • CPU Period and CPU Quota get validated on the fronted.
  • Updated the postgres version in dev, test still run on all versions.
  • Added validation for unique volume targets
  • Deployment readiness is now a single field
  • Deployments now report in the UI the state of each single container. Showing whether the container is running, exited or encountered some error.
  • Key-value structure for container environment variables is enforced on backend level.

Fixed

  • Reconciler wrongful map comparison.
  • Properly update relay connections to avoid out-of sync errors.

[0.10.0-alpha.5] - 2025-10-06

Changed

  • When no device group exist, on the Channel List page prompt the user to create at least one group before creating a Channel (#972).
  • Improved how Network and Volumes options can be displayed and edited in the Applications section (#963).

Fixed

  • Remove application displayed in the application list after deleting it (#967).
  • On the device page, propose only options compatible with the device when users want to upgrade an app's release (#970).
  • Use uniform and readable labels for displaying Restart Policy values of containers (#971).
  • Add logic to resume app campaigns when Edgehog starts up (#969).

[0.10.0-alpha.4] - 2025-09-29

Fixed

  • Correctly use Docker's default false value for container's readonly root filesystem option.

[0.10.0-alpha.3] - 2025-09-26

Fixed

  • Astarte reconciler not correctly comparing trigger delivery policies, thus continuously reinstalling them.

[0.10.0-alpha.2] - 2025-09-26

Changed

  • Improved the web page to create new app releases, with UI adjustments to help users better understand and operate the page.

Fixed

  • Deletion of existing app deployments, not working due to incorrect handling of database constraints.

[0.10.0-alpha.1] - 2025-09-25

Fixed

  • Failures in handling device events regarding container deployments.
  • Incorrect cGroupPermissions option not delivered when deploying containers.

[0.10.0-alpha.0] - 2025-09-24

Added

  • Managed OTA operations expose the update target that created them in graphql (#356).
  • Expose the associated UpdateCampaign (if any) from an OTA Operation on the Software Updates tab (#356).
  • Support for using Azure Storage as the persistence layer for asset uploads (#233).
  • Ecto SSL configuration is exposed through DATABASE_* environment variables (see .env)
  • Adds support for trigger delivery policies in the tenant reconciler, allowing Edgehog to automatically provision and manage trigger delivery policies on Astarte realms that support them (v1.1.1+).
  • Added Applications tab to Device page (#662)
  • Implemented a application management feature, enabling users to view and navigate through applications and their release details (#704)
    • Applications page: Displays a list of all existing applications, with navigation to individual Application pages.
    • Application page: Shows the details of a selected application, including its name, description and a list of releases, with navigation to individual Release pages.
    • Release page: Provides details of a specific release, including a list of containers and configurations, such as image reference, image credentials (label, username), networks, and port bindings.
  • Added ApplicationCreate page to enable users to create a new application with fields for application name and description.
  • Added ReleaseCreate page to enable users to create a new release for an application with fields for release Version and a list of Containers.
  • Add upgrade deployment functionality with version selection (#703)
  • Volumes management feature:
    • Volumes page – lists all existing volumes and allows navigation to individual volume pages.
    • Volume page – displays details of a selected volume, including its label, driver, and options.
    • VolumeCreate page – enables creating a new volume with fields for label, driver, and options.
  • Added delete action for release in the releases table of an application
  • Added delete action for application in the applications table
  • Implemented networks management feature, enabling users to view and create networks.
    • Networks page – lists all existing networks and allows navigation to individual network pages.
    • Network page – displays details of a selected network, including its label, driver, internal, enableIpv6, and options.
    • NetworkCreate page – enables creating a new network with fields for label, driver, internal, enableIpv6, and options.
  • Implemented deployments overview with Deployments page - lists all deployments and enables filtering by app, release, device.

Changed

  • BREAKING: GraphQL API that return unbounded lists now use Relay/keyset pagination. Edgehog's dashboard now relies on server-side pagination for queries and filtering, and uses tables with infinite scrolling instead of client-side paginated tables.

[0.9.3] - 2025-05-22

Fixed

  • Base Image deletion in S3 storage
  • Update Campaign executor crashing when handling events because of device relationship not loaded (#828).

[0.9.2] - 2024-12-09

Added

  • Add pattern matching support to device selector DSL with new ~= and !~= operators

Changed

  • Update the docker-compose configuration to allow both physical and virtual devices to connect to Edgehog, provided that the devices and the host are on the same LAN.

[0.9.1] - 2024-10-28

Fixed

  • Allow receiving trigger_name key in trigger payload, which is sent by Astarte >= 1.2.0.

[0.9.0] - 2024-10-25

Fixed

  • Correctly support automatic login attempts on the frontend regardless of existing auth sessions (#596).
  • Fix file upload for creating base images that was failing due to a regression that left out the version parameter, needed for uploading the file (#600).

Added

  • Check whether URL_HOST is a valid host and not a url (#595).

[0.9.0-rc.2] - 2024-09-11

Fixed

  • Correctly scope Base Image uploads to their Base Image Collection bucket.
  • Show a better error when trying to delete a Base Image or Update Channel connected to an existing Update Campaign.

Added

  • Support redirection to a specific page after successful authentication

[0.9.0-rc.1] - 2024-07-10

Fixed

  • Wrong input params used in GraphQL mutation when creating a base image, leading to a rejected operation (#574).
  • Fix docker-compose local build.
  • Fix OTA operation events not being handled, leading to a successful OTA operation while the device was still pending.

[0.9.0-rc.0] - 2024-07-08

Added

  • Allow generating admin JWT using gen-edgehog-jwt.

Changed

  • Change logo and brand images with the latest brand revision.
  • BREAKING: The Admin API is now JSON-API compliant, which implies a slightly different format, check out the newly added OpenAPI document.
  • BREAKING: This release includes some breaking changes in the GraphQL API, make sure to check out the GraphQL schema if you were using the APIs directly. Note that we could add more breaking changes before the final release.

[0.8.0] - 2024-03-29

Changed

  • Configure cookie attribute based on protocol.
  • Normalize triggers when comparing them for reconciliation to avoid useless reconciliations.

[0.8.0-rc.1] - 2024-03-22

Fixed

  • Fix query limits on Astarte datastream interfaces, leading to parsing failures on some interfaces.

[0.8.0-rc.0] - 2024-03-21

Added

  • Add support for an instance of Edgehog Device Forwarder. When configured, forwarding functionalities are enabled for devices that support forwarding connections to their internal services, allowing features such as remote terminal sessions (#447).

[0.7.1] - 2024-02-01

Added

  • Add Admin API to create and to delete tenants.
  • Add a reconciler that takes care of installing Astarte resources (interfaces and triggers) for a tenant (#403).
  • BREAKING: Add mandatory URL_HOST env variable. It must point to the host where the Edgehog backend is exposed.

Fixed

  • Fix seeds not working when used outside docker.
  • Fix seeds's default values not working correctly.

[0.7.0] - 2023-10-06

Fixed

  • Don't crash the OTA campaign if a misconfigured device doesn't send its base image version.
  • Correctly return stats even for OTA campaigns with no targets.
  • Handle empty string when translating legacy OTAResponse messages.
  • Deduplicate tags in list of existing device tags.

[0.7.0-alpha.1] - 2023-09-12

Added

  • Expose OTA Campaigns stats.

Fixed

  • Fix DevicesTable component for devices without SystemModel.

Changed

  • Enhance the OTA Campaigns frontend, using the exposed stats.

[0.7.0-alpha.0] - 2023-07-28

Added

  • Add support for device tags (#191, #212).
  • Add support for device custom attributes (#205).
  • Add MAX_UPLOAD_SIZE_BYTES env variable to define the maximum dimension for uploads (particularly relevant for OTA updates). Defaults to 4 GB.
  • Allow creating and managing groups based on selectors.
  • Add support for device's network_interfaces (#231, #232).
  • Add support for base image collections (#229, #230).
  • Add support for base images (#240, #244).
  • Add support for update channels (#243, #245).
  • Add support for io.edgehog.devicemanager.OTAEvent.
  • Add support for io.edgehog.devicemanager.OTARequest v1.0.
  • Add OTA Campaigns execution support.

Changed

  • Handle Device part numbers for nonexistent system models.
  • BREAKING: The Description field in the SystemModel object is now a String instead of a LocalizedText.

Deprecated

  • Support for io.edgehog.devicemanager.OTAResponse is deprecated and will be removed in future releases. Switch to io.edgehog.devicemanager.OTAEvent instead.
  • Support for io.edgehog.devicemanager.OTARequest with major version 0 is deprecated and will be removed in future releases. Switch to io.edgehog.devicemanager.OTARequest major version 1 instead.

[0.5.2] - 2022-06-22

Added

  • Expose Prometheus metrics and a /health API endpoint.

Changed

  • Start using logfmt as logging format.

Fixed

  • Use the tenant's default locale when managing translated descriptions if the user's locale is not available.

[0.5.1] - 2022-06-01

Added

  • Add connected field to wifi scan result and highlight the latest connected network (#193).

Changed

  • Change Geo IP provider from FreeGeoIP to IPBase (#190). This is a breaking change, make sure to update the FREEGEOIP_API_KEY env to IPBASE_API_KEY.

Fixed

  • Add a workaround to correctly parse Astarte datastreams even if AppEngine API shows them with a inconsistent format (#194).

[0.5.0] - 2022-03-22

Added

  • Initial Edgehog release.