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-v1application 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.enabledandconsole.ui.noc.base-urlconfiguration options. - Deployments which use the Network Operations Center need to set
console.ui.noc.base-urlto the same value as otherbase-urlconfiguration options, such asconsole.ui.as.base-url. - Deployments which do not use the Network Operations Center need to set
console.ui.noc.enabledtofalse.
- 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
NaNandInfinityas part of the decoded payloads.- While the concepts of
NaNandInfinityare 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
NaNare actually result of operations with the JavaScript concept ofundefined, and are not intentional. Mathematical operations that interact withundefinedreturnNaN- for exampleundefined * 5isNaN. It is not hard to reachundefinedin 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 migratefrom versions prior to v3.24 are removed. Migrating from prior versions should be done through v3.24 instead.