Upgrade to The Things Network v3.16.0
Scheduled Maintenance Report for The Things Network
Completed
The scheduled maintenance has been completed.
Posted Nov 15, 2021 - 11:30 CET
In progress
Scheduled maintenance is currently in progress. We will provide updates as necessary.
Posted Nov 15, 2021 - 09:30 CET
Update
We will be undergoing scheduled maintenance during this time.
Posted Nov 12, 2021 - 16:15 CET
Scheduled
During this maintenance window we will upgrade The Things Network v3.16.0

We do not expect noticeable downtime during this deployment.

Here is the changelog since the current version 3.15.2:

### Added

- `ttn_lw_as_subscription_sets_publish_success_total` and `ttn_lw_as_subscription_sets_publish_failed_total` metrics to track the number of subscription set publish attempts.
- Application Server advanced distribution settings:
- `as.distribution.global.individual.subscription-blocks` controls if the Application Server should block while publishing traffic to individual global subscribers (such as MQTT clients).
- `as.distribution.global.individual.subscription-queue-size` controls how many uplinks the Application Server should buffer for an individual global subscriber. Note that when the buffer is full, the Application Server will drop the uplinks if `--as.distribution.global.individual.subscription-blocks` is not enabled. Use a negative value in order to disable the queue.
- `as.distribution.local.broadcast.subscription-blocks` controls if the Application Server should block while publishing traffic to broadcast local subscribers (such as webhooks and application packages matching).
- `as.distribution.local.broadcast.subscription-queue-size` controls how many uplinks the Application Server should buffer for an broadcast local subscriber. Has the same semantics as `--as.distribution.global.individual.subscription-queue-size`.
- `as.distribution.local.individual.subscription-blocks` controls if the Application Server should block while publishing traffic to individual local subscribers (such as PubSub integrations).
- `as.distribution.local.individual.subscription-queue-size` controls how many uplinks the Application Server should buffer for an individual local subscriber. Has the same semantics as `--as.distribution.global.individual.subscription-queue-size`.
- `ttn_lw_gs_txack_received_total`, `ttn_lw_gs_txack_forwarded_total` and `ttn_lw_gs_txack_dropped_total` metrics, which track the transmission acknowledgements from gateways.
- `gs.txack.receive`, `gs.txack.drop` and `gs.txack.forward` events, which track the transmission acknowledgements from gateways.
- Remote federated authentication providers and external user management.
- Authentication providers can be managed via the `AuthenticationProviderRegistry` service. See the `tti-lw-cli authentication-providers` commands for CLI support.
- External users can be managed via the `ExternalUserRegistry` service. See the `tti-lw-cli external-users` commands for CLI support.
- External users (users associated with a federated authentication provider) may no longer update their passwords, or request temporary passwords.
- External users will have their information (name and email) updated on login, based on the data provided by the authentication provider.
- Users may be associated to multiple authentication providers at the same time.
- This requires a database schema migration (`ttn-lw-stack is-db migrate`) due to the relaxed unique constraint.
- `ttn-lw-stack as-db migrate` command to migrate the Application Server database. This command records the schema version and only performs migrations if on a newer version.
- Use the `--force` flag to force perform migrations.
- Server-side event filtering with the `names` field.

### Changed

- Gateway Server default UDP worker count has been increased to 1024, from 16.
- Application Server webhooks and application packages default worker count has been increased to 1024, from 16.
- Application Server no longer sets the end device's `session.started_at` and `pending_session.started_at`. The session start time should be retrieved from the Network Server, per API specification.
- This requires an Application Server database migration (`ttn-lw-stack as-db migrate`) to clear the `started_at` field in existing (pending) sessions.
- Console changing to server-side event filtering (used to be client-side).

### Removed

- The `ttn_lw_gs_status_failed_total`, `ttn_lw_gs_uplink_failed_total` metrics. `ttn_lw_gs_status_dropped_total` and `ttn_lw_gs_uplink_dropped_total` should be used instead, as they contain the failure cause.
- The `gs.status.fail` and `gs.up.fail` events. `gs.status.drop` and `gs.up.drop` should be used instead, as they contain the failure cause.
- The `data_rate_index` field in uplink message metadata. Observe the fully described data rate in the `data_rate` field instead.
- LoRaWAN data rate index reported to LoRa Cloud DMS.
- Dockerfile doesn't define environmental variables `TTN_LW_BLOB_LOCAL_DIRECTORY`, `TTN_LW_IS_DATABASE_URI` and `TTN_LW_REDIS_ADDRESS` anymore. They need to be set when running the container: please refer to `docker-compose.yml` for example values.
- `CockroachDB` from development tooling as well as config option within `docker-compose.yml`.
- This also changes the default value of the `--is.database-uri` option, so it can connect to the development Postgres database by default.

### Fixed

- LoRaWAN Backend Interfaces `AppSKeyReq` and `HomeNSReq` interop calls in multi-tenant deployments.
- Handling of NaN values in our JSON API.
- Receiver metadata from more than one antenna is now available in messages received from Packet Broker.
- Unhelpful error message when aborting the OIDC Login in the Console.
- Parsing of multi-word description search queries.
Posted Nov 12, 2021 - 16:07 CET
This scheduled maintenance affected: The Things Stack Sandbox (Europe 1 (eu1.cloud.thethings.network), North America 1 (nam1.cloud.thethings.network), Australia 1 (au1.cloud.thethings.network)).