Skip to content

Releases: TheThingsNetwork/lorawan-stack

v3.9.0

06 Aug 15:01
v3.9.0
f2316b5
Compare
Choose a tag to compare

Added

  • API Authentication and authorization via session cookie.
    • ⚠ This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added and modified columns.
    • This changes the AuthInfo API response.
  • Skipping payload crypto on application-level via application link's skip_payload_crypto field.
  • Authentication method, ID and Remote IP in events metadata.
  • Service data messages published by integrations. Can be consumed using the bundled MQTT server, Webhooks or Pub/Sub integrations.
  • Application package application-wide associations support.
  • LoRaCloud DAS application package server URL overrides support.
  • Key vault caching mechanism (see --key-vault.cache.size and --key-vault.cache.ttl options).
  • Generic encryption/decryption to KeyVault.
  • Option to ignore log messages for selected gRPC method on success (see grpc.log-ignore-methods option).
  • CLI auto-completion support (automatically enabled for installable packages, also see ttn-lw-cli complete command).
  • Options to disable profile picture and end device picture uploads (is.profile-picture.disable-upload and is.end-device-picture.disable-upload).
  • Options to allow/deny non-admin users to create applications, gateways, etc. (the the is.user-rights.* options).
  • Admins now receive emails about requested user accounts that need approval.
  • Support for synchronizing gateway clocks via uplink tokens. UDP gateways may not connect to the same Gateway Server instance.
  • Consistent command aliases for CLI commands.
  • Laird gateway documentation.
  • Option to allow unauthenticated Basic Station connections (gs.basic-station.allow-unauthenticated)
    • ⚠ Without this option, Basic Station gateways that do not use authentication will not be allowed to connect.
  • Option to require TLS on connections to Redis servers (see redis.tls.require and related options).
  • Documentation for cache options.
  • Documentation for the Gateway Server MQTT protocol.
  • Add user page in console.
  • Troubleshooting guide.
  • API to get configuration from the Identity Server (including user registration options and password requirements).
  • Synchronize gateway time by uplink token on downstream in case the Gateway Server instance is not handling the upstream gateway connection.
  • Work-around for Basic Station gateways sending uplink frames with no xtime.

Changed

  • Remove version from hosted documentation paths.
  • Gateway connection stats are now stored in a single key.
  • The example configuration for deployments with custom certificates now also uses a CA certificate.
  • Increase Network Server application uplink buffer queue size.
  • ttn-lw-cli use command no longer adds default HTTP ports (80/443) to the OAuth Server address.
  • Suppress the HTTP server logs from the standard library. This is intended to stop the false positive "unexpected EOF" error logs generated by health checks on the HTTPS ports (for API, BasicStation and Interop servers).
  • Automatic collapse and expand of the sidebar navigation in the Console based on screen width.
  • The header of the sidebar is now clickable in the Console.
  • Overall layout and behavior of the sidebar in the Console improved.
  • Improved layout and screen space utilization of event data views in the Console.
  • Allow setting all default MAC settings of the Network Server. Support setting enum values using strings where applicable.

Deprecated

  • End device skip_payload_crypto field: it gets replaced by skip_payload_crypto_override.

Fixed

  • Inconsistent error message responses when retrieving connection stats from GS if the gateway is not connected.
  • Empty form validation in the Console.
  • CLI crash when listing application package default associations without providing an application ID.
  • Decoding of uplinks with frame counters exceeding 16 bits in Application Server.
  • Validation of keys for gateway metrics and version fields.
  • Read only access for the gateway overview page in the Console.
  • Fix an issue that frequently caused event data views crashing in the Console.
  • Application Server contacting Join Server via interop for fetching the AppSKey.
  • Low color contrast situations in the Console.
  • Application Server pub/sub integrations race condition during shutdown.
  • Console webhook templates empty headers error.
  • Console MQTT URL validation.
  • AFCntDown from the application-layer is respected when skipping application payload crypto.
  • RTT usage for calculating downlink delta.
  • Synchronize concentrator timestamp when uplink messages arrive out-of-order.

Release notes

Docker images

  • docker pull thethingsnetwork/lorawan-stack-dev:f2316b56126c6f4e84f43fb3da632b743f4871e3
  • docker pull thethingsnetwork/lorawan-stack:3.9
  • docker pull thethingsnetwork/lorawan-stack:3.9.0

v3.9.0-rc4

06 Aug 13:46
v3.9.0-rc4
154ed01
Compare
Choose a tag to compare
v3.9.0-rc4 Pre-release
Pre-release

Release notes

Docker images

  • docker pull thethingsnetwork/lorawan-stack-dev:154ed01e7606072106b0a3b906e6a6254c55c745

