Skip to content

Releases: chirpstack/chirpstack

v4.17.0

20 Mar 09:38

Choose a tag to compare

v4.17.0

Features

CLI password reset

This release adds a new CLI option to reset passwords, either by prompt stdin or by password file. See CLI commands for more information. (#820)

Secondary NetIDs for roaming

This feature makes it possible to assign secondary NetIDs to a roaming-agreement. This makes it possible to use multiple NetIDs within a single roaming-agreement.

Read-only API keys

This release adds the option to create read-only API keys. If a key is configured as read-only, it is not possible to create, update or delete objects with this key.

Improvements

  • Update Docker base-image to Alpine v3.23.3
  • Update dependencies for API clients.
  • Update React to v19.2 and Antd to v6.1.
  • Improve scheduler concurrency + add new scheduler_lock_duration setting.
  • Misc. UI improvements. (#823, #873)
  • Move from yarn to pnpm as package manager. #874)
  • Add dev_eui filter to list multicast groups API. (#728)
  • Set enabled_uplink_channel_indices on first uplink for ABP devices. (#844)
  • Add PKCE challenge support for OIDC. (#851)
  • Update internal dependencies.

Bugfixes

  • Remove FCnt increment check from get_for_phypayload function. (#813)
  • Remove device_profile_templates import from Python API client. (#842)
  • Fix JS codec / Buffer module unable to import ieee754 module. (#841). Warning: As a side-effect of this fix, strict mode is now enforced by the JS runtime!
  • Fix MQTT integration shared subscription for command subscribe.
  • Remove ws:// option from configfile template in MQTT configuration, as this scheme is (currently) not available. (#741)
  • Fix OIDC user dropdown menu in UI. (#852)

v4.17.0-test.3

12 Mar 09:37

Choose a tag to compare

v4.17.0-test.3 Pre-release
Pre-release

v4.17.0 (in development)

Features

CLI password reset

This release adds a new CLI option to reset passwords, either by prompt stdin or by password file. See CLI commands for more information. (#820)

Secondary NetIDs for roaming

This feature makes it possible to assign secondary NetIDs to a roaming-agreement. This makes it possible to use multiple NetIDs within a single roaming-agreement.

Read-only API keys

This release adds the option to create read-only API keys. If a key is configured as read-only, it is not possible to create, update or delete objects with this key.

Improvements

  • Update Docker base-image to Alpine v3.23.3
  • Update dependencies for API clients.
  • Update React to v19.2 and Antd to v6.1.
  • Improve scheduler concurrency + add new scheduler_lock_duration setting.
  • Misc. UI improvements. (#823, #873)
  • Move from yarn to pnpm as package manager. #874)
  • Add dev_eui filter to list multicast groups API. (#728)
  • Set enabled_uplink_channel_indices on first uplink for ABP devices. (#844)
  • Add PKCE challenge support for OIDC. (#851)
  • Update internal dependencies.

Bugfixes

  • Remove FCnt increment check from get_for_phypayload function. (#813)
  • Remove device_profile_templates import from Python API client. (#842)
  • Fix JS codec / Buffer module unable to import ieee754 module. (#841). Warning: As a side-effect of this fix, strict mode is now enforced by the JS runtime!
  • Fix MQTT integration shared subscription for command subscribe.
  • Remove ws:// option from configfile template in MQTT configuration, as this scheme is (currently) not available. (#741)
  • Fix OIDC user dropdown menu in UI. (#852)

Testing

For testing, please use the Docker image or downloads below:

v4.17.1

27 Feb 14:06

Choose a tag to compare

v4.17.1 Pre-release
Pre-release

v4.17.0-test.1

Features

CLI password reset

This release adds a new CLI option to reset passwords, either by prompt or by password file. (#820)

Secondary NetIDs for roaming

This feature makes it possible to assign secondary NetIDs to a roaming-agreement. This makes it possible to use multiple NetIDs within a single roaming-agreement.

Read-only API keys

This release adds the option to create read-only API keys. If a key is configured as read-only, it is not possible to create, update or delete objects with this key.

Improvements

  • Update Docker base-image to Alpine v3.23.3
  • Update dependencies for API clients.
  • Misc. UI improvements. (#823)
  • Add dev_eui filter to list multicast groups API. (#728)
  • Set enabled_uplink_channel_indices on first uplink for ABP devices. (#844)
  • Add PKCE challenge support for OIDC. (#851)
  • Update internal dependencies.

Bugfixes

  • Remove FCnt increment check from get_for_phypayload function. (#813)
  • Remove device_profile_templates import from Python API client. (#842)
  • Fix JS codec / Buffer module unable to import ieee754 module. (#841). Warning: As a side-effect of this fix, strict mode is now enforced by the JS runtime!
  • Fix MQTT integration shared subscription for command subscribe.
  • Remove ws:// option from configfile template in MQTT configuration, as this scheme is (currently) not available. (#741)
  • Fix OIDC user dropdown menu in UI. (#852)

v4.16.2

04 Feb 10:07

Choose a tag to compare

v4.16.2

Bugfixes

SQLite migration fix

This release fixes a critical issue in the SQLite migration, that causes deleting devices from the device table. (#825).

Context: SQLite has limited support for ALTER TABLE queries, therefore it is often needed to re-create the table with the updated schema, copy over the data and remove the old table. In this specific migration, the device_profile table is re-created to drop the NOT NULL constraint on the tenant_id column to make it possible to store both "global" and tenant-owned device profiles. To avoid that this triggers the deletion of data with a foreign-key constraint to this table, the re-create, copy, delete and rename process was between:

pragma foreign_keys = 0;
-- create, copy, delete, rename queries
pragma foreign_keys = 1;

This works fine when executed outside the context of an SQLite transaction (which was tested), but fails when executed within a transaction (when executed through diesel), as per SQLite documentation: This pragma is a no-op within a transaction.

This is fixed by disabling the foreign_keys PRAGMA before diesel starts the transaction for executing migrations.

v4.16.1

26 Jan 11:55

Choose a tag to compare

v4.16.1

Bugfixes

  • Fix missing RP002-1.0.5 in reg. params. revision dropdown.
  • Fix incorrect google.api.http option in DeviceProfileService Protobuf file.

v4.16.0

23 Jan 12:37

Choose a tag to compare

v4.16.0

Features

RP002-1.0.5 support

This adds support for RP002-1.0.5 support, which includes support for LoRa SF5 and SF6. This also refactors how the min / max data-rate range works internally. This is required as with RP002-1.0.5 the semantics of min / max data-rates has changed and is no longer guaranteed to be a range. Please refer to the RP002-1.0.5 specs for more information.

As devices supporting RP002-1.0.5 are not required to implement all data-rates, ChirpStack assumes the device only supports the mandatory data-rates, unless otherwise configured in the device-profile.

DNS-based join-server resolving

This release adds DNS-based join-server resolving, based on the JoinEUI from the join-request.

Device-profile refactor

This change refactors the device-profile templates into the device profiles. Device profiles can now be global (and used by multiple tenants) and / or managed per-tenant (when the device profiles can only be used by the given tenant). This way, it is no longer needed to copy a device-profile template into a device profile. It also means that changes to a global device profile immediately propagate to the devices using the change device profile.

This change replaces the import-legacy-lorawan-devices-repository device profile import command by import-device-profiles, which import device profiles from https://github.com/chirpstack/chirpstack-device-profiles. Vendors and ChirpStack-users are encouraged to add their devices / devices they are using to this repository.

Note: Migrating existing device-profile templates to global device profiles can be performed using the migrate-device-profile-templates sub-command, e.g.:

chirpstack -c /path/to/config migrate-device-profile-templates

Improvements

  • Add configurable PostgreSQL connection recycling method. (#794)
  • Remove unused "integration" event code-traces.
  • Replace rand by getrandom crate to reduce number of dependencies.
  • Add option to filter out non-LoRaWAN frames in lrwn_filters crate.
  • Move shared meta-data to workspace Cargo.toml.
  • Update internal dependencies.

Bugfixes

  • Fix typo in region_eu433.toml description. (#775)
  • Fix saving measurements + auto-detect options in device profiles. (#769)

v4.16.0-test.1

08 Jan 15:32

Choose a tag to compare

v4.16.0-test.1 Pre-release
Pre-release
v4.16.0-test.1

v4.15.0

09 Oct 14:09

Choose a tag to compare

v4.15.0

Features

Blynk integration

This release adds a new integration with the Blynk IoT platform.

InfluxDB v3

This release updates the InfluxDB integration to also support InfluxDB v3.

Move FCntUp out of device-session

This moves the f_cnt_up field out of the device-session blob and stores it as a separate column in the device table. By doing this, it is no longer needed to wrap the uplink validation into a transaction and lock the device records matching the uplink DevAddr, as we can update the record with a where f_cnt_up = OLD_F_CNT_UP and check that the updated record-count != 0. Removing the transaction and locking the device-records matching the uplink DevAddr avoids a potential deadlock situation that might occur when multiple devices are sharing the same DevAddr.

The f_cnt_up will be automatically migrated from the device-session into the f_cnt_up device column at runtime.

Improvements

  • Add flush_queue option to Enqueue API method.
  • Add configuration option to flatten json log output. (#759)
  • Update Docker Compose dependency versions (Mosquitto, PostgreSQL, Redis, RabbitMQ and Kafka versions).
  • Update internal dependencies.
  • Cleanup dead code + fix clippy warnings.
  • Move dependency versions into [workspace.dependencies] of Cargo.toml (such that versions can be managed at a single place).

Bugfixes

  • UI: Fix setting gateway last-seen to undefined. (#75)
  • Fix setting TX Info for OTAA join-accept such that RX2 can be prioritized over TX1.

v4.14.1

26 Aug 10:37

Choose a tag to compare

v4.14.1

Improvements

  • Implement using fPort returned by JS codec.

Bugfixes

  • Fix dependency mismatch in AMQP integration.

v4.14.0

07 Aug 13:01

Choose a tag to compare

v4.14.0

LoRa Cloud integration removal

This release removes the LoRa Cloud integration from ChirpStack as it has been discontinued by Semtech. This will also remove the LoRa Cloud integration settings (if any) from the database.

Improvements

  • Update internal dependencies.
  • Update device-profile importer.
  • Ensure jq is available in the development shell. (#705)
  • Add support for 2.4GHz frequencies in FUOTA multicast-setup. (#700)
  • Improve reported errors by ADR plugin system. (#712)
  • Add expires_at field to MQTT downlink command. (#608)

Bugfixes

  • Fix missing FUOTA API methods in gRPC client packages. (#709)
  • Add distance type to Cayenne LPP codec. (#704)
  • Fix FUOTA block_ack_delay and descriptor fields. (#717)