Skip to content

Releases: TheThingsNetwork/lorawan-stack

v3.23.0

30 Nov 10:26
Compare
Choose a tag to compare

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's gateway_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 of is.pgdriver).

Removed

  • The Things Join Server 1.0 (type ttjs) for claiming with Device Claiming Server. Use The Things Join Server 2.0 (type ttjsv2) 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

10 Nov 14:20
Compare
Choose a tag to compare

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.
  • 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 of gorm. The previous store implementation can be reactivated using the is.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

19 Oct 13:23
Compare
Choose a tag to compare

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 either pkg/networkserver:duplicate_uplink or pkg/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 when pkg/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.

v3.22.0

06 Oct 09:11
Compare
Choose a tag to compare

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 of Band.
  • 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 in DataRate.

Fixed

  • --mac-settings.adr.mode.disabled, --mac-settings.adr.mode.dynamic and --mac-settings.adr.mode.static flags of the end-device update command.
  • Pagination in sessions and access 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

14 Sep 12:56
Compare
Choose a tag to compare

Added

  • New ListBands RPC on the Configuration service.
    • Added support to CLI. Available via the end-devices list-bands command.
  • CLI support for listing PHY versions via the end-devices list-phy-versions CLI command.
  • New NetID and DeviceAddressPrefixes RPC on the NS service.
    • Added support on CLI. Available via the end-devices get-net-id and end-devices get-dev-addr-prefixes commands.
  • 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 from GatewayAntenna 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

24 Aug 16:38
Compare
Choose a tag to compare

Added

  • New SearchAccounts RPC on the EntityRegistrySearch 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.

v3.21.0

11 Aug 11:36
Compare
Choose a tag to compare

Added

  • Component selector for Join Server interoperability configuration. This allows administrators to declare separate Network Server and Application Server configuration for the same JoinEUI ranges in the same interoperability configuration. See documentation.
  • BatchGetGatewayConnectionStats RPC to fetch Gateway Connection Stats for a batch of gateways.
  • The ability to disable the downlink scheduling mechanism for individual end devices (mac-settings.schedule-downlinks).
    • This option is useful during a migration procedure in order to force the end device to join the new network. The Network Server will no longer schedule any data downlinks or MAC commands, and will stop answering potential join requests.
  • A new implementation of the Identity Server storage layer. In v3.21.0 the new implementation is not yet used by default, but it can be enabled with the is.bunstore feature flag. A new database driver can be enabled with the is.pgdriver feature flag.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) because of added columns and views.
  • Support for comma-separated (,) values in The Things Stack CSV file format for importing end devices.
  • Support for the RxParamSetup, RxTimingSetup, TxParamSetup, and DlChannel sticky answer mechanism. The commands were supported previously, but subsequent sticky responses would cause the Network Server to drop the MAC command buffer in certain situations.

Changed

  • Deleted users are no longer included in primary email addresses uniqueness checks. This allows a user to create a new account which uses the email address of a deleted account.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) due to updated indices.
  • The CLI settings fields retry-config.enable_metadata and retry-config.default_timeout have been renamed to retry.enable-metadata and retry.default-timeout for consistency reasons.
  • Generated device ID based on a DevEUI from an imported CSV file is now prepended by eui-. This is consistent with generated device IDs by the Console.
  • The Claim Authentication Code (CAC) field is stored in the Identity Server instead of the Join Server.
    • This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.
    • CAC values stored currently in the Join Server should be migrated to the Identity Server. One method is to run the following CLI commands on each device with a CAC.
      • Read the current values using ttn-lw-cli dev get <application-id> <device-id> --claim-authentication-code. This will fetch the value stored in the Join Server as a fallback.
      • Write back the value read ttn-lw-cli dev set <application-id> <device-id> --claim-authentication-code.valid_from [xxx] --claim-authentication-code.valid_to [xxx] --claim-authentication-code.value <xxx>. This will by default write to the Identity Server.
      • Note that this requires a minimum CLI version of 3.21.0.
  • Device Repository no longer uses the ApplicationID for validating requests. Authentication is still necessary, but the ApplicationID field has been deprecated in the Device Repository API.

Fixed

  • Console showing 404 Not Found errors for pages containing user IDs in the path, when the user ID has a length of two.
  • CLI no longer panics when deleting a device without JoinEUI, this scenario only occurred when deleting a device that uses ABP.
  • Console crashing when navigating to certain Packet Broker network configuration pages.
  • Packet Broker network pages becoming inaccessible until refreshing after a user navigates to a non-existing network.
  • The batch update query for EndDevice.LastSeenAt field now specifies the data type of the placeholders.
    • This resolves an issue in the Console where Last activity values were inconsistent.

v3.20.2

20 Jul 08:31
Compare
Choose a tag to compare

Added

  • More fields were added to the csv end-device migration procedure. The details on which fields were added can be found here.
  • Authorization management in the Account app.
  • Gateway remote address to gateway connection statistics.

Fixed

  • Encoding of DevAddr, EUI and similar fields in text/event-stream responses.
  • GPS time leap second calculations taking a new leap second into consideration for 6th of July 2022.

v3.20.1

29 Jun 11:31
Compare
Choose a tag to compare

Added

  • Support inviting users in the Console.

Changed

  • In AS923 frequency plans, the Network Server will skip the RX1 window if the data rate is ambiguous.
    • This change occurs in old Regional Parameters versions in which the initial downlink dwell time setting of the end device is not specified. The end device may have the downlink dwell time setting either enabled or disabled, and due to this the data rate of the RX1 window is ambiguous.
    • This ambiguity exists until the Network Server is successful in negotiating the dwell time limitations using the TxParamSetupReq MAC command. This will occur automatically and does not require any external input.
    • If you already know the boot dwell time settings of your end device, you may provide them via the --mac-settings.downlink-dwell-time and --mac-settings.uplink-dwell-time MAC settings. This will ensure that RX1 transmissions are available from the first uplink of the session.

Removed

  • Sorting on associated rights in the API keys table.

Fixed

  • last activity not updating when an end device joins for the first time in the Console.
  • A bug that would show the "Status count periodicity"-field in the Console as 200 when actually set to 0.
  • A bug causing map viewports to be set in odd locations when setting end device/gateway locations.
  • Console crashing when sorting by associated rights in the API keys table.

v3.20.0

17 Jun 09:47
Compare
Choose a tag to compare

Added

  • OAuth client management in the account app.
  • Support claim protection when claiming end devices on The Things Join Server.
  • CLI commands notifications list and notifications set-status to manage user notifications.
  • Support for class B and C downlink transmissions through multiple gateways simultaneously.

Changed

  • Entities are now fully validated when updated in the stores.
    • Previously only the updated paths where validated. This lead to situations in which a partial update could cause the entity as a whole to reach an invalid state.
  • Application, gateway, end device and organization-tables in the Console are now sorted by creation time by default (newest first).
  • Collaborator and API Key tables can now be sorted in the Console.
  • The application table in the Console now shows the amount of end devices.
  • The organizations table in the Console now shows the amount of collaborators.
  • Table layouts for several entities have been improved on the Console.

Fixed

  • End devices running on MAC versions higher or equal to 1.1 showing network downlink frame counters instead of application downlink frame counters.