v3.8.7

15 Jul 14:52
db1c331
Compare
Choose a tag to compare

Release notes

Docker images

  • docker pull thethingsnetwork/lorawan-stack:3.8
  • docker pull thethingsnetwork/lorawan-stack:3.8.7
  • docker pull thethingsnetwork/lorawan-stack-dev:db1c3316855b8bdd90e6effefd55e01bf4e801e5

v3.8.6

10 Jul 12:30
47abc33
Compare
Choose a tag to compare

Release notes

Docker images

  • docker pull thethingsnetwork/lorawan-stack-dev:47abc33b52430f86c079b9da87be9b080cd952e2
  • docker pull thethingsnetwork/lorawan-stack:3.8
  • docker pull thethingsnetwork/lorawan-stack:3.8.6

v3.8.5

06 Jul 09:16
v3.8.5
974fab2
Compare
Choose a tag to compare

Added

  • Option to reset end device payload formatters in the Console.
  • Service discovery using DNS SRV records for external Application Server linking.
  • Functionality to set end device attributes in the Console.
  • Event description tooltip to events in the Console.
  • CLI support for setting and unsetting end device location (see --location.latitude, --location.longitude, --location.altitude and --location.accuracy options).
  • Functionality to allow admin users to list all applications and gateways in the Console.
  • Ursalink UG8X gateway documentation.
  • Intercom, Google Analytics, and Emojicom feedback in documentation.
  • LORIX One gateway documentation.
  • Display own user name instead of ID in Console if possible.
  • Option to hide rarely used fields in the Join Settings step (end device wizard) in the Console.

Changed

  • JSON uplink message doc edited for clarity.
  • The CLI snap version uses the $SNAP_USER_COMMON directory for config by default, so that it is preserved between revisions.
  • Defer events subscriptions until there is actual interest for events.
  • End device creation form with wizard in the Console.

Removed

  • Requirement to specify frequency_plan_id when creating gateways in the Console.

Fixed

  • Endless authentication refresh loop in the Console in some rare situations.
  • Logout operation not working properly in the Console in some rare situations.
  • Handling API key deletion event for applications, gateways, organizations and users.
  • Organization API key deletion in the Console.
  • CLI now only sends relevant end device fields to Identity Server on create.
  • Maximum ADR data rate index used in 1.0.2a and earlier versions of AU915 band.
  • End device events stream restart in the Console.
  • CLI was unable to read input from pipes.
  • Timezones issue in claim authentication code form, causing time to reverse on submission.

Release notes

Docker images

  • docker pull thethingsnetwork/lorawan-stack-dev:974fab231425da504c5523018b18f9a1833af76d
  • docker pull thethingsnetwork/lorawan-stack:3.8
  • docker pull thethingsnetwork/lorawan-stack:3.8.5

v3.8.4

12 Jun 17:27
d63f7de
Compare
Choose a tag to compare

Release notes

Added

  • Metrics for log messages, counted per level and namespace.
  • Allow suppressing logs on HTTP requests for user-defined paths (see --http.log-ignore-paths option).
  • Redux state and actions reporting to Sentry
  • Serving frontend sourcemaps in production
  • Frequency plan documentation.
  • LoRa Basics Station documentation.

Changed

  • Suppress a few unexpected EOF errors, in order to reduce noise in the logs for health checks.

Fixed

  • Packet Broker Agent cluster ID is used as subscription group.
  • LinkADR handling in 72-channel bands.
  • Data uplink metrics reported by Application Server.

Docker images

  • docker pull thethingsnetwork/lorawan-stack-dev:d63f7de74fb54cbc354140d2477ad0a7e1c49f61
  • docker pull thethingsnetwork/lorawan-stack:3.8
  • docker pull thethingsnetwork/lorawan-stack:3.8.4

v3.8.3

05 Jun 14:56
v3.8.3
b5b911f
Compare
Choose a tag to compare

Release notes

Added

  • Favicon to documentation pages.
  • Draft template for documentation.

Changed

  • Late scheduling algorithm; Gateway Server now takes the 90th percentile of at least the last 5 round-trip times of the last 30 minutes into account to determine whether there's enough time to send the downlink to the gateway. This was the highest round-trip time received while the gateway was connected.

Fixed

  • Downlink scheduling to gateways which had one observed round-trip time that was higher than the available time to schedule. In some occassions, this broke downlink at some point while the gateway was connected.

Docker images

  • docker pull thethingsnetwork/lorawan-stack:3.8
  • docker pull thethingsnetwork/lorawan-stack:3.8.3
  • docker pull thethingsnetwork/lorawan-stack-dev:b5b911f6dcbd9bbe9214c60b64252b862956b404

v3.8.2

