Releases: TheThingsNetwork/lorawan-stack
Releases · TheThingsNetwork/lorawan-stack
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.
v3.23.0
Added
- The Things Join Server 2.0 (type
ttjsv2
) for claiming with Device Claiming Server. - All Join Servers with a
/64
JoinEUI prefix are contacted concurrently with LoRaWAN Backend Interfaces interoperability. This should only be used with ambiguous JoinEUIs and when migrating Join Servers.
Changed
- Gateway EUI is no longer unset when deleting a gateway, meaning it could be recovered if no other gateway claimed it. This requires a schema migration (
ttn-lw-stack is-db migrate
) because of the change in the database'sgateway_eui_index
. - The new database driver is no longer specific to the Identity Server and is now activated using the
db.pgdriver
feature flag (instead ofis.pgdriver
).
Removed
- The Things Join Server 1.0 (type
ttjs
) for claiming with Device Claiming Server. Use The Things Join Server 2.0 (typettjsv2
) instead.
Fixed
- Devices with pending session and MAC state may now successfully be imported.
- Client creation with an organization API key will no longer send an email without user information to the admins. Instead, the API key name will be used and if that is empty the API key ID will be the default.
- Allow providing DevEUI for ABP end devices with a LoRaWAN specification lower or equal to 1.0.4 in the end device onboarding screen in the Console.
- Faulty field validation for byte payloads in the uplink payload formatter panel in the Console.
v3.22.2
Added
- The
is.gormstore
experimental flag has been added. Swaps the underlying Identity Server store implementation if set to true.
Changed
- Class B and C downlinks will no longer be automatically retried indefinitely if none of the gateways are available at the scheduling moment, and the downlink paths come from the last uplink.
- This was already the behavior for downlinks which had their downlink path provided explicitly using the
class_b_c.gateways
field. - The downlinks will be evicted from the downlink queue and a downlink failure event will be generated. The failure event can be observed by the application using the
downlink_failed
message, which is available in all integrations.
- This was already the behavior for downlinks which had their downlink path provided explicitly using the
- Event history and payload storage TTL has now 1% jitter.
- The underlying store implementation has been changed to be by default based on
bun
instead ofgorm
. The previous store implementation can be reactivated using theis.gormstore
experimental flag.
Removed
- The
is.bunstore
experimental flag has been removed.
Fixed
- Do not require AppKey when skipping Join Server registration in end device onboarding in the Console.
- Fix auto generation of device ID when using DevEUI generator in the Console.
- Fix several device onboarding issues with ABP in the Console.
- Do not ask for a JoinEUI.
- Reinitialize form properly when switching between ABP and OTAA.
- Issue with pasting values into byte input at the wrong position in the Console.
v3.22.1
Changed
- Option to ignore logs from selected gRPC methods now supports ignoring logs for selected errors on method.
Examples:--grpc.log-ignore-methods="/ttn.lorawan.v3.GsNs/HandleUplink"
: log is skipped when no error occurs.--grpc.log-ignore-methods="/ttn.lorawan.v3.GsNs/HandleUplink:pkg/networkserver:duplicate_uplink;pkg/networkserver:device_not_found"
: log is skipped when eitherpkg/networkserver:duplicate_uplink
orpkg/networkserver:device_not_found
error occurs (but not on success).--grpc.log-ignore-methods="/ttn.lorawan.v3.GsNs/HandleUplink:;pkg/networkserver:duplicate_uplink"
: log is skipped on success or whenpkg/networkserver:duplicate_uplink
error occurs.
- The Gateway Server now takes into consideration the extra duty cycle checks present in the LoRa Basics Station forwarder. Previously the Gateway Server may accept the scheduling of downlinks which the packet forwarder would silently drop.
- Note that in some rare cases in which the LoRa Basics Station duty cycle is stricter than the windowed approach used by The Things Stack, the scheduling will fail and this will be visible via
ns.down.data.schedule.fail
events. Note that this is actually a positive outcome - it allows the Network Server to schedule the downlink via another gateway, while previously the downlink would be scheduled but get silently dropped on the gateway.
- Note that in some rare cases in which the LoRa Basics Station duty cycle is stricter than the windowed approach used by The Things Stack, the scheduling will fail and this will be visible via
v3.22.0
Added
- Add more specific rights for OAuth clients.
Changed
- The flow for adding end devices has been updated in the Console.
- Device QR codes can now be scanned to speed up end device onboarding.
- Claiming end devices from external Join Servers is now possible seemlessly from the same onboarding flow.
- LoRa coding rate now defined in
DataRate
instead ofBand
. - The Network Server will now schedule a potentially empty downlink in order to stop end devices from sending sticky MAC commands.
- Factory preset frequencies may now be provided for bands with fixed channel plans, such as US915 or AU915. The factory preset frequencies are interpreted as the only channels which are enabled at boot time.
TxParamSetupReq
MAC command priority has been increased.DevStatusReq
MAC command priority has been lowered.
Removed
- Removed coding rate from
TxSettings
as it is now defined inDataRate
.
Fixed
--mac-settings.adr.mode.disabled
,--mac-settings.adr.mode.dynamic
and--mac-settings.adr.mode.static
flags of theend-device update
command.- Pagination in
sessions
andaccess tokens
tables in the Console. LinkADRReq
MAC command generation for LoRaWAN 1.0 and 1.0.1 end devices.LinkADRReq
no longer attempts to enable channels which have not yet been negotiated with the end device.- Downlink path selection for uplinks which are not LoRa modulated.
- Issues with byte inputs in the Console.
- Pasting values into the input leading to issues in some cases.
- Values being typed double on android phones.
- Console showing deleted collaborator after successful deletion in application collaborator list.
- Console crashing after deleting an organization.
v3.21.2
Added
- New
ListBands
RPC on theConfiguration
service.- Added support to CLI. Available via the
end-devices list-bands
command.
- Added support to CLI. Available via the
- CLI support for listing PHY versions via the
end-devices list-phy-versions
CLI command. - New
NetID
andDeviceAddressPrefixes
RPC on theNS
service.- Added support on CLI. Available via the
end-devices get-net-id
andend-devices get-dev-addr-prefixes
commands.
- Added support on CLI. Available via the
- Support for loading end device template from Device Repository when importing devices using a CSV file.
- Experimental support for normalized payload.
- Support management of deleted users in the Console.
- Decoded payloads are now visible for downlinks in the Console.
- Support for dynamic ping slot frequencies, as used by the US915 and AU915 bands.
- Support for LoRa Basics Station beaconing.
Changed
- Deprecated
attributes
fromGatewayAntenna
definition. While it was present in the API it was never stored in the database. - Absolute time downlinks (such as class B ping slots or class C absolute time downlinks) are now using the native class B downlink API of LoRa Basics Station.
- Only gateways which are guaranteed to be GPS capable may now be used for absolute time downlinks. This ensures that gateways that have an unknown time source are not used for absolute time scheduling.
- The static ADR mode may now steer the end device to use custom data rates such as SF7BW250, FSK and LR-FHSS.
- The Console will try to resolve invalid state errors during login with an automatic refresh.
- Error details are now displayed in a modal instead of within the notification element in the Console.
Removed
- Experimental support for
LoRa Basics Station
gateway GPS timestamps which use the wrong precision (milliseconds instead of microseconds). Please ensure that your gateway has been updated to the latest firmware.
Fixed
- The Gateway Server scheduler no longer considers the absolute time of a downlink to be the time of arrival.
- The Network Server now correctly handles the command that may succeed a
LinkADRAns
response. - LR-FHSS data rate matching.
- Console data rate rendering of non-LoRa modulations.
- End device network layer form crashing in some situations in the Console device general settings.
- End device overview crashing in some situations in the Console.
- Device import when using Join Server-only deployments.
- QRG can generate QR Codes without the claim authentication code.
v3.21.1
Added
- New
SearchAccounts
RPC on theEntityRegistrySearch
service. - Prompt user to confirm navigation when changes have not been saved in the payload formatter form to prevent big change-drafts from getting lost.
- Event data pushed by webhooks can now be filtered with field masks.
- Support for the field mask setup was added for both CLI and Console.
Changed
- Gateway registration in the Console has been updated to simplify the onboarding experience.
Fixed
- CLI command
end-device template create
no longer breaks when providing field mask values. - Device repository services no longer require ApplicationID in its request URL.
- Importing ABP devices via the CSV format now correctly handles the missing session key ID.