Releases: TheThingsNetwork/lorawan-stack
Releases · TheThingsNetwork/lorawan-stack
v3.26.1
Added
- Support claim in device import in the Console.
v3.26.0
Added
- Support for scanning a QR code that only contains the hexadecimal encoded DevEUI.
- Experimental flag
ns.adr.auto_narrow_steer
. When enabled, end devices which do not have an explicit channel steering mode will be steered towards the LoRa narrow channels.
Fixed
- Console not applying webhook field masks when creating a webhook from a template that has field masks set.
- LoRa Basics Station
PONG
messages will now contain the application payload of the associatedPING
, as required by the WebSockets specification.- This fix enables
PING
/PONG
behavior for non reference implementations of the LNS protocol.
- This fix enables
- Fix crash of "Edit webhook" view due to invalid Authorization header encoding in the Console.
v3.25.2
Added
- Experimental channel steering API, which allows steering end devices from the wide (250kHz or 500kHz) channels towards the narrow (125kHz) channels.
- This API is mainly relevant for end devices operating in the US915 and AU915 regions, as they may join via a wide channel, but users may want to steer them towards the narrow channels.
- The new settings can be found under
mac-settings.adr.mode.dynamic.channel-steering
. mac-settings.adr.mode.dynamic.channel-steering.mode.lora-narrow
steers the end devices towards the LoRa modulated narrow channels.mac-settings.adr.mode.dynamic.channel-steering.mode.disabled
does not steer the end devices - end devices are left to operate in their currently active channels, wide or narrow.- The default behavior is to avoid steering the end devices, but this is subject to change in future versions. Consider explicitly specifying a certain behavior (
lora-narrow
ordisabled
) if you depend on not steering the end devices.
Changed
- Uplink and downlink message frequencies are now validated and zero values are dropped.
- Such traffic would have always been dropped by the Network Server, but it is now dropped in the Gateway Server.
- Simulated uplink traffic now requires a frequency value as well.
Fixed
- Multiple ADR algorithm bugs:
- An off-by-one error which caused the ADR algorithm to not take into consideration the signal qualities of the uplink which confirmed a parameter change. In effect, this fix improves the quality of the link budget estimation.
- A flip-flop condition which caused the algorithm to swap back and forth between a higher and a lower transmission power index every 20 uplinks. In effect, this fix will cause the algorithm to change the transmission power index less often.
- A condition mistake which caused the algorithm to avoid increasing the transmission power if it would not completely fix the missing link budget. In effect, this will cause the algorithm to increase the transmission power in situations in which the link budget deteriorates rapidly.
- In fixed channel plans such as US915 and AU915, the the associated wide (500kHz) channel is now enabled by default.
v3.25.1
Added
- Fallback end device version identifiers to be used while importing end devices using the Console.
Changed
- The Things Stack is now built with Go 1.20.
Deprecated
--with-claim-authentication-code
flag for the end devicecreate
command via the CLI. Users must use a valid claim authentication code that is registered on a Join Server instead of generating one during end device creation.
Fixed
- Attempting to claim an end device with a generated DevEUI will now result in an error.
- Claiming an end device using command line flags.
- 24 hour stack components deadlock when the default clustering mode is used.
v3.25.0
🚧 This release contains a critical bug which renders component communication unusable after 24 hours. The fix will be part of the v3.25.1
release. 🚧.
Added
- Optional Network Server database migration that removes obsolete last invalidation keys is now available.
- LoRaWAN Application Layer Clock Synchronization support.
- It is available using the
alcsync-v1
application package. - Can be enabled using the Console by visiting the application settings and ticking the Use Application Layer Clock Synchronization checkbox. By default, the package will operate on FPort 202.
- It is available using the
- Drop uplink frames with CRC failure.
Deprecated
- Returning special float values, such as
NaN
andInfinity
as part of the decoded payloads.- While the concepts of
NaN
andInfinity
are part of JavaScript, JSON does not have a dedicated value for such values. - Historically we have rendered them in their string form, i.e.
"NaN"
and"Infinity"
, but this form is not standard nor accepted by the standard libraries of most programming languages (at least by default). - Most usages of
NaN
are actually result of operations with the JavaScript concept ofundefined
, and are not intentional. Mathematical operations that interact withundefined
returnNaN
- for exampleundefined * 5
isNaN
. It is not hard to reachundefined
in JavaScript, as array access to undefined indices isundefined
, and payload decoders generally work by consuming the frame payload bytes. - Future The Things Stack versions may not render such values, or may discard the decoded payload completely. The deprecation discussion can be tracked on GitHub.
- While the concepts of
Removed
- Automatic migrations of the Network Server database using
ns-db migrate
from versions prior to v3.24 are removed. Migrating from prior versions should be done through v3.24 instead.
v3.24.2
Deprecated
- Device claiming that transfer devices between applications is now deprecated and will be removed in a future version of The Things Stack. Device claiming on Join Servers, including The Things Join Server, remains functional. This deprecates the following components:
- API for managing application claim authorization (
EndDeviceClaimingServer.AuthorizeApplication
andEndDeviceClaimingServer.UnauthorizeApplication
) - CLI commands to manage application claim settings (
ttn-lw-cli application claim [authorize|unauthorize]
)
- API for managing application claim authorization (
Fixed
- The CLI now continues deleting devices when unclaiming from the Join Server fails. This resembles the behavior in the Console. This no longer stops devices from being deleted if the Join Server is unavailable or the claim is not held.
- Organization API Keys' rights no longer are considered invalid during fetch operations. If the proper right is attached to said API key it is possible to fetch all fields of an entity, previous to this fix only public safe fields were fetchable.
v3.24.1
Added
- Network Server ID (NSID) used for Backend Interfaces interoperability via the
ns.interop.id
anddcs.edcs.ns-id
configuration options.- In the Network Server,
ns.interop.id
acts as a fallback value forsender-ns-id
in Join Server interoperability configuration.
- In the Network Server,
- Key vault cache time-to-live for errors configuration option
key-vault.cache.error-ttl
. This defaults tokey-vault.cache.ttl
.
Deprecated
- Device Claiming Server configuration option
dcs.edcs.network-server.home-ns-id
. Usedcs.edcs.ns-id
instead.
Fixed
- Key unwrap caching.
- Desired RX1 delay and desired beacon frequency not being possible to set for OTAA devices.
Security
- Fix open redirect vulnerability for Console/Account App logins.
v3.24.0
Added
- List of end-devices can now be sorted by
last_seen_at
field. Unseen devices will be shown last. - End devices now contain
lora_alliance_profile_ids
field. - Add
source
config option for TLS certificates in LoRaWAN Backend Interfaces interop client configuration. This value can befile
(existing behavior) orkey-vault
.
Changed
serial_number
field is now moved to the root of the end device structure.vendor_id
andvendor_profile_id
are now moved to thelora_alliance_profile_ids
.- This requires a database schema migration (
ttn-lw-stack is-db migrate
) because of added columns and views.
- This requires a database schema migration (
Deprecated
- Configuring certificate authorities per LoRaWAN Backend Interfaces SenderID (
interop.sender-client-ca
) is now deprecated and support will be removed in a future version of The Things Stack.
Removed
- The device version identifiers no longer have the
serial_number
,vendor_id
andvendor_profile_id
fields.
v3.23.2
Changed
- Deletion of the last admin user or removal of its admin status via an update operation now returns an error.
- Do not allow to remove the collaborator of an entity if it is the last collaborator (in the Console).
Fixed
- When searching for end-devices, specifying
last_seen_at
as the field in which the devices will be sorted by no longer returns an error. - Errors during removal of collaborators the application collaborator form not being forwarded to the user in the Console.
- Importing devices via CSV no longer skips the first header column when BOM bytes are present.
v3.23.1
Added
- List of end-devices can now be sorted by
last_seen_at
field. Unseen devices will be shown last.
Fixed
- It is now allowed to set
0
for ping slot frequency and beacon frequency in the Network Layer Settings of the end device general settings in the Console. - MAC parameters that have the
desired_
will be hidden from the end device general settings for multicast end devices in the Console.