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
- Network Operations Center API references in the Console configuration.
- This comes as part of the
console.ui.noc.enabled
andconsole.ui.noc.base-url
configuration options. - Deployments which use the Network Operations Center need to set
console.ui.noc.base-url
to the same value as otherbase-url
configuration options, such asconsole.ui.as.base-url
. - Deployments which do not use the Network Operations Center need to set
console.ui.noc.enabled
tofalse
.
- This comes as part of the
- Drop uplink frames with CRC failure.
Changed
- The Stripe API used by the Tenant Billing Server has been updated to version
2022-11-15
.- Existing webhook integrations, which previously used API version
2018-09-06
, are no longer compatible and will be rejected. - In order to have a smooth upgrade flow, create a new webhook with the new API version and the same endpoint URL, then update the Stripe signing secret (
tbs.stripe.endpoint-secret-key
) to the one provided by the new webhook. You may now restart the Tenant Billing Server and disable the old webhook integration.
- Existing webhook integrations, which previously used API version
- Network Operations Center application and end devices table schema.
- This requires a database schema migration (
ttn-lw-stack noc-db migrate
) because of added table records.
- This requires a database schema migration (
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.