github temporalio/temporal v1.5.0

latest releases: v1.24.0-m3.4, v1.23.1, v1.24.0-m3.3...
3 years ago

Release Highlights

  • The use of Kafka for visibility has been deprecated.
  • Authorization code improvements and refactors.
  • Small bug fixes.

Schema changes

This release includes schema changes.
Before upgrading your cluster, run the schema tool and upgrade your schema to support version 1.3. For MySQL databases use: temporal-sql-tool, for Cassandra use temporal-cassandra-tool.

Below are a few examples that show how to upgrade "default" and "visibility" schemas for Cassandra.

Run these commands if you "bring your own" database.

temporal-cassandra-tool --tls --tls-ca-file $TLS_CA_FILE --user $CASSANDRA_USER --password $CASSANDRA_PASSWORD \
		--endpoint $CASSANDRA_ENDPOINT --keyspace temporal --timeout 120 update --schema-dir ./schema/cassandra/temporal/versioned
temporal-cassandra-tool --tls --tls-ca-file $TLS_CA_FILE --user $CASSANDRA_USER --password $CASSANDRA_PASSWORD \
		--endpoint $CASSANDRA_ENDPOINT --keyspace temporal_visibility --timeout 120  update --schema-dir ./schema/cassandra/visibility/versioned

Run these commands if you have a localhost installation:

temporal-cassandra-tool --keyspace temporal update -schema-dir schema/cassandra/temporal/versioned
temporal-cassandra-tool --keyspace temporal_visibility update -schema-dir schema/cassandra/visibility/versioned

Deprecate Kafka

UPDATE: Please use 1.5.5 release to migrate out of Kafka.

Because the use of Kafka is deprecated for visibility, to upgrade to this release in a backward compatible way you must perform the following steps:

  1. Rollout this release and make sure everything works.
  2. Add the following to your dynamic config and then perform a rolling restart:
history.visibilityQueue:
    - value: "internalWithDualProcessor"
      constraints: {}
  1. Wait for the Kafka visibility queue to drain. You may monitor the Kafka backlog, but 10 minutes should be enough.
  2. Change the history.visibilityQueue dynamic config value from internalWithDualProcessor to internal:
history.visibilityQueue:
    - value: "internal"
      constraints: {}
  1. Perform another rolling restart.
  2. Kafka and zookeeper are no longer used, and can be removed from the setup.

If it is acceptable to lose some visibility messages you may set the dynamic config value to internal right away or wait for the next release where the default value will be internal.

Change details

2020-12-08 - c96de94 - Adjust MySQL binary data upper size limit (#1056)
2020-12-09 - 32924ef - Add visibility tasks table for SQL (#1055)
2020-12-09 - 650beab - Use valid input for wfClient.GetSearchAttributes (#1067)
2020-12-09 - f67c31b - Finish migration of infinite workflow timeout (#1030)
2020-12-10 - 857c4d3 - Properly handle infinite activity timeout for SDK (#1073)
2020-12-10 - ad093b3 - Add explicit TLS settings for system workers while also supporting legacy config (#1059)
2020-12-10 - fab8274 - Bugfix: infinite timeout feature with activity & workflow retry (#1071)
2020-12-11 - 2eb1502 - Add checks for nil claims to defaultAuthorizer (#1074)
2020-12-11 - 55881bf - Replace Kafka for visibility with internal VisibilityQueue (#988)
2020-12-11 - 9ba849a - Adds log whenever we fetch bootstrap hosts for Ringpop from DB (#1076)
2020-12-11 - 9f720f7 - Wire visibility tasks for SQL (#1083)
2020-12-14 - 1abde2a - Correctly config ES for history service (#1094)
2020-12-14 - 61d9f53 - Add CLI command to check cluster health (#1091)
2020-12-14 - 7cb19f6 - Correctly config ES for frontend service (#1095)
2020-12-14 - aec3996 - Enable gRPC reflection for frontend service (#1089)
2020-12-14 - bdddc30 - Add add tasks API to DB layer (#1092)
2020-12-14 - e8f44af - Optimize delete visibility task (#1093)
2020-12-15 - e232832 - Use local quorum for Cassandra when querying schema version (#1099)
2020-12-15 - e5c28cf - Notify new task in shard context (#1097)
2020-12-15 - ff39007 - Add enforcement of namespace match for async completion tokens (#1086)
2020-12-16 - 16cd540 - Replace bool visibility queue dynamic configs with single string config (#1104)
2020-12-16 - 71499bf - Switch to using jose.JSONWebKeySet for parsing JWKS (#1101)
2020-12-16 - df20c7f - Add proper index to SQL visibility store (#1107)
2020-12-17 - 21efba4 - Add Prometheus to development dependencies (#1111)
2020-12-17 - 82ce0b4 - Add support for EC JWT keys (#1108)
2020-12-17 - a92e09b - Log details of authorization errors and return a generic unauthorized error to the caller (#1110)
2020-12-17 - ec1de64 - Properly handling task queue lease expiration (#1112)
2020-12-17 - f73e73c - Fix typo on availability zone env key (#1109)
2020-12-18 - 91e0626 - Use Prometheus as default metrics provider for all configs (#1116)
2020-12-18 - 9cb819d - Add support for extra authorization data (#1113)
2020-12-19 - 1df7e31 - Fix ES processor metrics (#1117)
2020-12-21 - 423adbc - Make metric ids globally unique (#1124)
2020-12-21 - 77acf2c - Fix authorization metrics scope (#1123)
2020-12-21 - 81de03d - Start Kafka producer in dual mode (#1121)

Helpful links to get you started with Temporal

Temporal Docs
Server
Helm Chart

Docker images for this release (use tag 1.5.0)

Server
Server With Auto Setup
CLI (tctl)
Admin-Tools

Don't miss a new temporal release

NewReleases is sending notifications on new releases.