Skip to main content

Class: Connection

client.Connection

Client connection to the Temporal Server

⚠️ Connections are expensive to construct and should be reused. Make sure to close any unused connections to avoid leaking resources.

Properties

callContextStorage

Readonly callContextStorage: AsyncLocalStorage<CallContext>


healthService

Readonly healthService: Health


operatorService

Readonly operatorService: OperatorService

Raw gRPC access to Temporal Server's Operator service

The Operator Service API defines how Temporal SDKs and other clients interact with the Temporal server to perform administrative functions like registering a search attribute or a namespace.

This Service API is NOT compatible with Temporal Cloud. Attempt to use it against a Temporal Cloud namespace will result in gRPC unauthorized error.


options

Readonly options: ConnectionOptionsWithDefaults


workflowService

Readonly workflowService: WorkflowService

Raw gRPC access to Temporal Server's Workflow service

Methods

close

close(): Promise<void>

Close the underlying gRPC client.

Make sure to call this method to ensure proper resource cleanup.

Returns

Promise<void>


ensureConnected

ensureConnected(): Promise<void>

Ensure connection can be established.

Does not need to be called if you use connect.

This method's result is memoized to ensure it runs only once.

Calls proto.temporal.api.workflowservice.v1.WorkflowService.getSystemInfo internally.

Returns

Promise<void>


setApiKey

setApiKey(apiKey): void

Set the ConnectionOptions.apiKey for all subsequent requests. A static string or a callback function may be provided.

Parameters

NameType
apiKeystring | () => string

Returns

void


withAbortSignal

withAbortSignal<ReturnType>(abortSignal, fn): Promise<ReturnType>

Set an AbortSignal that, when aborted, cancels any ongoing requests executed in fn's scope.

Type parameters

Name
ReturnType

Parameters

NameType
abortSignalAbortSignal
fn() => Promise<ReturnType>

Returns

Promise<ReturnType>

value returned from fn

Example

const ctrl = new AbortController();
setTimeout(() => ctrl.abort(), 10_000);
// 👇 throws if incomplete by the timeout.
await conn.withAbortSignal(ctrl.signal, () => client.workflow.execute(myWorkflow, options));

withApiKey

withApiKey<ReturnType>(apiKey, fn): Promise<ReturnType>

Set the apiKey for any service requests executed in fn's scope (thus changing the Authorization header).

Type parameters

Name
ReturnType

Parameters

NameType
apiKeystring
fn() => Promise<ReturnType>

Returns

Promise<ReturnType>

value returned from fn

Example

const workflowHandle = await conn.withApiKey('secret', () =>
conn.withMetadata({ otherKey: 'set' }, () => client.start(options)))
);

withDeadline

withDeadline<ReturnType>(deadline, fn): Promise<ReturnType>

Set the deadline for any service requests executed in fn's scope.

Type parameters

Name
ReturnType

Parameters

NameType
deadlinenumber | Date
fn() => Promise<ReturnType>

Returns

Promise<ReturnType>

value returned from fn


withMetadata

withMetadata<ReturnType>(metadata, fn): Promise<ReturnType>

Set metadata for any service requests executed in fn's scope.

The provided metadata is merged on top of any existing metadata in current scope, including metadata provided in ConnectionOptions.metadata.

Type parameters

Name
ReturnType

Parameters

NameType
metadataMetadata
fn() => Promise<ReturnType>

Returns

Promise<ReturnType>

value returned from fn

Example

const workflowHandle = await conn.withMetadata({ apiKey: 'secret' }, () =>
conn.withMetadata({ otherKey: 'set' }, () => client.start(options)))
);

connect

connect(options?): Promise<Connection>

Establish a connection with the server and return a Connection instance.

This is the preferred method of creating connections as it verifies connectivity by calling ensureConnected.

Parameters

NameType
options?ConnectionOptions

Returns

Promise<Connection>


lazy

lazy(options?): Connection

Create a lazy Connection instance.

This method does not verify connectivity with the server. We recommend using connect instead.

Parameters

NameType
options?ConnectionOptions

Returns

Connection