From 8759fbe97f3fe60a4f50da70cfe8a3e9b1c80c2d Mon Sep 17 00:00:00 2001 From: Chris Olszewski Date: Fri, 27 Mar 2026 16:10:14 -0400 Subject: [PATCH 1/2] feat: add worker runtime info to heartbeat --- openapi/openapiv2.json | 26 ++++++++++++++++++++++++++ openapi/openapiv3.yaml | 21 +++++++++++++++++++++ temporal/api/worker/v1/message.proto | 16 ++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index ddbc48c61..57681fdbd 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -15264,6 +15264,24 @@ "default": "ROUTING_CONFIG_UPDATE_STATE_UNSPECIFIED", "description": "Indicates whether a change to the Routing Config has been\npropagated to all relevant Task Queues and their partitions.\n\n - ROUTING_CONFIG_UPDATE_STATE_IN_PROGRESS: Update to the RoutingConfig is currently in progress.\n - ROUTING_CONFIG_UPDATE_STATE_COMPLETED: Update to the RoutingConfig has completed successfully." }, + "v1RuntimeInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Runtime name" + }, + "version": { + "type": "string", + "title": "Runtime version" + }, + "provider": { + "type": "string", + "title": "Name of a known provider" + } + }, + "description": "Information about the language runtime executing the worker." + }, "v1Schedule": { "type": "object", "properties": { @@ -16990,6 +17008,10 @@ "$ref": "#/definitions/v1StorageDriverInfo" }, "description": "Storage drivers in use by this SDK." + }, + "runtimeInfo": { + "$ref": "#/definitions/v1RuntimeInfo", + "description": "Information about the language runtime executing the worker." } }, "description": "Worker info message, contains information about the worker and its current state.\nAll information is provided by the worker itself." @@ -17091,6 +17113,10 @@ "$ref": "#/definitions/v1StorageDriverInfo" }, "description": "Storage drivers in use by this SDK." + }, + "runtimeInfo": { + "$ref": "#/definitions/v1RuntimeInfo", + "description": "Information about the language runtime executing the worker." } }, "description": "Limited worker information returned in the list response.\nWhen adding fields here, ensure that it is also added to WorkerInfo (as it carries the full worker information)." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index cd503dccd..0c3b808be 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -12792,6 +12792,19 @@ components: revisionNumber: type: string description: "Monotonically increasing value which is incremented on every mutation \n to any field of this message to achieve eventual consistency between task queues and their partitions." + RuntimeInfo: + type: object + properties: + name: + type: string + description: Runtime name + version: + type: string + description: Runtime version + provider: + type: string + description: Name of a known provider + description: Information about the language runtime executing the worker. Schedule: type: object properties: @@ -15590,6 +15603,10 @@ components: items: $ref: '#/components/schemas/StorageDriverInfo' description: Storage drivers in use by this SDK. + runtimeInfo: + allOf: + - $ref: '#/components/schemas/RuntimeInfo' + description: Information about the language runtime executing the worker. description: |- Worker info message, contains information about the worker and its current state. All information is provided by the worker itself. @@ -15692,6 +15709,10 @@ components: items: $ref: '#/components/schemas/StorageDriverInfo' description: Storage drivers in use by this SDK. + runtimeInfo: + allOf: + - $ref: '#/components/schemas/RuntimeInfo' + description: Information about the language runtime executing the worker. description: |- Limited worker information returned in the list response. When adding fields here, ensure that it is also added to WorkerInfo (as it carries the full worker information). diff --git a/temporal/api/worker/v1/message.proto b/temporal/api/worker/v1/message.proto index b65faeb29..a23483329 100644 --- a/temporal/api/worker/v1/message.proto +++ b/temporal/api/worker/v1/message.proto @@ -130,6 +130,9 @@ message WorkerHeartbeat { // Storage drivers in use by this SDK. repeated StorageDriverInfo drivers = 24; + + // Information about the language runtime executing the worker. + RuntimeInfo runtime_info = 25; } // Detailed worker information. @@ -180,6 +183,9 @@ message WorkerListInfo { // Storage drivers in use by this SDK. repeated StorageDriverInfo drivers = 13; + + // Information about the language runtime executing the worker. + RuntimeInfo runtime_info = 14; } message PluginInfo { @@ -193,3 +199,13 @@ message StorageDriverInfo { // The type of the driver, required. string type = 1; } + +// Information about the language runtime executing the worker. +message RuntimeInfo { + // Runtime name + string name = 1; + // Runtime version + string version = 2; + // Name of a known provider + string provider = 3; +} From 30804eb26d2f007247f855cd90e27b548cbfaec1 Mon Sep 17 00:00:00 2001 From: Chris Olszewski Date: Tue, 31 Mar 2026 09:05:51 -0400 Subject: [PATCH 2/2] specify hosting provider --- openapi/openapiv2.json | 2 +- openapi/openapiv3.yaml | 2 +- temporal/api/worker/v1/message.proto | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 57681fdbd..289e935d7 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -15277,7 +15277,7 @@ }, "provider": { "type": "string", - "title": "Name of a known provider" + "title": "Name of a known hosting provider" } }, "description": "Information about the language runtime executing the worker." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index 0c3b808be..0b924c409 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -12803,7 +12803,7 @@ components: description: Runtime version provider: type: string - description: Name of a known provider + description: Name of a known hosting provider description: Information about the language runtime executing the worker. Schedule: type: object diff --git a/temporal/api/worker/v1/message.proto b/temporal/api/worker/v1/message.proto index a23483329..c292ea6b6 100644 --- a/temporal/api/worker/v1/message.proto +++ b/temporal/api/worker/v1/message.proto @@ -206,6 +206,6 @@ message RuntimeInfo { string name = 1; // Runtime version string version = 2; - // Name of a known provider + // Name of a known hosting provider string provider = 3; }