03 Jun 08:16
v3.8.2
a5b0a38
Compare
Choose a tag to compare

Since releases v3.8.0 and v3.8.1 have been retracted, we're now listing the changes from those releases under the v3.8.2 release.

Added

  • Console logout is now propagated to the OAuth provider.
    • This requires a database migration (ttn-lw-stack is-db migrate) because of the added columns.
    • To set the logout-redirect-uris for existing clients, the CLI client can be used, e.g.: ttn-lw-cli clients update console --logout-redirect-uris "https://localhost:8885/console" --redirect-uris "http://localhost:1885/console".
  • Packet Broker Agent to act as Forwarder and Home Network. See pba configuration section.
  • JavaScript style guide to our DEVELOPMENT.md documentation.
  • Schedule end device downlinks in the Console.
  • Support for repeated RekeyInd. (happens when e.g. RekeyConf is lost)
  • Validate the DevAddr when switching session as a result of receiving RekeyInd.
  • Error details for failed events in the Console.
  • Unknown and Other cluster connection statuses to the gateways table in the Console.
  • LoRaWAN 2.4 GHz band ISM2400.
  • Unset end device fields using the CLI (see --unset option)
  • Join EUI and Dev EUI columns to the end device table in the Console.
  • CLI creates user configuration directory if it does not exist when generating configuration file.
  • Upgrading guide in docs.
  • Glossary.
  • Event details in the Console traffic view.
  • Gateway Server events for uplink messages now contain end device identifiers.
  • Setting custom gateway attributes in the Console.
  • Pub/Sub documentation.
  • Return informative well-known errors for standard network and context errors.
  • Error notification in list views in the Console.
  • Latest "last seen" info and uplink frame counts for end devices in the Console.
  • Latest "last seen" info for applications in the Console.

Changed

  • Conformed JavaScript to new code style guide.
  • Removed login page of the Console (now redirects straight to the OAuth login).
  • Network Server now records LinkADRReq rejections and will not retry rejected values.
  • Improved NewChannelReq, DLChannelReq and LinkADRReq efficiency.
  • For frames carrying only MAC commands, Network Server now attempts to fit them in FOpts omitting FPort, if possible, and sends them in FRMPayload with FPort 0 as usual otherwise.
  • Submit buttons are now always enabled in the Console, regardless of the form's validation state.
  • Disabled ADR for ISM2400 band.
  • Network Server will attempt RX1 for devices with Rx1Delay of 1 second, if possible.
  • Network Server will not attempt to schedule MAC-only frames in ping slots or RXC windows.
  • Network Server will only attempt to schedule in a ping slot or RXC window after RX2 has passed.
  • Network Server will schedule all time-bound network-initiated downlinks at most RX1 delay ahead of time.
  • Network Server now uses its own internal clock in DeviceTimeAns.
  • Troubleshooting section of DEVELOPMENT.md
  • Change console field labels from MAC version and PHY version to LoRaWAN version and Regional Parameters version and add descriptions

Fixed

  • Handling of device unsetting the ADR bit in uplink, after ADR has been started.
  • Invalid oauth-server-address in CLI config generated by use command when config file is already present.
  • Network Server now properly handles FPort 0 data uplinks carrying FOpts.
  • Data rate 4 in version 1.0.2-a of AU915.
  • Incorrect TxOffset values used by Network Server in some bands.
  • OAuth authorization page crashing.
  • Byte input in scheduling downlink view.
  • OAuth client token exchange and refresh issues when using TLS with a RootCA.
  • Join Server and Application Server device registries now return an error when deleting keys on SET operations. The operation was never supported and caused an error on GET instead.
  • Clearing end device events list in the Console.
  • Some views not being accessible in the OAuth app (e.g. update password).
  • LinkADRReq scheduling.
  • Unsetting NwkKey in Join Server.
  • CSRF token validation issues preventing login and logout in some circumstances.
  • Typo in Application Server configuration documentation (webhook downlink).
  • Unset fields via CLI on Join Server, i.e. --unset root-keys.nwk-key.
  • Reconnecting UDP gateways that were disconnected by a new gateway connection.
  • ADR in US915-like bands.

Changelog

Docker images

  • docker pull thethingsnetwork/lorawan-stack-dev:a5b0a3895ec46c176973acf2a38d27dcd2e91cd4
  • docker pull thethingsnetwork/lorawan-stack:3.8
  • docker pull thethingsnetwork/lorawan-stack:3.8.2

v3.7.2

22 Apr 11:49
8aa1401
Compare
Choose a tag to compare

