Releases: chirpstack/chirpstack
v4.17.0
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_durationsetting. - Misc. UI improvements. (#823, #873)
- Move from
yarntopnpmas package manager. #874) - Add
dev_euifilter to list multicast groups API. (#728) - Set
enabled_uplink_channel_indiceson first uplink for ABP devices. (#844) - Add PKCE challenge support for OIDC. (#851)
- Update internal dependencies.
Bugfixes
- Remove FCnt increment check from
get_for_phypayloadfunction. (#813) - Remove
device_profile_templatesimport from Python API client. (#842) - Fix JS codec / Buffer module unable to import
ieee754module. (#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 fromconfigfiletemplate in MQTT configuration, as this scheme is (currently) not available. (#741) - Fix OIDC user dropdown menu in UI. (#852)
v4.17.0-test.3
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_durationsetting. - Misc. UI improvements. (#823, #873)
- Move from
yarntopnpmas package manager. #874) - Add
dev_euifilter to list multicast groups API. (#728) - Set
enabled_uplink_channel_indiceson first uplink for ABP devices. (#844) - Add PKCE challenge support for OIDC. (#851)
- Update internal dependencies.
Bugfixes
- Remove FCnt increment check from
get_for_phypayloadfunction. (#813) - Remove
device_profile_templatesimport from Python API client. (#842) - Fix JS codec / Buffer module unable to import
ieee754module. (#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 fromconfigfiletemplate 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:
- Docker image: chirpstack/chirpstack:4.17.0-test.3
- .deb / .tar.gz downloads
v4.17.1
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_euifilter to list multicast groups API. (#728) - Set
enabled_uplink_channel_indiceson first uplink for ABP devices. (#844) - Add PKCE challenge support for OIDC. (#851)
- Update internal dependencies.
Bugfixes
- Remove FCnt increment check from
get_for_phypayloadfunction. (#813) - Remove
device_profile_templatesimport from Python API client. (#842) - Fix JS codec / Buffer module unable to import
ieee754module. (#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 fromconfigfiletemplate in MQTT configuration, as this scheme is (currently) not available. (#741) - Fix OIDC user dropdown menu in UI. (#852)
v4.16.2
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
v4.16.0
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
randbygetrandomcrate to reduce number of dependencies. - Add option to filter out non-LoRaWAN frames in
lrwn_filterscrate. - Move shared meta-data to workspace
Cargo.toml. - Update internal dependencies.
Bugfixes
v4.16.0-test.1
v4.16.0-test.1
v4.15.0
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_queueoption toEnqueueAPI 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]ofCargo.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
v4.14.0
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
jqis 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_atfield to MQTT downlink command. (#608)