From 53f63dae44018ed53c03622d4fa373d800803b54 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 12d163654..b7707d70a 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -18288,6 +18288,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": { @@ -20106,6 +20124,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." @@ -20207,6 +20229,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 14a6a130c..2957c561a 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -15347,6 +15347,19 @@ components: description: |- Monotonically increasing value which is incremented on every mutation 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: @@ -18546,6 +18559,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. @@ -18648,6 +18665,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 a87142c78..d879051b2 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 { @@ -194,6 +200,16 @@ message StorageDriverInfo { 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; +} + // A command sent from the server to a worker. message WorkerCommand { oneof type { From baad65ba52ebde63adadf9ad2d1cb6b42fdae26e 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 b7707d70a..85797a3e1 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -18301,7 +18301,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 2957c561a..dc110e842 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -15358,7 +15358,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 d879051b2..0cc61e161 100644 --- a/temporal/api/worker/v1/message.proto +++ b/temporal/api/worker/v1/message.proto @@ -206,7 +206,7 @@ message RuntimeInfo { string name = 1; // Runtime version string version = 2; - // Name of a known provider + // Name of a known hosting provider string provider = 3; }