Added

  • CLI can now dump JSON encoded grpc_payload field for unary requests (see --dump-requests flag).
  • Template ID column in the webhook table in the Console.
  • Select all field mask paths in CLI get, list and search commands (see --all option).
  • Create webhooks via webhook templates in the Console.
  • ns.up.data.receive and ns.up.join.receive events, which are triggered when respective uplink is received and matched to a device by Network Server.
  • ns.up.data.forward and ns.up.join.accept.forward events, which are triggered when respective message is forwarded from Network Server to Application Server.
  • ns.up.join.cluster.attempt and ns.up.join.interop.attempt events, which are triggered when the join-request is sent to respective Join Server by the Network Server.
  • ns.up.join.cluster.success and ns.up.join.interop.success events, which are triggered when Network Server's join-request is accepted by respective Join Server.
  • ns.up.join.cluster.fail and ns.up.join.interop.fail events, which are triggered when Network Server's join-request to respective Join Server fails.
  • ns.up.data.process and ns.up.join.accept.process events, which are triggered when respective message is successfully processed by Network Server.
  • ns.down.data.schedule.attempt and ns.down.join.schedule.attempt events, which are triggered when Network Server attempts to schedule a respective downlink on Gateway Server.
  • ns.down.data.schedule.success and ns.down.join.schedule.success events, which are triggered when Network Server successfully schedules a respective downlink on Gateway Server.
  • ns.down.data.schedule.fail and ns.down.join.schedule.fail events, which are triggered when Network Server fails to schedule a respective downlink on Gateway Server.
  • Specify gRPC port and OAuth server address when generating a CLI config file with ttn-lw-cli use (see --grpc-port and --oauth-server-address options).

Changed

  • Styling improvements to webhook and pubsub table in Console.
  • Gateway location is updated even if no antenna locations had been previously set.
  • Renamed ns.application.begin_link event to ns.application.link.begin.
  • Renamed ns.application.end_link event to ns.application.link.end.
  • ns.up.data.drop and ns.up.join.drop events are now triggered when respective uplink duplicate is dropped by Network Server.
  • Network Server now drops FPort 0 data uplinks with non-empty FOpts.
  • Frontend asset hashes are loaded dynamically from a manifest file instead of being built into the stack binary.
  • Removed Cache-Control header for static files.
  • Sort events by time in the Console.

Removed

  • ns.up.merge_metadata event.
  • ns.up.receive_duplicate event.
  • ns.up.receive event.

Fixed

  • End device claim display bug when claim dates not set.
  • DeviceModeInd handling for LoRaWAN 1.1 devices.
  • Do not perform unnecessary gateway location updates.
  • Error display on failed end device import in the Console.
  • Update password view not being accessible
  • FOpts encryption and decryption for LoRaWAN 1.1 devices.
  • Application Server returns an error when trying to delete a device that does not exist.
  • Network Server returns an error when trying to delete a device that does not exist.
  • Retrieve LNS Trust without LNS Credentials attribute.
  • Too strict webhook base URL validation in the Console.
  • Webhook and PubSub total count in the Console.
  • DevEUI is set when creating ABP devices via CLI.
  • CLI now shows all supported enum values for LoraWAN fields.
  • Application Server does not crash when retrieving a webhook template that does not exist if no template repository has been configured.
  • Application Server does not crash when listing webhook templates if no template repository has been configured.
  • Error display on failed end device fetching in the Console.
  • Various inconsistencies with Regional Parameters specifications.

Changelog

Docker images

  • docker pull thethingsnetwork/lorawan-stack:3.7.2

v3.7.0

02 Apr 11:46
3c5048b
Compare
Choose a tag to compare

Added

  • Update gateway antenna location from incoming status message (see update_location_from_status gateway field and --gs.update-gateway-location-debounce-time option).
    • This requires a database migration (ttn-lw-stack is-db migrate) because of the added columns.
  • Access Tokens are now linked to User Sessions.
    • This requires a database migration (ttn-lw-stack is-db migrate) because of the added columns.
  • Edit application attributes in Application General Settings in the Console
  • New use CLI command to automatically generate CLI configuration files.

Fixed

  • Fix organization collaborator view not being accessible in the Console.
  • Error display on Data pages in the Console.
  • Fix too restrictive MQTT client validation in PubSub form in the Console.
  • Fix faulty display of device event stream data for end devices with the same ID in different applications.
  • Trailing slashes handling in webhook paths.

Changelog

Docker images

  • docker pull thethingsnetwork/lorawan-stack:latest
  • docker pull thethingsnetwork/lorawan-stack:3
  • docker pull thethingsnetwork/lorawan-stack:3.7
  • docker pull thethingsnetwork/lorawan-stack:3.7.0
  • docker pull thethingsnetwork/lorawan-stack-dev:3c5048bc9913e032118f4ee3a252e5cb90a70b87