Releases: TheThingsNetwork/lorawan-stack
Releases · TheThingsNetwork/lorawan-stack
v3.21.0
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 theis.pgdriver
feature flag.- This requires a database schema migration (
ttn-lw-stack is-db migrate
) because of added columns and views.
- This requires a database schema migration (
- Support for comma-separated (
,
) values in The Things Stack CSV file format for importing end devices. - Support for the
RxParamSetup
,RxTimingSetup
,TxParamSetup
, andDlChannel
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.
- This requires a database schema migration (
- The CLI settings fields
retry-config.enable_metadata
andretry-config.default_timeout
have been renamed toretry.enable-metadata
andretry.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.
- Read the current values using
- This requires a database schema migration (
- Device Repository no longer uses the
ApplicationID
for validating requests. Authentication is still necessary, but theApplicationID
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.
- This resolves an issue in the Console where
v3.20.2
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
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 to0
. - 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
Added
- OAuth client management in the account app.
- Support claim protection when claiming end devices on The Things Join Server.
- CLI commands
notifications list
andnotifications 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.
v3.19.2
Added
- Allow setting an expiry date for API keys in the Console
- New event type
gs.gateway.connection.stats
with connection statistics. A new event is sent at most everygs.update-connection-stats-debounce-time
time and at least everygs.update-connection-stats-interval
time. - Button to export as JSON end device
mac-settings
andmac-state
in the Console. - Support for the
FOpts encryption, usage of FCntDwn
LoRaWAN 1.1 erratum.
Changed
- Event type for
gs.up.receive
event toGatewayUplinkMessage
. - Default debounce time for updating connection stats in de Gateway Server (configuration setting
gs.update-connection-stats-debounce-time
) is now 30 seconds. - Error code when importing CSV file with invalid LoRaWAN or Regional Parameters version.
- Emails sent by the Identity Server now also contain HTML versions.
- For the images in these emails to work, an absolute
is.email.network.assets-base-url
(and optionallyis.email.network.branding-base-url
) needs to be set in configuration.
- For the images in these emails to work, an absolute
- Notification emails are now sent through the Notification Service of the Identity Server.
- "Last activity"-information in the Console is now sourced as a single aggregate from the Identity Server.
- End device overview in the Console.
- Showing MAC/PHY versions and used frequency plan.
- Hiding the entity description if not set.
- Showing information of pending sessions.
- Automatically updating session info (no refresh necessary to schedule downlinks after a device has joined).
- Showing session start time.
- The Things Stack is now built with Go 1.18.
- Layout of webhook and Pub/Sub forms to improve UX.
- The Network Server Address used for End Device Claiming is fetched from the configuration instead of client input.
Removed
- The ability to create custom email templates.
Fixed
- Support
app_eui
as alias forjoin_eui
in CSV file import, per documentation. - End devices frame counts being displayed as
n/a
when event stream contained historical data message events. - Gateway general settings (Basic settings) not saving changes in some cases.
- Contact info validation not possible when user is already logged in.
- CLI not allowing devices to be created or updated.
- End device creation no longer errors on missing application info rights.
- Missing success notification when successfully deleting an application in the Console.
- CLI create commands for applications, gateways and clients no longer have their decoded ID emptied when using the
--user-id
flag. - Metric
ttn_lw_events_channel_dropped_total
not getting updated. - Dropped events when calling the Stream RPC with a long tail.
Security
- Security fix for an issue where the description and list of rights of arbitrary API keys could be retrieved by any logged-in user if the 24-bit random API key ID was known.
v3.19.1
Changed
- Application Server now decodes downlink if a downlink decoder is present and binary payload is scheduled.
Fixed
- End devices frame counts being displayed as
n/a
when event stream contained historical data message events. - Gateway general settings (Basic settings) not saving changes in some cases.
v3.19.0
Added
- Session management page in Account App.
- Status page references in the Console.
- Notification Service API that will allow users to receive notifications about their registered entities.
- This requires a database schema migration (
ttn-lw-stack is-db migrate
) because of the added tables.
- This requires a database schema migration (
- Add
network_server_address
,application_server_address
andjoin_server_address
to applications.- This requires a database schema migration (
ttn-lw-stack is-db migrate
) because of the added columns.
- This requires a database schema migration (
- New ADR settings API, which allows stronger control over the ADR algorithm.
- The new settings fields can be found under
mac-settings.adr
, and are mutually exclusive withuse-adr
andadr-margin
. The legacy settings need to be unset before the new API options may be used. mac-settings.adr.mode.disabled
completely disables the ADR algorithm.mac-settings.adr.mode.static.data-rate-index
,mac-settings.adr.mode.static.nb-trans
,mac-settings.adr.mode.static.tx-power-index
allow the user to provide static ADR parameters to be negotiated with the end device. These options persist over multiple sessions and do not require a session reset in order to be propagated to the current session.mac-settings.adr.mode.dynamic.min-data-rate-index
andmac-settings.adr.mode.dynamic.max-data-rate-index
control the data rate index range which the Network Server will attempt to negotiate with the end device. Note that if the provided interval is disjoint with the available data rate indices, no negotiation will take place.mac-settings.adr.mode.dynamic.min-tx-power-index
andmac-settings.adr.mode.dynamic.max-tx-power-index
have similar behavior, but for transmission power indices.mac-settings.adr.mode.dynamic.min-nb-trans
andmac-settings.adr.mode.dynamic.max-nb-trans
have similar behavior, but for NbTrans.mac-settings.adr.mode.dynamic.margin
may be used to provide the margin of the ADR algorithm. It replaces the oldadr-margin
setting.use-adr
andadr-margin
are still supported, but deprecated. Any future API usage should instead use themac-settings.adr
settings.
- The new settings fields can be found under
Changed
- Sortable tables are now sorted by default in the Console
Fixed
- Console determining gateways as "Other cluster" even though using the same host if server addresses not matching exactly (e.g. due to using different host or scheme).
- Inconsistency in setting gateway's LNS Auth key in the Console.
- CLI no longer informs the user that is using the default JoinEUI when passing its value via flags.
- Generating device ID from a DevEUI when importing a CSV file.
- The
is-db migrate
command that failed when running on databases created byv3.18
. - Some error messages being displayed as
error:undefined:undefined
in the Console, e.g. in the live data view. - Missing
query
flag on CLI search commands.
v3.18.2
all: Enter release date of version 3.18.2 into the changelog
v3.18.1
all: Enter release date of version 3.18.1 into the changelog
v3.18.0
all: Downgrade go-ieproxy