From 61f2e4af5a67cc8b7d40992b608b23631cf2579a Mon Sep 17 00:00:00 2001 From: Sean Kane Date: Mon, 6 Jul 2026 17:11:57 -0600 Subject: [PATCH 01/96] [DRAFT] SAA operator commands documentation --- .../activities/activity-operations.mdx | 266 +++++++++++++++++- .../activities/standalone-activity.mdx | 10 +- 2 files changed, 269 insertions(+), 7 deletions(-) diff --git a/docs/encyclopedia/activities/activity-operations.mdx b/docs/encyclopedia/activities/activity-operations.mdx index 5a3a05c008..c990d51523 100644 --- a/docs/encyclopedia/activities/activity-operations.mdx +++ b/docs/encyclopedia/activities/activity-operations.mdx @@ -22,6 +22,7 @@ This page discusses the following: - [Unpause](#unpause) - [Reset](#reset) - [Update Options](#update-options) +- [Standalone Activity operator commands](#standalone-activity-operator-commands) - [Observability](#observability) Activity Operations are deliberate actions you perform on a specific [Activity Execution](/activity-execution), as @@ -30,8 +31,8 @@ opposed to lifecycle behaviors like [retries](/encyclopedia/retry-policies) and You can perform Activity Operations through the [CLI](/cli/command-reference/activity), the UI, or directly via the gRPC API. Not all operations are available in all interfaces yet - see the [summary table](#operations-summary) for current -support. Activity Operations don't apply to [Local Activities](/local-activity) or -[Standalone Activities](/standalone-activity). +support. Activity Operations don't apply to [Local Activities](/local-activity). For Standalone Activities, see +[Standalone Activity operator commands](#standalone-activity-operator-commands). :::note Public Preview @@ -125,7 +126,7 @@ but they must be Unpaused separately. - **Pause operates on individual Activities by ID within a single Workflow.** Unlike Unpause, Reset, and Update Options, there's no `--query` flag. To pause multiple Activities, issue separate commands for each Activity ID. -- **No Namespace-wide query for Paused Activities.** You must know the Workflow Id. See [Observability](#observability). +- **No Namespace-wide query for Paused Activities.** You must know the Workflow ID. See [Observability](#observability). ## Unpause {/* #unpause */} @@ -314,6 +315,263 @@ options, including Retry Policy, Task Queue, and bulk mode via `--query`. - **Update Options is CLI and gRPC only.** It's not available in the UI. +## Standalone Activity operator commands {/* #standalone-activity-operator-commands */} + +Standalone Activity operator commands use the same Activity operation concepts as Workflow Activities, but they target a +top-level [Standalone Activity](/standalone-activity) instead of an Activity scheduled by a Workflow. + +- To target a Standalone Activity, identify the Activity by Activity ID. +- If the Activity ID has multiple runs, use the Activity Run ID to target one run. +- Do not provide a Workflow ID when you are targeting a Standalone Activity. +- These commands operate on one Standalone Activity Execution at a time. +- Workflow Run Timeout and Workflow Execution Timeout don't apply because a Standalone Activity is not part of a + Workflow Execution. +- Standalone Activities still use Activity timeouts: Schedule-To-Close, Schedule-To-Start, Start-To-Close, and + Heartbeat. +- Schedule-To-Close is the overall Activity Execution deadline. It keeps running while the Activity is Paused. +- Start-To-Close and Heartbeat timeouts apply only while a Worker is running an attempt. +- If the Activity has a Start Delay, the first dispatch can't happen before `ScheduleTime + StartDelay`. +- Start Delay also affects the Schedule-To-Close and Schedule-To-Start deadlines for the first dispatch. +- Start Delay stops affecting dispatch after the first Worker has picked up the Activity. +- If an operation reissues a dispatch task, the task is scheduled at the later of the operation time, any remaining + Start Delay, and any preserved retry backoff. +- A cancel request can still be accepted while Pause or Reset is pending; after cancellation is pending, cancellation + takes precedence over operator commands. +- Terminal Activity states can't be Paused, Unpaused, Reset, or updated. +- The commands return `NotFound` if the targeted Standalone Activity Execution doesn't exist. + +### Pause a Standalone Activity {/* #pause-standalone-activity */} + +Pause prevents the Temporal Service from dispatching another attempt for a Standalone Activity. + +- If the Activity is SCHEDULED: + - Pause moves it to PAUSED. + - Pause invalidates any pending dispatch task. + - No Worker receives it until it is Unpaused or Reset without `keep_paused`. +- If the Activity is STARTED: + - Pause moves it to PAUSE_REQUESTED. + - The running Worker keeps its task token. + - Pause doesn't invalidate Start-To-Close or Heartbeat timeout tasks. + - If the Activity heartbeats: + - The next heartbeat response reports that the Activity is paused. + - If the Activity completes successfully: + - The Activity completes normally. + - If the Activity fails retryably: + - The Activity moves to PAUSED instead of dispatching the next retry. + - If the Activity fails non-retryably: + - The Activity fails instead of moving to PAUSED. + - If the Activity reaches Start-To-Close Timeout: + - The retry path consumes the pause request and the Activity moves to PAUSED when retries remain. + - If the Activity reaches Heartbeat Timeout: + - The retry path consumes the pause request and the Activity moves to PAUSED when retries remain. +- When a pause request is consumed by a failed or timed-out attempt, the attempt count is incremented before the + Activity lands in PAUSED. +- Pause doesn't stop the Schedule-To-Close Timeout. +- If the Activity is PAUSED: + - It can time out with Schedule-To-Close Timeout. + TODO: list all combinations and iteractions for pause and SAA timeouts +- Pause is rejected: + - If cancellation is already pending. + TODO: List out all scenarios where a pause will be rejected + TODO: list out all scenarios where a cancellation is rejected + - If the Activity is already Paused, unless the request is a duplicate with the same request ID. + - If reset is already pending. +- Pause records pause metadata such as identity, reason, request ID, and pause time. + +### Unpause a Standalone Activity {/* #unpause-standalone-activity */} + +Unpause resumes a Standalone Activity that is PAUSED or has a pending pause request. + +- If the Activity is PAUSED: + - Unpause: + - moves it back to SCHEDULED. + - creates a new dispatch task. + - creates a new Schedule-To-Start timeout task when Schedule-To-Start Timeout is set. + - If retry backoff is still in the future: + - Unpause honors the remaining retry backoff by default. + - If the retry backoff came from a Worker-provided `NextRetryDelay`: + - Unpause honors that retry delay by default. + - If retry backoff has already elapsed: + - Unpause can dispatch immediately. + - Unpause doesn't clear the current retry interval unless `reset_attempts` is set. + - If `reset_attempts` is set: + - Unpause: + - resets the attempt count to 1. + - clears the current retry interval. + - If `reset_heartbeat` is set: + - Unpause clears the stored heartbeat time and heartbeat details. + - If `jitter` is set: + - Unpause delays dispatch by a random duration within the jitter window. + - If the Activity still has an unexpired Start Delay and no Worker has picked it up yet: + - Unpause honors the Start Delay. +- If the Activity is PAUSE_REQUESTED: + - Unpause moves it back to STARTED. + - The running Worker keeps its task token. + - Unpause doesn't schedule a new attempt. + - Unpause doesn't invalidate the current Start-To-Close or Heartbeat timeout tasks. + - If cancellation is requested before Unpause: + - Unpause is a no-op. +- If the Activity is RESET_REQUESTED because Reset with `keep_paused` was requested while the Activity was + PAUSE_REQUESTED: + - Unpause clears the `keep_paused` intent but keeps the reset pending. + - The running Worker continues to see the pending reset on heartbeat, but no longer sees the Activity as paused. + - The reset lands in SCHEDULED instead of PAUSED when the running attempt yields. +- Unpausing an Activity that is not Paused is a no-op. +- Unpausing a terminal Activity is rejected. + +### Reset a Standalone Activity {/* #reset-standalone-activity */} + +Reset clears retry state and schedules, or requests, attempt 1 for a Standalone Activity. + +- If the Activity is SCHEDULED: + - Reset moves it to SCHEDULED at attempt 1. + - If the Activity is in retry backoff: + - Reset discards the retry backoff. + - Reset creates a new dispatch task. + - Reset creates a new Schedule-To-Start timeout task when Schedule-To-Start Timeout is set. + - If the Activity has never been picked up and still has an unexpired Start Delay: + - Reset honors the Start Delay. + - If `jitter` is set: + - Reset delays dispatch by a random duration within the jitter window. +- If the Activity is PAUSED and `keep_paused` is false: + - Reset moves it to SCHEDULED at attempt 1. + - Reset unpauses the Activity. +- If the Activity is PAUSED and `keep_paused` is true: + - Reset leaves it PAUSED at attempt 1. + - No new dispatch task is created until a later Unpause. +- If the Activity is STARTED: + - Reset moves it to RESET_REQUESTED. + - Reset is deferred until the running attempt yields. + - The running Worker keeps its task token. + - The next heartbeat response reports that the Activity was reset. + - If the Activity completes successfully: + - The Activity completes normally and the reset doesn't apply. + - If the Activity fails: + - The reset is applied and the next attempt is attempt 1. + - If the Activity fails non-retryably: + - The reset is still applied and the next attempt is attempt 1. + - If the Activity has no retries remaining: + - The reset is still applied and the next attempt is attempt 1. + - If the Activity reaches Start-To-Close Timeout: + - The reset is applied and the Activity moves to SCHEDULED at attempt 1. + - If the Activity reaches Heartbeat Timeout: + - The reset is applied and the Activity moves to SCHEDULED at attempt 1. +- If the Activity is PAUSE_REQUESTED and `keep_paused` is false: + - Reset clears the pause request. + - Reset is deferred until the running attempt yields. + - The Activity dispatches attempt 1 when the reset is applied. +- If the Activity is PAUSE_REQUESTED and `keep_paused` is true: + - Reset is deferred until the running attempt yields. + - The Activity lands in PAUSED at attempt 1 when the reset is applied. + - The next heartbeat response reports both that the Activity was reset and that the Activity is paused. +- Reset doesn't stop the Schedule-To-Close Timeout. +- Reset doesn't create a new Schedule-To-Close clock. +- Schedule-To-Close continues to use the Activity Execution's first dispatch time. +- After a reset dispatches a new attempt, the attempt's scheduled time reports the reset attempt's dispatch time, not + the original first-attempt dispatch time. +- Reset discards retry backoff, but it still respects any remaining Start Delay before the first Worker pickup. +- If `reset_heartbeat` is set: + - Reset clears stored heartbeat time and heartbeat details. + - If the Activity is non-running: + - Heartbeat state is cleared immediately. + - If the Activity is running: + - Heartbeat state is cleared when the reset is applied to the next attempt. +- If `reset_heartbeat` is not set: + - Heartbeat details are preserved. +- If `restore_original_options` is set: + - Reset restores the options from when the Standalone Activity was created. + - Reset can restore Task Queue, Schedule-To-Close Timeout, Schedule-To-Start Timeout, Start-To-Close Timeout, + Heartbeat Timeout, Retry Policy, Priority, and Start Delay. + - Subfield updates made before Reset don't change the saved original options. + - Start Delay is restored only if the Activity has not started its first attempt. + - If the Activity is non-running: + - The restore is applied immediately. + - If the Activity is running: + - The restore is deferred until the reset is applied to the next attempt. + - Restored timeouts don't shorten or otherwise disturb the in-flight attempt. + - If the Activity completes successfully after the reset is requested: + - The Activity completes and the restored options are never applied. +- Reset is rejected: + - If cancellation is already pending. + - If another reset is already pending. + - If the Activity is terminal. + +### Update Standalone Activity options {/* #update-standalone-activity-options */} + +Update Options changes a Standalone Activity's stored runtime options. + +- Update Options can change: + - Task Queue name. + - Schedule-To-Close Timeout. + - Schedule-To-Start Timeout. + - Start-To-Close Timeout. + - Heartbeat Timeout. + - Retry Policy. + - Retry Policy initial interval. + - Retry Policy backoff coefficient. + - Retry Policy maximum interval. + - Retry Policy maximum attempts. + - Priority. + - Priority Key. + - Fairness Key. + - Fairness Weight. + - Start Delay while the Activity is still in its delay window. +- Update Options requires an update mask unless `restore_original` is used. +- If `restore_original` is set: + - `restore_original` can't be combined with an update mask. + - `restore_original` restores the options from when the Standalone Activity was created. + - `restore_original` is applied immediately to the active Standalone Activity Execution. + - `restore_original` restores Start Delay only if the Activity has not started its first attempt. +- Updated timeout values are validated and normalized after the update. +- If Schedule-To-Close Timeout is updated: + - Update Options reissues the Schedule-To-Close timeout task at the new deadline. + - Stale Schedule-To-Close timeout tasks from before the latest options update are ignored. + - If Schedule-To-Close Timeout is disabled: + - Previously scheduled Schedule-To-Close timeout tasks are ignored. + - Shortening Schedule-To-Close Timeout can cause the Activity to time out sooner. + - Extending Schedule-To-Close Timeout can allow future retries that would otherwise be blocked by the Activity + deadline. +- If Start-To-Close Timeout or Heartbeat Timeout is updated for a running attempt: + - Update Options reissues the Start-To-Close timeout task for that attempt. + - Update Options reissues the Heartbeat timeout task for that attempt. + - Updated running-attempt timers are anchored to the current attempt's start time or last heartbeat time. + - Updating Start-To-Close or Heartbeat Timeout can affect the current running attempt. +- If Task Queue is updated: + - The change affects future dispatches, not a task already picked up by a Worker. +- If Retry Policy is updated: + - Retry Policy subfield updates are merged with the existing Retry Policy and then validated. + - The update is rejected if the merged Retry Policy is invalid. + - Update Options recalculates the current retry interval only when the Activity is SCHEDULED or PAUSED, is waiting in + retry backoff, and the current retry interval was derived from the Retry Policy. + - Update Options doesn't recalculate a Worker-provided `NextRetryDelay` that is already scheduled. +- If an unrelated field is updated: + - Update Options doesn't recalculate the current retry interval. +- If `restore_original` is set and the Activity is SCHEDULED or PAUSED: + - Update Options can recalculate the current retry interval when the interval was derived from the Retry Policy. +- If the Activity is SCHEDULED: + - Update Options reissues dispatch and Schedule-To-Start timeout tasks. + - If the Activity is in retry backoff: + - Reissued dispatch and Schedule-To-Start timeout tasks keep the existing retry deadline unless the retry interval + is recalculated by a Retry Policy update or cleared by another operation. +- If the Activity is PAUSED: + - Update Options stores the new options but doesn't dispatch the Activity. + - Updated Retry Policy values can affect when the Activity dispatches after Unpause. +- If the Activity is PAUSE_REQUESTED: + - Update Options reissues running-attempt timers so Start-To-Close and Heartbeat timeouts continue to be enforced. +- If the Activity is RESET_REQUESTED: + - Update Options reissues running-attempt timers so Start-To-Close and Heartbeat timeouts continue to be enforced. +- If cancellation is pending: + - Update Options is still allowed. + - Updated Start-To-Close and Heartbeat timers can still affect the running attempt. +- If Start Delay is updated: + - Start Delay can be updated only while the Activity is SCHEDULED and the first dispatch time is still in the future. + - Start Delay can't be updated after the first dispatch delay has elapsed. + - Start Delay can't be updated after a Worker has picked up the first attempt. + - A nonzero Start Delay update requires Start Delay to be enabled for the Namespace. +- Update Options doesn't reset attempts. +- Update Options doesn't clear heartbeat details. +- Updating a terminal Activity is rejected. + ## Observability {/* #observability */} Activity Operations have a limited audit trail because they are not recorded in a Workflow's Event History. However, you @@ -329,7 +587,7 @@ provided). The `TemporalPauseInfo` [Search Attribute](/search-attribute) is filterable within a Workflow. -There's no Namespace-wide query to find all Paused Activities across Workflows. You must know the Workflow Id. +There's no Namespace-wide query to find all Paused Activities across Workflows. You must know the Workflow ID. ### Audit trail {/* #audit-trail */} diff --git a/docs/encyclopedia/activities/standalone-activity.mdx b/docs/encyclopedia/activities/standalone-activity.mdx index e9b7aa3659..07e314ed3b 100644 --- a/docs/encyclopedia/activities/standalone-activity.mdx +++ b/docs/encyclopedia/activities/standalone-activity.mdx @@ -84,7 +84,8 @@ webhook, syncing data, or executing a single function reliably with built-in ret - Arbitrary length jobs with heartbeats for liveness and checkpointing progress - At-least-once execution by default with native retry policy and timeouts - At-most-once execution if retry max attempts is 1 -- Addressable - get an Activity ID / Run ID and get the result, cancel, and terminate +- Addressable - get an Activity ID / Run ID and get the result, cancel, pause, unpause, reset, update options, and + terminate - Deduplication - with conflict policy: (USE_EXISTING, ...), reuse policy: (REJECT_DUPLICATES, ...) - Separate ID space from Workflows - Standalone Activities are a different kind of top-level execution - Priority and fairness - multi-tenant fairness, weighted priority tiers, and safeguards against starvation of lower-weighted tasks @@ -110,7 +111,6 @@ failed, etc.) - not the number of queued tasks. The Public Preview of Standalone Activities has some known limitations: -- Pause, reset, and update options are not supported in Public Preview but scheduled for GA. - `TerminateExisting` conflict policy / `TerminateIfRunning` reuse policy is not supported yet. ## Temporal CLI support @@ -137,7 +137,11 @@ temporal version 1.7.0 (Server 1.31.0, UI 2.49.1) ``` The `temporal activity` subcommand supports Standalone Activities with commands including: `start`, -`execute`, `result`, `list`, `count`, `describe`, `cancel`, and `terminate`. +`execute`, `result`, `list`, `count`, `describe`, `cancel`, `pause`, `unpause`, `reset`, +`update-options`, and `terminate`. + +For details about Pause, Unpause, Reset, and Update Options, see +[Standalone Activity operator commands](/activity-operations#standalone-activity-operator-commands). The Temporal Dev Server has Standalone Activities enabled by default for local testing. From 35c009f2b7ef1c42c5caff0d0b5eff44f5514a50 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Tue, 7 Jul 2026 12:30:03 -0400 Subject: [PATCH 02/96] Edit existing docs --- .../activities/activity-operations.mdx | 93 ++++++++----------- 1 file changed, 40 insertions(+), 53 deletions(-) diff --git a/docs/encyclopedia/activities/activity-operations.mdx b/docs/encyclopedia/activities/activity-operations.mdx index c990d51523..be4df88a85 100644 --- a/docs/encyclopedia/activities/activity-operations.mdx +++ b/docs/encyclopedia/activities/activity-operations.mdx @@ -49,13 +49,13 @@ gRPC API - not for programmatic use in Workflow or Activity code. | Operation | What it does | CLI | | --------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | | [Pause](#pause) | Stops retries. In-flight execution continues unless the Activity uses Heartbeat. | [`temporal activity pause`](/cli/command-reference/activity#pause) | -| [Unpause](#unpause) | Resumes a Paused Activity. The next execution starts immediately. | [`temporal activity unpause`](/cli/command-reference/activity#unpause) | -| [Reset](#reset) | Clears retry state (attempts, backoff) and schedules a new execution. | [`temporal activity reset`](/cli/command-reference/activity#reset) | -| [Update Options](#update-options) | Changes timeouts, Retry Policy, or Task Queue without restarting the Activity. | [`temporal activity update-options`](/cli/command-reference/activity#update-options) | +| [Unpause](#unpause) | Resumes a Paused Activity. The next execution starts after any remaining retry backoff or start delay. | [`temporal activity unpause`](/cli/command-reference/activity#unpause) | +| [Reset](#reset) | Clears retry state (attempts, backoff) and schedules the Activity for execution again. | [`temporal activity reset`](/cli/command-reference/activity#reset) | +| [Update Options](#update-options) | Changes any Activity options (e.g. timeouts, Retry Policy, or Task Queue) without restarting the Activity. | [`temporal activity update-options`](/cli/command-reference/activity#update-options) | ## Pause {/* #pause */} -Pause stops the Temporal Service from scheduling new retries of an [Activity Execution](/activity-execution). +Pause stops the Temporal Service scheduling new retries of an [Activity Execution](/activity-execution). ### When to Pause @@ -66,20 +66,19 @@ Pause stops the Temporal Service from scheduling new retries of an [Activity Exe ### What happens when you Pause an Activity +- **No further retries are scheduled.** The Temporal Service stops scheduling retries. +- **[Heartbeating](/encyclopedia/detecting-activity-failures#activity-heartbeat) determines whether an interruption is sent to the in-flight + Activity Task Execution:** + - For **Activities with Heartbeat** the interruption is sent on their next Heartbeat. The SDK raises a Pause-specific error; + the execution can catch this to clean up resources before exiting. + - **Activities without Heartbeat** continue running to completion. If the Activity Task Execution succeeds, the result is delivered + to the Workflow normally. If it fails, no retry is scheduled. Pause takes effect after the in-flight execution ends. +- **Pause is idempotent.** Pausing an already-Paused Activity has no effect. Pausing a completed Activity returns an + error. - **Pausing an Activity doesn't affect the parent Workflow.** The Workflow continues Running, and [Signals, Queries, and Updates](/encyclopedia/workflow-message-passing) on the parent Workflow are unaffected. -- **No further retries are scheduled.** The Temporal Service stops scheduling retries. This is enforced server-side, not - by the SDK. - **Workflow code has no visibility into Activity Operations.** Pause doesn't produce an Event History event, so the Workflow can't detect or react to it. See [Observability](#observability). -- **[Heartbeating](/encyclopedia/detecting-activity-failures#activity-heartbeat) determines whether the in-flight - execution is interrupted:** - - **Activities with Heartbeat** are interrupted on their next Heartbeat. The SDK raises a Pause-specific error, and - the Activity can catch this to clean up resources before exiting. - - **Activities without Heartbeat** continue running to completion. If the execution succeeds, the result is delivered - to the Workflow normally. If it fails, no retry is scheduled. Pause takes effect after the in-flight execution ends. -- **Pause is idempotent.** Pausing an already-Paused Activity has no effect. Pausing a completed Activity returns an - error. ### CLI usage @@ -94,7 +93,7 @@ See the [CLI reference for `temporal activity pause`](/cli/command-reference/act ### Detect Pause in Activity code -Activities with Heartbeat can detect that an interruption was caused by Pause rather than a timeout or Workflow +Activities with a Heartbeat can detect that an interruption was caused by Pause rather than by a timeout or Workflow Cancellation. A Paused Activity resumes later. A Cancelled Activity doesn't. Your Activity code may need to handle these cases differently, for example releasing held resources on Pause while preserving them on Cancellation, or vice versa. @@ -111,7 +110,7 @@ cases differently, for example releasing held resources on Pause while preservin [Workflow Pause](/cli/command-reference/workflow#pause) and Activity Pause are independent. Both stop Activity retries, but they must be Unpaused separately. -- Workflow Pause blocks retries but doesn't interrupt in-flight executions via Heartbeat. Activity Pause does. +- Workflow Pause blocks retries but doesn't interrupt in-flight Activity Task Executions via Heartbeat. Activity Pause does. - If both are active, both must be Unpaused before the Activity resumes. ### Important considerations @@ -140,14 +139,11 @@ Unpause resumes a Paused Activity Execution. ### What happens when you Unpause an Activity -- **The Activity is rescheduled immediately.** Any remaining retry backoff is discarded. The next execution starts right - away. -- **Attempt count and Heartbeat data are preserved by default.** The Activity resumes from where it left off. Use - `--reset-attempts` or `--reset-heartbeats` on the CLI to clear these, or use [Reset](#reset) to restart from - attempt 1. +- **The Activity is rescheduled for its next attempt.** The next attempt wait for the end of any remaining retry backoff (or start delay) before starting. Unpause is idempotent. Unpausing an Activity that isn't Paused has no effect. Unpausing an Activity that has already -completed returns an error. +completed returns an error. Use [Reset](#reset) with `--keep-paused` to reset the attempt counter to 1 and optionally +clear the heartbeat data . ### CLI usage @@ -157,8 +153,7 @@ temporal activity unpause \ --activity-id my-activity ``` -See the [CLI reference for `temporal activity unpause`](/cli/command-reference/activity#unpause) for all options, -including `--reset-attempts` and `--reset-heartbeats` to clear state on resume. +See the [CLI reference for `temporal activity unpause`](/cli/command-reference/activity#unpause) for all options. ### Important considerations @@ -179,37 +174,34 @@ including `--reset-attempts` and `--reset-heartbeats` to clear state on resume. ## Reset {/* #reset */} -Reset clears an Activity's retry state and schedules a fresh execution. +Reset clears an Activity's retry state and schedules it to start again from attempt 1. ### When to Reset -- An Activity has exhausted most of its retries, and you want to give it a fresh set after fixing the underlying issue. +- An Activity has exhausted most of its retries, and you want to give it its full retries after fixing the underlying issue. - A Paused Activity needs to start clean after a configuration change or code deploy. -- You want to clear accumulated retry backoff and retry immediately instead of waiting for the next backoff interval. +- You want to retry immediately instead of waiting for the next backoff interval. - A batch of Activities failed due to a transient issue and you want to restart them all with staggered jitter. ### What happens when you Reset an Activity - **The attempt count resets to 1.** The Activity gets a full set of retry attempts regardless of how many it had used. - **Retry backoff is discarded.** If the Activity was in a backoff wait, it's rescheduled to run immediately. -- **If the Activity is Paused, Reset also Unpauses it.** Use `--keep-paused` to Reset the attempt count without resuming - execution. With `--keep-paused`, the attempt count and Heartbeat data (if `--reset-heartbeats`) are reset, but the - Activity stays Paused. No retry is scheduled until you [Unpause](#unpause) separately. +- **If the Activity is Paused, Reset also Unpauses it.** Use `--keep-paused` to Reset without Unpausing. + No attenpt will be scheduled until you [Unpause](#unpause) separately. - **Resetting an Activity doesn't affect the parent Workflow.** The Workflow continues Running, and Signals, Queries, and Updates on the parent Workflow are unaffected. - **Workflow code has no visibility into Activity Operations.** Reset doesn't produce an Event History event, so the Workflow can't detect or react to it. See [Observability](#observability). -- **[Heartbeating](/encyclopedia/detecting-activity-failures#activity-heartbeat) determines whether an in-flight - execution is interrupted:** - - **Activities with Heartbeat** are interrupted on their next Heartbeat. The SDK may raise a Reset-specific error so +- **[Heartbeating](/encyclopedia/detecting-activity-failures#activity-heartbeat) determines whether an interruption will + be sent to an in-flight execution:** + - For **Activities with Heartbeat** an interruption is sent on their next Heartbeat. The SDK raises a Reset-specific error so the Activity can clean up before exiting. The next execution starts at attempt 1. - **Activities without Heartbeat** continue running to completion. Reset doesn't cancel, interrupt, or schedule a - concurrent execution. If the Activity was already retrying, the Temporal Service rejects the current execution's - result because Reset changed the expected attempt number, and a fresh execution is scheduled after the - [Start-To-Close Timeout](/encyclopedia/detecting-activity-failures#start-to-close-timeout) expires. If it was on its - first execution, a successful result is still delivered to the Workflow normally. -- **Reset is idempotent.** Resetting an Activity that's already at attempt 1 with no backoff has no effect. Resetting a - completed Activity returns an error. + concurrent execution. If the Activity was running on the Worker, attempt 1 is scheduled to start after the attempt + finishes. If the attempt succeeds, the Reset request is ignored and the Activity completes successfully. +- **Reset is idempotent.** Resetting an Activity that's already at attempt 1 has no effect. If is is in its start delay period, + it still waits for this to end. Resetting a completed Activity returns an error. ### CLI usage @@ -230,8 +222,8 @@ See the [CLI reference for `temporal activity reset`](/cli/command-reference/act ### Detect Reset in Activity code -Activities with Heartbeat can detect that an interruption was caused by Reset rather than a timeout or Workflow -Cancellation. A Reset Activity is retried from attempt 1. A Cancelled Activity isn't. Your Activity code may need to +Activities with a Heartbeat can detect that an interruption was caused by Reset rather than by a timeout or Workflow +Cancellation. A Reset Activity will be retried from attempt 1. A Cancelled Activity won't be retried. Your Activity code may need to handle these cases differently, for example saving partial progress on Reset while discarding it on Cancellation. | SDK | How to detect Reset | @@ -252,11 +244,9 @@ handle these cases differently, for example saving partial progress on Reset whi want a clean restart, pass `--reset-heartbeats`. - **Reset won't interrupt an Activity that doesn't Heartbeat.** The current execution runs to completion, which could take up to the full [Start-To-Close Timeout](/encyclopedia/detecting-activity-failures#start-to-close-timeout). If the - Activity had already retried (attempt > 1), the Temporal Service rejects the current execution's result because Reset - changed the expected attempt number. The Activity waits for its Start-To-Close Timeout to expire before a new - execution is scheduled. -- **`--restore-original-options` restores the Activity's original configuration.** It reverts timeouts, Retry Policy, - and Task Queue to the values from when the Activity was first scheduled. + current attempt succeeds, the Activity completes successfully and the Reset request is ignored. +- **`--restore-original-options` restores the Activity's original configuration.** It reverts amy changes to timeouts, Retry Policy, + and Task Queue back to the values they had when the Activity was first scheduled. - **Bulk Reset can overwhelm downstream services.** When using `--query` to Reset Activities across many Workflows, use `--jitter` to stagger the restart times. @@ -280,12 +270,11 @@ You can change [timeouts](/encyclopedia/detecting-activity-failures) (Schedule-T Schedule-To-Start, Heartbeat), Retry Policy (initial interval, maximum interval, backoff coefficient, maximum attempts), and Task Queue. Only the fields you specify are changed. All other options remain unchanged. -- **If the Activity is waiting for retry (scheduled),** the new options take effect immediately. Any pending retry timer +- **If the Activity is waiting for its start delay or retry backoff (i.e. in scheduled state),** the new options take effect immediately. Any pending delay timer is regenerated with the updated configuration. -- **If the Activity is currently running,** the new options are stored but take effect on the next execution. The - in-flight execution isn't interrupted. -- **If the Activity is Paused,** the new options are stored immediately. They take effect when the Activity is Unpaused - and the next execution starts. +- **If the Activity is currently running,** the new options take effect on the next attempt. The + in-flight execution isn't interrupted or affected. +- **If the Activity is Paused,** the new options are stored immediately and will affect the next attempt on Unpause. - **Workflow code has no visibility into Activity Operations.** Update Options doesn't produce an Event History event, so the Workflow can't detect or react to it. See [Observability](#observability). @@ -306,8 +295,6 @@ options, including Retry Policy, Task Queue, and bulk mode via `--query`. ### Important considerations -- **Changes to a running Activity take effect on the next execution, not the current one.** If you need the change to - apply immediately, the Activity must finish or fail its current execution first. - **`--restore-original-options` is batch-only.** This flag only works with `--query`. It's silently ignored in single-workflow mode. It can't be combined with other option changes in the same command. From 4caf949813f0891144aacadf74e280eb4c1dc6b1 Mon Sep 17 00:00:00 2001 From: Sean Kane Date: Tue, 7 Jul 2026 11:45:16 -0600 Subject: [PATCH 03/96] additional documentation for reset heartbeats --- docs/cli/command-reference/activity.mdx | 10 ++----- .../activities/activity-operations.mdx | 28 ++++++++----------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/docs/cli/command-reference/activity.mdx b/docs/cli/command-reference/activity.mdx index 1512d372f5..ac40936404 100644 --- a/docs/cli/command-reference/activity.mdx +++ b/docs/cli/command-reference/activity.mdx @@ -236,8 +236,7 @@ Use the following options to change the behavior of this command. You can also u Reset an activity. Not supported for Standalone Activities. This restarts the activity as if it were first being scheduled. That is, it will reset both the number of attempts and the -activity timeout, as well as, optionally, the -[heartbeat details](#reset-heartbeats). +activity timeout, as well as the [heartbeat details](#reset-heartbeats). If the activity may be executing (i.e. it has not yet timed out), the reset will take effect the next time it fails, heartbeats, or times out. @@ -261,16 +260,15 @@ the next time they heartbeat after a reset. If, in your Activity, you need to do any cleanup when an Activity is reset, handle this error and then re-throw it when you've cleaned up. -If the `reset_heartbeats` flag is set, the heartbeat details will also be cleared. +Reset clears heartbeat details. Specify the Activity and Workflow IDs: ``` temporal activity reset \ --activity-id YourActivityId \ - --workflow-id YourWorkflowId + --workflow-id YourWorkflowId \ --keep-paused - --reset-heartbeats ``` Activities can be reset in bulk with a visibility query list filter: @@ -291,7 +289,6 @@ Use the following options to change the behavior of this command. You can also u | `--query`, `-q` | No | **string** Content for an SQL-like `QUERY` List Filter. You must set either --workflow-id or --query. Note: Using --query for batch activity operations is an experimental feature and may change in the future. | | `--reason` | No | **string** Reason for batch operation. Only use with --query. Defaults to user name. | | `--reset-attempts` | No | **bool** Reset the activity attempts. | -| `--reset-heartbeats` | No | **bool** Reset the Activity's heartbeats. | | `--restore-original-options` | No | **bool** Restore the original options of the activity. | | `--rps` | No | **float** Limit batch's requests per second. Only allowed if query is present. | | `--run-id`, `-r` | No | **string** Run ID. Only use with --workflow-id. Cannot use with --query. | @@ -525,4 +522,3 @@ The following options can be used with any command. | `--tls-key-data` | No | **string** Private certificate key data. Can't be used with --tls-key-path. | | | `--tls-key-path` | No | **string** Path to x509 private key. Can't be used with --tls-key-data. | | | `--tls-server-name` | No | **string** Override target TLS server name. | | - diff --git a/docs/encyclopedia/activities/activity-operations.mdx b/docs/encyclopedia/activities/activity-operations.mdx index be4df88a85..226c2971ce 100644 --- a/docs/encyclopedia/activities/activity-operations.mdx +++ b/docs/encyclopedia/activities/activity-operations.mdx @@ -188,7 +188,8 @@ Reset clears an Activity's retry state and schedules it to start again from atte - **The attempt count resets to 1.** The Activity gets a full set of retry attempts regardless of how many it had used. - **Retry backoff is discarded.** If the Activity was in a backoff wait, it's rescheduled to run immediately. - **If the Activity is Paused, Reset also Unpauses it.** Use `--keep-paused` to Reset without Unpausing. - No attenpt will be scheduled until you [Unpause](#unpause) separately. + With `--keep-paused`, the attempt count and Heartbeat data are reset, but the Activity stays Paused. No attempt is + scheduled until you [Unpause](#unpause) separately. - **Resetting an Activity doesn't affect the parent Workflow.** The Workflow continues Running, and Signals, Queries, and Updates on the parent Workflow are unaffected. - **Workflow code has no visibility into Activity Operations.** Reset doesn't produce an Event History event, so the @@ -200,8 +201,6 @@ Reset clears an Activity's retry state and schedules it to start again from atte - **Activities without Heartbeat** continue running to completion. Reset doesn't cancel, interrupt, or schedule a concurrent execution. If the Activity was running on the Worker, attempt 1 is scheduled to start after the attempt finishes. If the attempt succeeds, the Reset request is ignored and the Activity completes successfully. -- **Reset is idempotent.** Resetting an Activity that's already at attempt 1 has no effect. If is is in its start delay period, - it still waits for this to end. Resetting a completed Activity returns an error. ### CLI usage @@ -218,7 +217,7 @@ temporal activity reset \ ``` See the [CLI reference for `temporal activity reset`](/cli/command-reference/activity#reset) for all options, including -`--reset-heartbeats` and bulk mode via `--query`. +bulk mode via `--query`. ### Detect Reset in Activity code @@ -240,13 +239,13 @@ handle these cases differently, for example saving partial progress on Reset whi [Schedule-To-Close Timeout](/encyclopedia/detecting-activity-failures#schedule-to-close-timeout). The deadline is calculated from when the Activity was originally scheduled. Use [`update-options`](#update-options) to extend the timeout before or after Reset. -- **Heartbeat details are preserved by default.** If your Activity uses Heartbeat details for progress tracking and you - want a clean restart, pass `--reset-heartbeats`. +- **Heartbeat details are cleared.** If your Activity uses Heartbeat details for progress tracking, the next attempt + starts without those details after Reset. - **Reset won't interrupt an Activity that doesn't Heartbeat.** The current execution runs to completion, which could take up to the full [Start-To-Close Timeout](/encyclopedia/detecting-activity-failures#start-to-close-timeout). If the current attempt succeeds, the Activity completes successfully and the Reset request is ignored. -- **`--restore-original-options` restores the Activity's original configuration.** It reverts amy changes to timeouts, Retry Policy, - and Task Queue back to the values they had when the Activity was first scheduled. +- **`--restore-original-options` restores the Activity's original configuration.** It reverts any changes to timeouts, + Retry Policy, and Task Queue back to the values they had when the Activity was first scheduled. - **Bulk Reset can overwhelm downstream services.** When using `--query` to Reset Activities across many Workflows, use `--jitter` to stagger the restart times. @@ -457,14 +456,11 @@ Reset clears retry state and schedules, or requests, attempt 1 for a Standalone - After a reset dispatches a new attempt, the attempt's scheduled time reports the reset attempt's dispatch time, not the original first-attempt dispatch time. - Reset discards retry backoff, but it still respects any remaining Start Delay before the first Worker pickup. -- If `reset_heartbeat` is set: - - Reset clears stored heartbeat time and heartbeat details. - - If the Activity is non-running: - - Heartbeat state is cleared immediately. - - If the Activity is running: - - Heartbeat state is cleared when the reset is applied to the next attempt. -- If `reset_heartbeat` is not set: - - Heartbeat details are preserved. +- Reset clears stored heartbeat time and heartbeat details. +- If the Activity is non-running: + - Heartbeat state is cleared immediately. +- If the Activity is running: + - Heartbeat state is cleared when the reset is applied to the next attempt. - If `restore_original_options` is set: - Reset restores the options from when the Standalone Activity was created. - Reset can restore Task Queue, Schedule-To-Close Timeout, Schedule-To-Start Timeout, Start-To-Close Timeout, From 66d77dce3867b42c9b52ebb3f74ba46ea188524e Mon Sep 17 00:00:00 2001 From: Milecia McG <47196133+flippedcoder@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:07:05 -0500 Subject: [PATCH 04/96] docs(contributing): added section about how we handle page routing (#4806) * docs(contributing): added section about how we handle page routing * docs(contributing): added some details to the slug questions --------- Co-authored-by: Duncan Mackenzie --- CONTRIBUTING.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 679976ad91..ad0381780b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -134,6 +134,34 @@ The location of the source code is written just inside the wrappers. After you have edited the source code, then you can run `yarn snipsync` to update that code snippet. +# How page routing works + +Here is the hierarchy of how the canonical URLs work: + +1. Vercel redirects in `vercel.json` + - Old URL → destination URL, before Docusaurus page routing. + +2. Docusaurus route generation + - routeBasePath: `"/"` in docusaurus.config.js, so docs live at root, not `/docs/*`. + +3. Markdown front matter `slug` field + - Overrides the generated URL path for that doc page. + +4. File path fallback + - If no `slug` exists, URL comes from `docs//.mdx`. + +5. Sidebar hierarchy + - Controls nav placement only; it does not determine the canonical URL. + +We do not encourage the use of the `slug` field in the frontmatter for a page. This field will override the URL and could potentially cause issues with redirects and the sidebar nav. A `slug` is useful when you want the public URL to be independent of where the file lives in the repo. In most cases, you don't need one. + +If you are considering using a custom slug, answer these questions first: + +- Is this page going to be widely linked from blogs, GitHub issues, or other docs? +- Are you replacing an existing page? +- Did you already check the redirects in `vercel.json`? +- Is it in the page in a folder under the topic that makes the most sense? + # Local development command reference The following commands are available to aid in local development: From bc7a18d1b7c41757bec7335740619d5dadffb262 Mon Sep 17 00:00:00 2001 From: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Date: Tue, 7 Jul 2026 15:55:55 -0700 Subject: [PATCH 05/96] Fix Vale flagging MDX custom heading-ID comments as prose (#4833) Headings like '## Highly available Worker patterns {/* #ha-worker-patterns */}' were being scanned as prose, so kebab-case anchor slugs (e.g. 'ha-worker-patterns') tripped Temporal.terms whenever they happened to contain a lowercase Temporal term substring. This pattern is used in 315 files. Add a TokenIgnores rule to exclude MDX comment syntax ({/* ... */}) from both Temporal rules. --- .vale-ci.ini | 3 +++ vale/test/headings-good.md | 2 ++ vale/test/terms-bad.md | 2 ++ 3 files changed, 7 insertions(+) diff --git a/.vale-ci.ini b/.vale-ci.ini index 0ecef14e79..7ee2572aed 100644 --- a/.vale-ci.ini +++ b/.vale-ci.ini @@ -11,5 +11,8 @@ Temporal.complexwords = NO Temporal.programming = NO Temporal.WordList = NO +; ignore MDX custom heading-ID comments, e.g. {/* #ha-worker-patterns */} +TokenIgnores = (\{/\*[^\n]*?\*/\}) + [formats] mdx = md diff --git a/vale/test/headings-good.md b/vale/test/headings-good.md index bfe491b49a..59543cd477 100644 --- a/vale/test/headings-good.md +++ b/vale/test/headings-good.md @@ -41,3 +41,5 @@ ## Update a running Workflow ## Durable External Storage for large payloads + +## Highly available Worker patterns {/* #ha-worker-patterns */} diff --git a/vale/test/terms-bad.md b/vale/test/terms-bad.md index 23450c994a..4dbadd1d62 100644 --- a/vale/test/terms-bad.md +++ b/vale/test/terms-bad.md @@ -27,3 +27,5 @@ Use heartbeating to report activity progress. The codec server provides remote payload encoding. A child workflow execution inherits the parent close policy. + +## Highly available worker patterns {/* #ha-worker-patterns */} From 18259a7b613a65f74b148969c442076ea5c7845a Mon Sep 17 00:00:00 2001 From: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Date: Tue, 7 Jul 2026 16:12:18 -0700 Subject: [PATCH 06/96] fix(ci): disable noisy Temporal.terms rule in Vale CI (#4839) The term-capitalization substitution rule produces too many false positives to be a useful CI gate. Keep the CI ruleset limited to the high-confidence sentence-style heading check. The rule still runs in local/editor linting via .vale.ini. --- .vale-ci.ini | 5 ++++- vale/test/terms-bad.md | 31 ------------------------------- vale/test/terms-good.md | 29 ----------------------------- 3 files changed, 4 insertions(+), 61 deletions(-) delete mode 100644 vale/test/terms-bad.md delete mode 100644 vale/test/terms-good.md diff --git a/.vale-ci.ini b/.vale-ci.ini index 7ee2572aed..ae518dc8a2 100644 --- a/.vale-ci.ini +++ b/.vale-ci.ini @@ -5,11 +5,14 @@ MinAlertLevel = suggestion [*.{md,mdx}] BasedOnStyles = Temporal -; Only enable the two rules we want in CI +; Only enable the high-confidence rules we want in CI. +; Temporal.terms (term-capitalization substitution) is disabled here because +; it produces too many false positives to be useful as a CI gate. Temporal.badwords = NO Temporal.complexwords = NO Temporal.programming = NO Temporal.WordList = NO +Temporal.terms = NO ; ignore MDX custom heading-ID comments, e.g. {/* #ha-worker-patterns */} TokenIgnores = (\{/\*[^\n]*?\*/\}) diff --git a/vale/test/terms-bad.md b/vale/test/terms-bad.md deleted file mode 100644 index 4dbadd1d62..0000000000 --- a/vale/test/terms-bad.md +++ /dev/null @@ -1,31 +0,0 @@ -This page describes how to start a workflow execution. - -The activity definition specifies the function signature. - -Configure the retry policy for your activity. - -Use the temporal CLI to interact with namespaces. - -The event history records each state change. - -Set up a task queue for your worker. - -A signal lets you send data to a running workflow. - -Use a query to retrieve workflow state. - -The data converter handles serialization. - -grpc is the protocol used by temporal server. - -Configure search attributes for advanced visibility. - -A schedule triggers workflow executions on a recurring basis. - -Use heartbeating to report activity progress. - -The codec server provides remote payload encoding. - -A child workflow execution inherits the parent close policy. - -## Highly available worker patterns {/* #ha-worker-patterns */} diff --git a/vale/test/terms-good.md b/vale/test/terms-good.md deleted file mode 100644 index c0d6e988d6..0000000000 --- a/vale/test/terms-good.md +++ /dev/null @@ -1,29 +0,0 @@ -This page describes how to start a Workflow Execution. - -The Activity Definition specifies the function signature. - -Configure the Retry Policy for your Activity. - -Use the Temporal CLI to interact with Namespaces. - -The Event History records each state change. - -Set up a Task Queue for your Worker. - -A Signal lets you send data to a running Workflow. - -Use a Query to retrieve Workflow state. - -The Data Converter handles serialization. - -gRPC is the protocol used by Temporal Server. - -Configure Search Attributes for Advanced Visibility. - -A Schedule triggers Workflow Executions on a recurring basis. - -Use Heartbeating to report Activity progress. - -The Codec Server provides remote Payload encoding. - -A Child Workflow Execution inherits the Parent Close Policy. From f88eef9dfde3df2aca8cce8008961275288a1451 Mon Sep 17 00:00:00 2001 From: Duncan Mackenzie Date: Tue, 7 Jul 2026 16:18:01 -0700 Subject: [PATCH 07/96] feat(search): integrate Algolia insights tracking and refactor search components (#4840) - Replaced hardcoded Algolia credentials with constants. - Added `search-insights` dependency for enhanced search analytics. - Refactored search components to utilize insights tracking, including `trackSearchClick` and `trackNoResults` functions. - Updated `SearchResults` and `GroupedHits` components to handle insights events correctly. - Improved performance by memoizing search client instances and insights configuration. --- docusaurus.config.js | 7 +-- package.json | 1 + src/constants/algolia.js | 8 ++++ src/pages/search.tsx | 53 ++++++++++++++++------- src/theme/SearchBar/CustomSearchModal.tsx | 19 ++++++-- src/theme/SearchBar/GroupedHits.tsx | 5 ++- src/theme/SearchBar/Hit.tsx | 5 ++- src/theme/SearchBar/SearchResults.tsx | 22 +++++++--- src/theme/SearchBar/algoliaInsights.ts | 16 +++++++ src/theme/SearchBar/trackSearchEvent.ts | 32 ++++++++++++++ yarn.lock | 2 +- 11 files changed, 139 insertions(+), 31 deletions(-) create mode 100644 src/constants/algolia.js create mode 100644 src/theme/SearchBar/algoliaInsights.ts create mode 100644 src/theme/SearchBar/trackSearchEvent.ts diff --git a/docusaurus.config.js b/docusaurus.config.js index c7deb419ff..8537215b1e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,6 +1,7 @@ //@ts-check const FontPreloadPlugin = require('webpack-font-preload-plugin'); const { prismDarkTheme, prismLightTheme } = require('./src/prismThemes'); +const { ALGOLIA_APP_ID, ALGOLIA_SEARCH_API_KEY, ALGOLIA_INDEX_NAME } = require('./src/constants/algolia'); /** @type {import('@docusaurus/types').DocusaurusConfig} */ @@ -245,11 +246,11 @@ module.exports = async function createConfigAsync() { ], }, algolia: { - apiKey: '4a2fa646f476d7756a7cdc599b625bec', - indexName: 'temporal', + apiKey: ALGOLIA_SEARCH_API_KEY, + indexName: ALGOLIA_INDEX_NAME, externalUrlRegex: 'temporal\\.io', // contextualSearch: true, // Optional; if you have different version of docs etc (v1 and v2), doesn't display dup results - appId: 'T5D6KNJCQS', // Optional, if you run the DocSearch crawler on your own + appId: ALGOLIA_APP_ID, // Optional, if you run the DocSearch crawler on your own // algoliaOptions: {}, // Optional, if provided by Algolia searchPagePath: false, // Disable default search page - using custom implementation at src/pages/search.tsx insights: true, diff --git a/package.json b/package.json index 872054011f..571f5c816c 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "react-player": "^3.4.0", "rehype-katex": "7", "remark-math": "6", + "search-insights": "^2", "snipsync": "^1.12.0", "tar-fs": "^3.1.2", "uuid": "^14.0.0", diff --git a/src/constants/algolia.js b/src/constants/algolia.js new file mode 100644 index 0000000000..2433d5e809 --- /dev/null +++ b/src/constants/algolia.js @@ -0,0 +1,8 @@ +// Single source of truth for the Algolia app/index used by both the search +// UI (docusaurus.config.js theme config) and the client-side search-insights +// setup (src/theme/SearchBar/algoliaInsights.ts, src/pages/search.tsx). +module.exports = { + ALGOLIA_APP_ID: 'T5D6KNJCQS', + ALGOLIA_SEARCH_API_KEY: '4a2fa646f476d7756a7cdc599b625bec', + ALGOLIA_INDEX_NAME: 'temporal', +}; diff --git a/src/pages/search.tsx b/src/pages/search.tsx index f0ff2257cf..716f68bc3f 100644 --- a/src/pages/search.tsx +++ b/src/pages/search.tsx @@ -10,14 +10,18 @@ import { Configure, } from 'react-instantsearch'; import { liteClient as algoliasearch } from 'algoliasearch/lite'; +import aa from '../theme/SearchBar/algoliaInsights'; +import { trackSearchClick, trackNoResults } from '../theme/SearchBar/trackSearchEvent'; import { SDK_LANGUAGES, getInitialLanguageFilter, SDK_LANGUAGE_STORAGE_KEY } from '../theme/SearchBar/SDKLanguageFilter'; +import { ALGOLIA_APP_ID, ALGOLIA_SEARCH_API_KEY, ALGOLIA_INDEX_NAME } from '../constants/algolia'; import '../theme/SearchBar/styles.css'; -const ALGOLIA_APP_ID = 'T5D6KNJCQS'; -const ALGOLIA_API_KEY = '4a2fa646f476d7756a7cdc599b625bec'; -const ALGOLIA_INDEX_NAME = 'temporal'; +const searchClient = algoliasearch(ALGOLIA_APP_ID, ALGOLIA_SEARCH_API_KEY); -const searchClient = algoliasearch(ALGOLIA_APP_ID, ALGOLIA_API_KEY); +// Stable reference: an inline `{ insightsClient: aa }` object literal would be +// a new object on every render, which resets the insights middleware's +// dedup cache and re-fires "Hits Viewed" for results it already reported. +const INSIGHTS_CONFIG = { insightsClient: aa }; // Get the appropriate hierarchy attribute based on hit type function getHierarchyAttribute(hit: any): string { @@ -51,13 +55,14 @@ function getBreadcrumbPath(hit: any): string[] { return path; } -function SearchResultItem({ hit }: { hit: any }) { +function SearchResultItem({ hit, sendEvent }: { hit: any; sendEvent: (eventType: string, hit: any, eventName: string) => void }) { const history = useHistory(); const hierarchyAttr = getHierarchyAttribute(hit); const breadcrumbs = getBreadcrumbPath(hit); const handleClick = (e: React.MouseEvent) => { e.preventDefault(); + trackSearchClick(sendEvent, hit); const fullUrl = hit.url || hit.objectID; try { const url = new URL(fullUrl, window.location.origin); @@ -95,9 +100,26 @@ function SearchResultItem({ hit }: { hit: any }) { ); } -function SearchResultsList() { - const { items, isLastPage, showMore } = useInfiniteHits(); +// Gates mounting the actual hits widget behind a typed query: useInfiniteHits +// registers an insights-aware widget, and with `insights: true` on the tree +// that auto-fires a "Hits Viewed" event for whatever it renders — including +// the default browse results Algolia returns for an empty query. +function SearchResultsSection() { const { query } = useSearchBox(); + + if (!query) { + return ( +
+ Enter a search term to find documentation +
+ ); + } + + return ; +} + +function SearchResultsList({ query }: { query: string }) { + const { items, isLastPage, showMore, sendEvent } = useInfiniteHits(); const { nbHits } = useStats(); const sentinelRef = useRef(null); @@ -121,13 +143,11 @@ function SearchResultsList() { return () => observer.disconnect(); }, [isLastPage, showMore]); - if (!query) { - return ( -
- Enter a search term to find documentation -
- ); - } + useEffect(() => { + if (items.length === 0) { + trackNoResults(query); + } + }, [query, items.length]); if (items.length === 0) { return ( @@ -144,7 +164,7 @@ function SearchResultsList() {
{items.map((hit: any) => ( - + ))}
{/* Sentinel element for infinite scroll */} @@ -288,6 +308,7 @@ function SearchPageContent() { - + ); diff --git a/src/theme/SearchBar/CustomSearchModal.tsx b/src/theme/SearchBar/CustomSearchModal.tsx index 1d41ee8d61..d4dcd5e1c9 100644 --- a/src/theme/SearchBar/CustomSearchModal.tsx +++ b/src/theme/SearchBar/CustomSearchModal.tsx @@ -1,16 +1,22 @@ -import React, { useCallback, useEffect, useRef, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { InstantSearch, SearchBox, Configure, } from 'react-instantsearch'; import { liteClient as algoliasearch } from 'algoliasearch/lite'; +import aa from './algoliaInsights'; import { ClearButton } from './ClearButton'; import { LanguageFilter } from './LanguageFilter'; import { SearchResults } from './SearchResults'; import { SearchFooter } from './SearchFooter'; import { SDK_LANGUAGES } from './SDKLanguageFilter'; +// Stable reference: an inline `{ insightsClient: aa }` object literal would be +// a new object on every render, which resets the insights middleware's +// dedup cache and re-fires "Hits Viewed" for results it already reported. +const INSIGHTS_CONFIG = { insightsClient: aa }; + interface CustomSearchModalProps { appId: string; apiKey: string; @@ -28,7 +34,10 @@ export function CustomSearchModal({ selectedLanguages, onLanguageChange, }: CustomSearchModalProps) { - const searchClient = algoliasearch(appId, apiKey); + // Memoized: an unmemoized client is a new instance every render, which + // made InstantSearch re-search and re-fire insights events on nearly + // every state change in this component (e.g. every keystroke). + const searchClient = useMemo(() => algoliasearch(appId, apiKey), [appId, apiKey]); const [selectedIndex, setSelectedIndex] = useState(-1); const [resultCount, setResultCount] = useState(0); const [isFilterCollapsed, setIsFilterCollapsed] = useState(false); @@ -183,7 +192,11 @@ export function CustomSearchModal({ aria-modal="true" aria-label="Search documentation" > - + { @@ -74,6 +74,7 @@ export function GroupedHits({ selectedIndex, onNavigate }: GroupedHitsProps) { isSelected={hitIndex++ === selectedIndex} onNavigate={onNavigate} isAnchor={false} + sendEvent={sendEvent} /> )} {/* If no page hit, render first anchor as page-level item */} @@ -84,6 +85,7 @@ export function GroupedHits({ selectedIndex, onNavigate }: GroupedHitsProps) { isSelected={hitIndex++ === selectedIndex} onNavigate={onNavigate} isAnchor={false} + sendEvent={sendEvent} /> )} {/* Render remaining anchor hits as tree children */} @@ -96,6 +98,7 @@ export function GroupedHits({ selectedIndex, onNavigate }: GroupedHitsProps) { isAnchor={true} isLastAnchor={anchorIndex === remainingAnchors.length - 1} parentTitle={pageTitle} + sendEvent={sendEvent} /> ))} diff --git a/src/theme/SearchBar/Hit.tsx b/src/theme/SearchBar/Hit.tsx index d9e26d8ca2..748df26956 100644 --- a/src/theme/SearchBar/Hit.tsx +++ b/src/theme/SearchBar/Hit.tsx @@ -2,6 +2,7 @@ import React, { useEffect, useRef } from 'react'; import { Highlight, Snippet } from 'react-instantsearch'; import { useHistory } from '@docusaurus/router'; import { PageIcon, AnchorIcon, TreeBranch } from './Icons'; +import { trackSearchClick } from './trackSearchEvent'; interface HitProps { hit: any; @@ -10,6 +11,7 @@ interface HitProps { isAnchor?: boolean; isLastAnchor?: boolean; parentTitle?: string; + sendEvent: (eventType: string, hit: any, eventName: string) => void; } // Get the appropriate hierarchy attribute based on hit type @@ -28,7 +30,7 @@ function getHierarchyAttribute(hit: any): string { return 'hierarchy.lvl1'; } -export function Hit({ hit, isSelected, onNavigate, isAnchor, isLastAnchor, parentTitle }: HitProps) { +export function Hit({ hit, isSelected, onNavigate, isAnchor, isLastAnchor, parentTitle, sendEvent }: HitProps) { const history = useHistory(); const hitRef = useRef(null); @@ -36,6 +38,7 @@ export function Hit({ hit, isSelected, onNavigate, isAnchor, isLastAnchor, paren const handleClick = (e: React.MouseEvent) => { e.preventDefault(); + trackSearchClick(sendEvent, hit); const fullUrl = hit.url || hit.objectID; try { const url = new URL(fullUrl, window.location.origin); diff --git a/src/theme/SearchBar/SearchResults.tsx b/src/theme/SearchBar/SearchResults.tsx index 9814740457..cb49d26574 100644 --- a/src/theme/SearchBar/SearchResults.tsx +++ b/src/theme/SearchBar/SearchResults.tsx @@ -1,7 +1,8 @@ import React, { useEffect } from 'react'; -import { useHits, useSearchBox, useStats } from 'react-instantsearch'; +import { useSearchBox, useStats } from 'react-instantsearch'; import { GroupedHits } from './GroupedHits'; import AskAIButton from './AskAIButton'; +import { trackNoResults } from './trackSearchEvent'; interface SearchResultsProps { onClose: () => void; @@ -10,14 +11,23 @@ interface SearchResultsProps { } export function SearchResults({ onClose, selectedIndex, onResultsChange }: SearchResultsProps) { - const { items } = useHits(); + // Read counts from useStats rather than useHits: useHits registers its own + // insights-aware widget, and with `insights: true` on the tree that means + // an extra automatic "Hits Viewed" event on top of GroupedHits' own. This + // component only needs the count, not the hits themselves. const { query } = useSearchBox(); const { nbHits } = useStats(); // Notify parent when results change useEffect(() => { - onResultsChange(items.length); - }, [items.length, onResultsChange]); + onResultsChange(nbHits); + }, [nbHits, onResultsChange]); + + useEffect(() => { + if (query && nbHits === 0) { + trackNoResults(query); + } + }, [query, nbHits]); const handleSeeAllResults = () => { onClose(); @@ -27,12 +37,12 @@ export function SearchResults({ onClose, selectedIndex, onResultsChange }: Searc return (
{query && } - {items.length === 0 && query && ( + {nbHits === 0 && query && (
No results found for "{query}"
)} - {query && items.length > 0 && ( + {query && nbHits > 0 && ( ); -} \ No newline at end of file +} diff --git a/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.module.css b/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.module.css index 0ace8e0466..ccbe5ac9bd 100644 --- a/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.module.css +++ b/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.module.css @@ -89,6 +89,29 @@ margin-top: 10px; } +.languageLink { + display: flex; + line-height: 0; + border-radius: 4px; + transition: opacity 0.15s ease; +} + +.languageLink:hover { + opacity: 0.85; +} + +.languageLink:focus-visible { + outline: 2px solid var(--release-note-border); + outline-offset: 2px; +} + +.languageStatic { + display: flex; + line-height: 0; + pointer-events: none; + cursor: default; +} + .supportedLanguages { display: flex; align-items: center; From 2cb05fad06e2e7ae74a4c7880a9f3c78cb665f1a Mon Sep 17 00:00:00 2001 From: Duncan Mackenzie Date: Fri, 10 Jul 2026 13:50:40 -0700 Subject: [PATCH 27/96] fix(ReleaseNoteHeader): avoid invalid nested

in release note banner (#4862) MDX wraps block-position children in their own

, which combined with the component's

wrapper produced

...

. This is invalid HTML (a

cannot contain another

), causing SWC's HTML minifier to emit "No p element in scope but a p end tag seen" diagnostics on 23 pages during build. Rendering the wrapper as a

instead preserves styling (still targeted via the same CSS class) while fixing the markup. --- src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.js b/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.js index f6b1029b8d..02322ad041 100644 --- a/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.js +++ b/src/components/info/ReleaseNoteHeader/ReleaseNoteHeader.js @@ -130,7 +130,7 @@ export default function ReleaseNoteHeader({
)} -

+

); From 21ab1d7cd078522a78cb59a6e28963ba67c9c05d Mon Sep 17 00:00:00 2001 From: Alex Stanfield <13949480+chaptersix@users.noreply.github.com> Date: Fri, 10 Jul 2026 16:34:42 -0500 Subject: [PATCH 28/96] ci: preserve hand-maintained CLI command-reference index pages on regen (#4836) * ci: validate generated CLI docs with a Docusaurus build The CLI command reference is auto-generated MDX. MDX is stricter than plain Markdown: bare angle-bracket placeholders, JSON-in-braces, and broken anchors can compile locally yet fail the site build. Nothing verified the generated output before it landed, so breakage only surfaced downstream. Add a real Docusaurus build as the ground-truth check: - The "CLI Docs Update" workflow now builds the site after regenerating the command reference and before opening its PR, so broken generated docs never become a PR. Because the site sets onBrokenLinks and onBrokenAnchors to 'throw', this also catches broken anchors and links. - A new "Validate CLI Docs Build" workflow runs the same build on any PR that touches docs/cli/**, gating hand edits and the auto-generated PR. Also preserve the hand-maintained command-reference index.mdx landing pages (custom ordering, ReleaseNoteHeader component) across regeneration: gen-docs no longer emits them, so restore them after the rm -rf that refreshes the generated command pages. * ci: drop redundant CLI-docs build gate; rely on required Vercel check The Vercel preview build is the required check on every PR, so it already compiles the generated CLI MDX (and fails on broken links/anchors) once a PR is opened. The extra `yarn build` step in this workflow was therefore redundant, and worse, it ran before the PR was created: if it failed, no PR would open and the failure would only surface in Actions run history that nobody watches. Remove that pre-PR build (and its Node setup / install steps) and the standalone validate-cli-docs-build.yml workflow. Keep the copy + index restore, which is the part that's actually needed alongside the gen-docs change that stops emitting the hand-maintained index pages. * ci: use cp -R (POSIX-standard recursive flag) in CLI docs copy --------- Co-authored-by: Lenny Chen <55669665+lennessyy@users.noreply.github.com> --- .github/workflows/update-cli-docs.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update-cli-docs.yml b/.github/workflows/update-cli-docs.yml index 84babfd552..b67a8278d6 100644 --- a/.github/workflows/update-cli-docs.yml +++ b/.github/workflows/update-cli-docs.yml @@ -77,6 +77,24 @@ jobs: go run ./cmd/gen-docs -input internal/temporalcli/commands.yaml -input cliext/option-sets.yaml -output dist/docs go run ./cmd/gen-docs -input ../cloud-cli/temporalcloudcli/commands.yml -output dist/docs -subdir cloud + - name: Copy generated command reference into the docs repo + working-directory: docs + run: | + set -ex + + # Regenerate the command reference pages. cp -R preserves the cloud/ + # subdirectory produced by -subdir. + rm -rf docs/cli/command-reference + mkdir -p docs/cli/command-reference + cp -R ../cli/dist/docs/* docs/cli/command-reference/ + + # gen-docs intentionally does not emit index.mdx landing pages: those + # are hand-maintained (custom ordering, embedded components such as + # ReleaseNoteHeader). Restore them after regeneration so they are not + # lost by the rm -rf above. + git checkout HEAD -- docs/cli/command-reference/index.mdx + git checkout HEAD -- docs/cli/command-reference/cloud/index.mdx + - name: Publish generated docs to documentation repo env: GH_TOKEN: ${{ github.token }} @@ -93,10 +111,7 @@ jobs: branch_name="update-cli-docs-$CLI_RELEASE_TAG" git checkout -b "$branch_name" - rm -rf docs/cli/command-reference - mkdir -p docs/cli/command-reference - cp -r ../cli/dist/docs/* docs/cli/command-reference/ - git add . + git add -A docs/cli/command-reference git commit -m "$COMMIT_MESSAGE" git push origin "$branch_name" From 219be171ba3c9869bdad8a942a28ae410678d153 Mon Sep 17 00:00:00 2001 From: "temporal-cicd[bot]" <138905749+temporal-cicd[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 21:50:41 +0000 Subject: [PATCH 29/96] chore: sync code snippets via snipsync (#4856) Co-authored-by: github-actions[bot] --- docs/encyclopedia/nexus/standalone-nexus-operation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/encyclopedia/nexus/standalone-nexus-operation.mdx b/docs/encyclopedia/nexus/standalone-nexus-operation.mdx index 58dbba56de..7f6d28a6c4 100644 --- a/docs/encyclopedia/nexus/standalone-nexus-operation.mdx +++ b/docs/encyclopedia/nexus/standalone-nexus-operation.mdx @@ -138,4 +138,4 @@ The Nexus Endpoint must already exist on the server — create it with ## Temporal Cloud support -Standalone Nexus Operations in Temporal Cloud is available as a Pre-release feature. \ No newline at end of file +Standalone Nexus Operations in Temporal Cloud is available as a Pre-release feature. From 195f0718a75687f7277739950baae84d9e10b1b4 Mon Sep 17 00:00:00 2001 From: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Date: Fri, 10 Jul 2026 14:53:20 -0700 Subject: [PATCH 30/96] docs: Clarify Lambda IAM permissions and CloudWatch Logs requirement (#4853) * Clarify IAM permissions needed for Lambda invocation and logging The invocation role text only called out lambda:InvokeFunction even though the CloudFormation template also grants lambda:GetFunction, which caused an AccessDenied error for users who set up the role by hand. Also note that CloudWatch Logs for the Worker require the Lambda execution role to have logging permissions. * Drop specific permission names from invocation role summary Naming lambda:InvokeFunction and lambda:GetFunction read as an exhaustive list. Keep the summary brief and point to the template for the actual permissions. --- .../serverless-workers/aws-lambda.mdx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx b/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx index 3d93925f4d..9e1e301783 100644 --- a/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx +++ b/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx @@ -382,12 +382,14 @@ This section applies to Temporal Cloud. For self-hosted Temporal Service deploym [Self-hosted setup](/production-deployment/worker-deployments/serverless-workers/self-hosted-setup#create-invocation-role) for IAM configuration with a different CloudFormation template. -Temporal needs permission to invoke your Lambda function. The Temporal server assumes an IAM role in your AWS account to -call `lambda:InvokeFunction`. The trust policy on the role includes an External ID condition to prevent +Temporal needs permission to invoke your Lambda function and check its status. The Temporal server assumes an IAM role in +your AWS account with a handful of Lambda permissions scoped to your Worker functions. The trust policy on the role +includes an External ID condition to prevent [confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) attacks. -Deploy the following CloudFormation template to create the invocation role and its permissions. -[Download the template](/files/temporal-cloud-serverless-worker-role.yaml). +Deploy the following CloudFormation template to create the invocation role with these permissions. +[Download the template](/files/temporal-cloud-serverless-worker-role.yaml). See the template details below for the exact +permissions granted. | Parameter | Description | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -629,7 +631,10 @@ You can verify the invocation by checking: - **Temporal UI:** The Workflow execution should show task completions in the event history. - **AWS CloudWatch Logs:** The Lambda function's log group (`/aws/lambda/my-temporal-worker`) should show invocation - logs with the Worker startup, task processing, and graceful shutdown. + logs with the Worker startup, task processing, and graceful shutdown. This requires the Lambda execution role from + [Step 2](#deploy-lambda-function) to have CloudWatch Logs permissions, included in the + [`AWSLambdaBasicExecutionRole`](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaBasicExecutionRole.html) + managed policy. If the Workflow does not progress or the Lambda is not invoked, see [Troubleshoot Serverless Workers](/troubleshooting/serverless-workers). From 2b0c916b2888e006ab1047d40430689d82908418 Mon Sep 17 00:00:00 2001 From: "temporal-documentation-publisher[bot]" <280093053+temporal-documentation-publisher[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 16:01:27 -0700 Subject: [PATCH 31/96] Update stable IP ranges (#4865) Co-authored-by: Temporal Infra Bot --- static/json/stable-ip-ranges-prod.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/json/stable-ip-ranges-prod.json b/static/json/stable-ip-ranges-prod.json index 63467035f0..8db0824e32 100644 --- a/static/json/stable-ip-ranges-prod.json +++ b/static/json/stable-ip-ranges-prod.json @@ -1 +1 @@ -{"all_stable_ip_ranges":["3.11.57.39/32","3.20.81.213/32","3.34.120.102/32","3.35.213.140/32","3.37.167.175/32","3.66.152.155/32","3.98.244.3/32","3.123.161.195/32","3.123.192.153/32","3.125.88.105/32","3.128.82.233/32","3.150.10.54/32","3.216.21.43/32","8.229.188.167/32","13.58.180.63/32","13.114.69.37/32","13.134.161.151/32","13.192.13.4/32","13.192.122.117/32","13.193.169.37/32","13.203.166.198/32","13.204.104.167/32","13.205.11.104/32","13.205.230.215/32","13.206.103.247/32","13.209.240.110/32","13.215.233.197/32","13.230.7.109/32","15.135.102.252/32","15.135.181.158/32","15.157.30.163/32","15.157.229.35/32","15.164.92.169/32","15.165.72.130/32","15.165.179.158/32","15.207.64.5/32","15.229.75.67/32","16.112.169.193/32","16.112.184.159/32","16.112.198.98/32","16.112.215.141/32","18.133.92.89/32","18.168.60.8/32","18.170.80.131/32","18.219.86.1/32","18.221.38.237/32","32.194.207.160/32","34.58.167.213/32","34.180.53.76/32","34.185.162.79/32","34.198.4.178/32","34.199.198.243/32","34.202.71.47/32","34.206.215.208/32","34.212.194.183/32","35.75.225.197/32","35.156.125.11/32","35.163.216.43/32","35.163.228.72/32","35.171.215.254/32","35.183.53.239/32","40.192.48.28/32","40.192.113.144/32","43.202.249.213/32","44.193.134.243/32","44.207.253.172/32","44.229.182.70/32","44.231.94.203/32","47.130.130.11/32","47.131.209.120/32","52.30.17.45/32","52.36.148.35/32","52.49.66.61/32","52.56.178.151/32","52.60.217.5/32","52.62.160.246/32","52.74.184.100/32","52.88.74.85/32","52.213.95.28/32","52.220.146.121/32","52.221.47.166/32","54.66.61.8/32","54.87.170.60/32","54.155.17.143/32","54.155.184.148/32","54.207.149.54/32","54.217.87.237/32","54.232.113.230/32","54.253.46.221/32","54.253.159.232/32","56.125.154.35/32","56.126.131.167/32","56.126.134.210/32","63.183.222.190/32","98.86.42.241/32","98.90.162.174/32","99.79.0.57/32","100.23.223.2/32","136.107.181.45/32"],"clouds":{"aws":{"regions":{"ap-northeast-1":{"stable_ip_ranges":["13.114.69.37/32","13.192.13.4/32","13.192.122.117/32","13.193.169.37/32","13.230.7.109/32","35.75.225.197/32"]},"ap-northeast-2":{"stable_ip_ranges":["3.34.120.102/32","3.35.213.140/32","3.37.167.175/32","13.209.240.110/32","15.164.92.169/32","15.165.72.130/32","15.165.179.158/32","43.202.249.213/32"]},"ap-south-1":{"stable_ip_ranges":["13.203.166.198/32","13.204.104.167/32","13.205.11.104/32","13.205.230.215/32","13.206.103.247/32","15.207.64.5/32"]},"ap-south-2":{"stable_ip_ranges":["16.112.169.193/32","16.112.184.159/32","16.112.198.98/32","16.112.215.141/32","40.192.48.28/32","40.192.113.144/32"]},"ap-southeast-1":{"stable_ip_ranges":["13.215.233.197/32","47.130.130.11/32","47.131.209.120/32","52.74.184.100/32","52.220.146.121/32","52.221.47.166/32"]},"ap-southeast-2":{"stable_ip_ranges":["15.135.102.252/32","15.135.181.158/32","52.62.160.246/32","54.66.61.8/32","54.253.46.221/32","54.253.159.232/32"]},"ca-central-1":{"stable_ip_ranges":["3.98.244.3/32","15.157.30.163/32","15.157.229.35/32","35.183.53.239/32","52.60.217.5/32","99.79.0.57/32"]},"eu-central-1":{"stable_ip_ranges":["3.66.152.155/32","3.123.161.195/32","3.123.192.153/32","3.125.88.105/32","35.156.125.11/32","63.183.222.190/32"]},"eu-west-1":{"stable_ip_ranges":["52.30.17.45/32","52.49.66.61/32","52.213.95.28/32","54.155.17.143/32","54.155.184.148/32","54.217.87.237/32"]},"eu-west-2":{"stable_ip_ranges":["3.11.57.39/32","13.134.161.151/32","18.133.92.89/32","18.168.60.8/32","18.170.80.131/32","52.56.178.151/32"]},"sa-east-1":{"stable_ip_ranges":["15.229.75.67/32","54.207.149.54/32","54.232.113.230/32","56.125.154.35/32","56.126.131.167/32","56.126.134.210/32"]},"us-east-1":{"stable_ip_ranges":["3.216.21.43/32","32.194.207.160/32","34.198.4.178/32","34.199.198.243/32","34.202.71.47/32","34.206.215.208/32","35.171.215.254/32","44.193.134.243/32","44.207.253.172/32","54.87.170.60/32","98.86.42.241/32","98.90.162.174/32"]},"us-east-2":{"stable_ip_ranges":["3.20.81.213/32","3.128.82.233/32","3.150.10.54/32","13.58.180.63/32","18.219.86.1/32","18.221.38.237/32"]},"us-west-2":{"stable_ip_ranges":["34.212.194.183/32","35.163.216.43/32","35.163.228.72/32","44.229.182.70/32","44.231.94.203/32","52.36.148.35/32","52.88.74.85/32","100.23.223.2/32"]}}},"gcp":{"regions":{"asia-south1":{"stable_ip_ranges":["34.180.53.76/32"]},"europe-west3":{"stable_ip_ranges":["34.185.162.79/32"]},"us-central1":{"stable_ip_ranges":["34.58.167.213/32"]},"us-east4":{"stable_ip_ranges":["136.107.181.45/32"]},"us-west1":{"stable_ip_ranges":["8.229.188.167/32"]}}}}} +{"all_stable_ip_ranges":["3.11.57.39/32","3.20.81.213/32","3.34.120.102/32","3.35.213.140/32","3.37.167.175/32","3.66.152.155/32","3.98.244.3/32","3.123.161.195/32","3.123.192.153/32","3.125.88.105/32","3.128.82.233/32","3.150.10.54/32","3.216.21.43/32","8.229.188.167/32","13.58.180.63/32","13.114.69.37/32","13.134.161.151/32","13.192.13.4/32","13.192.122.117/32","13.193.169.37/32","13.203.166.198/32","13.204.104.167/32","13.205.11.104/32","13.205.230.215/32","13.206.103.247/32","13.209.240.110/32","13.215.233.197/32","13.230.7.109/32","15.135.102.252/32","15.135.181.158/32","15.157.30.163/32","15.157.229.35/32","15.164.92.169/32","15.165.72.130/32","15.165.179.158/32","15.207.64.5/32","15.229.75.67/32","16.112.169.193/32","16.112.184.159/32","16.112.198.98/32","16.112.215.141/32","18.133.92.89/32","18.168.60.8/32","18.170.80.131/32","18.219.86.1/32","18.221.38.237/32","32.194.207.160/32","34.58.167.213/32","34.101.183.89/32","34.180.53.76/32","34.185.162.79/32","34.198.4.178/32","34.199.198.243/32","34.202.71.47/32","34.206.215.208/32","34.212.194.183/32","35.75.225.197/32","35.156.125.11/32","35.163.216.43/32","35.163.228.72/32","35.171.215.254/32","35.183.53.239/32","40.192.48.28/32","40.192.113.144/32","43.202.249.213/32","44.193.134.243/32","44.207.253.172/32","44.229.182.70/32","44.231.94.203/32","47.130.130.11/32","47.131.209.120/32","52.30.17.45/32","52.36.148.35/32","52.49.66.61/32","52.56.178.151/32","52.60.217.5/32","52.62.160.246/32","52.74.184.100/32","52.88.74.85/32","52.213.95.28/32","52.220.146.121/32","52.221.47.166/32","54.66.61.8/32","54.87.170.60/32","54.155.17.143/32","54.155.184.148/32","54.207.149.54/32","54.217.87.237/32","54.232.113.230/32","54.253.46.221/32","54.253.159.232/32","56.125.154.35/32","56.126.131.167/32","56.126.134.210/32","63.183.222.190/32","98.86.42.241/32","98.90.162.174/32","99.79.0.57/32","100.23.223.2/32","136.107.181.45/32"],"clouds":{"aws":{"regions":{"ap-northeast-1":{"stable_ip_ranges":["13.114.69.37/32","13.192.13.4/32","13.192.122.117/32","13.193.169.37/32","13.230.7.109/32","35.75.225.197/32"]},"ap-northeast-2":{"stable_ip_ranges":["3.34.120.102/32","3.35.213.140/32","3.37.167.175/32","13.209.240.110/32","15.164.92.169/32","15.165.72.130/32","15.165.179.158/32","43.202.249.213/32"]},"ap-south-1":{"stable_ip_ranges":["13.203.166.198/32","13.204.104.167/32","13.205.11.104/32","13.205.230.215/32","13.206.103.247/32","15.207.64.5/32"]},"ap-south-2":{"stable_ip_ranges":["16.112.169.193/32","16.112.184.159/32","16.112.198.98/32","16.112.215.141/32","40.192.48.28/32","40.192.113.144/32"]},"ap-southeast-1":{"stable_ip_ranges":["13.215.233.197/32","47.130.130.11/32","47.131.209.120/32","52.74.184.100/32","52.220.146.121/32","52.221.47.166/32"]},"ap-southeast-2":{"stable_ip_ranges":["15.135.102.252/32","15.135.181.158/32","52.62.160.246/32","54.66.61.8/32","54.253.46.221/32","54.253.159.232/32"]},"ca-central-1":{"stable_ip_ranges":["3.98.244.3/32","15.157.30.163/32","15.157.229.35/32","35.183.53.239/32","52.60.217.5/32","99.79.0.57/32"]},"eu-central-1":{"stable_ip_ranges":["3.66.152.155/32","3.123.161.195/32","3.123.192.153/32","3.125.88.105/32","35.156.125.11/32","63.183.222.190/32"]},"eu-west-1":{"stable_ip_ranges":["52.30.17.45/32","52.49.66.61/32","52.213.95.28/32","54.155.17.143/32","54.155.184.148/32","54.217.87.237/32"]},"eu-west-2":{"stable_ip_ranges":["3.11.57.39/32","13.134.161.151/32","18.133.92.89/32","18.168.60.8/32","18.170.80.131/32","52.56.178.151/32"]},"sa-east-1":{"stable_ip_ranges":["15.229.75.67/32","54.207.149.54/32","54.232.113.230/32","56.125.154.35/32","56.126.131.167/32","56.126.134.210/32"]},"us-east-1":{"stable_ip_ranges":["3.216.21.43/32","32.194.207.160/32","34.198.4.178/32","34.199.198.243/32","34.202.71.47/32","34.206.215.208/32","35.171.215.254/32","44.193.134.243/32","44.207.253.172/32","54.87.170.60/32","98.86.42.241/32","98.90.162.174/32"]},"us-east-2":{"stable_ip_ranges":["3.20.81.213/32","3.128.82.233/32","3.150.10.54/32","13.58.180.63/32","18.219.86.1/32","18.221.38.237/32"]},"us-west-2":{"stable_ip_ranges":["34.212.194.183/32","35.163.216.43/32","35.163.228.72/32","44.229.182.70/32","44.231.94.203/32","52.36.148.35/32","52.88.74.85/32","100.23.223.2/32"]}}},"gcp":{"regions":{"asia-south1":{"stable_ip_ranges":["34.180.53.76/32"]},"asia-southeast2":{"stable_ip_ranges":["34.101.183.89/32"]},"europe-west3":{"stable_ip_ranges":["34.185.162.79/32"]},"us-central1":{"stable_ip_ranges":["34.58.167.213/32"]},"us-east4":{"stable_ip_ranges":["136.107.181.45/32"]},"us-west1":{"stable_ip_ranges":["8.229.188.167/32"]}}}}} From 350dcfdbc8b9edc486606251ecb404c56c91b266 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 07:57:48 -0500 Subject: [PATCH 32/96] chore(deps): bump uuid from 14.0.0 to 14.0.1 (#4870) Bumps [uuid](https://github.com/uuidjs/uuid) from 14.0.0 to 14.0.1. - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v14.0.0...v14.0.1) --- updated-dependencies: - dependency-name: uuid dependency-version: 14.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c4925c94d8..1cc44effe7 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "search-insights": "^2", "snipsync": "^1.12.0", "tar-fs": "^3.1.2", - "uuid": "^14.0.0", + "uuid": "^14.0.1", "wait-on": "^9.0.10", "webpack-font-preload-plugin": "^1.5.0", "yaml": "^2.9.0" diff --git a/yarn.lock b/yarn.lock index 482ab879e6..d6c9356a21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14185,10 +14185,10 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -"uuid@^11.1.0 || ^12 || ^13 || ^14.0.0", uuid@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.0.tgz#0af883220163d264ffe0c084f6b8a89b9666966d" - integrity sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg== +"uuid@^11.1.0 || ^12 || ^13 || ^14.0.0", uuid@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.1.tgz#8a5975b3e038902bfd169a10b5202f5ec0cf3faf" + integrity sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew== uuid@^3.3.2: version "3.4.0" From 80c238dc1a1210a00cb2bfb929c572dbfc4ce57d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 08:05:34 -0500 Subject: [PATCH 33/96] chore(deps-dev): bump @types/node from 25.9.3 to 26.0.0 (#4823) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.9.3 to 26.0.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 26.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 1cc44effe7..bf5908e900 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ }, "devDependencies": { "@playwright/test": "^1.61.0", - "@types/node": "^25.9.3", + "@types/node": "^26.0.0", "@types/yaml": "^1.9.7", "dprint": "^0.54.0", "eslint": "^9.8.0", diff --git a/yarn.lock b/yarn.lock index d6c9356a21..e7b912da9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3970,12 +3970,12 @@ resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== -"@types/node@*", "@types/node@^25.9.3": - version "25.9.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.3.tgz#11dfe7a33e68fa5c560f0aa76cc5595621ef26b9" - integrity sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg== +"@types/node@*", "@types/node@^26.0.0": + version "26.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.0.0.tgz#d4aece9e9412e9f2008d59bc2d74f5279316b665" + integrity sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA== dependencies: - undici-types ">=7.24.0 <7.24.7" + undici-types "~8.3.0" "@types/node@^17.0.5": version "17.0.45" @@ -13943,10 +13943,10 @@ underscore@^1.8.3: resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz" integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== -"undici-types@>=7.24.0 <7.24.7": - version "7.24.6" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91" - integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== +undici-types@~8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" + integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" From 549d49e40f06e0f8b466f94ff8f97e8beee8f213 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 08:08:24 -0500 Subject: [PATCH 34/96] chore(deps-dev): bump @playwright/test from 1.61.0 to 1.61.1 (#4869) Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.61.0 to 1.61.1. - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.61.0...v1.61.1) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-version: 1.61.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- yarn.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index e7b912da9a..11a5c616fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3035,12 +3035,12 @@ tslib "^2.8.1" tsyringe "^4.10.0" -"@playwright/test@^1.61.0": - version "1.61.0" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.61.0.tgz#dcc3d43e581aab2985d70413309d89350e980ad8" - integrity sha512-cKA5B6lpFEMyMGjxF54QihfYpB4FkEGH+qZhtArDEG+wezQAJY8Pq6C7T1SjWz+FFzt3TbyoXBQYk/0292TdJA== +"@playwright/test@^1.61.1": + version "1.61.1" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.61.1.tgz#48568dc22af7819e55fa5e8e3bc79b7e6a3e6675" + integrity sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig== dependencies: - playwright "1.61.0" + playwright "1.61.1" "@pnpm/config.env-replace@^1.1.0": version "1.1.0" @@ -11135,17 +11135,17 @@ player.style@^0.3.0: dependencies: media-chrome "~4.19.0" -playwright-core@1.61.0: - version "1.61.0" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.61.0.tgz#caf8078b2a39cd7738dc75ec11cb3b47f385c3f0" - integrity sha512-caX7TrY3Ml6egyDX0WUcTHDxodl/b51y5wJOdCEA36QviK/s2g081hvmGs8eaE3DWb6NYZQ6BjO/QkNRPenoPA== +playwright-core@1.61.1: + version "1.61.1" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.61.1.tgz#3c99841307efbbabc9d724c41a88c914705d15fc" + integrity sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg== -playwright@1.61.0: - version "1.61.0" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.61.0.tgz#7082df3df08ffa82b11420ea5fae84a40bd16e3f" - integrity sha512-Z+7BeeqQPRRzklHsVFP4KTGIyMxKUmfeRA4WisM6G3/XW6nwGeX6fX9qYaDa+CiUqpOkb2f6X3nar05R3kSuJQ== +playwright@1.61.1: + version "1.61.1" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.61.1.tgz#d8c0c06eb93c28981afc747bace453bdbd5018bc" + integrity sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ== dependencies: - playwright-core "1.61.0" + playwright-core "1.61.1" optionalDependencies: fsevents "2.3.2" From bece8e2385395828c2f24a6c51919865f9711456 Mon Sep 17 00:00:00 2001 From: Milecia McG <47196133+flippedcoder@users.noreply.github.com> Date: Mon, 13 Jul 2026 08:18:24 -0500 Subject: [PATCH 35/96] fix(observability): removed specific log level tables (#4859) --- .../develop/dotnet/platform/observability.mdx | 12 +- docs/develop/go/platform/observability.mdx | 155 ++++++++---------- docs/develop/java/platform/observability.mdx | 12 +- docs/develop/php/platform/observability.mdx | 12 +- .../develop/python/platform/observability.mdx | 26 +-- docs/develop/ruby/platform/observability.mdx | 10 +- .../typescript/platform/observability.mdx | 12 +- 7 files changed, 73 insertions(+), 166 deletions(-) diff --git a/docs/develop/dotnet/platform/observability.mdx b/docs/develop/dotnet/platform/observability.mdx index 68a0e3484d..1f9b25581f 100644 --- a/docs/develop/dotnet/platform/observability.mdx +++ b/docs/develop/dotnet/platform/observability.mdx @@ -106,19 +106,9 @@ An appropriate logging level depends on your specific needs. During development or troubleshooting, you might use debug or even trace. In production, you might use info or warn to avoid excessive log volume. -The logger supports the following logging levels: +Logging uses the .NET standard logging APIs. You can find the log levels supported in [their official documentation](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.loglevel?view=net-11.0-pp). The Temporal SDK core normally uses `WARN` as its default logging level. -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `TRACE` | The most detailed level of logging, used for very fine-grained information. | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | -The Temporal SDK core normally uses `WARN` as its default logging level. - -Logging uses the .NET standard logging APIs. The `LoggerFactory` can be set in the client. The following example shows logging on the console and sets the level to `Information`. diff --git a/docs/develop/go/platform/observability.mdx b/docs/develop/go/platform/observability.mdx index 5c56e81f57..463ccc7700 100644 --- a/docs/develop/go/platform/observability.mdx +++ b/docs/develop/go/platform/observability.mdx @@ -38,8 +38,6 @@ This section covers features related to viewing the state of the application, in ## How to emit metrics {/* #metrics */} -**How to emit application metrics using the Temporal Go SDK.** - Each Temporal SDK is capable of emitting an optional set of metrics from either the Client or the Worker process. For a complete list of metrics capable of being emitted, see the [SDK metrics reference](/references/sdk-metrics). @@ -51,10 +49,11 @@ To emit metrics from the Temporal Client in Go, create a [metrics handler](https ```go client.Options{ - MetricsHandler: sdktally.NewMetricsHandler(newPrometheusScope(prometheus.Configuration{ - ListenAddress: "0.0.0.0:9090", - TimerType: "histogram", - } + MetricsHandler: sdktally.NewMetricsHandler(newPrometheusScope(prometheus.Configuration{ + ListenAddress: "0.0.0.0:9090", + TimerType: "histogram", + } +} ``` The Go SDK currently supports the [Tally](https://pkg.go.dev/go.temporal.io/sdk/contrib/tally) library; however, Tally offers [extensible custom metrics reporting](https://github.com/uber-go/tally#report-your-metrics), which is exposed through the [`WithCustomMetricsReporter`](/references/server-options#withcustommetricsreporter) API. @@ -97,8 +96,6 @@ To build custom context propagation (e.g., tenant IDs, auth tokens), see [Contex ## Log from a Workflow {/* #logging */} -**How to log from a Workflow using the Go SDK.** - Send logs and errors to a logging service, so that when things go wrong, you can see what happened. Loggers create an audit trail and capture information about your Workflow's operation. @@ -106,27 +103,17 @@ An appropriate logging level depends on your specific needs. During development or troubleshooting, you might use debug or even trace. In production, you might use info or warn to avoid excessive log volume. -The logger supports the following logging levels: - -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `TRACE` | The most detailed level of logging, used for very fine-grained information. | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | - -The Temporal SDK core normally uses `WARN` as its default logging level. +You can find the log levels supported by `slog` in [their official documentation](https://pkg.go.dev/log/slog#Level). The Temporal SDK core normally uses `WARN` as its default logging level. In Workflow Definitions you can use [`workflow.GetLogger(ctx)`](https://pkg.go.dev/go.temporal.io/sdk/workflow#GetLogger) to write logs. ```go import ( - "context" - "time" + "context" + "time" - "go.temporal.io/sdk/activity" - "go.temporal.io/sdk/workflow" + "go.temporal.io/sdk/activity" + "go.temporal.io/sdk/workflow" ) // Workflow is a standard workflow definition. @@ -138,24 +125,22 @@ func Workflow(ctx workflow.Context, name string) (string, error) { workflow.WithActivityOptions(ctx, ao) // Getting the logger from the context. - logger := workflow.GetLogger(ctx) + logger := workflow.GetLogger(ctx) // Logging a message with the key value pair `name` and `name` - logger.Info("Compressed Payloads workflow started", "name", name) + logger.Info("Compressed Payloads workflow started", "name", name) - info := map[string]string{ - "name": name, - } + info := map[string]string{ + "name": name, + } - logger.Info("Compressed Payloads workflow completed.", "result", result) + logger.Info("Compressed Payloads workflow completed.", "result", result) - return result, nil + return result, nil } ``` ### Provide a custom logger {/* #custom-logger */} -**How to provide a custom logger to the Temporal Client using the Go SDK.** - This field sets a custom Logger that is used for all logging actions of the instance of the Temporal Client. The Go SDK supports custom loggers via `log.NewStructuredLogger()`, which wraps Go's standard [`slog.Logger`](https://pkg.go.dev/log/slog) (Go 1.21+). @@ -165,22 +150,22 @@ Because most modern logging libraries (zap, zerolog, logrus, etc.) can back a `s ```go import ( - "log/slog" - "os" + "log/slog" + "os" - "go.temporal.io/sdk/client" - "go.temporal.io/sdk/log" + "go.temporal.io/sdk/client" + "go.temporal.io/sdk/log" ) func main() { - // ... - slogHandler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}) - logger := log.NewStructuredLogger(slog.New(slogHandler)) - clientOptions := client.Options{ - Logger: logger, - } - temporalClient, err := client.Dial(clientOptions) - // ... + // ... + slogHandler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}) + logger := log.NewStructuredLogger(slog.New(slogHandler)) + clientOptions := client.Options{ + Logger: logger, + } + temporalClient, err := client.Dial(clientOptions) + // ... } ``` @@ -188,24 +173,24 @@ func main() { ```go import ( - "log/slog" + "log/slog" - "go.uber.org/zap" - "go.uber.org/zap/exp/zapslog" - "go.temporal.io/sdk/client" - "go.temporal.io/sdk/log" + "go.uber.org/zap" + "go.uber.org/zap/exp/zapslog" + "go.temporal.io/sdk/client" + "go.temporal.io/sdk/log" ) func main() { - // ... - zapLogger, _ := zap.NewProduction() - handler := zapslog.NewHandler(zapLogger.Core()) - logger := log.NewStructuredLogger(slog.New(handler)) - clientOptions := client.Options{ - Logger: logger, - } - temporalClient, err := client.Dial(clientOptions) - // ... + // ... + zapLogger, _ := zap.NewProduction() + handler := zapslog.NewHandler(zapLogger.Core()) + logger := log.NewStructuredLogger(slog.New(handler)) + clientOptions := client.Options{ + Logger: logger, + } + temporalClient, err := client.Dial(clientOptions) + // ... } ``` @@ -218,8 +203,6 @@ The term Visibility, within the Temporal Platform, refers to the subsystems and ### Search Attributes {/* #search-attributes */} -**How to use Search Attributes using the Go SDK.** - The typical method of retrieving a Workflow Execution is by its Workflow Id. However, sometimes you'll want to retrieve one or more Workflow Executions based on another property. For example, imagine you want to get all Workflow Executions of a certain type that have failed within a time range, so that you can start new ones with the same arguments. @@ -270,8 +253,6 @@ for _, exec := range resp.Executions { ### Set custom Search Attributes {/* #custom-search-attributes */} -**How to set custom Search Attributes using the Go SDK.** - After you've created custom Search Attributes in your Temporal Service (using the `temporal operator search-attribute create` command or the Cloud UI), you can set the values of the custom Search Attributes when starting a Workflow. Provide key-value pairs in [`StartWorkflowOptions.SearchAttributes`](https://pkg.go.dev/go.temporal.io/sdk/internal#StartWorkflowOptions). @@ -290,24 +271,22 @@ If you had custom Search Attributes `CustomerId` of type Keyword and `MiscData` ```go func (c *Client) CallYourWorkflow(ctx context.Context, workflowID string, payload map[string]interface{}) error { + // ... + searchAttributes := map[string]interface{}{ + "CustomerId": payload["customer"], + "MiscData": payload["miscData"] + } + options := client.StartWorkflowOptions{ + SearchAttributes: searchAttributes // ... - searchAttributes := map[string]interface{}{ - "CustomerId": payload["customer"], - "MiscData": payload["miscData"] - } - options := client.StartWorkflowOptions{ - SearchAttributes: searchAttributes - // ... - } - we, err := c.Client.ExecuteWorkflow(ctx, options, app.YourWorkflow, payload) - // ... + } + we, err := c.Client.ExecuteWorkflow(ctx, options, app.YourWorkflow, payload) + // ... } ``` ### Upsert Search Attributes {/* #upsert-search-attributes */} -**How to upsert Search Attributes using the Go SDK.** - You can upsert Search Attributes to add or update Search Attributes from within Workflow code. In advanced cases, you may want to dynamically update these attributes as the Workflow progresses. @@ -319,17 +298,17 @@ Consider this example Workflow code: ```go func YourWorkflow(ctx workflow.Context, input string) error { - attr1 := map[string]interface{}{ - "CustomIntField": 1, - "CustomBoolField": true, - } - workflow.UpsertSearchAttributes(ctx, attr1) + attr1 := map[string]interface{}{ + "CustomIntField": 1, + "CustomBoolField": true, + } + workflow.UpsertSearchAttributes(ctx, attr1) - attr2 := map[string]interface{}{ - "CustomIntField": 2, - "CustomKeywordField": "seattle", - } - workflow.UpsertSearchAttributes(ctx, attr2) + attr2 := map[string]interface{}{ + "CustomIntField": 2, + "CustomKeywordField": "seattle", + } + workflow.UpsertSearchAttributes(ctx, attr2) } ``` @@ -337,16 +316,14 @@ After the second call to `UpsertSearchAttributes`, the map will contain: ```go map[string]interface{}{ - "CustomIntField": 2, // last update wins - "CustomBoolField": true, - "CustomKeywordField": "seattle", + "CustomIntField": 2, // last update wins + "CustomBoolField": true, + "CustomKeywordField": "seattle", } ``` ### Remove a Search Attribute from a Workflow {/* #remove-search-attribute */} -**How to remove a Search Attribute from a Workflow using the Go SDK.** - To remove a Search Attribute that was previously set, set it to an empty array: `[]`. **There is no support for removing a field.** diff --git a/docs/develop/java/platform/observability.mdx b/docs/develop/java/platform/observability.mdx index fec0953205..0e447b9d66 100644 --- a/docs/develop/java/platform/observability.mdx +++ b/docs/develop/java/platform/observability.mdx @@ -136,17 +136,7 @@ An appropriate logging level depends on your specific needs. During development or troubleshooting, you might use debug or even trace. In production, you might use info or warn to avoid excessive log volume. -The logger supports the following logging levels: - -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `TRACE` | The most detailed level of logging, used for very fine-grained information. | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | - -The Temporal SDK core normally uses `WARN` as its default logging level. +You can find the log levels supported by `slf4j` in [their official documentation](https://www.slf4j.org/apidocs/org/slf4j/ext/XLogger.Level.html). The Temporal SDK core normally uses `WARN` as its default logging level. To get a standard `slf4j` logger in your Workflow code, use the [`Workflow.getLogger`](https://www.javadoc.io/doc/io.temporal/temporal-sdk/latest/io/temporal/workflow/Workflow.html) method. diff --git a/docs/develop/php/platform/observability.mdx b/docs/develop/php/platform/observability.mdx index 0b66cefde7..3b2fc31c5f 100644 --- a/docs/develop/php/platform/observability.mdx +++ b/docs/develop/php/platform/observability.mdx @@ -35,17 +35,7 @@ An appropriate logging level depends on your specific needs. During development or troubleshooting, you might use debug or even trace. In production, you might use info or warn to avoid excessive log volume. -The logger supports the following logging levels: - -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `TRACE` | The most detailed level of logging, used for very fine-grained information. | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | - -The Temporal SDK core normally uses `WARN` as its default logging level. +You can find the log levels supported by `PSR-3` in [their official documentation](https://www.php-fig.org/psr/psr-3/#5-psrlogloglevel). The Temporal SDK core normally uses `WARN` as its default logging level. To get a PSR-3 compatible logger in your Workflow code, use the [`Workflow::getLogger()`](https://php.temporal.io/classes/Temporal-Workflow.html#method_getLogger) method. diff --git a/docs/develop/python/platform/observability.mdx b/docs/develop/python/platform/observability.mdx index de866471e1..98875b0e44 100644 --- a/docs/develop/python/platform/observability.mdx +++ b/docs/develop/python/platform/observability.mdx @@ -37,8 +37,6 @@ This section covers features related to viewing the state of the application, in ## Emit metrics {/* #metrics */} -**How to emit metrics** - Each Temporal SDK is capable of emitting an optional set of metrics from either the Client or the Worker process. For a complete list of metrics capable of being emitted, see the [SDK metrics reference](/references/sdk-metrics). @@ -61,8 +59,6 @@ my_client = await Client.connect("my.temporal.host:7233", runtime=new_runtime) ## Set up tracing {/* #tracing */} -**How to set up tracing** - Tracing allows you to view the call graph of a Workflow along with its Activities and any Child Workflows. Temporal Web's tracing capabilities mainly track Activity Execution within a Temporal context. If you need custom tracing specific for your use case, you should make use of context propagation to add tracing logic accordingly. @@ -87,25 +83,7 @@ An appropriate logging level depends on your specific needs. During development or troubleshooting, you might use debug or even trace. In production, you might use info or warn to avoid excessive log volume. -The logger supports the following logging levels: - -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `TRACE` | The most detailed level of logging, used for very fine-grained information. | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | - -The Temporal SDK core normally uses `WARN` as its default logging level. - -**How to log from a Workflow** - -Send logs and errors to a logging service, so that when things go wrong, you can see what happened. - -The SDK core uses `WARN` for its default logging level. - -You can log from a Workflow using Python's standard library, by importing the logging module `logging`. +You can log from a Workflow using Python's standard library, by importing the logging module `logging`. You can find the log levels supported by the `logging` module in [their official documentation](https://docs.python.org/3/library/logging.html#logging-levels). The Temporal SDK core normally uses `WARN` as its default logging level. Set your logging configuration to a level you want to expose logs to. The following example sets the logging information level to `INFO`. @@ -120,7 +98,7 @@ Then in your Workflow, set your [`logger`](https://python.temporal.io/temporalio ```python # ... - workflow.logger.info("Workflow input parameter: %s" % name) +workflow.logger.info("Workflow input parameter: %s" % name) ``` ### Custom logger {/* #custom-logger */} diff --git a/docs/develop/ruby/platform/observability.mdx b/docs/develop/ruby/platform/observability.mdx index 5a58d3514f..fcefd3e6b5 100644 --- a/docs/develop/ruby/platform/observability.mdx +++ b/docs/develop/ruby/platform/observability.mdx @@ -88,16 +88,8 @@ Spans are created and serialized through the server to give one trace for a Work Logging enables you to capture and persist important execution details from your Workflow and Activity code. -Logging levels typically include: +Logging uses the Ruby standard logging APIs. You can find the log levels supported in [their official documentation](https://ruby-doc.org/stdlib-2.4.0/libdoc/logger/rdoc/Logger.html). The Temporal SDK core normally uses `WARN` as its default logging level. -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | - -Logging uses the Ruby standard logging APIs. The `logger` can be set when connecting a client. The following example shows logging on the console and sets the level to `INFO`. diff --git a/docs/develop/typescript/platform/observability.mdx b/docs/develop/typescript/platform/observability.mdx index 3e33a3eb01..11b7ddf7d3 100644 --- a/docs/develop/typescript/platform/observability.mdx +++ b/docs/develop/typescript/platform/observability.mdx @@ -104,17 +104,7 @@ An appropriate logging level depends on your specific needs. During development or troubleshooting, you might use debug or even trace. In production, you might use info or warn to avoid excessive log volume. -The logger supports the following logging levels: - -| Level | Use | -| ------- | --------------------------------------------------------------------------------------------------------- | -| `TRACE` | The most detailed level of logging, used for very fine-grained information. | -| `DEBUG` | Detailed information, typically useful for debugging purposes. | -| `INFO` | General information about the application's operation. | -| `WARN` | Indicates potentially harmful situations or minor issues that don't prevent the application from working. | -| `ERROR` | Indicates error conditions that might still allow the application to continue running. | - -The Temporal SDK core normally uses `WARN` as its default logging level. +You can find the log levels supported by the `winston` package used in the examples below in [their official documentation](https://github.com/winstonjs/winston#logging-levels). The Temporal SDK core normally uses `WARN` as its default logging level. ### Logging from Activities From 02c060ba6119ae857e46523f7d2878a918494aa4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 10:19:45 -0500 Subject: [PATCH 36/96] chore(deps-dev): bump dprint from 0.54.0 to 0.55.1 (#4868) Bumps [dprint](https://github.com/dprint/dprint) from 0.54.0 to 0.55.1. - [Release notes](https://github.com/dprint/dprint/releases) - [Commits](https://github.com/dprint/dprint/compare/0.54.0...0.55.1) --- updated-dependencies: - dependency-name: dprint dependency-version: 0.55.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- package.json | 2 +- yarn.lock | 164 +++++++++++++++++++++++++++++---------------------- 2 files changed, 95 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index bf5908e900..50d97ae846 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "@playwright/test": "^1.61.0", "@types/node": "^26.0.0", "@types/yaml": "^1.9.7", - "dprint": "^0.54.0", + "dprint": "^0.55.1", "eslint": "^9.8.0", "eslint-plugin-react": "^7.23.2", "husky": "^9.1.7", diff --git a/yarn.lock b/yarn.lock index 11a5c616fc..cf95286787 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2180,60 +2180,80 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@dprint/darwin-arm64@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/darwin-arm64/-/darwin-arm64-0.54.0.tgz#9230db5eb0f79dca83e92e43dce86a623c9d7844" - integrity sha512-yqRI4enH+BDp+4+ZsPVdZM5h873JK1lN7li9l9A5u4C4cvh1oEsiBWAzEPccRkJ2ctF8LgaizBSxO38sqEVYbw== - -"@dprint/darwin-x64@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/darwin-x64/-/darwin-x64-0.54.0.tgz#f69a648119db311d60ba6dbaa1bdf187906ea8de" - integrity sha512-W9BARpgHypcQwatg5mnHaCpX6pLX5dBxxiv+tZKruhOmq8MKYOrAYDXlceMuHSowmWREfUF5yL4SRgXDGI6WQw== - -"@dprint/linux-arm64-glibc@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-glibc/-/linux-arm64-glibc-0.54.0.tgz#2f87723e9fc878b1c8a05f294798f12692646a4f" - integrity sha512-VhM7p70VFuNqxZMdiv1e+nMboPj/hMFlTIBWrRaX7+6VThs9mJr9+94wrUeXgfnfsyaEKSbRFa/dru1PINoSNw== - -"@dprint/linux-arm64-musl@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-musl/-/linux-arm64-musl-0.54.0.tgz#8d921aedeb25d60b68d601f7eedeb244b3719d59" - integrity sha512-QS1A74Lv60/L9oemHCzbHgOLbV2smSJG5IxS5fjf8ZWetyUt918WDzIHBilz/+uiB+OlW2UVTsm952UG0YOrLw== - -"@dprint/linux-loong64-glibc@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-loong64-glibc/-/linux-loong64-glibc-0.54.0.tgz#caf1a1416eb48f4ead2e7505bf672307c19de7cc" - integrity sha512-8Myka2/0KbhuZnEKL6jagPXTgDKVpd/tfXDRa0oibUBgaqOSku6iRMzHGa/PhqHL+s14Gcp+/cIHz0zU3Tkgug== - -"@dprint/linux-loong64-musl@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-loong64-musl/-/linux-loong64-musl-0.54.0.tgz#a790407dfa8a47a591304bc6b1144cf28341abbc" - integrity sha512-/AN3xCuMhC4PK7Pbj7/4zBuhFGr4m0OHV/5uGTfzpkKX/3+AXoyKl7PbT2VlNMGXAK0kuRThfjtx23gIwlWk7Q== - -"@dprint/linux-riscv64-glibc@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-riscv64-glibc/-/linux-riscv64-glibc-0.54.0.tgz#6c77a8579d9cd3f6880645c27cd35fb7e0109594" - integrity sha512-Aw2vXzzwFDpPbXh6ajsSabVCkCc66C3hCyMKprR/IxYvFtjYX80nh1ox0c7iaw6c4HacHMRLGw7FUSXvomPaEQ== - -"@dprint/linux-x64-glibc@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-x64-glibc/-/linux-x64-glibc-0.54.0.tgz#ce4dbcd25aea883ad3dd85e0cc7c44faa9f4be50" - integrity sha512-zZqj3wQELOX8n6QfT2uuWoMf64Wv0lMXNyam3btm+PKkg0P6a54TPL09Bs9XsViOdxgTcamsiQ7HlErt/LEjIA== - -"@dprint/linux-x64-musl@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/linux-x64-musl/-/linux-x64-musl-0.54.0.tgz#16a01f3c954bd6eb60305a59edaf8365bfb115fa" - integrity sha512-it6Qdt06dyW2adbAXpOCb7/KQLxlm4i1UphUAWqWsZk4t3EYetyAza9J0g3Vu9itIWSEIo9MnccgANckQJ6+qw== - -"@dprint/win32-arm64@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/win32-arm64/-/win32-arm64-0.54.0.tgz#0a737b41e7d243bda9e037b9637c34dd6a96a534" - integrity sha512-F5kjV/6I9YtNOTDWHUpTqM2HHHS510BPL7z4NJuU0nDnaVeks7GwNEltGr56CcsG8XQYhkiAsqZytPu6AhA2hQ== - -"@dprint/win32-x64@0.54.0": - version "0.54.0" - resolved "https://registry.yarnpkg.com/@dprint/win32-x64/-/win32-x64-0.54.0.tgz#b01c7508e416283428554b682cc3ac09a6fe93e5" - integrity sha512-AAr2ye/DtgYXDplRoPS+5U++x7T6W4a3I9FvTFWFxziFmUptvAg5G2c4FcXoAduSruhYZJvjDZrLseR2c3IwXg== +"@dprint/android-arm64@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/android-arm64/-/android-arm64-0.55.1.tgz#7fef45b22238cf107e7d29d662ec0964d668c1e1" + integrity sha512-H1UQIcBJEo1dA8AVrkPnw5AYMMGHNe4w0lq9rEDSY3Lds0VUKACu2MK3JLNARpjljh3WKeO109J26Wpq8PTuGQ== + +"@dprint/android-x64@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/android-x64/-/android-x64-0.55.1.tgz#1ad30763ed50c193c6a752055551c48fbe7ef7b5" + integrity sha512-8dPiGpEo4S4cQhnLaoHtNm4HiqR9DIPr/81z3gWb5qTmJp8bKj+3DO4mAmmldMRBicmpXCss0xudniNTxnWOMg== + +"@dprint/darwin-arm64@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/darwin-arm64/-/darwin-arm64-0.55.1.tgz#2e5a08dc0da96df34145bcb96761d448e662147f" + integrity sha512-c65u8f63R/etCKP0CZ/RkbMCRC99wgZDt/vhwjY2QdO0k23dMKXKEV6+ruUEwV2toh+QIRT02dRL7BtxjA0V7w== + +"@dprint/darwin-x64@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/darwin-x64/-/darwin-x64-0.55.1.tgz#f9b46c6b21a59b0f48f5710b74885cff545e2671" + integrity sha512-AsET9+4rMk7ZFEMq3HYl/hYNBMBrR/juiSzclEU0oUCf3koxFbVKL8Srad8Vhyv8jEnOaMn78TCnahmHhp1SCQ== + +"@dprint/linux-arm64-glibc@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-glibc/-/linux-arm64-glibc-0.55.1.tgz#ca93d22932a14d77eba33052b5f0b68097d4e33b" + integrity sha512-vt7w+aL2MjtD3RRfnUTDuK/b7xg1/feBe3WoV0S2rGNmPEJI+K7wwBXkOl/I77V9w3PP2zvN/aRY5dMOZrkbSg== + +"@dprint/linux-arm64-musl@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-musl/-/linux-arm64-musl-0.55.1.tgz#69dcb5c17ba6c9028fc436cc29444e58c9133ee2" + integrity sha512-7shUIOvJcTn4IYEPlb/Up4KLt5kbDuCTdc3DN68i88XT+nRBFQatD7Qok+6Ysra34KJMxF88QVHiimjH1ABy4A== + +"@dprint/linux-loong64-glibc@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-loong64-glibc/-/linux-loong64-glibc-0.55.1.tgz#1145eeea70c609ea610ce1c5d4b5774a6df0fe46" + integrity sha512-G2mXiOGpkeC3LP8huSnImxU7hMvRY6rHIW+yBuw1vDDm5r6+H9CVhcXr3TMOk3poZ7IlWwQnDmP0/RuGQUEpYw== + +"@dprint/linux-loong64-musl@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-loong64-musl/-/linux-loong64-musl-0.55.1.tgz#08e0533d7b7c2ee02694329ebb16d3377c48d5ad" + integrity sha512-uO2r4QPYawDfQUyATr0opqfMkG2hVpz3yScRKs5ve9PWzqx2f5kJaaLuLVoXwSbWqDkozMGPcldAVSpOwGJ24Q== + +"@dprint/linux-ppc64-glibc@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-ppc64-glibc/-/linux-ppc64-glibc-0.55.1.tgz#3ca234ad910598ff4499f0d6335b42440f6f8ee5" + integrity sha512-NVR+BN4kTQd/vJ91YOGSkBotAM2f1hFD+HD5zq5Oc1djxjl1U2Zvc667UWKamxaXdv/ssZxkLuj0lbvbx9E3/A== + +"@dprint/linux-ppc64-musl@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-ppc64-musl/-/linux-ppc64-musl-0.55.1.tgz#c4984fe301464f1b1710492ac2c58d68020e3f22" + integrity sha512-34Db83XGoKbwmvIY52sokywIMCmmIZM1vzw4ILlOkKugG51TltBOzLCssT9Rkfxz/TjR9dgwtBHEQJZjftuQ6Q== + +"@dprint/linux-riscv64-glibc@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-riscv64-glibc/-/linux-riscv64-glibc-0.55.1.tgz#07cc4bc7200358d2d0b81c40a49369d9a9642e66" + integrity sha512-MVeYH48GhR3QkfhMhhYbXl9x+iO2sK1nNpr2ByJ4IKogHIlvlFff0eeukqAZZAod+rhAzJnLMBGgIDbIUHWK1g== + +"@dprint/linux-x64-glibc@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-x64-glibc/-/linux-x64-glibc-0.55.1.tgz#a01ec6ea6de9842ec12c911298343c67c1435342" + integrity sha512-ILHgXOIIXeZDjt51egaC4kmu744UuNfaauUM1El+dG9QGan4Vv4f0RRDDbQMKN95zTpacECuNKEhuUtS8euNWA== + +"@dprint/linux-x64-musl@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/linux-x64-musl/-/linux-x64-musl-0.55.1.tgz#1f5a236f7cf68a28fb1b95eb17a1a9421aa5f17a" + integrity sha512-SwWxWd313VkeH63fR4IlQCDfJNJ+mSw50BidP0PQInCNbUHYOIeWTcyzAaVa8GQdLvmhiNcJ0pmTDOL0F98QIQ== + +"@dprint/win32-arm64@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/win32-arm64/-/win32-arm64-0.55.1.tgz#76233c02e46f47aae4af281125bf258173da91c5" + integrity sha512-9jiZWZ2AkaaXIkaOpOoiP6v0XxuBFp1Hyi3kUMUAY4NVCmvlSEDQhr+UZgnDhozYygDbAV13iNMLERDeoUa0nA== + +"@dprint/win32-x64@0.55.1": + version "0.55.1" + resolved "https://registry.yarnpkg.com/@dprint/win32-x64/-/win32-x64-0.55.1.tgz#aec2b04b9290230bf76ad90bc111ad1e4249bc22" + integrity sha512-+RmeJL8zzlEWTcrvyFN51rz0S98tV43Socs7xeVGE2S/EH5dG2fG2/fBe6RB3kuyZSfGqByApYeicIdshYIAgw== "@emnapi/core@^1.5.0": version "1.9.1" @@ -3035,7 +3055,7 @@ tslib "^2.8.1" tsyringe "^4.10.0" -"@playwright/test@^1.61.1": +"@playwright/test@^1.61.0": version "1.61.1" resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.61.1.tgz#48568dc22af7819e55fa5e8e3bc79b7e6a3e6675" integrity sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig== @@ -6685,22 +6705,26 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" -dprint@^0.54.0: - version "0.54.0" - resolved "https://registry.yarnpkg.com/dprint/-/dprint-0.54.0.tgz#37f0f92479c3ff8ac01c99bcc79ccfd17e416c07" - integrity sha512-sIy25poR2gRP/tWPTgP0MPeJoJcpv0xzYDcsboapvthbEt1Qw3Al252CA0xFyIh2cYEGGKyBJtKokryv4ERlJw== +dprint@^0.55.1: + version "0.55.1" + resolved "https://registry.yarnpkg.com/dprint/-/dprint-0.55.1.tgz#5533db033613593dcdc099aa9db3a4bb879b9033" + integrity sha512-tgUCT9gAM7veMvLX5NmRoYVLnKGKrIYRXpNpJDJj5U7/YIIJef5rLJhPZaJXwB7ad2Vo0Kv//nQM1xkrn5j8kQ== optionalDependencies: - "@dprint/darwin-arm64" "0.54.0" - "@dprint/darwin-x64" "0.54.0" - "@dprint/linux-arm64-glibc" "0.54.0" - "@dprint/linux-arm64-musl" "0.54.0" - "@dprint/linux-loong64-glibc" "0.54.0" - "@dprint/linux-loong64-musl" "0.54.0" - "@dprint/linux-riscv64-glibc" "0.54.0" - "@dprint/linux-x64-glibc" "0.54.0" - "@dprint/linux-x64-musl" "0.54.0" - "@dprint/win32-arm64" "0.54.0" - "@dprint/win32-x64" "0.54.0" + "@dprint/android-arm64" "0.55.1" + "@dprint/android-x64" "0.55.1" + "@dprint/darwin-arm64" "0.55.1" + "@dprint/darwin-x64" "0.55.1" + "@dprint/linux-arm64-glibc" "0.55.1" + "@dprint/linux-arm64-musl" "0.55.1" + "@dprint/linux-loong64-glibc" "0.55.1" + "@dprint/linux-loong64-musl" "0.55.1" + "@dprint/linux-ppc64-glibc" "0.55.1" + "@dprint/linux-ppc64-musl" "0.55.1" + "@dprint/linux-riscv64-glibc" "0.55.1" + "@dprint/linux-x64-glibc" "0.55.1" + "@dprint/linux-x64-musl" "0.55.1" + "@dprint/win32-arm64" "0.55.1" + "@dprint/win32-x64" "0.55.1" dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" From a381681d7b13e1c4fa3741d04792037472cd4dd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 10:40:44 -0500 Subject: [PATCH 37/96] chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 (#4871) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: 6.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- .github/workflows/update-cli-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-cli-docs.yml b/.github/workflows/update-cli-docs.yml index b67a8278d6..fd4dffb0a1 100644 --- a/.github/workflows/update-cli-docs.yml +++ b/.github/workflows/update-cli-docs.yml @@ -54,7 +54,7 @@ jobs: repository: temporalio/cli - name: Setup Go - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 + uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 with: go-version: '1.26' From 3c2e14b6d99ab3e1ae392a5126fd0e357851bed1 Mon Sep 17 00:00:00 2001 From: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Date: Mon, 13 Jul 2026 09:11:59 -0700 Subject: [PATCH 38/96] ci: wire post-process-cli-docs.js into CLI docs update workflow (#4866) * ci: wire post-process-cli-docs.js into CLI docs update workflow gen-docs (temporalio/cli#1112) stopped emitting the ReleaseNoteHeader banner on cloud CLI pages, assuming this script would add it back, but the workflow never actually called it. Run it after regenerating the command reference so the banner, index.mdx, and sidebars.js stay in sync. * fix comment: post-process script always owned ReleaseNoteHeader injection gen-docs never emitted that banner, in any version; the script has had that job since it was created, CI just never called it. * simplify comment wording --- .github/workflows/update-cli-docs.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/update-cli-docs.yml b/.github/workflows/update-cli-docs.yml index fd4dffb0a1..c827b55253 100644 --- a/.github/workflows/update-cli-docs.yml +++ b/.github/workflows/update-cli-docs.yml @@ -95,6 +95,13 @@ jobs: git checkout HEAD -- docs/cli/command-reference/index.mdx git checkout HEAD -- docs/cli/command-reference/cloud/index.mdx + - name: Post-process generated CLI docs + working-directory: docs + # Injects the ReleaseNoteHeader banner into cloud CLI pages and keeps + # command-reference/index.mdx and sidebars.js in sync with the + # generated commands. Not previously called from this workflow. + run: node bin/post-process-cli-docs.js + - name: Publish generated docs to documentation repo env: GH_TOKEN: ${{ github.token }} From a7f437fd47308dc9009afc58111b9efb83b5cab7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:21:40 +0000 Subject: [PATCH 39/96] Update CLI docs for release v1.8.0 (#4864) * Update CLI docs for release v1.8.0 * fix { } phrases in MDX files outside of code --------- Co-authored-by: Alex Stanfield Co-authored-by: Duncan Mackenzie Co-authored-by: Duncan Mackenzie --- docs/cli/command-reference/activity.mdx | 6 +- docs/cli/command-reference/batch.mdx | 2 +- docs/cli/command-reference/cloud/account.mdx | 6 +- docs/cli/command-reference/cloud/apikey.mdx | 8 +- .../cloud/async-operation.mdx | 6 +- .../command-reference/cloud/connectivity.mdx | 21 +- .../command-reference/cloud/custom-role.mdx | 10 +- docs/cli/command-reference/cloud/login.mdx | 22 +- docs/cli/command-reference/cloud/logout.mdx | 22 +- .../cli/command-reference/cloud/namespace.mdx | 487 ++++++++++++------ docs/cli/command-reference/cloud/nexus.mdx | 14 +- docs/cli/command-reference/cloud/region.mdx | 6 +- .../cloud/service-account.mdx | 6 +- .../command-reference/cloud/user-group.mdx | 6 +- docs/cli/command-reference/cloud/user.mdx | 6 +- docs/cli/command-reference/cloud/whoami.mdx | 22 +- docs/cli/command-reference/config.mdx | 4 +- docs/cli/command-reference/env.mdx | 2 +- docs/cli/command-reference/operator.mdx | 2 +- docs/cli/command-reference/schedule.mdx | 2 +- docs/cli/command-reference/server.mdx | 3 +- docs/cli/command-reference/task-queue.mdx | 103 ++-- docs/cli/command-reference/worker.mdx | 2 +- docs/cli/command-reference/workflow.mdx | 2 +- 24 files changed, 494 insertions(+), 276 deletions(-) diff --git a/docs/cli/command-reference/activity.mdx b/docs/cli/command-reference/activity.mdx index 1512d372f5..68a9285e79 100644 --- a/docs/cli/command-reference/activity.mdx +++ b/docs/cli/command-reference/activity.mdx @@ -30,7 +30,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `activity` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. @@ -207,6 +207,10 @@ failed), it will not be run again until it is unpaused. However, if the Activity is currently running, it will run until the next time it fails, completes, or times out, at which point the pause will kick in. +Pause does not stop or extend the Activity's Schedule-To-Close Timeout. +A paused Activity can still time out. Use `temporal activity update-options` +to extend timeout settings before a long pause. + If the Activity is on its last retry attempt and fails, the failure will be returned to the caller, just as if the Activity had not been paused. diff --git a/docs/cli/command-reference/batch.mdx b/docs/cli/command-reference/batch.mdx index 2be1afcdd4..d42bad7c43 100644 --- a/docs/cli/command-reference/batch.mdx +++ b/docs/cli/command-reference/batch.mdx @@ -18,7 +18,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `batch` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/account.mdx b/docs/cli/command-reference/cloud/account.mdx index 817047385e..7ff75574fa 100644 --- a/docs/cli/command-reference/cloud/account.mdx +++ b/docs/cli/command-reference/cloud/account.mdx @@ -11,12 +11,10 @@ tags: - account --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Manage the Temporal Cloud account. This page provides a reference for the `temporal cloud account` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/apikey.mdx b/docs/cli/command-reference/cloud/apikey.mdx index f68b46fded..5f568c99cd 100644 --- a/docs/cli/command-reference/cloud/apikey.mdx +++ b/docs/cli/command-reference/cloud/apikey.mdx @@ -12,12 +12,12 @@ tags: - apikeys --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} + +Commands for creating, listing, and managing Temporal Cloud API keys. - +API keys authenticate requests to the Temporal Cloud API. This page provides a reference for the `temporal cloud apikey` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/async-operation.mdx b/docs/cli/command-reference/cloud/async-operation.mdx index a924af9b6c..998c565ae8 100644 --- a/docs/cli/command-reference/cloud/async-operation.mdx +++ b/docs/cli/command-reference/cloud/async-operation.mdx @@ -12,12 +12,10 @@ tags: - async-operations --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for working with Temporal Cloud async operations. This page provides a reference for the `temporal cloud async-operation` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/connectivity.mdx b/docs/cli/command-reference/cloud/connectivity.mdx index 52ca3eac78..5c1289b6d3 100644 --- a/docs/cli/command-reference/cloud/connectivity.mdx +++ b/docs/cli/command-reference/cloud/connectivity.mdx @@ -11,12 +11,10 @@ tags: - connectivity --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for managing connectivity rules for Temporal Cloud. This page provides a reference for the `temporal cloud connectivity` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. @@ -87,12 +85,20 @@ Commands for managing private connectivity rules. ### private create -Create a new private VPC connectivity rule. Requires --connection-id and --region. +Create a new private connectivity rule for AWS, GCP, or Azure. -Example: +For AWS, provide --connection-id (VPC endpoint ID) and --region. +For GCP, provide --connection-id (PSC connection ID), --gcp-project-id, and --region. +For Azure, provide --azure-pe-resource-id (ARM resource ID) and --region. + +Examples: ``` temporal cloud connectivity private create --connection-id vpce-12345 --region aws-us-west-2 + +temporal cloud connectivity private create \ + --azure-pe-resource-id /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Network/privateEndpoints/{name} \ + --region azure-eastus ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -102,7 +108,8 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--connection-id` | Yes | **string** The connection ID for private connectivity. | +| `--azure-pe-resource-id` | No | **string** The ARM resource ID of the Azure Private Endpoint (only for Azure private connectivity). Example: `/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Network/privateEndpoints/{name}`. | +| `--connection-id` | No | **string** The connection ID for private connectivity (AWS VPC endpoint ID or GCP PSC connection ID). | | `--gcp-project-id` | No | **string** The GCP project ID (only for GCP private connectivity). | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | diff --git a/docs/cli/command-reference/cloud/custom-role.mdx b/docs/cli/command-reference/cloud/custom-role.mdx index e65c99a810..3f6263033a 100644 --- a/docs/cli/command-reference/cloud/custom-role.mdx +++ b/docs/cli/command-reference/cloud/custom-role.mdx @@ -12,12 +12,14 @@ tags: - custom-roles --- -import { ReleaseNoteHeader } from '@site/src/components'; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} + +Commands for managing Temporal Cloud custom roles. - +Custom roles enable fine-grained authorization by binding sets of +permissions (resource + actions) to a named role that can be assigned +to users, user groups, and service accounts. This page provides a reference for the `temporal cloud custom-role` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/login.mdx b/docs/cli/command-reference/cloud/login.mdx index 0a47517744..94fc20976c 100644 --- a/docs/cli/command-reference/cloud/login.mdx +++ b/docs/cli/command-reference/cloud/login.mdx @@ -12,14 +12,8 @@ tags: - login --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} - - - -This page provides a reference for the `temporal cloud login` command. +This file is generated from the CLI command definitions via cmd/gen-docs. */} Authenticate with Temporal Cloud using browser-based OAuth login. @@ -34,6 +28,8 @@ temporal cloud login For headless environments, use --disable-pop-up and follow the printed URL. +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + | Flag | Required | Description | |------|----------|-------------| | `--audience` | No | **string** OAuth audience parameter for token generation. | @@ -42,3 +38,15 @@ For headless environments, use --disable-pop-up and follow the printed URL. | `--redirect-url` | No | **string** Redirect URL for OAuth authentication flow. | | `--reset` | No | **bool** Clear stored login credentials and configuration, then re-authenticate. Use this if you need to switch accounts or fix authentication issues. | +## Global Flags + +The following options can be used with any command. + +| Flag | Required | Description | Default | +|------|----------|-------------|--------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | +| `--auto-confirm` | No | **bool** Automatically confirm prompts and actions that require user confirmation. Useful for scripting and automation. | | +| `--config-dir` | No | **string** Directory path where CLI configuration files are stored, including authentication tokens and settings. | | +| `--disable-pop-up` | No | **bool** Prevent the CLI from opening a browser window during authentication. Useful for headless environments or when using alternative auth methods. | | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | `saas-api.tmprl.cloud:443` | + diff --git a/docs/cli/command-reference/cloud/logout.mdx b/docs/cli/command-reference/cloud/logout.mdx index 1cd7955eed..01526838b3 100644 --- a/docs/cli/command-reference/cloud/logout.mdx +++ b/docs/cli/command-reference/cloud/logout.mdx @@ -12,14 +12,8 @@ tags: - login --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} - - - -This page provides a reference for the `temporal cloud logout` command. +This file is generated from the CLI command definitions via cmd/gen-docs. */} Log out from Temporal Cloud by clearing stored authentication tokens and credentials from the local configuration. @@ -30,7 +24,21 @@ Example: temporal cloud logout ``` +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + | Flag | Required | Description | |------|----------|-------------| | `--domain` | No | **string** Authentication domain for the OAuth provider. | +## Global Flags + +The following options can be used with any command. + +| Flag | Required | Description | Default | +|------|----------|-------------|--------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | +| `--auto-confirm` | No | **bool** Automatically confirm prompts and actions that require user confirmation. Useful for scripting and automation. | | +| `--config-dir` | No | **string** Directory path where CLI configuration files are stored, including authentication tokens and settings. | | +| `--disable-pop-up` | No | **bool** Prevent the CLI from opening a browser window during authentication. Useful for headless environments or when using alternative auth methods. | | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | `saas-api.tmprl.cloud:443` | + diff --git a/docs/cli/command-reference/cloud/namespace.mdx b/docs/cli/command-reference/cloud/namespace.mdx index aec3f224ee..0c1d597f2d 100644 --- a/docs/cli/command-reference/cloud/namespace.mdx +++ b/docs/cli/command-reference/cloud/namespace.mdx @@ -11,33 +11,29 @@ tags: - namespaces --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} + +Commands for creating, updating, and managing Temporal Cloud namespaces. - +Namespaces provide isolation for workflows and activities. Each namespace +has its own configuration including retention period, region, and access +controls. This page provides a reference for the `temporal cloud namespace` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. -## apply +## api-key -Apply a namespace configuration to Temporal Cloud. Creates a new namespace -if it doesn't exist, or updates an existing one to match the specification. +Commands for managing API key authentication configuration of Temporal Cloud namespaces. -The specification can be provided as inline JSON or loaded from a file -by prefixing the path with '@'. +### api-key disable -Example with inline JSON: - -``` -temporal cloud namespace apply --spec '{"name": "namespace-name", "region": "us-west-2", "retention_days": 7}' -``` +Disable API key authentication for a Temporal Cloud namespace. -Example with file path: +Example: ``` -temporal cloud namespace apply --spec @namespace-spec.json +temporal cloud namespace api-key disable --namespace my-namespace.my-account ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -47,53 +43,20 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--idempotent` | No | **bool** Succeed silently if the namespace already matches the specification. Without this flag, the command errors when no changes are needed. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | -| `--spec` | Yes | **string** Namespace configuration in JSON format. Provide inline JSON directly, or use '@path/to/file.json' to load from a file. | -| `--verbose-diff` | No | **bool** Show detailed differences between the current and desired namespace configurations when changes are detected. | - -## capacity -Commands for managing the capacity of Temporal Cloud namespaces. +### api-key enable -Capacity controls whether a namespace runs in on-demand mode or -provisioned mode (with a fixed TRU allocation). - -### capacity get - -Retrieve capacity information for a Temporal Cloud namespace, including -the current mode (on-demand or provisioned), mode options, and recent usage stats. +Enable API key authentication for a Temporal Cloud namespace. Example: ``` -temporal cloud namespace capacity get --namespace my-namespace.my-account -``` - -Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. - -| Flag | Required | Description | -|------|----------|-------------| -| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | -| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | -| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | - -### capacity update - -Update the capacity of a Temporal Cloud namespace. Choose either on-demand -mode or provisioned mode (with a fixed TRU allocation). - -Example (switch to on-demand): - -``` -temporal cloud namespace capacity update --namespace my-namespace.my-account --capacity-mode on_demand -``` - -Example (switch to provisioned with 4 TRUs): - -``` -temporal cloud namespace capacity update --namespace my-namespace.my-account --capacity-mode provisioned --capacity-value 4 +temporal cloud namespace api-key enable --namespace my-namespace.my-account ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -103,36 +66,20 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--capacity-mode` | Yes | **string-enum** Capacity mode for the namespace. Must be either 'on_demand' or 'provisioned'. Accepted values: on_demand, provisioned. | -| `--capacity-value` | No | **float** The provisioned capacity in Temporal Resource Units (TRUs). Required and must be greater than 0 when --capacity-mode is 'provisioned'. Ignored when --capacity-mode is 'on_demand'. | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | | `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | -## cert-ca - -Commands for managing the client CA certificates of Temporal Cloud namespaces. - -### cert-ca create - -Add client CA certificates to a Temporal Cloud namespace from a PEM file -or base64 encoded string. These certificates are used to verify client -connections and enable mTLS authentication. - -Specify either --ca-certificate-file or --ca-certificate, but not both. +### api-key get -Example with file: +Retrieve the current API key authentication configuration for a Temporal Cloud namespace. -``` -temporal cloud namespace cert-ca create --namespace my-namespace.my-account --ca-certificate-file ca-cert.pem -``` - -Example with base64 encoded data: +Example: ``` -temporal cloud namespace cert-ca create --namespace my-namespace.my-account --ca-certificate +temporal cloud namespace api-key get --namespace my-namespace.my-account ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -140,34 +87,27 @@ Use the following options to change the behavior of this command. You can also u | Flag | Required | Description | |------|----------|-------------| | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | -| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | -| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--ca-certificate` | No | **string** Base64-encoded CA certificate for mTLS authentication. Mutually exclusive with --ca-certificate-file. | -| `--ca-certificate-file` | No | **string** Path to a CA certificate PEM file for mTLS authentication. Mutually exclusive with --ca-certificate. | -| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | | `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | -| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | -| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | -### cert-ca delete +## apply -Delete client CA certificates from a Temporal Cloud namespace. This operation -requires confirmation and will remove the specified certificates from the -namespace configuration. +Apply a namespace configuration to Temporal Cloud. Creates a new namespace +if it doesn't exist, or updates an existing one to match the specification. -Specify either --ca-certificate-file or --ca-certificate, but not both. +The specification can be provided as inline JSON or loaded from a file +by prefixing the path with '@'. -Example with file: +Example with inline JSON: ``` -temporal cloud namespace cert-ca delete --namespace my-namespace.my-account --ca-certificate-file ca-cert.pem +temporal cloud namespace apply --spec '{"name": "namespace-name", "region": "us-west-2", "retention_days": 7}' ``` -Example with base64 encoded data: +Example with file path: ``` -temporal cloud namespace cert-ca delete --namespace my-namespace.my-account --ca-certificate +temporal cloud namespace apply --spec @namespace-spec.json ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -177,23 +117,28 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--ca-certificate` | No | **string** Base64-encoded CA certificate for mTLS authentication. Mutually exclusive with --ca-certificate-file. | -| `--ca-certificate-file` | No | **string** Path to a CA certificate PEM file for mTLS authentication. Mutually exclusive with --ca-certificate. | -| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | -| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | -| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--idempotent` | No | **bool** Succeed silently if the namespace already matches the specification. Without this flag, the command errors when no changes are needed. | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | +| `--spec` | Yes | **string** Namespace configuration in JSON format. Provide inline JSON directly, or use '@path/to/file.json' to load from a file. | +| `--verbose-diff` | No | **bool** Show detailed differences between the current and desired namespace configurations when changes are detected. | -### cert-ca list +## capacity -Retrieve the list of client CA certificates configured for a Temporal Cloud -namespace. These certificates are used for client authentication. +Commands for managing the capacity of Temporal Cloud namespaces. + +Capacity controls whether a namespace runs in on-demand mode or +provisioned mode (with a fixed TRU allocation). + +### capacity get + +Retrieve capacity information for a Temporal Cloud namespace, including +the current mode (on-demand or provisioned), mode options, and recent usage stats. Example: ``` -temporal cloud namespace cert-ca list --namespace my-namespace.my-account +temporal cloud namespace capacity get --namespace my-namespace.my-account ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -204,39 +149,22 @@ Use the following options to change the behavior of this command. You can also u | `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | -## cert-filter - -Commands for managing certificate filters for Temporal Cloud namespaces. -Certificate filters restrict mTLS connections to client certificates with -specific distinguished name properties. - -### cert-filter create +### capacity update -Add new certificate filters to a Temporal Cloud namespace. Certificate -filters restrict mTLS connections to client certificates whose distinguished -name properties match at least one of the filters. +Update the capacity of a Temporal Cloud namespace. Choose either on-demand +mode or provisioned mode (with a fixed TRU allocation). -Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. +Example (switch to on-demand): -| Flag | Required | Description | -|------|----------|-------------| -| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | -| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | -| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--common-name` | No | **string** The common name (CN) field from the certificate's distinguished name. | -| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | -| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | -| `--organization` | No | **string** The organization (O) field from the certificate's distinguished name. | -| `--organizational-unit` | No | **string** The organizational unit (OU) field from the certificate's distinguished name. | -| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | -| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | -| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | -| `--subject-alternative-name` | No | **string** The subject alternative name (SAN) from the certificate. | +``` +temporal cloud namespace capacity update --namespace my-namespace.my-account --capacity-mode on_demand +``` -### cert-filter delete +Example (switch to provisioned with 4 TRUs): -Delete certificate filters from a Temporal Cloud namespace. Filters are -matched by exact field equality. +``` +temporal cloud namespace capacity update --namespace my-namespace.my-account --capacity-mode provisioned --capacity-value 4 +``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -245,27 +173,13 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--common-name` | No | **string** The common name (CN) field from the certificate's distinguished name. | +| `--capacity-mode` | Yes | **string-enum** Capacity mode for the namespace. Must be either 'on_demand' or 'provisioned'. Accepted values: on_demand, provisioned. | +| `--capacity-value` | No | **float** The provisioned capacity in Temporal Resource Units (TRUs). Required and must be greater than 0 when --capacity-mode is 'provisioned'. Ignored when --capacity-mode is 'on_demand'. | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | | `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | -| `--organization` | No | **string** The organization (O) field from the certificate's distinguished name. | -| `--organizational-unit` | No | **string** The organizational unit (OU) field from the certificate's distinguished name. | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | -| `--subject-alternative-name` | No | **string** The subject alternative name (SAN) from the certificate. | - -### cert-filter list - -List all certificate filters configured for a Temporal Cloud namespace. - -Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. - -| Flag | Required | Description | -|------|----------|-------------| -| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | -| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | -| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | ## codec @@ -447,7 +361,9 @@ Use the following options to change the behavior of this command. You can also u | `--codec-pass-access-token` | No | **bool** Pass the user access token to the codec server endpoint. | | `--connection-rule-id` | No | **string[]** Private connectivity rule ID. Repeat to specify multiple. | | `--enable-delete-protection` | No | **bool** Prevent accidental deletion of this namespace. | +| `--enable-task-queue-fairness` | No | **bool** Enable task queue fairness for the namespace. | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--mtls-auth-enabled` | No | **bool** Enable mTLS authentication for the namespace. | | `--name`, `-n` | Yes | **string** The name for the new namespace (becomes part of the namespace ID). | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--region` | Yes | **string[]** Cloud region where the namespace will be hosted. Repeat to specify multiple regions for High Availability (e.g. --region aws-us-east-1 --region aws-us-west-2). | @@ -801,6 +717,52 @@ Use the following options to change the behavior of this command. You can also u | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | | `--sink-name` | Yes | **string** The name of the export sink. | +## fairness + +Commands for managing task queue fairness configuration of Temporal Cloud namespaces. + +### fairness get + +Retrieve the current task queue fairness configuration for a Temporal Cloud namespace. + +Example: + +``` +temporal cloud namespace fairness get --namespace my-namespace.my-account +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +### fairness set + +Set the task queue fairness configuration for a Temporal Cloud namespace. + +Example: + +``` +temporal cloud namespace fairness set --namespace my-namespace.my-account --enable-task-queue-fairness=true +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--enable-task-queue-fairness` | Yes | **bool** Enable or disable task queue fairness for the namespace. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + ## get Retrieve the configuration and status of a Temporal Cloud namespace. @@ -947,13 +909,16 @@ Use the following options to change the behavior of this command. You can also u ### ha update Update the High Availability configuration for a Temporal Cloud namespace. -Use --disable-auto-failover to toggle Temporal-managed automatic failover. -Use --disable-passive-poller-forwarding to toggle passive poller forwarding. +Use --auto-failover to enable or disable Temporal-managed automatic failover. +Use --passive-poller-forwarding to enable or disable passive poller forwarding. Example: ``` -temporal cloud namespace ha update --namespace my-namespace.my-account --disable-auto-failover true --disable-passive-poller-forwarding false +temporal cloud namespace ha update \ + --namespace my-namespace.my-account \ + --auto-failover enabled \ + --passive-poller-forwarding disabled ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -963,10 +928,10 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | -| `--disable-auto-failover` | No | **bool** Set to true to disable Temporal-managed automatic failover for the namespace. Set to false to re-enable automatic failover. | -| `--disable-passive-poller-forwarding` | No | **bool** Set to true to disable passive poller forwarding for the namespace. Set to false to re-enable passive poller forwarding. | +| `--auto-failover` | No | **string-enum** Enable or disable Temporal-managed automatic failover for the namespace. Accepted values: enabled, disabled. | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | | `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--passive-poller-forwarding` | No | **string-enum** Enable or disable passive poller forwarding for the namespace. Accepted values: enabled, disabled. | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | @@ -1043,6 +1008,230 @@ Use the following options to change the behavior of this command. You can also u | `--page-token` | No | **string** Token for retrieving the next page of results in a paginated list. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | +## mtls + +Commands for managing mTLS authentication configuration of Temporal Cloud namespaces. + +### mtls cert-ca + +Commands for managing the client CA certificates of Temporal Cloud namespaces. + +#### mtls cert-ca create + +Add client CA certificates to a Temporal Cloud namespace from a PEM file +or base64 encoded string. These certificates are used to verify client +connections and enable mTLS authentication. + +Specify either --ca-certificate-file or --ca-certificate, but not both. + +Example with file: + +``` +temporal cloud namespace mtls cert-ca create --namespace my-namespace.my-account --ca-certificate-file ca-cert.pem +``` + +Example with base64 encoded data: + +``` +temporal cloud namespace mtls cert-ca create --namespace my-namespace.my-account --ca-certificate +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--ca-certificate` | No | **string** Base64-encoded CA certificate for mTLS authentication. Mutually exclusive with --ca-certificate-file. | +| `--ca-certificate-file` | No | **string** Path to a CA certificate PEM file for mTLS authentication. Mutually exclusive with --ca-certificate. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +#### mtls cert-ca delete + +Delete client CA certificates from a Temporal Cloud namespace. This operation +requires confirmation and will remove the specified certificates from the +namespace configuration. + +Specify either --ca-certificate-file or --ca-certificate, but not both. + +Example with file: + +``` +temporal cloud namespace mtls cert-ca delete --namespace my-namespace.my-account --ca-certificate-file ca-cert.pem +``` + +Example with base64 encoded data: + +``` +temporal cloud namespace mtls cert-ca delete --namespace my-namespace.my-account --ca-certificate +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--ca-certificate` | No | **string** Base64-encoded CA certificate for mTLS authentication. Mutually exclusive with --ca-certificate-file. | +| `--ca-certificate-file` | No | **string** Path to a CA certificate PEM file for mTLS authentication. Mutually exclusive with --ca-certificate. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +#### mtls cert-ca list + +Retrieve the list of client CA certificates configured for a Temporal Cloud +namespace. These certificates are used for client authentication. + +Example: + +``` +temporal cloud namespace mtls cert-ca list --namespace my-namespace.my-account +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +### mtls cert-filter + +Commands for managing certificate filters for Temporal Cloud namespaces. +Certificate filters restrict mTLS connections to client certificates with +specific distinguished name properties. + +#### mtls cert-filter create + +Add new certificate filters to a Temporal Cloud namespace. Certificate +filters restrict mTLS connections to client certificates whose distinguished +name properties match at least one of the filters. + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--common-name` | No | **string** The common name (CN) field from the certificate's distinguished name. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--organization` | No | **string** The organization (O) field from the certificate's distinguished name. | +| `--organizational-unit` | No | **string** The organizational unit (OU) field from the certificate's distinguished name. | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | +| `--subject-alternative-name` | No | **string** The subject alternative name (SAN) from the certificate. | + +#### mtls cert-filter delete + +Delete certificate filters from a Temporal Cloud namespace. Filters are +matched by exact field equality. + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--common-name` | No | **string** The common name (CN) field from the certificate's distinguished name. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--organization` | No | **string** The organization (O) field from the certificate's distinguished name. | +| `--organizational-unit` | No | **string** The organizational unit (OU) field from the certificate's distinguished name. | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | +| `--subject-alternative-name` | No | **string** The subject alternative name (SAN) from the certificate. | + +#### mtls cert-filter list + +List all certificate filters configured for a Temporal Cloud namespace. + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +### mtls disable + +Disable mTLS authentication for a Temporal Cloud namespace. + +Example: + +``` +temporal cloud namespace mtls disable --namespace my-namespace.my-account +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +### mtls enable + +Enable mTLS authentication for a Temporal Cloud namespace. + +Example: + +``` +temporal cloud namespace mtls enable --namespace my-namespace.my-account +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | +| `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | +| `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + +### mtls get + +Retrieve the current mTLS authentication configuration for a Temporal Cloud namespace. + +Example: + +``` +temporal cloud namespace mtls get --namespace my-namespace.my-account +``` + +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + +| Flag | Required | Description | +|------|----------|-------------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | +| `--namespace`, `-n` | Yes | **string** The fully qualified namespace name in the format 'namespace.account' (e.g., 'my-namespace.my-account'). | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | + ## retention Commands for managing data retention settings of Temporal Cloud namespaces. diff --git a/docs/cli/command-reference/cloud/nexus.mdx b/docs/cli/command-reference/cloud/nexus.mdx index ade31a1d18..aa52495a5a 100644 --- a/docs/cli/command-reference/cloud/nexus.mdx +++ b/docs/cli/command-reference/cloud/nexus.mdx @@ -10,12 +10,10 @@ tags: - nexus --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for managing Nexus Operations in Temporal Cloud. This page provides a reference for the `temporal cloud nexus` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. @@ -129,6 +127,7 @@ Use the following options to change the behavior of this command. You can also u ### endpoint delete Delete a Nexus Endpoint on the Cloud Account. +Specify either `--name` or `--id` (exactly one is required). Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. @@ -137,8 +136,9 @@ Use the following options to change the behavior of this command. You can also u | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--async` | No | **bool** Return immediately after initiating the operation instead of waiting for completion. Use the returned operation ID to check status later. | | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | +| `--id` | No | **string** The ID of the Nexus Endpoint to delete. | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | -| `--name` | Yes | **string** The name of the Nexus Endpoint to delete. | +| `--name` | No | **string** The name of the Nexus Endpoint to delete. | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | @@ -174,6 +174,7 @@ Use the following options to change the behavior of this command. You can also u Update an existing Nexus Endpoint on the Cloud Account. An endpoint name is used in workflow code to invoke Nexus operations. +Specify either `--name` or `--id` to identify the endpoint (exactly one is required). The endpoint is patched leaving any existing fields for which flags are not provided as they were. @@ -193,8 +194,9 @@ Use the following options to change the behavior of this command. You can also u | `--async-operation-id` | No | **string** Custom identifier for tracking this async operation. If not provided, a unique ID is generated automatically. | | `--description` | No | **string** An optional endpoint description in markdown format. | | `--description-file` | No | **string** Path to a file containing an endpoint description in markdown format. Mutually exclusive with --description. | +| `--id` | No | **string** The ID of the Nexus Endpoint to update. | | `--idempotent` | No | **bool** Succeed silently if the resource already exists or matches the specification. Without this flag, the command errors when no changes are needed. | -| `--name` | Yes | **string** The name of the Nexus Endpoint to update. | +| `--name` | No | **string** The name of the Nexus Endpoint to update. | | `--poll-interval` | No | **duration** Time to wait between status checks when waiting for operation completion. Cannot be greater than 10 minutes. Supports minutes (m) and seconds (s). | | `--resource-version`, `-v` | No | **string** Resource version for optimistic concurrency control. If not provided, the current version is fetched automatically. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | diff --git a/docs/cli/command-reference/cloud/region.mdx b/docs/cli/command-reference/cloud/region.mdx index d6d7b3738a..2880bb8ad6 100644 --- a/docs/cli/command-reference/cloud/region.mdx +++ b/docs/cli/command-reference/cloud/region.mdx @@ -11,12 +11,10 @@ tags: - region --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for listing Temporal Cloud regions. This page provides a reference for the `temporal cloud region` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/service-account.mdx b/docs/cli/command-reference/cloud/service-account.mdx index 9a6800533c..488dee2b30 100644 --- a/docs/cli/command-reference/cloud/service-account.mdx +++ b/docs/cli/command-reference/cloud/service-account.mdx @@ -11,12 +11,10 @@ tags: - service-accounts --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for managing Temporal Cloud service accounts. This page provides a reference for the `temporal cloud service-account` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/user-group.mdx b/docs/cli/command-reference/cloud/user-group.mdx index abbf9d7d8c..58a8af4af9 100644 --- a/docs/cli/command-reference/cloud/user-group.mdx +++ b/docs/cli/command-reference/cloud/user-group.mdx @@ -11,12 +11,10 @@ tags: - user-groups --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for managing Temporal Cloud user groups. This page provides a reference for the `temporal cloud user-group` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/user.mdx b/docs/cli/command-reference/cloud/user.mdx index e9cd2d4004..d824b3c9b0 100644 --- a/docs/cli/command-reference/cloud/user.mdx +++ b/docs/cli/command-reference/cloud/user.mdx @@ -11,12 +11,10 @@ tags: - users --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} - +Commands for managing Temporal Cloud users. This page provides a reference for the `temporal cloud user` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/whoami.mdx b/docs/cli/command-reference/cloud/whoami.mdx index 7e61424f1d..6b8ef72cc0 100644 --- a/docs/cli/command-reference/cloud/whoami.mdx +++ b/docs/cli/command-reference/cloud/whoami.mdx @@ -12,14 +12,8 @@ tags: - authentication --- -import { ReleaseNoteHeader } from "@site/src/components"; - {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli via cmd/gen-docs */} - - - -This page provides a reference for the `temporal cloud whoami` command. +This file is generated from the CLI command definitions via cmd/gen-docs. */} Display information about the currently authenticated identity. @@ -32,8 +26,22 @@ Example: temporal cloud whoami ``` +Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. + | Flag | Required | Description | |------|----------|-------------| | `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | +## Global Flags + +The following options can be used with any command. + +| Flag | Required | Description | Default | +|------|----------|-------------|--------| +| `--api-key` | No | **string** API key for authenticating with Temporal Cloud. Can be used instead of interactive login for automation and CI/CD pipelines. | | +| `--auto-confirm` | No | **bool** Automatically confirm prompts and actions that require user confirmation. Useful for scripting and automation. | | +| `--config-dir` | No | **string** Directory path where CLI configuration files are stored, including authentication tokens and settings. | | +| `--disable-pop-up` | No | **bool** Prevent the CLI from opening a browser window during authentication. Useful for headless environments or when using alternative auth methods. | | +| `--server` | No | **string** Override the Temporal Cloud API server address. Used for connecting to non-production environments. | `saas-api.tmprl.cloud:443` | + diff --git a/docs/cli/command-reference/config.mdx b/docs/cli/command-reference/config.mdx index bf2238fc88..86d4e76ef4 100644 --- a/docs/cli/command-reference/config.mdx +++ b/docs/cli/command-reference/config.mdx @@ -20,7 +20,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `config` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. @@ -88,7 +88,7 @@ Assign a value to a property and store it in the config file: ``` temporal config set \ --prop address \ - --value your-namespace.a1b2c.tmprl.cloud:7233 + --value us-west-2.aws.api.temporal.io:7233 ``` Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. diff --git a/docs/cli/command-reference/env.mdx b/docs/cli/command-reference/env.mdx index 7f7b5814b3..d091904236 100644 --- a/docs/cli/command-reference/env.mdx +++ b/docs/cli/command-reference/env.mdx @@ -20,7 +20,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `env` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/operator.mdx b/docs/cli/command-reference/operator.mdx index 1590183c36..7936f5f2d4 100644 --- a/docs/cli/command-reference/operator.mdx +++ b/docs/cli/command-reference/operator.mdx @@ -38,7 +38,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `operator` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/schedule.mdx b/docs/cli/command-reference/schedule.mdx index 7945f7462e..675c6a55bc 100644 --- a/docs/cli/command-reference/schedule.mdx +++ b/docs/cli/command-reference/schedule.mdx @@ -25,7 +25,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `schedule` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/server.mdx b/docs/cli/command-reference/server.mdx index 1a07b5ba47..a16743b2c1 100644 --- a/docs/cli/command-reference/server.mdx +++ b/docs/cli/command-reference/server.mdx @@ -16,7 +16,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `server` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. @@ -79,6 +79,7 @@ Use the following options to change the behavior of this command. You can also u | `--sqlite-pragma` | No | **string[]** SQLite pragma statements in "PRAGMA=VALUE" format. | | `--ui-asset-path` | No | **string** UI custom assets path. | | `--ui-codec-endpoint` | No | **string** UI remote codec HTTP endpoint. | +| `--ui-disable-news-fetch` | No | **bool** Disable the Web UI newsfeed. When set, the UI will not request the newsfeed and the button to open the newsfeed panel is hidden. | | `--ui-ip` | No | **string** IP address bound to the Web UI. Defaults to same as '--ip' value. | | `--ui-port` | No | **int** Port for the Web UI. Defaults to '--port' value + 1000. | | `--ui-public-path` | No | **string** The public base path for the Web UI. Defaults to `/`. | diff --git a/docs/cli/command-reference/task-queue.mdx b/docs/cli/command-reference/task-queue.mdx index efb4fe2289..c222e86383 100644 --- a/docs/cli/command-reference/task-queue.mdx +++ b/docs/cli/command-reference/task-queue.mdx @@ -16,7 +16,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `task-queue` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. @@ -412,9 +412,9 @@ Use the following options to change the behavior of this command. You can also u ## versioning ``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ ``` Provides commands to add, list, remove, or replace Worker Build ID assignment @@ -438,6 +438,12 @@ Task Queues support the following versioning rules and policies: ### add-redirect-rule +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Add a new redirect rule for a given Task Queue. You may add at most one redirect rule for each distinct source build ID: @@ -448,12 +454,6 @@ temporal task-queue versioning add-redirect-rule \ --target-build-id "YourTargetBuildID" ``` -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | @@ -464,6 +464,12 @@ Use the following options to change the behavior of this command. You can also u ### commit-build-id +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Complete a Build ID's rollout and clean up unnecessary rules that might have been created during a gradual rollout: @@ -485,12 +491,6 @@ Rejects requests when there have been no recent pollers for this Build ID. This prevents committing invalid Build IDs. Use the `--force` option to override this validation. -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | @@ -501,6 +501,12 @@ Use the following options to change the behavior of this command. You can also u ### delete-assignment-rule +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Deletes a rule identified by its index in the Task Queue's list of assignment rules. @@ -514,12 +520,6 @@ By default, the Task Queue must retain one unconditional rule, such as "no hint filter" or "percentage". Otherwise, the delete operation is rejected. Use the `--force` option to override this validation. -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | @@ -530,6 +530,12 @@ Use the following options to change the behavior of this command. You can also u ### delete-redirect-rule +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Deletes the routing rule for the given source Build ID. ``` @@ -538,12 +544,6 @@ temporal task-queue versioning delete-redirect-rule \ --source-build-id "YourBuildId" ``` -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | @@ -553,6 +553,12 @@ Use the following options to change the behavior of this command. You can also u ### get-rules +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Retrieve all the Worker Build ID assignments and redirect rules associated with a Task Queue: @@ -571,16 +577,17 @@ Task Queues support the following versioning rules: Build ID. You may add at most one redirect rule for each source Build ID. Redirect rules require that a target Build ID is fully compatible with the source Build ID. -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` Use [global flags](#global-flags) to customize the connection to the Temporal Service for this command. ### insert-assignment-rule +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Inserts a new assignment rule for this Task Queue. Rules are evaluated in order, starting from index 0. The first applicable rule is applied, and the rest ignored: @@ -593,12 +600,6 @@ temporal task-queue versioning insert-assignment-rule \ If you do not specify a `--rule-index`, this command inserts at index 0. -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | @@ -610,6 +611,12 @@ Use the following options to change the behavior of this command. You can also u ### replace-assignment-rule +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Change an assignment rule for this Task Queue. By default, this enforces one unconditional rule (no hint filter or percentage). Otherwise, the operation will be rejected. Set `force` to true to bypass this validation. @@ -636,12 +643,6 @@ temporal task-queue versioning replace-assignment-rule \ Percent may vary between 0 and 100 (default). -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | @@ -654,6 +655,12 @@ Use the following options to change the behavior of this command. You can also u ### replace-redirect-rule +``` ++-------------------------------------------------------------+ +| CAUTION: This API has been deprecated by Worker Deployment. | ++-------------------------------------------------------------+ +``` + Updates a Build ID's redirect rule on a Task Queue by replacing its target Build ID: @@ -664,12 +671,6 @@ temporal task-queue versioning replace-redirect-rule \ --target-build-id YourNewTargetBuildId ``` -``` -+---------------------------------------------------------------------+ -| CAUTION: This API has been deprecated by Worker Deployment. | -+---------------------------------------------------------------------+ -``` - Use the following options to change the behavior of this command. You can also use any of the [global flags](#global-flags) that apply to all subcommands. | Flag | Required | Description | diff --git a/docs/cli/command-reference/worker.mdx b/docs/cli/command-reference/worker.mdx index 849b7423ef..daefb0fb9f 100644 --- a/docs/cli/command-reference/worker.mdx +++ b/docs/cli/command-reference/worker.mdx @@ -14,7 +14,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `worker` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/workflow.mdx b/docs/cli/command-reference/workflow.mdx index 08ca40f62f..4bc69d3e4a 100644 --- a/docs/cli/command-reference/workflow.mdx +++ b/docs/cli/command-reference/workflow.mdx @@ -43,7 +43,7 @@ tags: --- {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. -This file is generated from https://github.com/temporalio/cli/blob/main/internal/commandsgen/commands.yml via internal/cmd/gen-docs */} +This file is generated from the CLI command definitions via cmd/gen-docs. */} This page provides a reference for the `temporal` CLI `workflow` command. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. From 1b3b5c64f11401c8a54ee3f6854141b40668dbfe Mon Sep 17 00:00:00 2001 From: Xinyi Chen Date: Mon, 13 Jul 2026 09:23:08 -0700 Subject: [PATCH 40/96] Align custom roles doc with Cloud Ops API wording (#4872) * fix: align terminology to Cloud Ops API in custom roles doc Co-Authored-By: Claude Sonnet 5 * fix: avoid Ops/operations repetition in custom roles doc Co-Authored-By: Claude Sonnet 5 --------- Co-authored-by: Claude Sonnet 5 --- docs/cloud/manage-access/custom-roles.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cloud/manage-access/custom-roles.mdx b/docs/cloud/manage-access/custom-roles.mdx index db3c048ed6..3f391488c1 100644 --- a/docs/cloud/manage-access/custom-roles.mdx +++ b/docs/cloud/manage-access/custom-roles.mdx @@ -92,7 +92,7 @@ required principal-update permissions by default. ## Available permissions -Most of the Control Plane operations listed in the API references +Most of the operations listed in the Cloud Ops API references ([HTTP](https://saas-api.tmprl.cloud/docs/httpapi.html#description/introduction), [GRPC](https://saas-api.tmprl.cloud/docs/grpcapi/)) can be assigned to a Custom Role. For the operations that are supported by Custom Roles, see From 5e7112321d5b516037cff2c57d4d4a8297c18ab9 Mon Sep 17 00:00:00 2001 From: Duncan Mackenzie Date: Mon, 13 Jul 2026 10:15:03 -0700 Subject: [PATCH 41/96] Add ReleaseNoteHeader to cloud CLI documentation files (#4873) This update reintroduces the ReleaseNoteHeader component to various cloud CLI documentation files. --- docs/cli/command-reference/cloud/account.mdx | 4 ++++ docs/cli/command-reference/cloud/apikey.mdx | 4 ++++ docs/cli/command-reference/cloud/async-operation.mdx | 4 ++++ docs/cli/command-reference/cloud/connectivity.mdx | 4 ++++ docs/cli/command-reference/cloud/custom-role.mdx | 4 ++++ docs/cli/command-reference/cloud/login.mdx | 4 ++++ docs/cli/command-reference/cloud/logout.mdx | 4 ++++ docs/cli/command-reference/cloud/namespace.mdx | 4 ++++ docs/cli/command-reference/cloud/nexus.mdx | 4 ++++ docs/cli/command-reference/cloud/region.mdx | 4 ++++ docs/cli/command-reference/cloud/service-account.mdx | 4 ++++ docs/cli/command-reference/cloud/user-group.mdx | 4 ++++ docs/cli/command-reference/cloud/user.mdx | 4 ++++ docs/cli/command-reference/cloud/whoami.mdx | 4 ++++ 14 files changed, 56 insertions(+) diff --git a/docs/cli/command-reference/cloud/account.mdx b/docs/cli/command-reference/cloud/account.mdx index 7ff75574fa..1824d5fc26 100644 --- a/docs/cli/command-reference/cloud/account.mdx +++ b/docs/cli/command-reference/cloud/account.mdx @@ -11,9 +11,13 @@ tags: - account --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Manage the Temporal Cloud account. This page provides a reference for the `temporal cloud account` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/apikey.mdx b/docs/cli/command-reference/cloud/apikey.mdx index 5f568c99cd..89e2de48d2 100644 --- a/docs/cli/command-reference/cloud/apikey.mdx +++ b/docs/cli/command-reference/cloud/apikey.mdx @@ -12,9 +12,13 @@ tags: - apikeys --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for creating, listing, and managing Temporal Cloud API keys. API keys authenticate requests to the Temporal Cloud API. diff --git a/docs/cli/command-reference/cloud/async-operation.mdx b/docs/cli/command-reference/cloud/async-operation.mdx index 998c565ae8..3d10e8506c 100644 --- a/docs/cli/command-reference/cloud/async-operation.mdx +++ b/docs/cli/command-reference/cloud/async-operation.mdx @@ -12,9 +12,13 @@ tags: - async-operations --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for working with Temporal Cloud async operations. This page provides a reference for the `temporal cloud async-operation` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/connectivity.mdx b/docs/cli/command-reference/cloud/connectivity.mdx index 5c1289b6d3..8675d195c3 100644 --- a/docs/cli/command-reference/cloud/connectivity.mdx +++ b/docs/cli/command-reference/cloud/connectivity.mdx @@ -11,9 +11,13 @@ tags: - connectivity --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for managing connectivity rules for Temporal Cloud. This page provides a reference for the `temporal cloud connectivity` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/custom-role.mdx b/docs/cli/command-reference/cloud/custom-role.mdx index 3f6263033a..2011b54332 100644 --- a/docs/cli/command-reference/cloud/custom-role.mdx +++ b/docs/cli/command-reference/cloud/custom-role.mdx @@ -12,9 +12,13 @@ tags: - custom-roles --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for managing Temporal Cloud custom roles. Custom roles enable fine-grained authorization by binding sets of diff --git a/docs/cli/command-reference/cloud/login.mdx b/docs/cli/command-reference/cloud/login.mdx index 94fc20976c..0493eee88a 100644 --- a/docs/cli/command-reference/cloud/login.mdx +++ b/docs/cli/command-reference/cloud/login.mdx @@ -12,9 +12,13 @@ tags: - login --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Authenticate with Temporal Cloud using browser-based OAuth login. This command opens your default browser to complete authentication. Once diff --git a/docs/cli/command-reference/cloud/logout.mdx b/docs/cli/command-reference/cloud/logout.mdx index 01526838b3..f54091a3c0 100644 --- a/docs/cli/command-reference/cloud/logout.mdx +++ b/docs/cli/command-reference/cloud/logout.mdx @@ -12,9 +12,13 @@ tags: - login --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Log out from Temporal Cloud by clearing stored authentication tokens and credentials from the local configuration. diff --git a/docs/cli/command-reference/cloud/namespace.mdx b/docs/cli/command-reference/cloud/namespace.mdx index 0c1d597f2d..5dd8ae9ac2 100644 --- a/docs/cli/command-reference/cloud/namespace.mdx +++ b/docs/cli/command-reference/cloud/namespace.mdx @@ -11,9 +11,13 @@ tags: - namespaces --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for creating, updating, and managing Temporal Cloud namespaces. Namespaces provide isolation for workflows and activities. Each namespace diff --git a/docs/cli/command-reference/cloud/nexus.mdx b/docs/cli/command-reference/cloud/nexus.mdx index aa52495a5a..a9021288e0 100644 --- a/docs/cli/command-reference/cloud/nexus.mdx +++ b/docs/cli/command-reference/cloud/nexus.mdx @@ -10,9 +10,13 @@ tags: - nexus --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for managing Nexus Operations in Temporal Cloud. This page provides a reference for the `temporal cloud nexus` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/region.mdx b/docs/cli/command-reference/cloud/region.mdx index 2880bb8ad6..0714f20148 100644 --- a/docs/cli/command-reference/cloud/region.mdx +++ b/docs/cli/command-reference/cloud/region.mdx @@ -11,9 +11,13 @@ tags: - region --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for listing Temporal Cloud regions. This page provides a reference for the `temporal cloud region` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/service-account.mdx b/docs/cli/command-reference/cloud/service-account.mdx index 488dee2b30..5df6e1d861 100644 --- a/docs/cli/command-reference/cloud/service-account.mdx +++ b/docs/cli/command-reference/cloud/service-account.mdx @@ -11,9 +11,13 @@ tags: - service-accounts --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for managing Temporal Cloud service accounts. This page provides a reference for the `temporal cloud service-account` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/user-group.mdx b/docs/cli/command-reference/cloud/user-group.mdx index 58a8af4af9..3edf0dfd88 100644 --- a/docs/cli/command-reference/cloud/user-group.mdx +++ b/docs/cli/command-reference/cloud/user-group.mdx @@ -11,9 +11,13 @@ tags: - user-groups --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for managing Temporal Cloud user groups. This page provides a reference for the `temporal cloud user-group` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/user.mdx b/docs/cli/command-reference/cloud/user.mdx index d824b3c9b0..450a3f95b0 100644 --- a/docs/cli/command-reference/cloud/user.mdx +++ b/docs/cli/command-reference/cloud/user.mdx @@ -11,9 +11,13 @@ tags: - users --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Commands for managing Temporal Cloud users. This page provides a reference for the `temporal cloud user` commands. The flags applicable to each subcommand are presented in a table within the heading for the subcommand. Refer to [Global Flags](#global-flags) for flags that you can use with every subcommand. diff --git a/docs/cli/command-reference/cloud/whoami.mdx b/docs/cli/command-reference/cloud/whoami.mdx index 6b8ef72cc0..35f4e425cd 100644 --- a/docs/cli/command-reference/cloud/whoami.mdx +++ b/docs/cli/command-reference/cloud/whoami.mdx @@ -12,9 +12,13 @@ tags: - authentication --- +import { ReleaseNoteHeader } from '@site/src/components'; + {/* NOTE: This is an auto-generated file. Any edit to this file will be overwritten. This file is generated from the CLI command definitions via cmd/gen-docs. */} + + Display information about the currently authenticated identity. Shows whether you are authenticated as a user or service account, along From 7f1352c63f719a66a8320991adc40e7e3700f579 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 12:28:59 -0500 Subject: [PATCH 42/96] chore(deps): bump golang.org/x/net (#4814) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.48.0 to 0.55.0. - [Commits](https://github.com/golang/net/compare/v0.48.0...v0.55.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.55.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- sample-apps/go/features/cancellation/go.mod | 8 ++++---- sample-apps/go/features/cancellation/go.sum | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sample-apps/go/features/cancellation/go.mod b/sample-apps/go/features/cancellation/go.mod index fa6388c12f..ebef45e79b 100644 --- a/sample-apps/go/features/cancellation/go.mod +++ b/sample-apps/go/features/cancellation/go.mod @@ -1,6 +1,6 @@ module documentation-samples-go/features/cancellation -go 1.24.0 +go 1.25.0 require go.temporal.io/sdk v1.21.1 @@ -21,9 +21,9 @@ require ( github.com/stretchr/testify v1.8.1 // indirect go.temporal.io/api v1.16.0 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/net v0.48.0 // indirect - golang.org/x/sys v0.39.0 // indirect - golang.org/x/text v0.32.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/text v0.37.0 // indirect golang.org/x/time v0.1.0 // indirect google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa // indirect google.golang.org/grpc v1.79.3 // indirect diff --git a/sample-apps/go/features/cancellation/go.sum b/sample-apps/go/features/cancellation/go.sum index 9a9e1ebdf9..b52c950106 100644 --- a/sample-apps/go/features/cancellation/go.sum +++ b/sample-apps/go/features/cancellation/go.sum @@ -701,8 +701,8 @@ golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -808,8 +808,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= -golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= @@ -827,8 +827,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= -golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 98aeab132cf78586b873539c7444b85d7bbfbbe2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 12:40:43 -0500 Subject: [PATCH 43/96] chore(deps): bump golang.org/x/net in /sample-apps/go/features/sessions (#4829) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.48.0 to 0.55.0. - [Commits](https://github.com/golang/net/compare/v0.48.0...v0.55.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-version: 0.55.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- sample-apps/go/features/sessions/go.mod | 8 ++++---- sample-apps/go/features/sessions/go.sum | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sample-apps/go/features/sessions/go.mod b/sample-apps/go/features/sessions/go.mod index 9b49d263ed..d22f6bee12 100644 --- a/sample-apps/go/features/sessions/go.mod +++ b/sample-apps/go/features/sessions/go.mod @@ -1,6 +1,6 @@ module documentation-samples-go/features/sessions -go 1.24.0 +go 1.25.0 require ( github.com/stretchr/testify v1.8.1 @@ -23,9 +23,9 @@ require ( github.com/stretchr/objx v0.5.0 // indirect go.temporal.io/api v1.16.0 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/net v0.48.0 // indirect - golang.org/x/sys v0.39.0 // indirect - golang.org/x/text v0.32.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/text v0.37.0 // indirect golang.org/x/time v0.1.0 // indirect google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa // indirect google.golang.org/grpc v1.79.3 // indirect diff --git a/sample-apps/go/features/sessions/go.sum b/sample-apps/go/features/sessions/go.sum index 9a9e1ebdf9..b52c950106 100644 --- a/sample-apps/go/features/sessions/go.sum +++ b/sample-apps/go/features/sessions/go.sum @@ -701,8 +701,8 @@ golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfS golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -808,8 +808,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= -golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= @@ -827,8 +827,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= -golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From d1d69932a59361ce6c4ce77d9ad8dc5c9c07f697 Mon Sep 17 00:00:00 2001 From: Sean Bollin Date: Mon, 13 Jul 2026 10:56:20 -0700 Subject: [PATCH 44/96] Updating documentation to fix max role name error (#4876) --- .../serverless-workers/aws-lambda.mdx | 13 +++---------- .../serverless-workers/self-hosted-setup.mdx | 13 +++---------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx b/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx index 9e1e301783..ab014bd6de 100644 --- a/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx +++ b/docs/production-deployment/worker-deployments/serverless-workers/aws-lambda.mdx @@ -395,14 +395,7 @@ permissions granted. | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `AssumeRoleExternalId` | A string you choose to prevent [confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) attacks. Can be any value. Use the same value when creating the Worker Deployment Version. | | `LambdaFunctionARNs` | Comma-separated list of Lambda function ARNs that Temporal may invoke. To allow invocation of any published version of a function, use a wildcard suffix (for example, `arn:aws:lambda:...:function:my-temporal-worker:*`). One role can authorize multiple Worker Lambdas. | -| `RoleName` | Base name for the created IAM role. Defaults to `Temporal-Cloud-Serverless-Worker`. | - -:::caution - -The template appends the stack name to `RoleName` to form the final IAM role name (`-`). IAM role -names cannot exceed 64 characters, so a long `RoleName` or stack name can cause stack creation to fail. - -::: +| `RoleName` | Base name for the created IAM role. Defaults to `Temporal-Cloud-Serverless-Worker`. Provide a new role name if creating more than one stack. |
CloudFormation template @@ -455,7 +448,7 @@ Resources: TemporalCloudServerlessWorker: Type: AWS::IAM::Role Properties: - RoleName: !Sub '${RoleName}-${AWS::StackName}' + RoleName: !Ref RoleName AssumeRolePolicyDocument: Version: '2012-10-17' Statement: @@ -490,7 +483,7 @@ Resources: - lambda:GetFunction Resource: !Ref LambdaFunctionARNs Roles: - - !Sub '${RoleName}-${AWS::StackName}' + - !Ref RoleName Outputs: RoleARN: diff --git a/docs/production-deployment/worker-deployments/serverless-workers/self-hosted-setup.mdx b/docs/production-deployment/worker-deployments/serverless-workers/self-hosted-setup.mdx index 51aebfdc9a..aa8303afb2 100644 --- a/docs/production-deployment/worker-deployments/serverless-workers/self-hosted-setup.mdx +++ b/docs/production-deployment/worker-deployments/serverless-workers/self-hosted-setup.mdx @@ -127,14 +127,7 @@ aws cloudformation create-stack \ | `TemporalIamRoleArn` | The ARN of the IAM role or user that the Temporal Service runs as. This is the identity the server uses to call `sts:AssumeRole`. To find the ARN, run `aws sts get-caller-identity` in the server's environment. | | `AssumeRoleExternalId` | A unique string to prevent [confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) attacks. Choose any value and pass the same value when creating the Worker Deployment Version. | | `LambdaFunctionARNs` | Comma-separated list of Lambda function ARNs that Temporal may invoke. To allow invocation of any published version of a function, use a wildcard suffix (for example, `arn:aws:lambda:...:function:my-temporal-worker:*`). | -| `RoleName` | Base name for the created IAM role. Defaults to `Temporal-Serverless-Worker`. | - -:::caution - -The template appends the stack name to `RoleName` to form the final IAM role name (`-`). IAM role -names cannot exceed 64 characters, so a long `RoleName` or stack name can cause stack creation to fail. - -::: +| `RoleName` | Base name for the created IAM role. Defaults to `Temporal-Serverless-Worker`. Provide a new role name if creating more than one stack. |
CloudFormation template @@ -170,7 +163,7 @@ Resources: TemporalServerlessWorker: Type: AWS::IAM::Role Properties: - RoleName: !Sub '${RoleName}-${AWS::StackName}' + RoleName: !Ref RoleName AssumeRolePolicyDocument: Version: '2012-10-17' Statement: @@ -198,7 +191,7 @@ Resources: - lambda:GetFunction Resource: !Ref LambdaFunctionARNs Roles: - - !Sub '${RoleName}-${AWS::StackName}' + - !Ref RoleName Outputs: RoleARN: From 1e190fca354229749bb75bce053b9f57cd759309 Mon Sep 17 00:00:00 2001 From: Markus Sample Date: Mon, 13 Jul 2026 11:19:58 -0700 Subject: [PATCH 45/96] add billing api (#4877) --- docs/cloud/manage-access/permissions-reference.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/cloud/manage-access/permissions-reference.mdx b/docs/cloud/manage-access/permissions-reference.mdx index 6556e67da3..cf6a6d9fa0 100644 --- a/docs/cloud/manage-access/permissions-reference.mdx +++ b/docs/cloud/manage-access/permissions-reference.mdx @@ -38,6 +38,7 @@ configured per user. | [AddUserGroupMember](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/groups/POST/cloud/user-groups/%7BgroupId%7D/members) | | | | ✔ | ✔ | | [CreateAccountAuditLogSink](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/account/POST/cloud/audit-log-sinks) | | | | ✔ | ✔ | | [CreateApiKey](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/api-keys/POST/cloud/api-keys) | ✔\* | ✔\* | ✔\* | ✔\* | ✔\* | +| [CreateBillingReport](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/billing/POST/cloud/billing-reports) | | | ✔ | | ✔ | | [CreateConnectivityRule](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/connectivity-rules/POST/cloud/connectivity-rules) | | | | ✔ | ✔ | | [CreateNamespace](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/namespaces/POST/cloud/namespaces) | | ✔ | | ✔ | ✔ | | [CreateNexusEndpoint](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/nexus/POST/cloud/nexus/endpoints) | | ✔ | | ✔ | ✔ | @@ -58,6 +59,7 @@ configured per user. | [GetApiKeys](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/api-keys/GET/cloud/api-keys) | ✔\* | ✔\* | ✔\* | ✔\* | ✔\* | | [GetAsyncOperation](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/operations/GET/cloud/operations/%7BasyncOperationId%7D) | ✔ | ✔ | ✔ | ✔ | ✔ | | [GetAuditLogs](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/account/GET/cloud/audit-logs) | | | | ✔ | ✔ | +| [GetBillingReport](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/billing/GET/cloud/billing-reports/%7BbillingReportId%7D) | | | ✔ | | ✔ | | [GetConnectivityRule](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/connectivity-rules/GET/cloud/connectivity-rules/%7BconnectivityRuleId%7D) | | ✔ | | ✔ | ✔ | | [GetConnectivityRules](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/connectivity-rules/GET/cloud/connectivity-rules) | | ✔ | | ✔ | ✔ | | [GetCurrentIdentity](https://saas-api.tmprl.cloud/docs/httpapi.html#tag/account/GET/cloud/current-identity) | ✔ | ✔ | ✔ | ✔ | ✔ | From f0001b969afb2f834a1cdecb4bae98b32016c2dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 15:21:55 -0500 Subject: [PATCH 46/96] chore(deps): bump js-yaml from 4.2.0 to 5.1.0 (#4822) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.2.0 to 5.1.0. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.2.0...5.1.0) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Co-authored-by: Jwahir Sundai --- package.json | 2 +- yarn.lock | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 50d97ae846..b03f5f6358 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "concurrently": "^10.0.3", "docusaurus-plugin-llms": "^0.2.0", "docusaurus-pushfeedback": "^1.0.3", - "js-yaml": "^4.2.0", + "js-yaml": "^5.1.0", "path": "^0.12.7", "react": "^19.2.7", "react-dom": "^19.2.7", diff --git a/yarn.lock b/yarn.lock index cf95286787..16a7860d9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9100,13 +9100,20 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0, js-yaml@^4.1.1, js-yaml@^4.2.0: +js-yaml@^4.1.0, js-yaml@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.2.0.tgz#2bd9e85682dd91bd469afb809d816043b3d49524" integrity sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw== dependencies: argparse "^2.0.1" +js-yaml@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-5.1.0.tgz#c084ac880197833810a69e9c7e51eae12ff35448" + integrity sha512-s8VA5jkR8f22S3NAXmhKPFqGUduqZGlsufabVOgN14iTdw/RXcym7bKkbwjxLK9Yw2lEvvmJjFp119+KPeo8Kg== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" From efbc324ecbb15d133be58834747a06feeac8e2c6 Mon Sep 17 00:00:00 2001 From: Duncan Mackenzie Date: Tue, 14 Jul 2026 09:14:12 -0700 Subject: [PATCH 47/96] Major Vale related update (#4879) * Major Vale related update, added new relative path rule, which led to fixing a ton of broken or redirected links after correcting the links in the mdx files to /foo instead of https://docs.temporal.io/foo * restricting to markdown links, not bare URLs --- .vale-ci.ini | 48 +++++++++++++++++++ .vale.ini | 45 +++++++++++++++++ docs/best-practices/cloud-access-control.mdx | 8 ++-- docs/best-practices/cost-optimization.mdx | 4 +- docs/best-practices/knowledge-hub.mdx | 4 +- docs/best-practices/security-controls.mdx | 28 +++++------ docs/cloud/audit-logs-gcp.mdx | 2 +- docs/cloud/capacity-modes.mdx | 2 +- docs/cloud/connectivity/index.mdx | 2 +- docs/cloud/connectivity/ip-addresses.mdx | 6 +-- docs/cloud/gcp-export-gcs.mdx | 2 +- docs/cloud/get-started/api-keys.mdx | 2 +- docs/cloud/get-started/certificates.mdx | 4 +- docs/cloud/get-started/namespaces.mdx | 4 +- .../high-availability/failovers/index.mdx | 2 +- .../manage-access/permissions-reference.mdx | 2 +- .../metrics/openmetrics/api-reference.mdx | 2 +- docs/cloud/migrate/manual.mdx | 2 +- docs/cloud/terraform-provider.mdx | 6 +-- .../activities/standalone-activities.mdx | 2 +- .../dotnet/best-practices/error-handling.mdx | 2 +- .../develop/dotnet/client/temporal-client.mdx | 2 +- docs/develop/dotnet/nexus/feature-guide.mdx | 2 +- docs/develop/dotnet/set-up.mdx | 2 +- docs/develop/go/activities/basics.mdx | 2 +- .../go/activities/standalone-activities.mdx | 2 +- docs/develop/go/client/namespaces.mdx | 6 +-- docs/develop/go/client/temporal-client.mdx | 4 +- docs/develop/go/nexus/feature-guide.mdx | 2 +- docs/develop/go/set-up.mdx | 2 +- docs/develop/go/workflows/schedules.mdx | 2 +- docs/develop/java/activities/basics.mdx | 2 +- docs/develop/java/client/namespaces.mdx | 8 ++-- docs/develop/java/index.mdx | 2 +- docs/develop/java/nexus/feature-guide.mdx | 2 +- docs/develop/java/set-up.mdx | 2 +- .../java/workflows/message-passing.mdx | 2 +- docs/develop/java/workflows/schedules.mdx | 2 +- docs/develop/php/activities/basics.mdx | 2 +- docs/develop/php/client/temporal-client.mdx | 2 +- docs/develop/php/set-up.mdx | 2 +- docs/develop/php/workflows/schedules.mdx | 2 +- docs/develop/python/activities/basics.mdx | 2 +- .../develop/python/client/temporal-client.mdx | 2 +- .../develop/python/integrations/langsmith.mdx | 2 +- docs/develop/python/nexus/feature-guide.mdx | 4 +- docs/develop/python/set-up.mdx | 2 +- docs/develop/python/workflows/schedules.mdx | 2 +- .../ruby/best-practices/error-handling.mdx | 2 +- docs/develop/ruby/client/temporal-client.mdx | 2 +- docs/develop/ruby/index.mdx | 2 +- docs/develop/ruby/set-up.mdx | 2 +- docs/develop/ruby/workflows/basics.mdx | 2 +- docs/develop/rust/quickstart.mdx | 2 +- docs/develop/typescript/activities/basics.mdx | 2 +- docs/develop/typescript/client/namespaces.mdx | 6 +-- .../typescript/integrations/openai-agents.mdx | 2 +- .../typescript/nexus/feature-guide.mdx | 4 +- docs/develop/typescript/set-up.mdx | 2 +- .../typescript/workflows/schedules.mdx | 2 +- .../develop/typescript/workflows/timeouts.mdx | 2 +- docs/develop/worker-performance.mdx | 6 +-- docs/encyclopedia/event-history/dotnet.mdx | 6 +-- .../event-history/event-history.mdx | 2 +- docs/encyclopedia/event-history/go.mdx | 4 +- docs/encyclopedia/event-history/java.mdx | 6 +-- docs/encyclopedia/event-history/python.mdx | 4 +- .../encyclopedia/event-history/typescript.mdx | 6 +-- docs/encyclopedia/nexus/nexus-operations.mdx | 4 +- docs/encyclopedia/temporal-sdks.mdx | 2 +- .../multi-cluster-replication.mdx | 2 +- .../workers/worker-versioning.mdx | 10 ++-- .../handling-messages.mdx | 8 ++-- .../sending-messages.mdx | 4 +- .../workflow/workflow-execution/event.mdx | 2 +- .../cloud-automation.mdx | 10 ++-- .../low-latency.mdx | 2 +- docs/evaluate/temporal-cloud/actions.mdx | 14 +++--- docs/evaluate/temporal-cloud/limits.mdx | 2 +- docs/evaluate/temporal-cloud/pricing.mdx | 4 +- docs/evaluate/understanding-temporal.mdx | 2 +- .../multi-cluster-replication.mdx | 2 +- .../server-frontend-api-reference.mdx | 2 +- docs/references/errors.mdx | 2 +- docs/references/failures.mdx | 2 +- .../performance-bottlenecks.mdx | 18 +++---- vale/styles/Temporal/RelativeLinks.yml | 22 +++++++++ vale/test/relative-links-bad.md | 5 ++ vale/test/relative-links-good.md | 9 ++++ 89 files changed, 285 insertions(+), 156 deletions(-) create mode 100644 vale/styles/Temporal/RelativeLinks.yml create mode 100644 vale/test/relative-links-bad.md create mode 100644 vale/test/relative-links-good.md diff --git a/.vale-ci.ini b/.vale-ci.ini index ae518dc8a2..17d07650f1 100644 --- a/.vale-ci.ini +++ b/.vale-ci.ini @@ -14,8 +14,56 @@ Temporal.programming = NO Temporal.WordList = NO Temporal.terms = NO +; Temporal.Headings and Temporal.RelativeLinks are intentionally left enabled +; (not listed above) — they're the two high-confidence checks this CI gate runs. + ; ignore MDX custom heading-ID comments, e.g. {/* #ha-worker-patterns */} TokenIgnores = (\{/\*[^\n]*?\*/\}) +; These are reference docs whose headings are literal command/metric names +; (e.g. "## audit-log", "### --workflow_id"), not prose — sentence-case +; capitalization doesn't apply, so skip Temporal.Headings for them. +[docs/references/sdk-metrics.mdx] +Temporal.Headings = NO + +[docs/tctl-v1/**] +Temporal.Headings = NO + +[docs/cli/command-reference/**] +Temporal.Headings = NO + +[docs/cloud/tcld/**] +Temporal.Headings = NO + +[docs/cloud/references/regions/**] +Temporal.Headings = NO + +[docs/cloud/metrics/reference.mdx] +Temporal.Headings = NO + +[docs/cloud/metrics/openmetrics/metrics-reference.mdx] +Temporal.Headings = NO + +[docs/references/cluster-metrics.mdx] +Temporal.Headings = NO + +[docs/references/configuration.mdx] +Temporal.Headings = NO + +[docs/references/web-ui-configuration.mdx] +Temporal.Headings = NO + +[docs/references/server-options.mdx] +Temporal.Headings = NO + +[docs/references/errors.mdx] +Temporal.Headings = NO + +[docs/references/commands.mdx] +Temporal.Headings = NO + +[docs/references/events.mdx] +Temporal.Headings = NO + [formats] mdx = md diff --git a/.vale.ini b/.vale.ini index 4ff4340491..9753a3830e 100644 --- a/.vale.ini +++ b/.vale.ini @@ -27,6 +27,51 @@ Google.Will = NO Microsoft.ComplexWords = NO Google.WordList = NO +; These are reference docs whose headings are literal command/metric names +; (e.g. "## audit-log", "### --workflow_id"), not prose — sentence-case +; capitalization doesn't apply, so skip Temporal.Headings for them. +[docs/references/sdk-metrics.mdx] +Temporal.Headings = NO + +[docs/tctl-v1/**] +Temporal.Headings = NO + +[docs/cli/command-reference/**] +Temporal.Headings = NO + +[docs/cloud/tcld/**] +Temporal.Headings = NO + +[docs/cloud/references/regions/**] +Temporal.Headings = NO + +[docs/cloud/metrics/reference.mdx] +Temporal.Headings = NO + +[docs/cloud/metrics/openmetrics/metrics-reference.mdx] +Temporal.Headings = NO + +[docs/references/cluster-metrics.mdx] +Temporal.Headings = NO + +[docs/references/configuration.mdx] +Temporal.Headings = NO + +[docs/references/web-ui-configuration.mdx] +Temporal.Headings = NO + +[docs/references/server-options.mdx] +Temporal.Headings = NO + +[docs/references/errors.mdx] +Temporal.Headings = NO + +[docs/references/commands.mdx] +Temporal.Headings = NO + +[docs/references/events.mdx] +Temporal.Headings = NO + [formats] mdx = md diff --git a/docs/best-practices/cloud-access-control.mdx b/docs/best-practices/cloud-access-control.mdx index 82a3e3ef62..9b1b9b554b 100644 --- a/docs/best-practices/cloud-access-control.mdx +++ b/docs/best-practices/cloud-access-control.mdx @@ -50,16 +50,16 @@ Select the option that aligns best with your infrastructure, security requiremen In the case that you are using multiple certificates signed by the same CA, and some of these certificates are for production environments, there are some workarounds you can employ. -One convention is to give certificates a common name that matches the namespace. If you do this when using the same CA for dev and prod, then you can leverage Certificate Filters to prevent access to production environments. This is described in detail under the [authorization section](https://docs.temporal.io/cloud/certificates#control-authorization) of the documentation. +One convention is to give certificates a common name that matches the namespace. If you do this when using the same CA for dev and prod, then you can leverage Certificate Filters to prevent access to production environments. This is described in detail under the [authorization section](/cloud/certificates#control-authorization) of the documentation. ## Best practices ### Establish clear guidelines on authentication methods -Teams should standardize on either [mTLS certificates](https://docs.temporal.io/cloud/certificates) or -[API keys](https://docs.temporal.io/cloud/api-keys) for the following operations: +Teams should standardize on either [mTLS certificates](/cloud/certificates) or +[API keys](/cloud/api-keys) for the following operations: - Connect Temporal clients to Temporal Cloud (e.g. Worker processes) -- Automation (e.g. Temporal Cloud [Operations API](https://docs.temporal.io/ops), [Terraform provider](https://docs.temporal.io/cloud/terraform-provider), [Temporal CLI](https://docs.temporal.io/cli/setup-cli)) +- Automation (e.g. Temporal Cloud [Operations API](/ops), [Terraform provider](/cloud/terraform-provider), [Temporal CLI](/cli/setup-cli)) By default, teams should use API keys with [service accounts](/cloud/manage-access/service-accounts) for both operations. API keys are generally easier to set up and rotate than mTLS certificates, and service accounts let you assign account-level and diff --git a/docs/best-practices/cost-optimization.mdx b/docs/best-practices/cost-optimization.mdx index 8b7d4b5af7..aed3fc0a99 100644 --- a/docs/best-practices/cost-optimization.mdx +++ b/docs/best-practices/cost-optimization.mdx @@ -114,7 +114,7 @@ Focus optimization efforts on what's driving costs with a specific workload: ## Measuring -Establish [baseline metrics](https://docs.temporal.io/cloud/metrics/reference) before optimizing and be sure to validate impact after implementation. +Establish [baseline metrics](/cloud/metrics/reference) before optimizing and be sure to validate impact after implementation. Specifically: - Actions consumption (per Workflow, per day/month, by Namespace) @@ -124,7 +124,7 @@ Specifically: ## Actions optimization -[Actions](https://docs.temporal.io/cloud/actions) encompass Workflow operations, Activity Executions, Signals, Queries, and other interactions with Temporal. +[Actions](/cloud/actions) encompass Workflow operations, Activity Executions, Signals, Queries, and other interactions with Temporal. Each represents a unit of consumption. ### Activity granularity diff --git a/docs/best-practices/knowledge-hub.mdx b/docs/best-practices/knowledge-hub.mdx index 70fffe8e6f..2bcabada4e 100644 --- a/docs/best-practices/knowledge-hub.mdx +++ b/docs/best-practices/knowledge-hub.mdx @@ -26,7 +26,7 @@ To bootstrap your knowledge hub, use the ## What belongs in your knowledge hub -Although Temporal itself has [thorough documentation](https://docs.temporal.io/), not all of it applies to your organization or your teams' use cases. +Although Temporal itself has [thorough documentation](/), not all of it applies to your organization or your teams' use cases. The knowledge hub distills the documentation into just the specific information your teams need. One way to organize the content is according to where developers are in their journey. The following sample outline shows what sections to include. @@ -97,7 +97,7 @@ These metrics create a feedback loop: measure, identify gaps, improve content, a ## What doesn't belong in your knowledge hub -A knowledge hub is not a mirror of [Temporal's official documentation](https://docs.temporal.io/). +A knowledge hub is not a mirror of [Temporal's official documentation](/). Avoid duplicating SDK API references, concept explanations, or release notes that Temporal already maintains. When that content changes, your copy becomes a source of confusion rather than clarity. Instead, link to the official docs and reserve your knowledge hub for organization-specific decisions, conventions, diff --git a/docs/best-practices/security-controls.mdx b/docs/best-practices/security-controls.mdx index 3eae1fedca..29b1977a28 100644 --- a/docs/best-practices/security-controls.mdx +++ b/docs/best-practices/security-controls.mdx @@ -35,21 +35,21 @@ Strong identity management in Temporal Cloud is crucial for ensuring secure acce ### Best Practices: -#### 1. Enable [SAML Single Sign-on](https://docs.temporal.io/cloud/manage-access/saml) (SSO) for User Access +#### 1. Enable [SAML Single Sign-on](/cloud/manage-access/saml) (SSO) for User Access Integrate Temporal Cloud with your organization's identity provider via SAML 2.0 for centralized authentication. SSO allows you to enforce your corporate login policies (MFA, password complexity, etc.). When you configure SAML with Temporal Cloud, you can disable social logins (i.e. Microsoft, Google) by opening a support ticket. #### 2. Use Least-Privilege Roles for Temporal Cloud Users -Temporal Cloud provides [preconfigured account-level roles](https://docs.temporal.io/cloud/manage-access/users) (Account Owner, Finance Admin, Global Admin, Developer, Read-Only) and Namespace-level permissions. Assign users the lowest level of access they need. For example, give developers access only to the Namespaces they work on, and use read-only roles for auditors or reviewers. Regularly review user roles and remove or downgrade accounts that are no longer needed +Temporal Cloud provides [preconfigured account-level roles](/cloud/manage-access/users) (Account Owner, Finance Admin, Global Admin, Developer, Read-Only) and Namespace-level permissions. Assign users the lowest level of access they need. For example, give developers access only to the Namespaces they work on, and use read-only roles for auditors or reviewers. Regularly review user roles and remove or downgrade accounts that are no longer needed #### 3. Leverage SCIM or Automated User Provisioning -When applicable, use [SCIM](https://docs.temporal.io/cloud/manage-access/scim) or the Temporal Cloud user management API to automate adding and removing user accounts. This ensures timely removal of access when people change roles or leave the organization. +When applicable, use [SCIM](/cloud/manage-access/scim) or the Temporal Cloud user management API to automate adding and removing user accounts. This ensures timely removal of access when people change roles or leave the organization. #### Use Service Accounts for Automation -For non-human access (CI/CD pipelines, backend services), use [Temporal Cloud Service Accounts](https://docs.temporal.io/cloud/manage-access/service-accounts) instead of shared user logins. Service Accounts are machine identities that can be granted specific permissions without ties to an individual. Create separate Service Accounts with unique API keys for different applications or microservices, and apply least privilege to each (e.g. a service account that only has access to one Namespace). +For non-human access (CI/CD pipelines, backend services), use [Temporal Cloud Service Accounts](/cloud/manage-access/service-accounts) instead of shared user logins. Service Accounts are machine identities that can be granted specific permissions without ties to an individual. Create separate Service Accounts with unique API keys for different applications or microservices, and apply least privilege to each (e.g. a service account that only has access to one Namespace). ## Secure Application Authentication and API Access @@ -67,7 +67,7 @@ We recommend you enable mTLS for strong identity assurance of clients; it ensure #### 2. Proactively manage and rotate certificates -Track the expiration dates of your client and [Certificate Authority certificates](https://docs.temporal.io/cloud/certificates). Temporal Cloud trusts the uploaded CA; if it expires, all client authorizations will fail. Establish and automate a certificate rotation schedule (e.g. rotate client certificates quarterly and CA certificates annually, well before expiry). Temporal supports uploading a new CA certificate alongside the old one to allow seamless rollover. Always test new certificates in a staging environment if possible. +Track the expiration dates of your client and [Certificate Authority certificates](/cloud/certificates). Temporal Cloud trusts the uploaded CA; if it expires, all client authorizations will fail. Establish and automate a certificate rotation schedule (e.g. rotate client certificates quarterly and CA certificates annually, well before expiry). Temporal supports uploading a new CA certificate alongside the old one to allow seamless rollover. Always test new certificates in a staging environment if possible. #### 3. If you’re using API Keys, handle them with strict care @@ -86,11 +86,11 @@ Although Temporal Cloud is a SaaS offering, you retain control over its networki #### 1. Use Private Connectivity -Temporal Cloud supports private connectivity options such as [AWS PrivateLink](https://docs.temporal.io/cloud/connectivity/aws-connectivity) and [Google Cloud Private Service Connect](https://docs.temporal.io/cloud/connectivity/gcp-connectivity). If your infrastructure is in AWS or GCP, configure a PrivateLink/PSC endpoint for Temporal Cloud. This allows your workers and applications to reach Temporal Cloud over a private network path, avoiding traversal of the public internet. Private connectivity reduces the surface for man-in-the-middle attacks and can meet stringent network security policies. +Temporal Cloud supports private connectivity options such as [AWS PrivateLink](/cloud/connectivity/aws-connectivity) and [Google Cloud Private Service Connect](/cloud/connectivity/gcp-connectivity). If your infrastructure is in AWS or GCP, configure a PrivateLink/PSC endpoint for Temporal Cloud. This allows your workers and applications to reach Temporal Cloud over a private network path, avoiding traversal of the public internet. Private connectivity reduces the surface for man-in-the-middle attacks and can meet stringent network security policies. #### 2. Separate environments by Namespace -Use [Temporal Namespaces](https://docs.temporal.io/best-practices/managing-namespace#naming-conventions) to isolate workflows for different environments or teams (e.g. development, staging, production). Each Namespace is logically segregated and cannot interact with others by default, providing a security boundary. +Use [Temporal Namespaces](/best-practices/managing-namespace#naming-conventions) to isolate workflows for different environments or teams (e.g. development, staging, production). Each Namespace is logically segregated and cannot interact with others by default, providing a security boundary. Ensure that your production Namespace uses stricter network controls (e.g. only accessible from the prod network) and that credentials for it are separate from non-prod Namespaces. This limits the impact of any compromise in a lower environment, and as workflow data is only visible to users with access to that Namespace, separating environments by Namespace also enforces data-visibility boundaries. @@ -102,19 +102,19 @@ Temporal's data encryption capabilities ensure the security and confidentiality #### 1. Enable Client-Side Encryption for Workflow Data -Temporal provides an optional [data conversion framework](https://docs.temporal.io/dataconversion) (Data Converter) and payload codec interface; customers must implement, deploy, and operate their own custom codec and manage encryption keys. +Temporal provides an optional [data conversion framework](/dataconversion) (Data Converter) and payload codec interface; customers must implement, deploy, and operate their own custom codec and manage encryption keys. In practice, this means you can encrypt any sensitive data before it is sent to Temporal Cloud and only decrypt it on the Client/Worker side. Because encryption keys stay under your control, you are responsible for key generation, secure storage, rotation, and versioning. Implementing this involves developing a custom codec plugin in your Temporal SDK and optionally (if you need to inspect decrypted payloads in the Web UI or CLI) deploying a dedicated codec server. -#### 2. Encode Workflow Failure Details with a [Failure Converter](https://docs.temporal.io/failure-converter) +#### 2. Encode Workflow Failure Details with a [Failure Converter](/failure-converter) Temporal’s default behavior copies error messages and call stacks as plain text, and this text is directly accessible in the Message field of Workflow Executions. -If your failure messages and stack traces contain sensitive information, it is recommended that you configure the [Failure Converter](https://docs.temporal.io/failure-converter) to encrypt the error information. This would encrypt the `message` and `stack_trace` fields in the payloads. +If your failure messages and stack traces contain sensitive information, it is recommended that you configure the [Failure Converter](/failure-converter) to encrypt the error information. This would encrypt the `message` and `stack_trace` fields in the payloads. #### 3. Leverage Namespace Data Retention Policies -Temporal Cloud Namespace has a [Retention Period](https://docs.temporal.io/temporal-service/temporal-server#retention-period) setting for workflow histories (1 to 90 days). Set an appropriate retention period to balance operational needs with security. Shorter retention means completed workflow data (history, payloads) is purged sooner, reducing the amount of sensitive data stored in the cloud at any time. Document your retention choices to align with your company’s data retention policies and regulatory requirements. For retention periods over 90 days, these can be exported to your own GCS or S3 buckets. +Temporal Cloud Namespace has a [Retention Period](/temporal-service/temporal-server#retention-period) setting for workflow histories (1 to 90 days). Set an appropriate retention period to balance operational needs with security. Shorter retention means completed workflow data (history, payloads) is purged sooner, reducing the amount of sensitive data stored in the cloud at any time. Document your retention choices to align with your company’s data retention policies and regulatory requirements. For retention periods over 90 days, these can be exported to your own GCS or S3 buckets. ### Availability and Disaster Recovery @@ -137,8 +137,8 @@ Run a business-impact analysis to flag workflows where a regional outage would c For many organizations, ensuring High Availability (HA) is required because of strict uptime requirements, compliance, and regulatory needs. -For these critical use cases, enable High Availability features for specific namespaces for a [99.99% contractual SLA](https://docs.temporal.io/cloud/high-availability#high-availability-features). When choosing between [same-region, multi-region, and multi-cloud replication](https://docs.temporal.io/cloud/high-availability), it is recommended to use multi-region/multi-cloud replication to distribute your dependencies across regions. Using physically separated regions improves the fault tolerance of your application. +For these critical use cases, enable High Availability features for specific namespaces for a [99.99% contractual SLA](/cloud/high-availability#high-availability-features). When choosing between [same-region, multi-region, and multi-cloud replication](/cloud/high-availability), it is recommended to use multi-region/multi-cloud replication to distribute your dependencies across regions. Using physically separated regions improves the fault tolerance of your application. -By default, Temporal Cloud provides a [99.9% contractual SLA guarantee](https://docs.temporal.io/cloud/high-availability) against service errors for all namespaces. +By default, Temporal Cloud provides a [99.9% contractual SLA guarantee](/cloud/high-availability) against service errors for all namespaces. -Note: [enabling HA features for namespaces will 2x the consumption cost.](https://docs.temporal.io/cloud/pricing#high-availability-features) +Note: [enabling HA features for namespaces will 2x the consumption cost.](/cloud/pricing#high-availability-features) diff --git a/docs/cloud/audit-logs-gcp.mdx b/docs/cloud/audit-logs-gcp.mdx index cf974381ab..23f78f5da0 100644 --- a/docs/cloud/audit-logs-gcp.mdx +++ b/docs/cloud/audit-logs-gcp.mdx @@ -59,6 +59,6 @@ If everything is configured correctly, you will see a `Success` status indicatin :::info MORE INFORMATION -For more details, refer to [Audit Logs with Temporal Cloud](https://docs.temporal.io/cloud/audit-logs). +For more details, refer to [Audit Logs with Temporal Cloud](/cloud/audit-logs). ::: diff --git a/docs/cloud/capacity-modes.mdx b/docs/cloud/capacity-modes.mdx index cef90a26bc..28cf56d21c 100644 --- a/docs/cloud/capacity-modes.mdx +++ b/docs/cloud/capacity-modes.mdx @@ -155,7 +155,7 @@ For Requests in excess of 4 TRUs in regions outside of the US, we recommend subm ### Provisioned Capacity Availability The amount of capacity available within a region may vary. Temporal will check available capacity at the time of your request and aims to provision requested capacity within two minutes. -If you need capacity beyond what is self-serviceable or available in a region, please [file a support ticket](https://docs.temporal.io/cloud/support#ticketing) indicating the limit, region, and timeframe that the capacity is needed. +If you need capacity beyond what is self-serviceable or available in a region, please [file a support ticket](/cloud/support#ticketing) indicating the limit, region, and timeframe that the capacity is needed. ### When should I use Provisioned Capacity? diff --git a/docs/cloud/connectivity/index.mdx b/docs/cloud/connectivity/index.mdx index 1e6f67f5e4..965e22a80a 100644 --- a/docs/cloud/connectivity/index.mdx +++ b/docs/cloud/connectivity/index.mdx @@ -104,7 +104,7 @@ A GCP Private Service Connect (PSC) private Connectivity Rule requires: - `region`: The region of the PSC connection, prefixed with `gcp-` (ex: `gcp-us-east1`). Must be the same region as the Namespace. Refer to the [Temporal Cloud region list](/cloud/regions) for supported regions. - `gcp-project-id`: The identifier of the GCP project where you created the PSC connection (ex: `my-example-project-123`). -Connectivity Rules can be created and managed with [tcld](https://docs.temporal.io/cloud/tcld/), [Terraform](https://github.com/temporalio/terraform-provider-temporalcloud/), or the [Cloud Ops API](/ops). There is no Temporal Cloud Web UI option for creating or managing Connectivity Rules at this time. +Connectivity Rules can be created and managed with [tcld](/cloud/tcld/), [Terraform](https://github.com/temporalio/terraform-provider-temporalcloud/), or the [Cloud Ops API](/ops). There is no Temporal Cloud Web UI option for creating or managing Connectivity Rules at this time. :::tip Connectivity Rules give Temporal visibility into your private connections diff --git a/docs/cloud/connectivity/ip-addresses.mdx b/docs/cloud/connectivity/ip-addresses.mdx index 450a8b5363..d172acf075 100644 --- a/docs/cloud/connectivity/ip-addresses.mdx +++ b/docs/cloud/connectivity/ip-addresses.mdx @@ -293,7 +293,7 @@ Take note of the following: The full list of Stable IP ranges is published as a public JSON file at: -**[https://docs.temporal.io/json/stable-ip-ranges-prod.json](https://docs.temporal.io/json/stable-ip-ranges-prod.json)** +**[https://docs.temporal.io/json/stable-ip-ranges-prod.json](/json/stable-ip-ranges-prod.json)** Click the link to inspect the list in your browser, or copy the URL into your firewall tooling, a `curl`/`wget` script, or a Terraform `http` data source: @@ -387,7 +387,7 @@ If your Namespace is currently reached over AWS PrivateLink and protected by a p **Steps:** -1. **Allowlist Stable IPs in your firewall first.** Fetch the IP ranges for your Namespace's region from [https://docs.temporal.io/json/stable-ip-ranges-prod.json](https://docs.temporal.io/json/stable-ip-ranges-prod.json) and add them to your egress allowlist before changing anything else. If you skip this step, traffic will be lost. +1. **Allowlist Stable IPs in your firewall first.** Fetch the IP ranges for your Namespace's region from [https://docs.temporal.io/json/stable-ip-ranges-prod.json](/json/stable-ip-ranges-prod.json) and add them to your egress allowlist before changing anything else. If you skip this step, traffic will be lost. 2. **Create (or update) the account's public Connectivity Rule with Stable IPs enabled.** This step requires the [Cloud Ops API](#how-to-enable-stable-ips-with-curl) or the [`cloud-api` client](https://github.com/temporalio/cloud-api) — `tcld` does not currently support creating a public Connectivity Rule with Stable IPs. @@ -406,7 +406,7 @@ If your Namespace is currently reached over AWS PrivateLink and protected by a p 4. **Switch client DNS resolution from PrivateLink to public.** This is the actual cutover. Remove the private DNS override — Route 53 private hosted zone, `/etc/hosts`, or VPC DNS resolver rules — so that `..tmprl.cloud` resolves through public DNS to a Stable IP. Restart Workers to drop existing PrivateLink connections and force re-resolution. -5. **Verify traffic is flowing over Stable IPs.** On a Worker host, run `dig ..tmprl.cloud` and confirm the answer is a Stable IP from the [published JSON list](https://docs.temporal.io/json/stable-ip-ranges-prod.json), not your VPC endpoint IP. Confirm Workers are polling and there are no `RESOURCE_EXHAUSTED` or connection errors in their logs. +5. **Verify traffic is flowing over Stable IPs.** On a Worker host, run `dig ..tmprl.cloud` and confirm the answer is a Stable IP from the [published JSON list](/json/stable-ip-ranges-prod.json), not your VPC endpoint IP. Confirm Workers are polling and there are no `RESOURCE_EXHAUSTED` or connection errors in their logs. 6. **Detach the private Connectivity Rule.** Once you are confident all traffic is on the public path, remove the private rule by re-attaching only the public rule: diff --git a/docs/cloud/gcp-export-gcs.mdx b/docs/cloud/gcp-export-gcs.mdx index e0b1b333be..5b1bda934e 100644 --- a/docs/cloud/gcp-export-gcs.mdx +++ b/docs/cloud/gcp-export-gcs.mdx @@ -93,7 +93,7 @@ Don't forget to click Create at the end of your setup to confirm your export. To access export-related commands in tcld, please follow these steps: -1. [Download the latest version of tcld](https://docs.temporal.io/cloud/tcld/#install-tcld). +1. [Download the latest version of tcld](/cloud/tcld#install-tcld). 2. Make sure your tcld version is v0.35.0 or above. 3. Run the command: `tcld n export gcs`: ```bash diff --git a/docs/cloud/get-started/api-keys.mdx b/docs/cloud/get-started/api-keys.mdx index 6df975736f..4d4fee0ea5 100644 --- a/docs/cloud/get-started/api-keys.mdx +++ b/docs/cloud/get-started/api-keys.mdx @@ -98,7 +98,7 @@ Check these setup details before using API keys: - The Global Administrator or Account Owner may need to [enable API keys access](#manage-api-keys) for your Temporal Account. - Have access to the [Temporal Cloud UI](https://cloud.temporal.io/) or Temporal Cloud CLI - ([tcld](https://docs.temporal.io/cloud/tcld/)) to create an API key. + ([tcld](/cloud/tcld/)) to create an API key. ## Global Administrator and Account Owner API key management {/* #manage-api-keys */} diff --git a/docs/cloud/get-started/certificates.mdx b/docs/cloud/get-started/certificates.mdx index 7be93c7af0..33fd961ed3 100644 --- a/docs/cloud/get-started/certificates.mdx +++ b/docs/cloud/get-started/certificates.mdx @@ -298,7 +298,7 @@ ones are generated and deployed. ### 3. Regenerate end-entity certificates with the new CA certificate -[Configure all clients](https://docs.temporal.io/cloud/certificates#configure-clients-to-use-client-certificates) +[Configure all clients](/cloud/certificates#configure-clients-to-use-client-certificates) (Temporal CLI, SDKs, or Workers) to use the new certificate and private key alongside the compromised key. Update the client configuration as described in [Configure clients to use client certificates](#configure-clients-to-use-client-certificates). @@ -319,7 +319,7 @@ stricter controls, such as: - Limiting end-entity certificates to specific Namespaces - Rotating certificates regularly as a preventive measure -- [Audit logs on a regular schedule](https://docs.temporal.io/cloud/audit-logs) +- [Audit logs on a regular schedule](/cloud/audit-logs) ## How to add, update, and remove certificates in a Temporal Cloud Namespace {/* #manage-certificates */} diff --git a/docs/cloud/get-started/namespaces.mdx b/docs/cloud/get-started/namespaces.mdx index 6ef959ec92..1ccb3d2f08 100644 --- a/docs/cloud/get-started/namespaces.mdx +++ b/docs/cloud/get-started/namespaces.mdx @@ -249,7 +249,7 @@ accessing Namespace endpoints. Temporal Cloud supports authentication to Namespaces using [API keys](/cloud/api-keys) _or_ [mTLS](/cloud/certificates). To migrate a Namespace from one authentication method to another, or to use both API key and mTLS authentication on the same Namespace, please contact -[Support](https://docs.temporal.io/cloud/support#support-ticket). +[Support](/cloud/support#support-ticket). :::info @@ -383,7 +383,7 @@ Namespace removal is permanent. Closed Workflow Histories remain in Temporal storage until the user-defined retention period expires. This period reflects the policy in effect when the Workflow Execution was closed. -For further questions or concerns, contact [Support](https://docs.temporal.io/cloud/support#support-ticket). +For further questions or concerns, contact [Support](/cloud/support#support-ticket). ### Delete a Namespace using tcld diff --git a/docs/cloud/high-availability/failovers/index.mdx b/docs/cloud/high-availability/failovers/index.mdx index 50b0018409..5d1213d9d0 100644 --- a/docs/cloud/high-availability/failovers/index.mdx +++ b/docs/cloud/high-availability/failovers/index.mdx @@ -149,7 +149,7 @@ reflected in the replica due to , particul non-graceful failover, replication lag may cause a temporary setback in Workflow progress. Namespaces that are not replicated can be configured to provide _at-most-once_ semantics for Activity execution when a -retry policy's [maximum attempts](https://docs.temporal.io/retry-policies#maximum-attempts) is set to 0. High +retry policy's [maximum attempts](/encyclopedia/retry-policies#maximum-attempts) is set to 0. High Availability Namespaces provide _at-least-once_ semantics for execution of Activities. Completed Activities _may_ be re-dispatched in a newly active Namespace, leading to repeated executions. diff --git a/docs/cloud/manage-access/permissions-reference.mdx b/docs/cloud/manage-access/permissions-reference.mdx index cf6a6d9fa0..7fad3a0fc5 100644 --- a/docs/cloud/manage-access/permissions-reference.mdx +++ b/docs/cloud/manage-access/permissions-reference.mdx @@ -14,7 +14,7 @@ Temporal Cloud access controls are organized across two scopes: - Account-level role permissions - Namespace-level permissions -Within each scope, permissions apply to publicly documented [Temporal Cloud Ops API](https://docs.temporal.io/ops) +Within each scope, permissions apply to publicly documented [Temporal Cloud Ops API](/ops) endpoints and to additional non-Cloud Ops capabilities, such as Temporal Cloud UI and internal automation behaviors. ## Account-level access {/* #account-level-access */} diff --git a/docs/cloud/metrics/openmetrics/api-reference.mdx b/docs/cloud/metrics/openmetrics/api-reference.mdx index 4ef491e8dd..785ba15630 100644 --- a/docs/cloud/metrics/openmetrics/api-reference.mdx +++ b/docs/cloud/metrics/openmetrics/api-reference.mdx @@ -46,7 +46,7 @@ API keys can be created using the [Temporal Cloud UI](https://cloud.temporal.io) :::info -See the [docs](https://docs.temporal.io/cloud/api-keys#serviceaccount-api-keys) for more details on generating API keys. +See the [docs](/cloud/api-keys#serviceaccount-api-keys) for more details on generating API keys. ::: diff --git a/docs/cloud/migrate/manual.mdx b/docs/cloud/migrate/manual.mdx index 6a1d03a5c4..f5f55438b1 100644 --- a/docs/cloud/migrate/manual.mdx +++ b/docs/cloud/migrate/manual.mdx @@ -93,4 +93,4 @@ The volume of these requests might be high to execute against all the matches to [Multi-Cluster Replication](/self-hosted-guide/multi-cluster-replication) is an experimental feature which asynchronously replicates Workflow Executions from active Clusters to other passive Clusters for backup and state reconstruction. Migrating Execution History from a self-hosted Temporal Service to Temporal Cloud is not currently supported. However, a migration tool based on Multi-Cluster Replication, which will enable this, is currently in development for Temporal Cloud. -If you have used this feature locally or you are interested in using it to migrate to Temporal Cloud, [create a support ticket](https://docs.temporal.io/cloud/support) or watch this space for more information about public availability. +If you have used this feature locally or you are interested in using it to migrate to Temporal Cloud, [create a support ticket](/cloud/support) or watch this space for more information about public availability. diff --git a/docs/cloud/terraform-provider.mdx b/docs/cloud/terraform-provider.mdx index 3a0b841e88..a1f4ec9355 100644 --- a/docs/cloud/terraform-provider.mdx +++ b/docs/cloud/terraform-provider.mdx @@ -44,7 +44,7 @@ To use the Terraform provider, you'll need the following: - The [Terraform CLI](https://developer.hashicorp.com/terraform/cli) - An [API Key](/cloud/api-keys): an API Key is required to use the Terraform provider. - - See [the API docs](https://docs.temporal.io/cloud/api-keys#generate-an-api-key) for instructions on generating an + - See [the API docs](/cloud/api-keys#generate-an-api-key) for instructions on generating an API Key. :::note OpenTofu Registry @@ -56,7 +56,7 @@ managed by Temporal Technologies. ## Setup -Generate an [API Key](https://docs.temporal.io/cloud/api-keys#generate-an-api-key) to authenticate Terraform operations +Generate an [API Key](/cloud/api-keys#generate-an-api-key) to authenticate Terraform operations with your Temporal Cloud account or a Service Account. Then, either use an environment variable or pass the API Key into the provider manually to manage your Temporal Cloud Terraform resources. @@ -722,7 +722,7 @@ process of securely accessing the API Key Token in the Create section of this gu :::note Limits and Best Practices -- See the API Key [documentation](https://docs.temporal.io/cloud/api-keys) for information about the limits and best +- See the API Key [documentation](/cloud/api-keys) for information about the limits and best practices for managing API Keys. - See Terraform's documentation on working with [sensitive data](https://www.terraform.io/docs/language/values/variables.html#sensitive-values) for more information diff --git a/docs/develop/dotnet/activities/standalone-activities.mdx b/docs/develop/dotnet/activities/standalone-activities.mdx index 0e0dd1c9d7..ef49ffa310 100644 --- a/docs/develop/dotnet/activities/standalone-activities.mdx +++ b/docs/develop/dotnet/activities/standalone-activities.mdx @@ -58,7 +58,7 @@ Prerequisites: - **[.NET](https://dotnet.microsoft.com/download)** 8.0+ -- **Temporal .NET SDK** (v1.12.0 or higher). See the [.NET Quickstart](https://docs.temporal.io/develop/dotnet/set-up-your-local-dotnet) for install instructions. +- **Temporal .NET SDK** (v1.12.0 or higher). See the [.NET Quickstart](/develop/dotnet/set-up-your-local-dotnet) for install instructions. - **Temporal CLI** v1.7.0 or higher diff --git a/docs/develop/dotnet/best-practices/error-handling.mdx b/docs/develop/dotnet/best-practices/error-handling.mdx index 7780ca75f0..d57b90faed 100644 --- a/docs/develop/dotnet/best-practices/error-handling.mdx +++ b/docs/develop/dotnet/best-practices/error-handling.mdx @@ -97,6 +97,6 @@ catch (ActivityFailureException err) This works differently in a Workflow than raising exceptions from Activities. In an Activity, any C# exceptions or custom exceptions are converted to a Temporal `ApplicationError`. -In a Workflow, any exceptions that are raised other than an explicit Temporal `ApplicationError` will only fail that particular [Workflow Task](https://docs.temporal.io/tasks#workflow-task-execution) and be retried. +In a Workflow, any exceptions that are raised other than an explicit Temporal `ApplicationError` will only fail that particular [Workflow Task](/tasks#workflow-task-execution) and be retried. This includes any typical C# `RuntimeError`s that are raised automatically. These errors are treated as bugs that can be corrected with a fixed deployment, rather than a reason for a Temporal Workflow Execution to return unexpectedly. diff --git a/docs/develop/dotnet/client/temporal-client.mdx b/docs/develop/dotnet/client/temporal-client.mdx index e1a75fe5c0..3ac3bfc119 100644 --- a/docs/develop/dotnet/client/temporal-client.mdx +++ b/docs/develop/dotnet/client/temporal-client.mdx @@ -43,7 +43,7 @@ configuration. You can provide these options directly in code, or load them from configuration file for secure, repeatable configuration. When you’re running a Temporal Service locally (such as with the -[Temporal CLI dev server](https://docs.temporal.io/cli/command-reference/server#start-dev)), the required options are minimal. If you +[Temporal CLI dev server](/cli/command-reference/server#start-dev)), the required options are minimal. If you don't specify a host/port, most connections default to `127.0.0.1:7233` and the `default` Namespace. diff --git a/docs/develop/dotnet/nexus/feature-guide.mdx b/docs/develop/dotnet/nexus/feature-guide.mdx index 02025bf94b..d2fc2b8719 100644 --- a/docs/develop/dotnet/nexus/feature-guide.mdx +++ b/docs/develop/dotnet/nexus/feature-guide.mdx @@ -87,7 +87,7 @@ Defining a clear contract for the Nexus Service is crucial for smooth communicat In this example, there is a service package that describes the Service and Operation names along with input/output types for caller Workflows to use the Nexus Endpoint. -Each [Temporal SDK includes and uses a default Data Converter](https://docs.temporal.io/dataconversion). +Each [Temporal SDK includes and uses a default Data Converter](/dataconversion). The default data converter encodes payloads in the following order: Null, Byte array, Protobuf JSON, and JSON. In a polyglot environment, that is where more than one language and SDK is being used to develop a Temporal solution, Protobuf and JSON are common choices. This example uses .NET classes serialized into JSON. diff --git a/docs/develop/dotnet/set-up.mdx b/docs/develop/dotnet/set-up.mdx index 8d04074f20..f85f756e1c 100644 --- a/docs/develop/dotnet/set-up.mdx +++ b/docs/develop/dotnet/set-up.mdx @@ -101,7 +101,7 @@ Build the solution: }> ## Install Temporal CLI and start the development server - The fastest way to get a development version of the Temporal Service running on your local machine is to use [Temporal CLI](https://docs.temporal.io/cli). + The fastest way to get a development version of the Temporal Service running on your local machine is to use [Temporal CLI](/cli). Choose your operating system to install Temporal CLI: diff --git a/docs/develop/go/activities/basics.mdx b/docs/develop/go/activities/basics.mdx index 4fa00dd742..27cbabf307 100644 --- a/docs/develop/go/activities/basics.mdx +++ b/docs/develop/go/activities/basics.mdx @@ -113,7 +113,7 @@ func (a *YourActivityObject) YourActivityDefinition(ctx context.Context, param Y All data returned from an Activity must be serializable. -Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). A Go-based Activity Definition can return either just an `error` or a `customValue, error` combination (same as a Workflow Definition). You may wish to use a `struct` type to hold all custom values, just keep in mind they must all be serializable. diff --git a/docs/develop/go/activities/standalone-activities.mdx b/docs/develop/go/activities/standalone-activities.mdx index 41efebb61e..2825caeab2 100644 --- a/docs/develop/go/activities/standalone-activities.mdx +++ b/docs/develop/go/activities/standalone-activities.mdx @@ -57,7 +57,7 @@ Prerequisites: - **[Go](https://go.dev/dl/)** 1.22+ -- **[Temporal Go SDK](https://docs.temporal.io/develop/go/core-application#install-a-temporal-sdk)** (v1.41.0 or higher) +- **[Temporal Go SDK](/develop/go/set-up-your-local-go#install-the-temporal-go-sdk)** (v1.41.0 or higher) - **Temporal CLI** v1.7.0 or higher diff --git a/docs/develop/go/client/namespaces.mdx b/docs/develop/go/client/namespaces.mdx index 3b168a7f66..af82a9dbce 100644 --- a/docs/develop/go/client/namespaces.mdx +++ b/docs/develop/go/client/namespaces.mdx @@ -23,7 +23,7 @@ Use Namespaces to isolate your Workflow Executions according to your needs. For example, you can use Namespaces to match the development lifecycle by having separate `dev` and `prod` Namespaces. You could also use them to ensure Workflow Executions between different teams never communicate - such as ensuring that the `teamA` Namespace never impacts the `teamB` Namespace. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) to create and manage a Namespace from the UI, or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces from the command-line interface. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) to create and manage a Namespace from the UI, or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces from the command-line interface. On self-hosted Temporal Service, you can register and manage your Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -36,7 +36,7 @@ You must register a Namespace with the Temporal Service before setting it in the Registering a Namespace creates a Namespace on the Temporal Service or Temporal Cloud. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to create Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](/cloud/tcld/namespace/) to create Namespaces. On self-hosted Temporal Service, you can register your Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -73,7 +73,7 @@ To update your Namespace using the Temporal CLI, use the [temporal operator name You can get details for your Namespaces, update Namespace configuration, and deprecate or delete your Namespaces. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces. On self-hosted Temporal Service, you can manage your registered Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. diff --git a/docs/develop/go/client/temporal-client.mdx b/docs/develop/go/client/temporal-client.mdx index 099c545029..c73b8b140a 100644 --- a/docs/develop/go/client/temporal-client.mdx +++ b/docs/develop/go/client/temporal-client.mdx @@ -69,7 +69,7 @@ Environment variable and configuration file support were added in Go SDK v1.28.0 ::: When you are running a Temporal Service locally, such as the -[Temporal CLI](https://docs.temporal.io/cli/command-reference/server#start-dev), the connection options you must provide are minimal. +[Temporal CLI](/cli/command-reference/server#start-dev), the connection options you must provide are minimal. If you don't provide [`HostPort`](https://pkg.go.dev/go.temporal.io/sdk/internal#ClientOptions), the Client defaults the address and port number to `127.0.0.1:7233`, which is the port of the development Temporal Service. If you don't set a @@ -651,7 +651,7 @@ if err != nil { You can configure Task Queues that are host-specific, Worker-specific or Workflow-specific to distribute your application load. For more information, refer to [Task Queues Processing Tuning](/develop/worker-performance#task-queues-processing-tuning) and -[Worker Versioning](https://docs.temporal.io/worker-versioning). +[Worker Versioning](/worker-versioning). ### Set custom Workflow Id {/* #workflow-id */} diff --git a/docs/develop/go/nexus/feature-guide.mdx b/docs/develop/go/nexus/feature-guide.mdx index 7e9dca82bf..8162ea37ae 100644 --- a/docs/develop/go/nexus/feature-guide.mdx +++ b/docs/develop/go/nexus/feature-guide.mdx @@ -86,7 +86,7 @@ Defining a clear contract for the Nexus Service is crucial for smooth communicat In this example, there is a service package that describes the Service and Operation names along with input/output types for caller Workflows to use the Nexus Endpoint. -Each [Temporal SDK includes and uses a default Data Converter](https://docs.temporal.io/dataconversion). +Each [Temporal SDK includes and uses a default Data Converter](/dataconversion). The default data converter encodes payloads in the following order: Null, Byte array, Protobuf JSON, and JSON. In a polyglot environment, that is where more than one language and SDK is being used to develop a Temporal solution, Protobuf and JSON are common choices. This example uses native Go types. diff --git a/docs/develop/go/set-up.mdx b/docs/develop/go/set-up.mdx index 47a5c054ed..51bf11af99 100644 --- a/docs/develop/go/set-up.mdx +++ b/docs/develop/go/set-up.mdx @@ -115,7 +115,7 @@ Finally, install the Temporal SDK with `go get`. ## Install Temporal CLI and start the development server The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI: diff --git a/docs/develop/go/workflows/schedules.mdx b/docs/develop/go/workflows/schedules.mdx index dba621fee0..51a06ea98e 100644 --- a/docs/develop/go/workflows/schedules.mdx +++ b/docs/develop/go/workflows/schedules.mdx @@ -262,7 +262,7 @@ if err != nil { :::caution Cron support is not recommended -We recommend using [Schedules](https://docs.temporal.io/schedule) instead of Cron Jobs. +We recommend using [Schedules](/schedule) instead of Cron Jobs. Schedules were built to provide a better developer experience, including more configuration options and the ability to update or pause running Schedules. ::: diff --git a/docs/develop/java/activities/basics.mdx b/docs/develop/java/activities/basics.mdx index 2e8f1e7ca9..d68e27b37a 100644 --- a/docs/develop/java/activities/basics.mdx +++ b/docs/develop/java/activities/basics.mdx @@ -116,7 +116,7 @@ For more details, see [Dynamic Activity Reference](https://www.javadoc.io/doc/io All data returned from an Activity must be serializable. -Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). Activity return values must be serializable and deserializable by the provided [`DataConverter`](https://www.javadoc.io/static/io.temporal/temporal-sdk/1.17.0/io/temporal/common/converter/DataConverter.html). diff --git a/docs/develop/java/client/namespaces.mdx b/docs/develop/java/client/namespaces.mdx index e5a05e3638..9a841f9956 100644 --- a/docs/develop/java/client/namespaces.mdx +++ b/docs/develop/java/client/namespaces.mdx @@ -23,7 +23,7 @@ Use Namespaces to isolate your Workflow Executions according to your needs. For example, you can use Namespaces to match the development lifecycle by having separate `dev` and `prod` Namespaces. You could also use them to ensure Workflow Executions between different teams never communicate - such as ensuring that the `teamA` Namespace never impacts the `teamB` Namespace. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) to create and manage a Namespace from the UI, or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces from the command-line interface. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) to create and manage a Namespace from the UI, or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces from the command-line interface. On self-hosted Temporal Service, you can register and manage your Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -36,7 +36,7 @@ You must register a Namespace with the Temporal Service before setting it in the Registering a Namespace creates a Namespace on the Temporal Service or Temporal Cloud. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to create Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](/cloud/tcld/namespace/) to create Namespaces. On self-hosted Temporal Service, you can register your Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -76,7 +76,7 @@ To update your Namespace use the [UpdateNamespace API](#manage-namespaces) with You can get details for your Namespaces, update Namespace configuration, and deprecate or delete your Namespaces. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces. On self-hosted Temporal Service, you can manage your registered Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -85,7 +85,7 @@ Use a custom [Authorizer](/self-hosted-guide/security#authorizer-plugin) on your You must register a Namespace with the Temporal Service before setting it in the Temporal Client. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces) or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces. On self-hosted Temporal Service, you can manage your registered Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. diff --git a/docs/develop/java/index.mdx b/docs/develop/java/index.mdx index 55c9a8f3be..f6bb3d9ff3 100644 --- a/docs/develop/java/index.mdx +++ b/docs/develop/java/index.mdx @@ -87,7 +87,7 @@ From there, you can dive deeper into any of the Temporal primitives to start bui ## Temporal Java technical resources -- [Java SDK Quickstart - Setup Guide](https://docs.temporal.io/develop/java/set-up-your-local-java) +- [Java SDK Quickstart - Setup Guide](/develop/java/set-up-your-local-java) - [Java API Documentation](https://javadoc.io/doc/io.temporal/temporal-sdk) - [Java SDK Code Samples](https://github.com/temporalio/samples-java) - [Java SDK GitHub](https://github.com/temporalio/sdk-java) diff --git a/docs/develop/java/nexus/feature-guide.mdx b/docs/develop/java/nexus/feature-guide.mdx index d94e7fdbb6..e1d0f353e5 100644 --- a/docs/develop/java/nexus/feature-guide.mdx +++ b/docs/develop/java/nexus/feature-guide.mdx @@ -91,7 +91,7 @@ Defining a clear contract for the Nexus Service is crucial for smooth communicat In this example, there is a service package that describes the Service and Operation names along with input/output types for caller Workflows to use the Nexus Endpoint. -Each [Temporal SDK includes and uses a default Data Converter](https://docs.temporal.io/dataconversion). The default +Each [Temporal SDK includes and uses a default Data Converter](/dataconversion). The default data converter encodes payloads in the following order: Null, Byte array, Protobuf JSON, and JSON. In a polyglot environment, that is where more than one language and SDK is being used to develop a Temporal solution, Protobuf and JSON are common choices. This example uses Java classes serialized into JSON. diff --git a/docs/develop/java/set-up.mdx b/docs/develop/java/set-up.mdx index 05c1c86550..2b031d0041 100644 --- a/docs/develop/java/set-up.mdx +++ b/docs/develop/java/set-up.mdx @@ -211,7 +211,7 @@ Next, you'll configure a local Temporal Service for development. ## Install Temporal CLI and start the development server The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI: diff --git a/docs/develop/java/workflows/message-passing.mdx b/docs/develop/java/workflows/message-passing.mdx index 70e95bcc01..840988dea6 100644 --- a/docs/develop/java/workflows/message-passing.mdx +++ b/docs/develop/java/workflows/message-passing.mdx @@ -209,7 +209,7 @@ public class MessagePassingIntro { - When a Validator throws an error, the Update is rejected, the Update is not run, and `WorkflowExecutionUpdateAccepted` _won't_ be added to the Event History. The caller receives an "Update failed" error. -- Use [`getCurrentUpdateInfo`](https://www.javadoc.io/doc/io.temporal/temporal-sdk/latest/io/temporal/internal/sync/WorkflowInternal.html#getCurrentUpdateInfo()) to obtain information about the current Update. This includes the Update ID, which can be useful for deduplication when using Continue-As-New: see [Ensuring your messages are processed exactly once](https://docs.temporal.io/handling-messages#exactly-once-message-processing). +- Use [`getCurrentUpdateInfo`](https://www.javadoc.io/doc/io.temporal/temporal-sdk/latest/io/temporal/internal/sync/WorkflowInternal.html#getCurrentUpdateInfo()) to obtain information about the current Update. This includes the Update ID, which can be useful for deduplication when using Continue-As-New: see [Ensuring your messages are processed exactly once](/handling-messages#exactly-once-message-processing). - Signal (and Update) handlers can be blocking, letting them use Activities, Child Workflows, durable [`Workflow.sleep`](https://www.javadoc.io/doc/io.temporal/temporal-sdk/latest/io/temporal/workflow/Workflow.html#sleep(java.time.Duration)) Timers, [`Workflow.await`](https://www.javadoc.io/doc/io.temporal/temporal-sdk/latest/io/temporal/workflow/Workflow.html#await(java.time.Duration,java.util.function.Supplier)) conditions, and more. See [Blocking handlers](#blocking-handlers) and [Workflow message passing](/encyclopedia/workflow-message-passing) for safe usage guidelines. diff --git a/docs/develop/java/workflows/schedules.mdx b/docs/develop/java/workflows/schedules.mdx index 6e0c282411..c0cb21e31b 100644 --- a/docs/develop/java/workflows/schedules.mdx +++ b/docs/develop/java/workflows/schedules.mdx @@ -180,7 +180,7 @@ handle.update( :::caution Cron support is not recommended -We recommend using [Schedules](https://docs.temporal.io/schedule) instead of Cron Jobs. +We recommend using [Schedules](/schedule) instead of Cron Jobs. Schedules were built to provide a better developer experience, including more configuration options and the ability to update or pause running Schedules. ::: diff --git a/docs/develop/php/activities/basics.mdx b/docs/develop/php/activities/basics.mdx index c14f3c3a80..22dc88413b 100644 --- a/docs/develop/php/activities/basics.mdx +++ b/docs/develop/php/activities/basics.mdx @@ -65,7 +65,7 @@ The default implementation uses a JSON serializer, but an alternative implementa All data returned from an Activity must be serializable. -Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). Return values must be serializable to a byte array using the provided [DataConverter](https://github.com/temporalio/sdk-php/blob/master/src/DataConverter/DataConverterInterface.php) interface. The default implementation uses a JSON serializer, but an alternative implementation can be easily configured. diff --git a/docs/develop/php/client/temporal-client.mdx b/docs/develop/php/client/temporal-client.mdx index 211f9a3a81..e43d7c1dea 100644 --- a/docs/develop/php/client/temporal-client.mdx +++ b/docs/develop/php/client/temporal-client.mdx @@ -44,7 +44,7 @@ However, it is acceptable and common to use a Temporal Client inside an Activity ::: -When you are running a Temporal Service locally (such as the [Temporal CLI](https://docs.temporal.io/cli/command-reference/server#start-dev)), the number of connection options you must provide is minimal. +When you are running a Temporal Service locally (such as the [Temporal CLI](/cli/command-reference/server#start-dev)), the number of connection options you must provide is minimal. Many SDKs default to `127.0.0.1:7233`. In the PHP SDK, different client classes are responsible for different functional areas. diff --git a/docs/develop/php/set-up.mdx b/docs/develop/php/set-up.mdx index 92f31ee174..7b69467435 100644 --- a/docs/develop/php/set-up.mdx +++ b/docs/develop/php/set-up.mdx @@ -222,7 +222,7 @@ Create a simple configuration file named `.rr.yaml` with the following content: ## Install Temporal CLI and start the development server The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI: diff --git a/docs/develop/php/workflows/schedules.mdx b/docs/develop/php/workflows/schedules.mdx index 3672930d4f..d54c4d1f9e 100644 --- a/docs/develop/php/workflows/schedules.mdx +++ b/docs/develop/php/workflows/schedules.mdx @@ -40,7 +40,7 @@ $workflowClient->start($workflow, 'Hello world!'); :::caution Cron support is not recommended -We recommend using [Schedules](https://docs.temporal.io/schedule) instead of Cron Jobs. +We recommend using [Schedules](/schedule) instead of Cron Jobs. Schedules were built to provide a better developer experience, including more configuration options and the ability to update or pause running Schedules. ::: diff --git a/docs/develop/python/activities/basics.mdx b/docs/develop/python/activities/basics.mdx index fa23d69819..c109729cba 100644 --- a/docs/develop/python/activities/basics.mdx +++ b/docs/develop/python/activities/basics.mdx @@ -110,7 +110,7 @@ All data returned from an Activity must be serializable. Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction -([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return +([see Cloud limits here](/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). An Activity Execution can return inputs and other Activity values. diff --git a/docs/develop/python/client/temporal-client.mdx b/docs/develop/python/client/temporal-client.mdx index 7290a1905a..7718b20990 100644 --- a/docs/develop/python/client/temporal-client.mdx +++ b/docs/develop/python/client/temporal-client.mdx @@ -55,7 +55,7 @@ options directly in code, load them from **environment variables**, or a **TOML configuration file for secure, repeatable configuration. When you’re running a Temporal Service locally (such as with the -[Temporal CLI dev server](https://docs.temporal.io/cli/command-reference/server#start-dev)), the required options are minimal. If you +[Temporal CLI dev server](/cli/command-reference/server#start-dev)), the required options are minimal. If you don't specify a host/port, most connections default to `127.0.0.1:7233` and the `default` Namespace. diff --git a/docs/develop/python/integrations/langsmith.mdx b/docs/develop/python/integrations/langsmith.mdx index d005279c5f..024c64b30e 100644 --- a/docs/develop/python/integrations/langsmith.mdx +++ b/docs/develop/python/integrations/langsmith.mdx @@ -26,7 +26,7 @@ import { ReleaseNoteHeader } from '@site/src/components'; Temporal's LangSmith integration lets you trace AI agent Workflows in [LangSmith](https://smith.langchain.com/) alongside every LLM call, tool execution, and Temporal operation. -Temporal gives your agent code [durable execution](https://docs.temporal.io/temporal#durable-execution). +Temporal gives your agent code [durable execution](/temporal#durable-execution). LangSmith adds the observability side, so you can inspect LLM inputs and outputs, follow a request from the Client through to the model, and compare runs over time. diff --git a/docs/develop/python/nexus/feature-guide.mdx b/docs/develop/python/nexus/feature-guide.mdx index f6dd8bdc76..2430baeb84 100644 --- a/docs/develop/python/nexus/feature-guide.mdx +++ b/docs/develop/python/nexus/feature-guide.mdx @@ -87,7 +87,7 @@ Defining a clear contract for the Nexus Service is crucial for smooth communicat In this example, there is a service package that describes the Service and Operation names along with input/output types for caller Workflows to use the Nexus Endpoint. -Each [Temporal SDK includes and uses a default Data Converter](https://docs.temporal.io/dataconversion). +Each [Temporal SDK includes and uses a default Data Converter](/dataconversion). The default data converter encodes payloads in the following order: Null, Byte array, Protobuf JSON, and JSON. In a polyglot environment, that is where more than one language and SDK is being used to develop a Temporal solution, Protobuf and JSON are common choices. This example uses Python dataclasses serialized into JSON. @@ -322,7 +322,7 @@ See [hello_nexus/caller/app.py](https://github.com/temporalio/samples-python/blo ## Exceptions in Nexus operations {/* #exceptions-in-nexus-operations */} -Temporal provides general guidance on [Errors in Nexus operations](https://docs.temporal.io/references/failures#errors-in-nexus-operations). +Temporal provides general guidance on [Errors in Nexus operations](/references/failures#errors-in-nexus-operations). In Python, there are three Nexus-specific exception classes: - [`nexusrpc.OperationError`](https://nexus-rpc.github.io/sdk-python/nexusrpc.OperationError.html): this is the exception type you should raise in a Nexus operation to indicate that it has failed according to its own application logic and should not be retried. diff --git a/docs/develop/python/set-up.mdx b/docs/develop/python/set-up.mdx index d18841b86b..ac49ffe68f 100644 --- a/docs/develop/python/set-up.mdx +++ b/docs/develop/python/set-up.mdx @@ -107,7 +107,7 @@ Next, you'll configure a local Temporal Service for development. ## Install Temporal CLI The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI. diff --git a/docs/develop/python/workflows/schedules.mdx b/docs/develop/python/workflows/schedules.mdx index 89345f551d..e2f2f28d47 100644 --- a/docs/develop/python/workflows/schedules.mdx +++ b/docs/develop/python/workflows/schedules.mdx @@ -265,7 +265,7 @@ The following example updates the Schedule to use a new argument. :::caution Cron support is not recommended -We recommend using [Schedules](https://docs.temporal.io/schedule) instead of Cron Jobs. +We recommend using [Schedules](/schedule) instead of Cron Jobs. Schedules were built to provide a better developer experience, including more configuration options and the ability to update or pause running Schedules. ::: diff --git a/docs/develop/ruby/best-practices/error-handling.mdx b/docs/develop/ruby/best-practices/error-handling.mdx index d4ef624f8c..4e0434cd32 100644 --- a/docs/develop/ruby/best-practices/error-handling.mdx +++ b/docs/develop/ruby/best-practices/error-handling.mdx @@ -95,6 +95,6 @@ class SagaWorkflow < Temporalio::Workflow::Definition This works differently in a Workflow than raising exceptions from Activities. In an Activity, any Ruby exceptions or custom exceptions are converted to a Temporal `ApplicationError`. -In a Workflow, any exceptions that are raised other than an explicit Temporal `ApplicationError` will only fail that particular [Workflow Task](https://docs.temporal.io/tasks#workflow-task-execution) and be retried. +In a Workflow, any exceptions that are raised other than an explicit Temporal `ApplicationError` will only fail that particular [Workflow Task](/tasks#workflow-task-execution) and be retried. This includes any typical Ruby `RuntimeError`s that are raised automatically. These errors are treated as bugs that can be corrected with a fixed deployment, rather than a reason for a Temporal Workflow Execution to return unexpectedly. diff --git a/docs/develop/ruby/client/temporal-client.mdx b/docs/develop/ruby/client/temporal-client.mdx index c4e20480c1..4f3ab696d8 100644 --- a/docs/develop/ruby/client/temporal-client.mdx +++ b/docs/develop/ruby/client/temporal-client.mdx @@ -41,7 +41,7 @@ these options directly in code, load them from **environment variables**, or a * configuration file for secure, repeatable configuration. When you’re running a Temporal Service locally (such as with the -[Temporal CLI dev server](https://docs.temporal.io/cli/command-reference/server#start-dev)), the required options are minimal. If you +[Temporal CLI dev server](/cli/command-reference/server#start-dev)), the required options are minimal. If you don't specify a host/port, most connections default to `127.0.0.1:7233` and the `default` Namespace. diff --git a/docs/develop/ruby/index.mdx b/docs/develop/ruby/index.mdx index ee1e6cc7eb..79d4237fb1 100644 --- a/docs/develop/ruby/index.mdx +++ b/docs/develop/ruby/index.mdx @@ -86,7 +86,7 @@ From there, you can dive deeper into any of the Temporal primitives to start bui ## Temporal Ruby Technical Resources -- [Ruby SDK Quickstart - Setup Guide](https://docs.temporal.io/develop/ruby/set-up-local-ruby) +- [Ruby SDK Quickstart - Setup Guide](/develop/ruby/set-up-local-ruby) - [Ruby SDK Code Samples](https://github.com/temporalio/samples-ruby) - [Ruby API Documentation](https://ruby.temporal.io/) - [Ruby SDK GitHub](https://github.com/temporalio/sdk-ruby) diff --git a/docs/develop/ruby/set-up.mdx b/docs/develop/ruby/set-up.mdx index c1a64df3d8..553f019e59 100644 --- a/docs/develop/ruby/set-up.mdx +++ b/docs/develop/ruby/set-up.mdx @@ -123,7 +123,7 @@ Follow the steps to create a directory, initialize the project with a `Gemfile`, ## Install Temporal CLI The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI. diff --git a/docs/develop/ruby/workflows/basics.mdx b/docs/develop/ruby/workflows/basics.mdx index 02a8067076..afbfe9750d 100644 --- a/docs/develop/ruby/workflows/basics.mdx +++ b/docs/develop/ruby/workflows/basics.mdx @@ -85,7 +85,7 @@ end ## Workflow logic requirements {/* #workflow-logic-requirements */} -Temporal Workflows [must be deterministic](https://docs.temporal.io/workflows#deterministic-constraints), which includes +Temporal Workflows [must be deterministic](/workflow-definition#deterministic-constraints), which includes Ruby Workflows. This means there are several things Workflows cannot do such as: - Perform IO (network, disk, stdio, etc) diff --git a/docs/develop/rust/quickstart.mdx b/docs/develop/rust/quickstart.mdx index e67ddfe8cb..ab0a7af028 100644 --- a/docs/develop/rust/quickstart.mdx +++ b/docs/develop/rust/quickstart.mdx @@ -135,7 +135,7 @@ sudo mv temporal /usr/local/bin ## Install Temporal CLI and start the development server The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI: diff --git a/docs/develop/typescript/activities/basics.mdx b/docs/develop/typescript/activities/basics.mdx index 0a5ac7ebfe..272e912b29 100644 --- a/docs/develop/typescript/activities/basics.mdx +++ b/docs/develop/typescript/activities/basics.mdx @@ -75,7 +75,7 @@ All data returned from an Activity must be serializable. Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction -([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return +([see Cloud limits here](/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). In TypeScript, the return value is always a Promise. diff --git a/docs/develop/typescript/client/namespaces.mdx b/docs/develop/typescript/client/namespaces.mdx index 0053703728..452321cba9 100644 --- a/docs/develop/typescript/client/namespaces.mdx +++ b/docs/develop/typescript/client/namespaces.mdx @@ -21,7 +21,7 @@ Use Namespaces to isolate your Workflow Executions according to your needs. For example, you can use Namespaces to match the development lifecycle by having separate `dev` and `prod` Namespaces. You could also use them to ensure Workflow Executions between different teams never communicate - such as ensuring that the `teamA` Namespace never impacts the `teamB` Namespace. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) to create and manage a Namespace from the UI, or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces from the command-line interface. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) to create and manage a Namespace from the UI, or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces from the command-line interface. On self-hosted Temporal Service, you can register and manage your Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -34,7 +34,7 @@ You must register a Namespace with the Temporal Service before setting it in the Registering a Namespace creates a Namespace on the Temporal Service or Temporal Cloud. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to create Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](/cloud/tcld/namespace/) to create Namespaces. On self-hosted Temporal Service, you can register your Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. @@ -45,7 +45,7 @@ Use a custom [Authorizer](/self-hosted-guide/security#authorizer-plugin) on your You can get details for your Namespaces, update Namespace configuration, and deprecate or delete your Namespaces. -On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](https://docs.temporal.io/cloud/tcld/namespace/) to manage Namespaces. +On Temporal Cloud, use the [Temporal Cloud UI](/cloud/namespaces#create-a-namespace) or [tcld commands](/cloud/tcld/namespace/) to manage Namespaces. On self-hosted Temporal Service, you can manage your registered Namespaces using the Temporal CLI (recommended) or programmatically using APIs. Note that these APIs and Temporal CLI commands will not work with Temporal Cloud. diff --git a/docs/develop/typescript/integrations/openai-agents.mdx b/docs/develop/typescript/integrations/openai-agents.mdx index 208a22d0aa..b1e597711b 100644 --- a/docs/develop/typescript/integrations/openai-agents.mdx +++ b/docs/develop/typescript/integrations/openai-agents.mdx @@ -238,7 +238,7 @@ const agent = new Agent({ ### Nexus operation tools -Use `nexusOperationAsTool` to expose a [Nexus](https://docs.temporal.io/nexus) Operation as an agent tool. The Workflow +Use `nexusOperationAsTool` to expose a [Nexus](/nexus) Operation as an agent tool. The Workflow starts the Operation through a Nexus client and feeds the stringified result back to the agent. ```typescript diff --git a/docs/develop/typescript/nexus/feature-guide.mdx b/docs/develop/typescript/nexus/feature-guide.mdx index 256914ec2f..6286183c30 100644 --- a/docs/develop/typescript/nexus/feature-guide.mdx +++ b/docs/develop/typescript/nexus/feature-guide.mdx @@ -90,7 +90,7 @@ Defining a clear contract for the Nexus Service is crucial for smooth communicat In this example, there is a service package that describes the Service and Operation names along with input/output types for caller Workflows to use the Nexus Endpoint. -Each [Temporal SDK includes and uses a default Data Converter](https://docs.temporal.io/dataconversion). +Each [Temporal SDK includes and uses a default Data Converter](/dataconversion). The default data converter encodes payloads in the following order: Null, Byte array, and JSON. In a polyglot environment, that is where more than one language and SDK is being used to develop a Temporal solution, JSON is a common choice. This example uses plain TypeScript objects, serialized into JSON. @@ -336,7 +336,7 @@ Refer to the [complete TypeScript sample](https://github.com/temporalio/samples- ## Exceptions in Nexus operations {/* #exceptions-in-nexus-operations */} -Temporal provides general guidance on [Errors in Nexus operations](https://docs.temporal.io/references/failures#errors-in-nexus-operations). +Temporal provides general guidance on [Errors in Nexus operations](/references/failures#errors-in-nexus-operations). In TypeScript, there are three Nexus-specific exception classes: - `nexus-rpc`'s [`OperationError`](https://nexus-rpc.github.io/sdk-typescript/classes/OperationError.html): this is the exception type you should throw in a Nexus operation to indicate that it has failed according to its own application logic and should not be retried. diff --git a/docs/develop/typescript/set-up.mdx b/docs/develop/typescript/set-up.mdx index bedd66dbb5..ab8d5c3715 100644 --- a/docs/develop/typescript/set-up.mdx +++ b/docs/develop/typescript/set-up.mdx @@ -93,7 +93,7 @@ Next, you'll configure a local Temporal Service for development. ## Install Temporal CLI The fastest way to get a development version of the Temporal Service running on your local machine is to use -[Temporal CLI](https://docs.temporal.io/cli). +[Temporal CLI](/cli). Choose your operating system to install Temporal CLI. diff --git a/docs/develop/typescript/workflows/schedules.mdx b/docs/develop/typescript/workflows/schedules.mdx index ab1240c2d8..0bd167e659 100644 --- a/docs/develop/typescript/workflows/schedules.mdx +++ b/docs/develop/typescript/workflows/schedules.mdx @@ -268,7 +268,7 @@ async function run() { :::caution Cron support is not recommended -We recommend using [Schedules](https://docs.temporal.io/schedule) instead of Cron Jobs. +We recommend using [Schedules](/schedule) instead of Cron Jobs. Schedules were built to provide a better developer experience, including more configuration options and the ability to update or pause running Schedules. ::: diff --git a/docs/develop/typescript/workflows/timeouts.mdx b/docs/develop/typescript/workflows/timeouts.mdx index 8a56154fbc..8da3c144f9 100644 --- a/docs/develop/typescript/workflows/timeouts.mdx +++ b/docs/develop/typescript/workflows/timeouts.mdx @@ -99,7 +99,7 @@ try { This works differently in a Workflow than raising exceptions from Activities. In an Activity, any Typescript exceptions or custom exceptions are converted to a Temporal `ApplicationFailure`. -In a Workflow, any exceptions that are raised other than an explicit Temporal `ApplicationFailure` will only fail that particular [Workflow Task](https://docs.temporal.io/tasks#workflow-task-execution) and be retried. +In a Workflow, any exceptions that are raised other than an explicit Temporal `ApplicationFailure` will only fail that particular [Workflow Task](/tasks#workflow-task-execution) and be retried. This includes any typical Typescript runtime errors like an `undefined` error that are raised automatically. These errors are treated as bugs that can be corrected with a fixed deployment, rather than a reason for a Temporal Workflow Execution to return unexpectedly. diff --git a/docs/develop/worker-performance.mdx b/docs/develop/worker-performance.mdx index 432449e174..e8133dd760 100644 --- a/docs/develop/worker-performance.mdx +++ b/docs/develop/worker-performance.mdx @@ -756,8 +756,8 @@ While individual `add` and `dispatch` rates may be inaccurate due to Eager and S ## Evaluate Task Queue performance {/* #evaluate-worker-loads */} -A [Task Queue](https://docs.temporal.io/task-queue) is a lightweight, dynamically allocated queue. -[Worker Entities](/workers#worker-entity) poll the queue for [Tasks](https://docs.temporal.io/tasks#task) and retrieve Tasks to work on. +A [Task Queue](/task-queue) is a lightweight, dynamically allocated queue. +[Worker Entities](/workers#worker-entity) poll the queue for [Tasks](/tasks#task) and retrieve Tasks to work on. Tasks are contexts that a Worker progresses using a specific Workflow Execution, Activity Execution, or a Nexus Task Execution. Each Task Queue type offers its Tasks to compatible Workers for Task completion. The Temporal Service dynamically creates different [Task Queue types](/task-queue) including Activity Task Queues, Workflow Task Queues, and Nexus Task Queues. @@ -819,7 +819,7 @@ for _, taskQueueName := range taskQueueNames { ### Evaluate Worker availability and capacity issues {/* #worker-capacity-issues */} -Each Temporal [Server](https://docs.temporal.io/temporal-service/temporal-server) records the last time of each poll request. +Each Temporal [Server](/temporal-service/temporal-server) records the last time of each poll request. This time is displayed in the `temporal task-queue describe` output. - A `LastAccessTime` value exceeding one minute may indicate that the Worker fleet is at capacity or that Workers have shut down or been removed. diff --git a/docs/encyclopedia/event-history/dotnet.mdx b/docs/encyclopedia/event-history/dotnet.mdx index 6e3c86261f..2285fbf436 100644 --- a/docs/encyclopedia/event-history/dotnet.mdx +++ b/docs/encyclopedia/event-history/dotnet.mdx @@ -253,7 +253,7 @@ the Workflow Execution, ultimately resulting in a completed execution that's ide ## Example of a Non-Deterministic Workflow {/* #Example-of-Non-Deterministic-Workflow */} Now that Replay has been covered, this section will explain why Workflows need to be -[deterministic](https://docs.temporal.io/workflow-definition#deterministic-constraints) in order for Replay to work. +[deterministic](/workflow-definition#deterministic-constraints) in order for Replay to work. A Workflow is deterministic if every execution of its Workflow Definition produces the same Commands in the same sequence given the same input. @@ -301,11 +301,11 @@ number generator. /> Note that non-deterministic failures do not fail the Workflow Execution by default. A non-deterministic failure is -considered a [Workflow Task Failure](https://docs.temporal.io/references/failures#workflow-task-failures) which is +considered a [Workflow Task Failure](/references/failures#workflow-task-failures) which is considered a transient failure, meaning it retries over and over. Users can also fix the source of non-determinism, perhaps by removing the Activity, and then restart the Workers. This means that this type of failure can recover by itself. You can also use a strategy called versioning to address this non-determinism error. See -[versioning](https://docs.temporal.io/develop/dotnet/workflows/versioning) to learn more. +[versioning](/develop/dotnet/workflows/versioning) to learn more. For more information on how Temporal handles Durable Execution or to see these slides in a video format with more explanation, check out our free, self-paced courses: [Temporal 102](https://learn.temporal.io/courses/temporal_102/) and diff --git a/docs/encyclopedia/event-history/event-history.mdx b/docs/encyclopedia/event-history/event-history.mdx index 71bdf20b67..84f743748c 100644 --- a/docs/encyclopedia/event-history/event-history.mdx +++ b/docs/encyclopedia/event-history/event-history.mdx @@ -28,7 +28,7 @@ keywords: - worker process execution --- -With Temporal, your Workflows can seamlessly recover from crashes. This is made possible by the [Event History](https://docs.temporal.io/workflow-execution/event), a complete and durable log of everything that has happened in the lifecycle of a Workflow Execution, as well as the ability of the Temporal Service to durably persist the Events during Replay. +With Temporal, your Workflows can seamlessly recover from crashes. This is made possible by the [Event History](/workflow-execution/event), a complete and durable log of everything that has happened in the lifecycle of a Workflow Execution, as well as the ability of the Temporal Service to durably persist the Events during Replay. Temporal uses the Event History to record every step taken along the way. Each time your Workflow Definition makes an API call to execute an Activity or start a Timer for instance, it doesn’t perform the action directly. Instead, it sends a Command to the Temporal Service. diff --git a/docs/encyclopedia/event-history/go.mdx b/docs/encyclopedia/event-history/go.mdx index 737bcc6558..1be260abbb 100644 --- a/docs/encyclopedia/event-history/go.mdx +++ b/docs/encyclopedia/event-history/go.mdx @@ -267,7 +267,7 @@ the Workflow Execution, ultimately resulting in a completed execution that's ide ## Example of a Non-Deterministic Workflow {/* #Example-of-Non-Deterministic-Workflow */} Now that Replay has been covered, this section will explain why Workflows need to be -[deterministic](https://docs.temporal.io/workflow-definition#deterministic-constraints) in order for Replay to work. +[deterministic](/workflow-definition#deterministic-constraints) in order for Replay to work. A Workflow is deterministic if every execution of its Workflow Definition produces the same Commands in the same sequence given the same input. @@ -314,7 +314,7 @@ number generator. /> Note that non-deterministic failures do not fail the Workflow Execution by default. A non-deterministic failure is -considered a [Workflow Task Failure](https://docs.temporal.io/references/failures#workflow-task-failures) which is +considered a [Workflow Task Failure](/references/failures#workflow-task-failures) which is considered a transient failure, meaning it retries over and over. Users can also fix the source of non-determinism, perhaps by removing the Activity, and then restart the Workers. This means that this type of failure can recover by itself. You can also use a strategy called versioning to address this non-determinism error. See diff --git a/docs/encyclopedia/event-history/java.mdx b/docs/encyclopedia/event-history/java.mdx index b2f03e68cc..6d0c34fe3d 100644 --- a/docs/encyclopedia/event-history/java.mdx +++ b/docs/encyclopedia/event-history/java.mdx @@ -257,7 +257,7 @@ the Workflow Execution, ultimately resulting in a completed execution that's ide ## Example of a Non-Deterministic Workflow {/* #Example-of-Non-Deterministic-Workflow */} Now that Replay has been covered, this section will explain why Workflows need to be -[deterministic](https://docs.temporal.io/workflow-definition#deterministic-constraints) in order for Replay to work. +[deterministic](/workflow-definition#deterministic-constraints) in order for Replay to work. A Workflow is deterministic if every execution of its Workflow Definition produces the same Commands in the same sequence given the same input. @@ -306,11 +306,11 @@ number generator. /> Note that non-deterministic failures do not fail the Workflow Execution by default. A non-deterministic failure is -considered a [Workflow Task Failure](https://docs.temporal.io/references/failures#workflow-task-failures) which is +considered a [Workflow Task Failure](/references/failures#workflow-task-failures) which is considered a transient failure, meaning it retries over and over. Users can also fix the source of non-determinism, perhaps by removing the Activity, and then restart the Workers. This means that this type of failure can recover by itself. You can also use a strategy called versioning to address this non-determinism error. See -[versioning](https://docs.temporal.io/develop/java/versioning) to learn more. +[versioning](/develop/java/workflows/versioning) to learn more. For more information on how Temporal handles Durable Execution or to see these slides in a video format with more explanation, check out our free, self-paced courses: [Temporal 102](https://learn.temporal.io/courses/temporal_102/) and diff --git a/docs/encyclopedia/event-history/python.mdx b/docs/encyclopedia/event-history/python.mdx index 7cd0e0670f..fa096f48b0 100644 --- a/docs/encyclopedia/event-history/python.mdx +++ b/docs/encyclopedia/event-history/python.mdx @@ -259,7 +259,7 @@ the Workflow Execution, ultimately resulting in a completed execution that's ide ## Example of a Non-Deterministic Workflow {/* #Example-of-Non-Deterministic-Workflow */} Now that Replay has been covered, this section will explain why Workflows need to be -[deterministic](https://docs.temporal.io/workflow-definition#deterministic-constraints) in order for Replay to work. +[deterministic](/workflow-definition#deterministic-constraints) in order for Replay to work. A Workflow is deterministic if every execution of its Workflow Definition produces the same Commands in the same sequence given the same input. @@ -308,7 +308,7 @@ number generator. /> Note that non-deterministic failures do not fail the Workflow Execution by default. A non-deterministic failure is -considered a [Workflow Task Failure](https://docs.temporal.io/references/failures#workflow-task-failures) which is +considered a [Workflow Task Failure](/references/failures#workflow-task-failures) which is considered a transient failure, meaning it retries over and over. Users can also fix the source of non-determinism, perhaps by removing the Activity, and then restart the Workers. This means that this type of failure can recover by itself. You can also use a strategy called versioning to address this non-determinism error. See diff --git a/docs/encyclopedia/event-history/typescript.mdx b/docs/encyclopedia/event-history/typescript.mdx index 6c5fd773ff..80907f0351 100644 --- a/docs/encyclopedia/event-history/typescript.mdx +++ b/docs/encyclopedia/event-history/typescript.mdx @@ -261,7 +261,7 @@ the Workflow Execution, ultimately resulting in a completed execution that's ide ## Example of a Non-Deterministic Workflow {/* #Example-of-Non-Deterministic-Workflow */} Now that Replay has been covered, this section will explain why Workflows need to be -[deterministic](https://docs.temporal.io/workflow-definition#deterministic-constraints) in order for Replay to work. +[deterministic](/workflow-definition#deterministic-constraints) in order for Replay to work. A Workflow is deterministic if every execution of its Workflow Definition produces the same Commands in the same sequence given the same input. @@ -310,11 +310,11 @@ number generator. /> Note that non-deterministic failures do not fail the Workflow Execution by default. A non-deterministic failure is -considered a [Workflow Task Failure](https://docs.temporal.io/references/failures#workflow-task-failures) which is +considered a [Workflow Task Failure](/references/failures#workflow-task-failures) which is considered a transient failure, meaning it retries over and over. Users can also fix the source of non-determinism, perhaps by removing the Activity, and then restart the Workers. This means that this type of failure can recover by itself. You can also use a strategy called versioning to address this non-determinism error. See -[versioning](https://docs.temporal.io/develop/typescript/workflows/versioning) to learn more. +[versioning](/develop/typescript/workflows/versioning) to learn more. For more information on how Temporal handles Durable Execution or to see these slides in a video format with more explanation, check out our free, self-paced courses: [Temporal 102](https://learn.temporal.io/courses/temporal_102/) and diff --git a/docs/encyclopedia/nexus/nexus-operations.mdx b/docs/encyclopedia/nexus/nexus-operations.mdx index cb307dc67c..ab75315034 100644 --- a/docs/encyclopedia/nexus/nexus-operations.mdx +++ b/docs/encyclopedia/nexus/nexus-operations.mdx @@ -188,9 +188,9 @@ The Schedule-to-Close timeout limits the total duration from when the Operation This is the overall timeout for the entire Operation. The Nexus Machinery [automatically retries](#automatic-retries) failed requests internally until this timeout is exceeded, at which point the Operation fails with a [NexusOperationTimedOut](/references/events#nexusoperationtimedout) event. -This timeout covers the full [Nexus Operation lifecycle](https://docs.temporal.io/nexus/operations#operation-lifecycle). Asynchronous Operations are scheduled, started, and completed. Synchronous Operations don't have an intermediate started state because they complete as part of the start request. +This timeout covers the full [Nexus Operation lifecycle](/nexus/operations#operation-lifecycle). Asynchronous Operations are scheduled, started, and completed. Synchronous Operations don't have an intermediate started state because they complete as part of the start request. -In Temporal Cloud, the [maximum Schedule-to-Close timeout is 60 days](https://docs.temporal.io/cloud/limits#nexus-operation-duration-limits). +In Temporal Cloud, the [maximum Schedule-to-Close timeout is 60 days](/cloud/limits#nexus-operation-duration-limits). ### Schedule-to-Start timeout {/* #schedule-to-start-timeout */} diff --git a/docs/encyclopedia/temporal-sdks.mdx b/docs/encyclopedia/temporal-sdks.mdx index b7fd3a233d..40bd88039f 100644 --- a/docs/encyclopedia/temporal-sdks.mdx +++ b/docs/encyclopedia/temporal-sdks.mdx @@ -271,7 +271,7 @@ A Workflow executes Activities (other functions that interact with external syst This Workflow code, while executing, can be paused, resumed, and migrated across physical machines without losing state. -When a Workflow calls the API to execute an Activity, the Worker sends a [Command](https://docs.temporal.io/references/commands) back to the Temporal Service. The Temporal Service creates Activity Tasks in response which the same or a different Worker can then pick up and begin executing. In this way, the Worker and Temporal Service work together to incrementally execute Workflow code in a reliable way. +When a Workflow calls the API to execute an Activity, the Worker sends a [Command](/references/commands) back to the Temporal Service. The Temporal Service creates Activity Tasks in response which the same or a different Worker can then pick up and begin executing. In this way, the Worker and Temporal Service work together to incrementally execute Workflow code in a reliable way. We discuss this more in detail in [The SDK and Temporal Service relationship](/encyclopedia/temporal-sdks#sdk-and-cluster-relationship) section. The SDK APIs also enable developers to write code that more genuinely maps to their process. This is because without a specialized SDK, developers might have to write a lot of boilerplate code. This can lead to code that's hard to maintain, difficult to understand, or that doesn't directly correspond to the underlying business process. diff --git a/docs/encyclopedia/temporal-service/multi-cluster-replication.mdx b/docs/encyclopedia/temporal-service/multi-cluster-replication.mdx index c4f46721ef..23d13f192a 100644 --- a/docs/encyclopedia/temporal-service/multi-cluster-replication.mdx +++ b/docs/encyclopedia/temporal-service/multi-cluster-replication.mdx @@ -39,7 +39,7 @@ This feature must be enabled through a Dynamic Config flag per [Global Namespace When the feature is enabled, Tasks are sent to the Parent Task Queue partition that matches that Namespace, if it exists. All Visibility APIs can be used against active and standby Clusters. -This enables [Temporal UI](https://docs.temporal.io/web-ui) to work seamlessly for Global Namespaces. +This enables [Temporal UI](/web-ui) to work seamlessly for Global Namespaces. Applications making API calls directly to the Temporal Visibility API continue to work even if a Global Namespace is in standby mode. However, they might see a lag due to replication delay when querying the Workflow Execution state from a standby Cluster. diff --git a/docs/encyclopedia/workers/worker-versioning.mdx b/docs/encyclopedia/workers/worker-versioning.mdx index 7c863f9afa..59951818b5 100644 --- a/docs/encyclopedia/workers/worker-versioning.mdx +++ b/docs/encyclopedia/workers/worker-versioning.mdx @@ -85,7 +85,7 @@ A Worker Deployment Version moves through the following states: 1. **Inactive**: The version exists because a Worker with that version has polled the server. If this version never becomes Active, it will never be Draining or Drained. 2. **Active**: The version is either Current or Ramping, so it is accepting new Workflows and existing auto-upgrade Workflows. 3. **Draining**: The version has open pinned Workflows running on it, but stopped being Current or Ramping, usually because a newer version has been deployed. It is possible to be Draining and have no open pinned Workflows for a short time, since the drainage status is updated only periodically. -4. **Drained**: The version was draining and now all the pinned Workflows that were running on it are closed. Closed Workflows may still re-run some code paths if they are [Queried](https://docs.temporal.io/sending-messages#sending-queries) within their [Retention Period](https://docs.temporal.io/temporal-service/temporal-server#retention-period) and Workers with that version are still polling. +4. **Drained**: The version was draining and now all the pinned Workflows that were running on it are closed. Closed Workflows may still re-run some code paths if they are [Queried](/sending-messages#sending-queries) within their [Retention Period](/temporal-service/temporal-server#retention-period) and Workers with that version are still polling. ## Continue-as-new, Child Workflow, and Retry Semantics {/* #inheritance-semantics */} @@ -95,10 +95,10 @@ When Workflows start new runs (e.g. by continuing-as-new or retrying) the new ru A Workflow can start a new run through: -- Starting a [Child Workflow](https://docs.temporal.io/child-workflows) -- Invoking [Continue-As-New](https://docs.temporal.io/workflow-execution/continue-as-new) -- Retrying per its [Retry Policy](https://docs.temporal.io/encyclopedia/retry-policies) -- Starting another iteration of a [Cron Job](https://docs.temporal.io/cron-job) (superseded by [Schedules](https://docs.temporal.io/schedule)) +- Starting a [Child Workflow](/child-workflows) +- Invoking [Continue-As-New](/workflow-execution/continue-as-new) +- Retrying per its [Retry Policy](/encyclopedia/retry-policies) +- Starting another iteration of a [Cron Job](/cron-job) (superseded by [Schedules](/schedule)) ### Inheritance Rules Overview diff --git a/docs/encyclopedia/workflow-message-passing/handling-messages.mdx b/docs/encyclopedia/workflow-message-passing/handling-messages.mdx index 4d268f80ce..cd4478402d 100644 --- a/docs/encyclopedia/workflow-message-passing/handling-messages.mdx +++ b/docs/encyclopedia/workflow-message-passing/handling-messages.mdx @@ -177,16 +177,16 @@ The following content applies in every SDK except the Go SDK. See below. #### Exceptions in Signals In Signal handlers, throw [Application Failures](/references/failures#application-failure) only for unrecoverable errors, because the entire Workflow will fail. -Similarly, allowing a failing Activity or Child Workflow to exhaust its retries, so that it throws an [Activity Failure](https://docs.temporal.io/references/failures#activity-failure) or [Child Workflow Failure](https://docs.temporal.io/references/failures#child-workflow-failure) will cause the entire Workflow to fail. -Note that for Activities, this will only happen if you change the default Activity [Retry Policy](https://docs.temporal.io/encyclopedia/retry-policies), since by default they retry forever. +Similarly, allowing a failing Activity or Child Workflow to exhaust its retries, so that it throws an [Activity Failure](/references/failures#activity-failure) or [Child Workflow Failure](/references/failures#child-workflow-failure) will cause the entire Workflow to fail. +Note that for Activities, this will only happen if you change the default Activity [Retry Policy](/encyclopedia/retry-policies), since by default they retry forever. If you throw any other exception, by default, it will cause a [Workflow Task Failure](/references/failures#workflow-task-failures). This means the Workflow will get stuck and will retry the handler periodically until the exception is fixed, for example by a code change. #### Exceptions in Updates Doing any of the following will fail the Update and cause the client to receive the error: -- Reject the Update by throwing any exception from your [Validator](https://docs.temporal.io/handling-messages#update-validators). -- Allow a failing Activity or Child Workflow to exhaust its retries, so that it throws an [Activity Failure](https://docs.temporal.io/references/failures#activity-failure) or [Child Workflow Failure](https://docs.temporal.io/references/failures#child-workflow-failure). Note that for Activities, this will only happen if you change the default Activity [Retry Policy](https://docs.temporal.io/encyclopedia/retry-policies), since by default they retry forever. +- Reject the Update by throwing any exception from your [Validator](/handling-messages#update-validators). +- Allow a failing Activity or Child Workflow to exhaust its retries, so that it throws an [Activity Failure](/references/failures#activity-failure) or [Child Workflow Failure](/references/failures#child-workflow-failure). Note that for Activities, this will only happen if you change the default Activity [Retry Policy](/encyclopedia/retry-policies), since by default they retry forever. - Throw an [Application Failure](/references/failures#application-failure) from your Update handler. Unlike with Signals, the Workflow will keep going in these cases. diff --git a/docs/encyclopedia/workflow-message-passing/sending-messages.mdx b/docs/encyclopedia/workflow-message-passing/sending-messages.mdx index a178eb9e92..3c7c10cbe4 100644 --- a/docs/encyclopedia/workflow-message-passing/sending-messages.mdx +++ b/docs/encyclopedia/workflow-message-passing/sending-messages.mdx @@ -139,12 +139,12 @@ For open source server users, Temporal Server version [Temporal Server version 1 ::: Update-with-Start sends an Update request, starting a Workflow if necessary. -A [`WorkflowIDConflictPolicy`](https://docs.temporal.io/workflow-execution/workflowid-runid#workflow-id-conflict-policy) must be specified. +A [`WorkflowIDConflictPolicy`](/workflow-execution/workflowid-runid#workflow-id-conflict-policy) must be specified. Workflow ID and Update ID can be used as idempotency keys as follows: - If the Workflow exists and you provided an Update ID, and the Update exists in the latest Workflow Run, then Update-With-Start attaches to the existing Update (regardless of `WorkflowIDConflictPolicy`) - If the Workflow is closed, it attaches only if the Update has completed. -- Otherwise it uses [`WorkflowIDConflictPolicy`](https://docs.temporal.io/workflow-execution/workflowid-runid#workflow-id-conflict-policy) and [`WorkflowIDReusePolicy`](https://docs.temporal.io/workflow-execution/workflowid-runid#workflow-id-reuse-policy) as usual to determine whether to start a Workflow, and then starts a new Update immediately. +- Otherwise it uses [`WorkflowIDConflictPolicy`](/workflow-execution/workflowid-runid#workflow-id-conflict-policy) and [`WorkflowIDReusePolicy`](/workflow-execution/workflowid-runid#workflow-id-reuse-policy) as usual to determine whether to start a Workflow, and then starts a new Update immediately. Update-With-Start is great for latency-sensitive use cases: diff --git a/docs/encyclopedia/workflow/workflow-execution/event.mdx b/docs/encyclopedia/workflow/workflow-execution/event.mdx index c8f8517d8f..cb13941802 100644 --- a/docs/encyclopedia/workflow/workflow-execution/event.mdx +++ b/docs/encyclopedia/workflow/workflow-execution/event.mdx @@ -156,7 +156,7 @@ Possible values are as follows: Anyone who has permission to read Event history in the Namespace (ReadOnly access and above) can see the Principal (and the metadata such as email address). -To enable Principal Attribution for a Namespace, contact [Temporal Cloud support](https://docs.temporal.io/cloud/support#support-ticket). +To enable Principal Attribution for a Namespace, contact [Temporal Cloud support](/cloud/support#support-ticket). ### Self-hosted Temporal diff --git a/docs/evaluate/development-production-features/cloud-automation.mdx b/docs/evaluate/development-production-features/cloud-automation.mdx index b97ac687eb..1269604fc3 100644 --- a/docs/evaluate/development-production-features/cloud-automation.mdx +++ b/docs/evaluate/development-production-features/cloud-automation.mdx @@ -29,13 +29,13 @@ Cloud Automation offers secure authentication across all interfaces, reducing er **Key Features:** -- [Secure API Keys](https://docs.temporal.io/cloud/api-keys): Manage resources securely with Temporal Cloud API Keys. -- [Temporal Cloud CLI (tcld)](https://docs.temporal.io/cloud/tcld): Automate operations directly from the command line. -- [Terraform Provider for Cloud](https://docs.temporal.io/cloud/terraform-provider#prerequisites): Scale effortlessly with infrastructure-as-code. +- [Secure API Keys](/cloud/api-keys): Manage resources securely with Temporal Cloud API Keys. +- [Temporal Cloud CLI (tcld)](/cloud/tcld): Automate operations directly from the command line. +- [Terraform Provider for Cloud](/cloud/terraform-provider#prerequisites): Scale effortlessly with infrastructure-as-code. - - + + diff --git a/docs/evaluate/development-production-features/low-latency.mdx b/docs/evaluate/development-production-features/low-latency.mdx index 06c513c1c8..5daa62c5b4 100644 --- a/docs/evaluate/development-production-features/low-latency.mdx +++ b/docs/evaluate/development-production-features/low-latency.mdx @@ -41,6 +41,6 @@ Temporal Cloud provides lower latency, making it suitable for latency-sensitive, - + diff --git a/docs/evaluate/temporal-cloud/actions.mdx b/docs/evaluate/temporal-cloud/actions.mdx index 0c6b3a63c0..871840df3e 100644 --- a/docs/evaluate/temporal-cloud/actions.mdx +++ b/docs/evaluate/temporal-cloud/actions.mdx @@ -58,7 +58,7 @@ endpoints can differ based on what is visible to a system. Action Categories and billing API. Usage and Billing data will have the most complete Actions data while Event history and metrics will help with -detailed _estimates_. For example, [History Event Types](https://docs.temporal.io/workflow-execution/event) are provided +detailed _estimates_. For example, [History Event Types](/workflow-execution/event) are provided for transparency, but do not always have a simple 1:1 relationship with Action Types. The Categories, Action types, and available endpoints are listed in the following sections: @@ -142,9 +142,9 @@ available endpoints are listed in the following sections: ## Signal {/* #signal */} -- **Signal sent**. An Action occurs for every [Signal](https://docs.temporal.io/sending-messages#sending-signals), +- **Signal sent**. An Action occurs for every [Signal](/sending-messages#sending-signals), whether sent from a Client or from a Workflow. Also, one total action occurs for any - [Signal-With-Start](https://docs.temporal.io/sending-messages#signal-with-start), regardless of whether the Workflow + [Signal-With-Start](/sending-messages#signal-with-start), regardless of whether the Workflow starts. | Usage Name | Metric Name | History Event Type | @@ -156,7 +156,7 @@ available endpoints are listed in the following sections: ## Query {/* #query */} - **Query received by Worker**. An Action occurs for every - [Query](https://docs.temporal.io/sending-messages#sending-queries), including viewing the call stack in the Temporal + [Query](/sending-messages#sending-queries), including viewing the call stack in the Temporal Cloud UI, which results in a Query behind the scenes. `__temporal_workflow_metadata` is a built-in query used to retrieve workflow metadata at runtime and is excluded. @@ -167,9 +167,9 @@ available endpoints are listed in the following sections: ## Update {/* #update */} - **Update received by Worker**. - - Occurs for every successful [Update](https://docs.temporal.io/sending-messages#sending-updates) and every - [rejected](https://docs.temporal.io/handling-messages#update-validators) Update. - - This includes [Update-With-Start](https://docs.temporal.io/sending-messages#update-with-start), and is in addition + - Occurs for every successful [Update](/sending-messages#sending-updates) and every + [rejected](/handling-messages#update-validators) Update. + - This includes [Update-With-Start](/sending-messages#update-with-start), and is in addition to the start Action in the case when the Workflow starts as well. - De-duplicated Updates that share an Update ID do _not_ count as an Action. diff --git a/docs/evaluate/temporal-cloud/limits.mdx b/docs/evaluate/temporal-cloud/limits.mdx index 8c125802e2..236243de32 100644 --- a/docs/evaluate/temporal-cloud/limits.mdx +++ b/docs/evaluate/temporal-cloud/limits.mdx @@ -121,7 +121,7 @@ Nexus requests (such as starting a Nexus Operation or sending a Nexus completion If too many Nexus requests are sent at once, they may be throttled, along with other requests to the Namespace. Throttling limits the rate at which Nexus requests are processed, ensuring the RPS limit isn't exceeded. -You can request this limit be manually raised by [opening a support ticket](https://docs.temporal.io/cloud/support#support-ticket). +You can request this limit be manually raised by [opening a support ticket](/cloud/support#support-ticket). :::note diff --git a/docs/evaluate/temporal-cloud/pricing.mdx b/docs/evaluate/temporal-cloud/pricing.mdx index 44c6e0a107..92d2af8976 100644 --- a/docs/evaluate/temporal-cloud/pricing.mdx +++ b/docs/evaluate/temporal-cloud/pricing.mdx @@ -156,8 +156,8 @@ For additional storage within a calendar month, you are billed for Active and Re :::tip Storage costs are also affected by Temporal System Workflows that back features such as: -- [Schedules](https://docs.temporal.io/schedule): Each Scheduled Workflow contributes to storage usage. Supplied inputs, outputs, and failures all account for the storage usage incurred from Scheduled Workflows. -- [Batch jobs](https://docs.temporal.io/cli/command-reference/batch): Batch Workflow executions also consume storage. +- [Schedules](/schedule): Each Scheduled Workflow contributes to storage usage. Supplied inputs, outputs, and failures all account for the storage usage incurred from Scheduled Workflows. +- [Batch jobs](/cli/command-reference/batch): Batch Workflow executions also consume storage. These Workflow executions contribute to overall active and retained storage consumption. diff --git a/docs/evaluate/understanding-temporal.mdx b/docs/evaluate/understanding-temporal.mdx index 25b9f65e06..4092d5a644 100644 --- a/docs/evaluate/understanding-temporal.mdx +++ b/docs/evaluate/understanding-temporal.mdx @@ -155,7 +155,7 @@ The Temporal CLI provides developers with direct access to a Temporal Service fo ### Event History -With Temporal, your Workflows can seamlessly recover from crashes. This is made possible by the [Event History](https://docs.temporal.io/workflow-execution/event), a complete and durable log of everything that has happened in the lifecycle of a Workflow Execution, as well as the ability of the Temporal Service to durably persist the Events during [Replay](/workflow-execution#replay). +With Temporal, your Workflows can seamlessly recover from crashes. This is made possible by the [Event History](/workflow-execution/event), a complete and durable log of everything that has happened in the lifecycle of a Workflow Execution, as well as the ability of the Temporal Service to durably persist the Events during [Replay](/workflow-execution#replay). Temporal uses the Event History to record every step taken along the way. Each time your Workflow Definition makes an API call to execute an Activity or start a Timer for instance, it doesn’t perform the action directly. Instead, it sends a Command to the Temporal Service. diff --git a/docs/production-deployment/self-hosted-guide/multi-cluster-replication.mdx b/docs/production-deployment/self-hosted-guide/multi-cluster-replication.mdx index 047283d55f..04deeba163 100644 --- a/docs/production-deployment/self-hosted-guide/multi-cluster-replication.mdx +++ b/docs/production-deployment/self-hosted-guide/multi-cluster-replication.mdx @@ -26,7 +26,7 @@ This feature must be enabled through a Dynamic Config flag per [Global Namespace When the feature is enabled, Tasks are sent to the Parent Task Queue partition that matches that Namespace, if it exists. All Visibility APIs can be used against active and standby Clusters. -This enables [Temporal UI](https://docs.temporal.io/web-ui) to work seamlessly for Global Namespaces. +This enables [Temporal UI](/web-ui) to work seamlessly for Global Namespaces. Applications making API calls directly to the Temporal Visibility API continue to work even if a Global Namespace is in standby mode. However, they might see a lag due to replication delay when querying the Workflow Execution state from a standby Cluster. diff --git a/docs/production-deployment/self-hosted-guide/server-frontend-api-reference.mdx b/docs/production-deployment/self-hosted-guide/server-frontend-api-reference.mdx index 6a8a5f6752..ccd04c3ba5 100644 --- a/docs/production-deployment/self-hosted-guide/server-frontend-api-reference.mdx +++ b/docs/production-deployment/self-hosted-guide/server-frontend-api-reference.mdx @@ -18,7 +18,7 @@ tags: import { CaptionedImage } from '@site/src/components'; While it's usually easiest to interact with [Temporal Server](/temporal-service/temporal-server) via a -[Client SDK](/encyclopedia/temporal-sdks#temporal-client) or the [Temporal CLI](https://docs.temporal.io/cli), you can +[Client SDK](/encyclopedia/temporal-sdks#temporal-client) or the [Temporal CLI](/cli), you can also use its gRPC API. Our Client and Worker SDKs use the gRPC API. The API reference is located here: diff --git a/docs/references/errors.mdx b/docs/references/errors.mdx index 8702ecd7f9..f81d94b2cd 100644 --- a/docs/references/errors.mdx +++ b/docs/references/errors.mdx @@ -14,7 +14,7 @@ tags: This reference lists possible [Workflow Task](/tasks#workflow-task) errors and how to resolve them. -> For other types of errors, see [Temporal Failures](https://docs.temporal.io/kb/failures). +> For other types of errors, see [Temporal Failures](/references/failures). Each of the below errors corresponds with a [WorkflowTaskFailedCause](https://api-docs.temporal.io/#temporal.api.enums.v1.WorkflowTaskFailedCause), which appears in [Events](/workflow-execution/event#event) under `workflow_task_failed_event_attributes`. diff --git a/docs/references/failures.mdx b/docs/references/failures.mdx index 1cd2c51ee1..4ad33cf124 100644 --- a/docs/references/failures.mdx +++ b/docs/references/failures.mdx @@ -67,7 +67,7 @@ Workflow Execution Timeout, which is unlimited by default. An `ApplicationError`, an extension of `FailureError`, can be raised in a Workflow to fail the Workflow Execution. Workflow Execution Failures put the Workflow Execution into the "Failed" state and no more attempts will be made in progressing this execution. -If you are creating custom exceptions you would need to extend the [`ApplicationError`](https://docs.temporal.io/references/failures#application-failure) class—a child class of [`FailureError`](https://docs.temporal.io/references/failures#temporal-failure). +If you are creating custom exceptions you would need to extend the [`ApplicationError`](/references/failures#application-failure) class—a child class of [`FailureError`](/references/failures#temporal-failure). ### Errors in Activities diff --git a/docs/troubleshooting/performance-bottlenecks.mdx b/docs/troubleshooting/performance-bottlenecks.mdx index 756add34aa..302e3fa14f 100644 --- a/docs/troubleshooting/performance-bottlenecks.mdx +++ b/docs/troubleshooting/performance-bottlenecks.mdx @@ -33,8 +33,8 @@ The following sections detail common metrics, their potential causes for high la High [`temporal_workflow_task_schedule_to_start_latency`](/references/sdk-metrics#workflow_task_schedule_to_start_latency) (P95 higher than one second) can be caused by several factors. This metric represents the time between when a [Workflow Task](/tasks#workflow-task) is scheduled (enqueued) and when it is picked up by a Worker for processing. Here are some potential causes: -- Insufficient Worker capacity: If there aren't enough Workers or if the Workers are overloaded, they may not be able to pick up Tasks quickly enough. This can lead to Tasks waiting longer in the queue ([Detect Task Backlog](https://docs.temporal.io/cloud/worker-health#detect-task-backlog)). -- Worker configuration issues: Improperly configured Workers, such as having too few pollers or Task slots, can lead to increased latency ([Detect Task Backlog](https://docs.temporal.io/cloud/worker-health#detect-task-backlog)). +- Insufficient Worker capacity: If there aren't enough Workers or if the Workers are overloaded, they may not be able to pick up Tasks quickly enough. This can lead to Tasks waiting longer in the queue ([Detect Task Backlog](/cloud/worker-health#detect-task-backlog)). +- Worker configuration issues: Improperly configured Workers, such as having too few pollers or Task slots, can lead to increased latency ([Detect Task Backlog](/cloud/worker-health#detect-task-backlog)). - High Workflow lock latency: If many updates are made to a single execution, this can cause Workflow lock latency, which in turn affects the Schedule-to-start latency. Reduce the rate of Signals. - Network latency: Workers in a different region from the Temporal cluster, or large payload size, can introduce additional latency. @@ -51,8 +51,8 @@ High [`temporal_activity_schedule_to_start_latency`](/references/sdk-metrics#act This metric represents the time between when an [Activity Task](/tasks#activity-task) is scheduled (enqueued) and when it is picked up by a Worker for processing. Here are some potential causes: -- Insufficient Worker capacity: If there aren't enough Workers or if the Workers are overloaded, they may not be able to pick up Tasks quickly enough. This can lead to Tasks waiting longer in the queue ([Detect Task Backlog](https://docs.temporal.io/cloud/worker-health#detect-task-backlog)). -- Worker configuration issues: Improperly configured Workers, such as having too few pollers or Task slots, can lead to increased latency ([Detect Task Backlog](https://docs.temporal.io/cloud/worker-health#detect-task-backlog)). +- Insufficient Worker capacity: If there aren't enough Workers or if the Workers are overloaded, they may not be able to pick up Tasks quickly enough. This can lead to Tasks waiting longer in the queue ([Detect Task Backlog](/cloud/worker-health#detect-task-backlog)). +- Worker configuration issues: Improperly configured Workers, such as having too few pollers or Task slots, can lead to increased latency ([Detect Task Backlog](/cloud/worker-health#detect-task-backlog)). - Task Queue configuration: Setting `TaskQueueActivitiesPerSecond` too low can limit the rate at which Activities are started, leading to increased Schedule-to-start latency. - Network latency: Workers in a different region from the Temporal cluster, or large payload size can introduce additional latency. @@ -70,7 +70,7 @@ Normal ranges for this metric depend on the use case, but here are some potentia - Complex Workflows: If the Workflows have many Activities or if the Activities take a long time to execute. - Workflow and Activity retries: If Workflows or Activities are configured to retry upon failure and they fail often, this can increase the end-to-end latency as the system will wait for the retry delay before reattempting the failed operation. -- Worker capacity and configuration: If there aren't enough Workers or if the Workers are overloaded, they may not be able to pick up and process Tasks quickly enough. This can lead to Tasks waiting longer in the queue, thereby increasing the end-to-end latency ([Detect Task Backlog](https://docs.temporal.io/cloud/worker-health#detect-task-backlog)). +- Worker capacity and configuration: If there aren't enough Workers or if the Workers are overloaded, they may not be able to pick up and process Tasks quickly enough. This can lead to Tasks waiting longer in the queue, thereby increasing the end-to-end latency ([Detect Task Backlog](/cloud/worker-health#detect-task-backlog)). - External dependencies: If your Workflows or Activities depend on external systems or services (such as databases or APIs) and these systems are slow or unreliable, they can increase the end-to-end latency. - Network latency: Workers in a different region from the Temporal cluster can introduce additional latency. @@ -228,7 +228,7 @@ To diagnose and address high `temporal_request_latency`: 2. Check the network connection between the Temporal Client and the Temporal Server. 3. Monitor the resource usage on both the Temporal Client and the Temporal Server. 4. Review your Temporal Client configuration to ensure it is optimized for your workload. -5. If you're using Temporal Cloud, check if the Cloud’s [service-latency](https://docs.temporal.io/cloud/metrics/reference#service-latency) metric spikes up and reach out to Temporal Support for help. +5. If you're using Temporal Cloud, check if the Cloud’s [service-latency](/cloud/metrics/reference#service-latency) metric spikes up and reach out to Temporal Support for help. ### `rate(temporal_long_request_total{operation="PollActivityTaskQueue"})` @@ -279,8 +279,8 @@ Conversely, if you have available memory and want to improve performance, you mi ### `temporal_sticky_cache_hit_total` and `temporal_sticky_cache_miss_total` -The [`temporal_sticky_cache_hit_total`](https://docs.temporal.io/references/sdk-metrics#sticky_cache_hit) metric is a counter that measures the total number of times a Workflow Task found a cached Workflow Execution to run against, and -the opposite is [`temporal_sticky_cache_miss_total`](https://docs.temporal.io/references/sdk-metrics#sticky_cache_miss), which is a counter that measures the total number of times a Workflow Task did not find a cached Workflow Execution to run against. +The [`temporal_sticky_cache_hit_total`](/references/sdk-metrics#sticky_cache_hit) metric is a counter that measures the total number of times a Workflow Task found a cached Workflow Execution to run against, and +the opposite is [`temporal_sticky_cache_miss_total`](/references/sdk-metrics#sticky_cache_miss), which is a counter that measures the total number of times a Workflow Task did not find a cached Workflow Execution to run against. Sticky Execution is a feature where a Worker caches a Workflow Execution and creates a dedicated Task Queue to listen on. This improves performance because the Temporal Service only sends new events to the Worker instead of entire Event Histories, and the Workflow doesn't have to Replay. @@ -293,7 +293,7 @@ A high rate of cache hits with a low rate of cache misses indicates that your Wo ### `temporal_sticky_cache_total_forced_eviction_total` -The [`temporal_sticky_cache_total_forced_eviction_total`](https://docs.temporal.io/references/sdk-metrics#sticky_cache_hit) metric is a counter that measures the total number of Workflow Executions that have been forcibly evicted from the sticky cache. +The [`temporal_sticky_cache_total_forced_eviction_total`](/references/sdk-metrics#sticky_cache_hit) metric is a counter that measures the total number of Workflow Executions that have been forcibly evicted from the sticky cache. Sticky Execution is a feature where a Worker caches a Workflow Execution and creates a dedicated Task Queue to listen on. This improves performance because the Temporal Service only sends new events to the Worker instead of entire Event Histories, and the Workflow doesn't have to Replay. diff --git a/vale/styles/Temporal/RelativeLinks.yml b/vale/styles/Temporal/RelativeLinks.yml new file mode 100644 index 0000000000..125fe9c1c3 --- /dev/null +++ b/vale/styles/Temporal/RelativeLinks.yml @@ -0,0 +1,22 @@ +# scope: raw is required to see link destinations at all (the default text +# scope strips markdown link URLs entirely), but as a side effect it also +# sees inside fenced code blocks/inline code, which the default scope would +# normally skip. That's an accepted tradeoff: a handful of legitimate +# absolute URLs shown in code samples (e.g. curl/CLI output) may get flagged +# too, alongside the real links this rule targets. +# +# Only match a docs.temporal.io URL when it's the destination of an actual +# link — i.e. immediately preceded by `](` (Markdown link syntax) or by a +# quote after `=` (an href/path/src/to prop on a JSX component). Bare URLs +# (plain text with no link syntax, e.g. generated CLI reference docs) rely on +# Docusaurus/remark autolinking, which only works for absolute URLs — a bare +# relative path just renders as unlinked text, so those must stay absolute +# and should NOT be flagged here. +extends: existence +message: "Use a relative path instead of the absolute docs.temporal.io URL '%s'." +level: warning +scope: raw +ignorecase: true +tokens: + - '(?<=\]\()https?://docs\.temporal\.io[^\s()"''<>`\[\]]*(?=\))' + - '(?<==["''])https?://docs\.temporal\.io[^\s()"''<>`]*(?=["''])' diff --git a/vale/test/relative-links-bad.md b/vale/test/relative-links-bad.md new file mode 100644 index 0000000000..43b84b6741 --- /dev/null +++ b/vale/test/relative-links-bad.md @@ -0,0 +1,5 @@ +## Absolute links + +See the [Task Queue](https://docs.temporal.io/task-queue) documentation for more information. + + diff --git a/vale/test/relative-links-good.md b/vale/test/relative-links-good.md new file mode 100644 index 0000000000..6ed413baec --- /dev/null +++ b/vale/test/relative-links-good.md @@ -0,0 +1,9 @@ +## Relative links + +See the [Task Queue](/task-queue) documentation for more information. + +Read about [Workflow Executions](/workflow-execution) and [Signals](/encyclopedia/workflow-message-passing#signals). + +External sites keep their full URL, for example [the Go SDK on GitHub](https://github.com/temporalio/sdk-go) or the [API reference](https://api-docs.temporal.io/). + +Bare URLs (no link syntax) must stay absolute, since Docusaurus only autolinks absolute URLs: Visit https://docs.temporal.io/visibility to read more about Search Attributes. From 9ffc7fad8dd08df9b6c7feed71c600bf63ac5e40 Mon Sep 17 00:00:00 2001 From: John Votta Date: Tue, 14 Jul 2026 10:06:04 -0700 Subject: [PATCH 48/96] docs: reword Fairness pricing 'for each hour' to 'during each hour' (#4880) Co-authored-by: Claude Opus 4.8 (1M context) Co-authored-by: Jwahir Sundai --- docs/evaluate/temporal-cloud/pricing.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/evaluate/temporal-cloud/pricing.mdx b/docs/evaluate/temporal-cloud/pricing.mdx index 92d2af8976..659fa2d787 100644 --- a/docs/evaluate/temporal-cloud/pricing.mdx +++ b/docs/evaluate/temporal-cloud/pricing.mdx @@ -339,7 +339,7 @@ When upgrading an existing Namespace, some points to consider: **How does pricing for Fairness work?** -When [Fairness](/develop/task-queue-priority-fairness#task-queue-fairness) is enabled on a Namespace, an additional `0.1` Action is charged per Action in that Namespace for each hour the feature is on, regardless of whether individual Workflows or Activities use fairness keys. +When [Fairness](/develop/task-queue-priority-fairness#task-queue-fairness) is enabled on a Namespace, an additional `0.1` Action is charged per Action in that Namespace during each hour the feature is on, regardless of whether individual Workflows or Activities use fairness keys. The examples below use a Namespace, `your-namespace`, that normally generates 10,000 Actions per hour. From bb536d0ab54d1123648fca599bf8ef718e4691cb Mon Sep 17 00:00:00 2001 From: Krishna Chaitanya Date: Tue, 14 Jul 2026 13:49:30 -0400 Subject: [PATCH 49/96] Document PostgreSQL Visibility index maintenance (REINDEX, autovacuum) (#4867) Explain why the executions_visibility index footprint grows on high-volume PostgreSQL deployments (nullable b-tree Search Attribute indexes plus close-time churn) and how to manage it with REINDEX CONCURRENTLY and per-table autovacuum tuning. Adds a Maintaining Visibility index health subsection to the PostgreSQL setup guide, which previously had no maintenance guidance. Co-authored-by: Kc Balusu <22275437+Krishnachaitanyakc@users.noreply.github.com> Co-authored-by: Milecia McG <47196133+flippedcoder@users.noreply.github.com> --- .../self-hosted-guide/visibility.mdx | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/production-deployment/self-hosted-guide/visibility.mdx b/docs/production-deployment/self-hosted-guide/visibility.mdx index e52c901735..b18b6d0ab9 100644 --- a/docs/production-deployment/self-hosted-guide/visibility.mdx +++ b/docs/production-deployment/self-hosted-guide/visibility.mdx @@ -261,6 +261,33 @@ Note that the script uses [temporal-sql-tool](https://github.com/temporalio/temporal/blob/3b982585bf0124839e697952df4bba01fe4d9543/tools/sql/main.go) to run the setup. +### Maintaining Visibility index health {/* #postgresql-index-maintenance */} + +On high-volume deployments, the total size of the indexes on `executions_visibility` can grow much larger than the table itself and keep growing even with a Retention Period set. This is expected PostgreSQL b-tree behavior rather than a data leak: + +- Each pre-allocated custom and system Search Attribute has its own nullable column and its own index. PostgreSQL b-tree indexes store entries for `NULL` values, so a Search Attribute that a deployment never sets still has one index entry for every Workflow Execution row. +- Closing or updating a Workflow Execution upserts its Visibility row, and because these indexes order on `close_time`, the updates leave dead index entries over time. +- `VACUUM` reclaims table (heap) space but does not compact b-tree index bloat. `REINDEX` rebuilds an index and reclaims that space; removing rows through the Retention Period does not. + +To reclaim index space online, run `REINDEX` with `CONCURRENTLY`, which does not block reads or writes. It needs roughly the size of the index in extra disk space and I/O, so prefer a lower-traffic window: + +```sql +REINDEX TABLE CONCURRENTLY executions_visibility; +``` + +You can also target a single index with `REINDEX INDEX CONCURRENTLY ;`. + +Because `executions_visibility` is update-heavy, more aggressive autovacuum settings for the table help keep dead tuples, and the resulting index bloat, under control: + +```sql +ALTER TABLE executions_visibility SET ( + autovacuum_vacuum_scale_factor = 0.05, + autovacuum_analyze_scale_factor = 0.05 +); +``` + +Track sizes with `pg_relation_size('executions_visibility')` and `pg_indexes_size('executions_visibility')`, and use the [`pgstattuple`](https://www.postgresql.org/docs/current/pgstattuple.html) extension for precise bloat estimates. For sustained high-volume Visibility workloads, consider [Elasticsearch or OpenSearch](#elasticsearch), which Temporal recommends for production at scale. + ## How to set up SQLite Visibility store {/* #sqlite */} :::tip Support, stability, and dependency info From 037d30f35484bf8c0937885d3ccf63cf61bc016d Mon Sep 17 00:00:00 2001 From: Milecia McG <47196133+flippedcoder@users.noreply.github.com> Date: Tue, 14 Jul 2026 13:08:40 -0500 Subject: [PATCH 50/96] chore(testing): updated python testing page (#4857) * chore(testing): updated python testing page * chore(testing): cleaned up references based on feedback --- .../python/best-practices/testing-suite.mdx | 61 +++++++++++++------ 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/docs/develop/python/best-practices/testing-suite.mdx b/docs/develop/python/best-practices/testing-suite.mdx index 706befa67f..99c6a5f674 100644 --- a/docs/develop/python/best-practices/testing-suite.mdx +++ b/docs/develop/python/best-practices/testing-suite.mdx @@ -36,6 +36,8 @@ Some SDKs have support or examples for popular test frameworks, runners, or libr One recommended framework for testing in Python for the Temporal SDK is [pytest](https://docs.pytest.org/), which can help with fixtures to stand up and tear down test environments, provide useful test discovery, and make it easy to write parameterized tests. +If you do use `pytest`, consider using `-s` (`--show-capture=no`) so you can see the logs live. + ## Testing Activities {/* #test-activities */} An Activity can be tested with a mock Activity environment, which provides a way to mock the Activity context, listen to Heartbeats, and cancel the Activity. @@ -75,13 +77,45 @@ assert heartbeats == ["param: test", "second heartbeat"] ## Testing Workflows {/* #test-workflows */} -### How to mock Activities {/* #mock-activities */} +The simplest test case we can write is to have the test environment execute the Workflow and then evaluate the results. `WorkflowEnvironment.start_local` configures a local environment for running and testing Workflows: + +```python +import uuid + +import pytest +from temporalio import activity +from temporalio.testing import WorkflowEnvironment +from temporalio.worker import Worker + +from activities import greet +from workflows import SayHelloWorkflow + -Mock the Activity invocation when unit testing your Workflows. +@pytest.mark.asyncio +async def test_say_hello_workflow(): + """Execute the workflow end-to-end with its real activity.""" + task_queue_name = str(uuid.uuid4()) + async with await WorkflowEnvironment.start_local(ui=True, ui_port=8233) as env: + async with Worker( + env.client, + task_queue=task_queue_name, + workflows=[SayHelloWorkflow], + activities=[greet], + ): + result = await env.client.execute_workflow( + SayHelloWorkflow.run, + "Temporal", + id=str(uuid.uuid4()), + task_queue=task_queue_name, + ) + assert result == "Hello Temporal" +``` -When integration testing Workflows with a Worker, you can mock Activities by providing mock Activity implementations to the Worker. +You can also pass `ui=True` to `start_local` to see the UI. + +### How to mock Activities {/* #mock-activities */} -Provide mock Activity implementations to the Worker. +When running unit tests on Workflows, many times you want to test the Workflow logic in isolation. When integration testing Workflows with a Worker, you can mock Activities by providing mock Activity implementations to the Worker. ```python import uuid @@ -130,24 +164,21 @@ For example, if you have a Workflow sleep for a day, or have an Activity failure Instead, test the logic that happens after the sleep by skipping forward in time and complete your tests in a timely manner. The test framework included in most SDKs is an in-memory implementation of Temporal Server that supports skipping time. -Time is a global property of an instance of `TestWorkflowEnvironment`: skipping time (either automatically or manually) applies to all currently running tests. +Time is a global property of an instance of `WorkflowEnvironment`: skipping time (either automatically or manually) applies to all currently running tests. If you need different time behaviors for different tests, run your tests in a series or with separate instances of the test server. For example, you could run all tests with automatic time skipping in parallel, and then all tests with manual time skipping in series, and then all tests without time skipping in parallel. #### Skip time automatically {/* #automatic-method */} -Start a test server process that skips time as needed. -For example, in the time-skipping mode, Timers, which include sleeps and conditional timeouts, are fast-forwarded except when Activities are running. +Use the [`start_time_skipping()`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#start_time_skipping) method to start a test server process and skip time automatically. In time-skipping mode, Timers, which include sleeps and conditional timeouts, are fast-forwarded except when Activities are running. -Use the [`start_time_skipping()`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#start_time_skipping) method to start a test server process and skip time automatically. - -Use the [`start_local()`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#start_local) method for a full local Temporal Server. +Use the [`start_local()`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#start_local) method for a full local Temporal Server. You can find an example of this being used in [the code above](/develop/python/best-practices/testing-suite#test-workflows). Use the [`from_client()`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#from_client) method for an existing Temporal Server. #### Skip time manually {/* #manual-method */} -To implement time skipping, use the [`start_time_skipping()`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#start_time_skipping) static method. +To implement time skipping manually, use the [`sleep`](https://python.temporal.io/temporalio.testing.WorkflowEnvironment.html#sleep) method inside the `WorkflowEnvironment`. This will manually advance time by the duration you specify. ```python from temporalio.testing import WorkflowEnvironment @@ -160,14 +191,6 @@ async def test_manual_time_skipping(): # Your code here ``` -### Assert in Workflow {/* #assert-in-workflow */} - -The `assert` statement is a convenient way to insert debugging assertions into the Workflow context. - -The `assert` method is available in Python and TypeScript. - -For information about assert statements in Python, see [`assert`](https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement) in the Python Language Reference. - ## How to Replay a Workflow Execution {/* #replay */} Replay recreates the exact state of a Workflow Execution. From facf12a06c3d54bf86f40fa8b61695d23fd184e3 Mon Sep 17 00:00:00 2001 From: Milecia McG <47196133+flippedcoder@users.noreply.github.com> Date: Tue, 14 Jul 2026 13:11:24 -0500 Subject: [PATCH 51/96] fix(local activity): updated and expanded the explanation of local activities (#4844) * fix(local activity): updated and expanded the explanation of local activities * Update docs/encyclopedia/activities/local-activity.mdx Co-authored-by: Brian MacDonald * Update docs/encyclopedia/activities/local-activity.mdx Co-authored-by: Brian MacDonald * Update docs/encyclopedia/activities/local-activity.mdx Co-authored-by: Brian MacDonald * chore(local activity): cleaned up explanations and references based on feedback --------- Co-authored-by: Brian MacDonald --- .../activities/local-activity.mdx | 170 +++++++++++++++--- 1 file changed, 147 insertions(+), 23 deletions(-) diff --git a/docs/encyclopedia/activities/local-activity.mdx b/docs/encyclopedia/activities/local-activity.mdx index 6534727c75..45591110d9 100644 --- a/docs/encyclopedia/activities/local-activity.mdx +++ b/docs/encyclopedia/activities/local-activity.mdx @@ -2,47 +2,171 @@ id: local-activity title: Local Activity sidebar_label: Local Activity -description: Learn about Local Activities in Temporal, their benefits, execution model, and when to use them. +description: Learn about Local Activities in Temporal, how they work, when to use them, and how they differ from regular Activities. slug: /local-activity toc_max_heading_level: 4 keywords: - explanation - term - timeouts + - activities + - local activities + - workflow tags: - Concepts - Activities - Durable Execution --- -This page discusses [Local Activity](#local-activity). - ## What is a Local Activity? {/* #local-activity */} -A Local Activity is an [Activity Execution](/activity-execution) that executes in the same process as the [Workflow Execution](/workflow-execution) that spawns it. +A Local Activity is an [Activity Execution](/activity-execution) that executes in the same Worker process as the [Workflow Execution](/workflow-execution) that schedules it. + +Unlike a regular Activity, a Local Activity never enters an Activity Task Queue. Instead, the Workflow Worker executes it directly in an in-process queue. Because it avoids the round trip through the Temporal Service, a Local Activity has significantly lower latency and produces fewer Event History entries than a regular Activity. + +Local Activities help with performance optimization and are not a replacement for regular Activities. + +Consider using a Local Activity only when the operation: + +- is short-lived (completes in a few seconds), including retries +- can execute in the same binary as the Workflow +- does not require routing to a specific Worker or Task Queue +- does not require global rate limiting +- [is idempotent](/develop/python/best-practices/error-handling#make-activities-idempotent) + +For most production workloads, regular Activities remain the recommended default. + +:::tip Recommendation + +Use Local Activities only when your use case requires the performance optimization they provide, such as high-throughput Workflows with many very short-lived operations. For most business logic, regular Activities are the better choice. + +::: + +## How Local Activities execute + +Regular Activities are coordinated through the Temporal Service. + +The execution flow is: + +1. A Workflow schedules an Activity. +2. The Workflow completes its Workflow Task by sending a `ScheduleActivityTask` command to the Temporal Service. +3. The Temporal Service creates an Activity Task. +4. An Activity Worker polls the Activity Task Queue and executes the Activity. +5. The Activity result is recorded in Event history. +6. The Workflow resumes in a new Workflow Task. + +Local Activities follow a shorter execution path: + +1. A Workflow schedules a Local Activity. +2. The Local Activity is placed into an in-process queue within the Workflow Worker. +3. The Workflow Worker executes the Local Activity immediately. +4. The result is returned directly to the Workflow. +5. When the Workflow Task completes, the Worker records a `MarkerRecorded` event containing the Local Activity result. + +Unlike regular Activities, scheduling and execution occur entirely within the Worker process. Only the final marker is persisted to Event history. + +## Workflow Task heartbeating + +Local Activities do **not** support Activity heartbeats. Instead, the SDK supports Workflow Task heartbeating. + +Workflow Task heartbeating means that if a Local Activity approaches approximately 80% of the Workflow Task Timeout (10 seconds by default), the Worker completes the current Workflow Task and requests a new one from the Temporal Service. This renews the Worker's authorization to continue executing the Workflow and allows the Local Activity to keep running without exceeding the Workflow Task Timeout. + +This enables Local Activities to run longer than a single Workflow Task timeout, but it comes with tradeoffs: + +- Each Workflow Task heartbeat adds additional Events to the Event history. +- Signals and other external Workflow events are not processed until the Local Activities finish. +- Commands generated by the Workflow are not sent to the Temporal Service until one of the following occurs: + - the Local Activity completes + - the next Workflow Task heartbeat occurs + +If your operation regularly approaches the Workflow Task timeout, it is usually better implemented as a regular Activity. + +You can monitor your Local Activities by using the [`local_activity_total` metric](/references/sdk-metrics#local_activity_total) to determine how many Local Activity Executions have been made. You can also check your Event History for `RecordMarker` entries. + +## Failure and durability + +Regular Activities are durably tracked by the Temporal Service. Scheduling, completion, retries, and failures are all recorded in the Event history. If a Worker crashes after an Activity completes, the completed Activity is not executed again. + +Local Activities behave differently. A Local Activity result becomes durable only when the enclosing Workflow Task successfully completes and records a `MarkerRecorded` event. Until then, execution exists only in Worker memory. + +If the Worker crashes before the Workflow Task completes, the Workflow Task is retried, causing Local Activities executed during that Workflow Task to run again. + +Because of this behavior, Local Activities provide at-least-once execution semantics and should always be idempotent. You can learn more about the behavior at shutdown in the [Workers section on Local Activities](encyclopedia/workers/worker-shutdown#local-activities). + +Once a `MarkerRecorded` event has been written to the Event history, replay uses the recorded result rather than executing the Local Activity again. + +## Mixing Local Activities and regular Activities + +A Workflow can freely combine Local Activities and regular Activities. + +For example: + +```mermaid +flowchart LR + LA[Local Activity A] --> LB[Local Activity B] --> RC[Regular Activity C] +``` + +When the Workflow Task completes after scheduling Activity C, the Worker sends commands similar to: + +- `MarkerRecorded` (Local Activity A) +- `MarkerRecorded` (Local Activity B) +- `ScheduleActivityTask` (Activity C) + +If Activity C later fails or retries, the Workflow replays using the recorded markers for A and B. Those completed Local Activities are not executed again because their results have already been persisted in the Event history. Only Activity C is retried according to its Retry Policy. + +The only time completed Local Activities execute again is if the Worker fails before their completion markers are recorded. Long retry intervals are inefficient because retries eventually require Workflow Timers and additional Event history entries. + +## Choosing between regular Activities and Local Activities + +Choose a regular Activity unless you have a specific need for the performance optimization that Local Activities provide. + +Use a Local Activity when: + +- execution completes in a few seconds +- retries are expected to be short +- the operation is idempotent +- low latency is more important than full durability +- routing, rate limiting, and separate Activity Workers are unnecessary + +Use a regular Activity when: + +- interacting with external systems +- execution may take longer than a few seconds +- retries may span minutes or hours +- Activity heartbeating is required +- strong durability guarantees are important + +Regular Activities are the right choice for most applications. Local Activities are an optimization for specialized, high-throughput workloads where minimizing latency and Event history size outweighs their reduced durability guarantees. -Some Activity Executions are very short-living and do not need the queuing semantic, flow control, rate limiting, and routing capabilities. -For this case, Temporal supports the Local Activity feature. +### Use cases for Local Activities -The main benefit of Local Activities is that they use less Temporal Service resources (for example, fewer History events) and have much lower latency overhead (because no need to roundtrip to the Temporal Service) compared to normal Activity Executions. -However, Local Activities are subject to shorter durations and a lack of rate limiting. +Good use cases for Local Activities include: -Consider using Local Activities for functions that are the following: +- Lightweight data transformations +- Small computations +- Reading from an in-memory cache +- Fast local filesystem operations +- High-throughput Workflows with many very short-lived operations -- can be implemented in the same binary as the Workflow that calls them. -- do not require global rate limiting. -- do not require routing to a specific Worker or Worker pool. -- no longer than a few seconds, inclusive of retries. +Use regular Activities for: -If it takes longer than 80% of the Workflow Task Timeout (which is 10 seconds by default), the Worker will ask the Temporal Service to create a new Workflow Task to extend the "lease" for processing the Local Activity. -The Worker will continue doing so until the Local Activity has completed. -This is called Workflow Task Heartbeating. -The drawbacks of long-running Local Activities are: +- Network requests +- Database operations +- External API calls +- Long-running work +- Operations requiring durable retries +- Operations that benefit from Task Queue routing or rate limiting -- Each new Workflow Task results in 3 more Events in History. -- The Workflow won't get notified of new events like Signals and completions until the next Workflow Task Heartbeat. -- New Commands created by the Workflow concurrently with the Local Activity will not be sent to the Temporal Service until either the Local Activity completes or the next Workflow Task Heartbeat. +### Activity vs. Local Activity -Using a Local Activity without understanding its limitations can cause various production issues. -**We recommend using regular Activities unless your use case requires very high throughput and large Activity fan outs of very short-lived Activities.** -More guidance in choosing between [Local Activity vs Activity](https://community.temporal.io/t/local-activity-vs-activity/290/3) is available in our forums. +| Feature | Activity | Local Activity | +| --- | --- | --- | +| Execution | Activity Worker | Workflow Worker | +| Task Queue | Yes | No | +| Service round trip | Required | Not required | +| Latency | Higher | Lower | +| Event history | Fully recorded | `MarkerRecorded` on completion | +| Heartbeating | Activity heartbeats | Workflow Task heartbeating | +| Retry durability | Durable | At-least-once until marker is recorded | +| Signal responsiveness | Unaffected | Delayed while the Workflow Task executes | +| Best for | General-purpose work | Short, high-throughput operations | From a7ae43b91924b565f6b1ea9a2f27e4f0934a5352 Mon Sep 17 00:00:00 2001 From: Duncan Mackenzie Date: Tue, 14 Jul 2026 12:01:01 -0700 Subject: [PATCH 52/96] Add custom og:images (#4860) * Add og-image plugin to docusaurus.config.js and new scripts for validating og images in package.json. Update yarn.lock. * modify to use vercel preview domain if in that mode * Updated to a new design based on brand team feedback * Updated to handle a few edge cases, especially very long titles, from mangling the og:image. Also refactored the docs route function so that it is not duplicated functionality between 2 plugins. Moved the background so that it is not deployed to the public site. --- CONTRIBUTING.md | 48 +- bin/check-og-build-budget.js | 63 +++ bin/generate-og-gallery.js | 146 ++++++ bin/validate-og-images.js | 185 ++++++++ docusaurus.config.js | 6 + package.json | 7 + plugins/markdown-pages/index.js | 29 +- plugins/og-image/assets/og-background.png | Bin 0 -> 780216 bytes plugins/og-image/index.js | 194 ++++++++ plugins/og-image/index.test.js | 79 ++++ plugins/og-image/render.js | 227 ++++++++++ plugins/shared/docsRouting.js | 40 ++ src/constants/ogImageColors.js | 14 + src/fonts/Inter/Inter-Regular.ttf | Bin 0 -> 341396 bytes src/fonts/Inter/OFL.txt | 93 ++++ .../Noto Sans Mono/NotoSansMono-Regular.ttf | Bin 0 -> 405760 bytes src/fonts/Noto Sans Mono/OFL.txt | 93 ++++ yarn.lock | 415 +++++++++++++++++- 18 files changed, 1608 insertions(+), 31 deletions(-) create mode 100644 bin/check-og-build-budget.js create mode 100644 bin/generate-og-gallery.js create mode 100644 bin/validate-og-images.js create mode 100644 plugins/og-image/assets/og-background.png create mode 100644 plugins/og-image/index.js create mode 100644 plugins/og-image/index.test.js create mode 100644 plugins/og-image/render.js create mode 100644 plugins/shared/docsRouting.js create mode 100644 src/constants/ogImageColors.js create mode 100644 src/fonts/Inter/Inter-Regular.ttf create mode 100644 src/fonts/Inter/OFL.txt create mode 100644 src/fonts/Noto Sans Mono/NotoSansMono-Regular.ttf create mode 100644 src/fonts/Noto Sans Mono/OFL.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ad0381780b..cebd1ad50f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -162,6 +162,44 @@ If you are considering using a custom slug, answer these questions first: - Did you already check the redirects in `vercel.json`? - Is it in the page in a folder under the topic that makes the most sense? +# Social share images (og:image) + +Every doc page automatically gets a social-share preview card generated at build time — the image that +shows up when a link to the page is shared in Slack, X, LinkedIn, etc. It's built from the page's `title`, +`description`, and a section label derived from its folder (e.g. `develop/go/...` → "Go SDK"). There's +nothing to do for a normal page. + +If you want a page to use a different image instead of the generated one, you have two options: + +- Add an `image` field to the page's front matter, pointing at a static asset (same as the site-wide + default in `docusaurus.config.js`): + + ``` + --- + title: My page + image: /img/assets/my-custom-image.png + --- + ``` + +- For pages that can't use front matter, override it directly with a `` component: + + ```mdx + import Head from '@docusaurus/Head'; + + + + + + ``` + + The URL must be absolute (`https://docs.temporal.io/...`), not a relative path. + +Either way, the generator leaves the page alone. + +This only happens during `yarn build` (see below) — running `yarn start` won't show generated or +overridden images, since it skips the production build step entirely. The generator itself lives in +`plugins/og-image/`. + # Local development command reference The following commands are available to aid in local development: @@ -177,7 +215,15 @@ Note that the `/build` directory is ignored by Git. ## `yarn start` -This command spins up a local web server and serves the contents of the `/build` directory to [localhost:3000](http://localhost:3000/). +This command spins up a local dev server with hot reload at [localhost:3000](http://localhost:3000/). It +builds from source directly and does not run the production build step, so anything that only happens +during `yarn build` (like generated og:images) won't show up here. + +## `yarn serve` + +This command serves the contents of the `/build` directory (the output of `yarn build`) at +[localhost:3000](http://localhost:3000/), so you can check the actual production output, including +generated og:images. ## `yarn snipsync` diff --git a/bin/check-og-build-budget.js b/bin/check-og-build-budget.js new file mode 100644 index 0000000000..0a5744c14c --- /dev/null +++ b/bin/check-og-build-budget.js @@ -0,0 +1,63 @@ +#!/usr/bin/env node + +// Phase 6: catches build-time/output-size regressions in the og-image +// plugin instead of relying on someone noticing a slow build or a bloated +// deploy. Thresholds below were set from real measurements on the full +// ~625-page docs set (see plugins/og-image/render.js's PNG compression +// step, added specifically because the first measurement here came back +// at 142MB/232KB-per-card): a cold build renders every card fresh in +// ~86s total (~109ms/card) and produces ~17.7MB of PNGs (~29KB/card). +// Thresholds give ~3x headroom over those numbers so normal content growth +// doesn't trip this, while a real regression (e.g. a design change that +// balloons per-card size, or an accidentally-quadratic render path) does. + +const fs = require('fs'); +const path = require('path'); + +const STATS_FILE = path.join(process.cwd(), 'build', '.og-image-stats.json'); + +const MAX_AVG_RENDER_MS = 300; +const MAX_TOTAL_OUTPUT_BYTES = 60 * 1024 * 1024; +const MAX_AVG_IMAGE_BYTES = 80 * 1024; + +function main() { + if (!fs.existsSync(STATS_FILE)) { + console.error(`Stats file not found at ${STATS_FILE}. Run \`yarn build\` first.`); + process.exit(1); + } + + const stats = JSON.parse(fs.readFileSync(STATS_FILE, 'utf8')); + const { generated, cached, renderMs, outputBytes } = stats; + const totalImages = generated + cached; + const avgRenderMs = generated > 0 ? renderMs / generated : 0; + const avgImageBytes = totalImages > 0 ? outputBytes / totalImages : 0; + + console.log(`[check-og-build-budget] ${generated} rendered this build, ${cached} from cache`); + console.log( + `[check-og-build-budget] render time: ${(renderMs / 1000).toFixed(1)}s total, ${avgRenderMs.toFixed(1)}ms/card avg (budget: ${MAX_AVG_RENDER_MS}ms/card)`, + ); + console.log( + `[check-og-build-budget] output size: ${(outputBytes / 1024 / 1024).toFixed(1)}MB total, ${(avgImageBytes / 1024).toFixed(1)}KB/card avg (budget: ${(MAX_TOTAL_OUTPUT_BYTES / 1024 / 1024).toFixed(0)}MB total, ${(MAX_AVG_IMAGE_BYTES / 1024).toFixed(0)}KB/card)`, + ); + + const failures = []; + if (generated > 0 && avgRenderMs > MAX_AVG_RENDER_MS) { + failures.push(`average render time ${avgRenderMs.toFixed(1)}ms/card exceeds budget of ${MAX_AVG_RENDER_MS}ms/card`); + } + if (outputBytes > MAX_TOTAL_OUTPUT_BYTES) { + failures.push(`total output size ${(outputBytes / 1024 / 1024).toFixed(1)}MB exceeds budget of ${(MAX_TOTAL_OUTPUT_BYTES / 1024 / 1024).toFixed(0)}MB`); + } + if (avgImageBytes > MAX_AVG_IMAGE_BYTES) { + failures.push(`average image size ${(avgImageBytes / 1024).toFixed(1)}KB exceeds budget of ${(MAX_AVG_IMAGE_BYTES / 1024).toFixed(0)}KB`); + } + + if (failures.length > 0) { + console.error(`\n${failures.length} budget check(s) failed:\n`); + failures.forEach((f) => console.error(` - ${f}`)); + process.exit(1); + } + + console.log('\nOK: og-image build time and output size are within budget.'); +} + +main(); diff --git a/bin/generate-og-gallery.js b/bin/generate-og-gallery.js new file mode 100644 index 0000000000..6689b1dfc9 --- /dev/null +++ b/bin/generate-og-gallery.js @@ -0,0 +1,146 @@ +#!/usr/bin/env node + +// Dev-only tool: builds a single HTML page listing every generated og:image +// card (thumbnail + section/title/route) so a large batch can be reviewed +// in a browser at once, instead of opening 600+ PNGs one at a time. Not +// part of the build pipeline — run manually after `yarn build`. + +const fs = require('fs'); +const path = require('path'); +const matter = require('gray-matter'); +const ogImagePlugin = require('../plugins/og-image'); + +const DOCS_DIR = path.join(process.cwd(), 'docs'); +const BUILD_DIR = path.join(process.cwd(), 'build'); +const OUT_FILE = path.join(BUILD_DIR, '__og-gallery.html'); + +// Section grouping/labeling is purely a gallery-review concern now — the +// generated card itself dropped the section pill in the Figma redesign, so +// this doesn't live in plugins/og-image/index.js (the actual production +// plugin) anymore, only here. +const SDK_LABELS = { + go: 'Go', + python: 'Python', + java: 'Java', + typescript: 'TypeScript', + dotnet: '.NET', + php: 'PHP', + ruby: 'Ruby', + rust: 'Rust', +}; + +const SECTION_OVERRIDES = { + cli: 'CLI', + 'tctl-v1': 'tctl v1', +}; + +function humanize(id) { + return id + .replace(/[-_]+/g, ' ') + .replace(/\b\w/g, (c) => c.toUpperCase()); +} + +function resolveSection(docsDir, filePath) { + const rel = path.relative(docsDir, filePath).replace(/\\/g, '/'); + const segments = rel.split('/'); + if (segments.length === 1) return 'Docs'; + const top = segments[0]; + if (top === 'develop' && segments[1] && SDK_LABELS[segments[1]]) { + return `${SDK_LABELS[segments[1]]} SDK`; + } + return SECTION_OVERRIDES[top] || humanize(top); +} + +async function getSiteUrl() { + const createConfigAsync = require('../docusaurus.config.js'); + const config = await createConfigAsync(); + return config.url + (config.baseUrl || '/'); +} + +function escapeHtml(str) { + return String(str).replace(/[&<>"']/g, (c) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c])); +} + +async function main() { + if (!fs.existsSync(BUILD_DIR)) { + console.error(`Build directory not found at ${BUILD_DIR}. Run \`yarn build\` first.`); + process.exit(1); + } + + const siteUrl = await getSiteUrl(); + const cards = []; + for (const filePath of ogImagePlugin.walkDir(DOCS_DIR)) { + const raw = fs.readFileSync(filePath, 'utf8'); + const { data: frontmatter, content } = matter(raw); + const urlPath = ogImagePlugin.resolveUrlPath(DOCS_DIR, filePath, frontmatter); + const htmlPath = ogImagePlugin.htmlPathForUrlPath(BUILD_DIR, urlPath); + if (!fs.existsSync(htmlPath)) continue; + + const section = resolveSection(DOCS_DIR, filePath); + const routePath = urlPath === 'index' ? '/' : `/${urlPath}`; + + if (ogImagePlugin.hasManualOverride(frontmatter, content)) { + const id = frontmatter.id || path.basename(filePath).replace(/\.(md|mdx)$/i, ''); + const title = ogImagePlugin.extractTitle(content, frontmatter, id); + const overrideImage = ogImagePlugin.overrideImageFor(frontmatter, content, siteUrl); + cards.push({ urlPath: routePath, section, title, isOverride: true, imgSrc: overrideImage }); + continue; + } + + const id = frontmatter.id || path.basename(filePath).replace(/\.(md|mdx)$/i, ''); + const title = ogImagePlugin.extractTitle(content, frontmatter, id); + const description = frontmatter.description; + const hash = ogImagePlugin.hashFor(title, description); + + cards.push({ urlPath: routePath, section, title, isOverride: false, imgSrc: `/img/og/${hash}.${ogImagePlugin.IMAGE_EXTENSION}` }); + } + + cards.sort((a, b) => a.section.localeCompare(b.section) || a.title.localeCompare(b.title)); + + const html = ` + + + +og:image gallery (${cards.length} pages) + + + +

${cards.length} og:image cards (${cards.filter((c) => c.isOverride).length} manual override(s))

+
+${cards + .map( + (c) => `
+ +
+ ${escapeHtml(c.section)}${c.isOverride ? 'Override' : ''}
+ ${escapeHtml(c.title)}
+ ${escapeHtml(c.urlPath)} +
+
`, + ) + .join('\n')} +
+ + +`; + + fs.writeFileSync(OUT_FILE, html); + console.log(`[generate-og-gallery] wrote ${cards.length} card(s) to ${path.relative(process.cwd(), OUT_FILE)}`); +} + +main().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/bin/validate-og-images.js b/bin/validate-og-images.js new file mode 100644 index 0000000000..ab5d0a1dae --- /dev/null +++ b/bin/validate-og-images.js @@ -0,0 +1,185 @@ +#!/usr/bin/env node + +// Phase 2 changed the expected behavior this script checks: docs pages now +// get their own generated og:image (plugins/og-image), so they no longer +// match the site-wide default from Phase 1. This script now asserts three +// things instead of one: (1) every doc page's og:image/twitter:image point +// to a real generated image under build/img/og/, UNLESS (2) the page declares +// a manual override (front-matter `image:` or an inline og:image), +// in which case it must keep that exact override instead of the generated +// image — Phase 4 intentionally makes "every doc page gets a generated +// image" no longer universally true. (The override *detection* logic itself +// is unit-tested in plugins/og-image/index.test.js against synthetic +// frontmatter/content, rather than via dedicated fixture pages in docs/ — +// this loop just needs to not choke if a real page ever uses one.) And (3) +// every page the plugin doesn't touch (404, search, changelog, category/tag +// pages, etc.) still falls back to the site-wide default, which remains the +// Phase 1 regression floor for everything outside the plugin's reach. +// +// Generated-image expectations use ogImagePlugin.resolveSiteUrl(), which +// substitutes VERCEL_URL on non-production Vercel deployments — see the +// comment on that function in plugins/og-image/index.js for why. The +// site-wide default check intentionally does NOT use it: that image is a +// pre-existing static asset already live on the production domain in every +// environment, and Docusaurus's own theme (not this plugin) renders that +// meta tag against the hardcoded config.url regardless of environment. + +const fs = require('fs'); +const path = require('path'); +const matter = require('gray-matter'); +const ogImagePlugin = require('../plugins/og-image'); + +const BUILD_DIR = path.join(process.cwd(), 'build'); +const DOCS_DIR = path.join(process.cwd(), 'docs'); + +function walkHtmlFiles(dir) { + if (!fs.existsSync(dir)) return []; + return fs.readdirSync(dir).flatMap((name) => { + const full = path.join(dir, name); + if (fs.statSync(full).isDirectory()) return walkHtmlFiles(full); + if (/\.html$/i.test(name)) return [full]; + return []; + }); +} + +function extractMetaContent(html, attr, value) { + const tagMatch = html.match(new RegExp(`]*${attr}=["']?${value}["']?[^>]*>`, 'i')); + if (!tagMatch) return null; + const contentMatch = tagMatch[0].match(/content=["']?([^"'\s>]+)["']?/i); + return contentMatch ? contentMatch[1] : null; +} + +async function getSiteConfig() { + const createConfigAsync = require('../docusaurus.config.js'); + return createConfigAsync(); +} + +async function main() { + if (!fs.existsSync(BUILD_DIR)) { + console.error(`Build directory not found at ${BUILD_DIR}. Run \`yarn build\` first.`); + process.exit(1); + } + + const config = await getSiteConfig(); + const siteUrl = config.url + (config.baseUrl || '/'); + const defaultImage = new URL(config.themeConfig.image, siteUrl).toString(); + + const docHtmlPaths = new Set(); + const docMismatches = []; + const missingImages = []; + const overrideMismatches = []; + let docPagesChecked = 0; + let overridePagesChecked = 0; + let skippedPartials = 0; + + for (const filePath of ogImagePlugin.walkDir(DOCS_DIR)) { + const raw = fs.readFileSync(filePath, 'utf8'); + const { data: frontmatter, content } = matter(raw); + const urlPath = ogImagePlugin.resolveUrlPath(DOCS_DIR, filePath, frontmatter); + const htmlPath = ogImagePlugin.htmlPathForUrlPath(BUILD_DIR, urlPath); + + if (!fs.existsSync(htmlPath)) { + skippedPartials++; + continue; + } + docHtmlPaths.add(htmlPath); + docPagesChecked++; + + const html = fs.readFileSync(htmlPath, 'utf8'); + const ogImage = extractMetaContent(html, 'property', 'og:image'); + const twitterImage = extractMetaContent(html, 'name', 'twitter:image'); + + if (ogImagePlugin.hasManualOverride(frontmatter, content)) { + overridePagesChecked++; + const expectedOverride = ogImagePlugin.overrideImageFor(frontmatter, content, siteUrl); + + if (ogImage !== expectedOverride || twitterImage !== expectedOverride) { + overrideMismatches.push({ + file: path.relative(BUILD_DIR, htmlPath), + expected: expectedOverride, + ogImage, + twitterImage, + }); + } + continue; + } + + const id = frontmatter.id || path.basename(filePath).replace(/\.(md|mdx)$/i, ''); + const title = ogImagePlugin.extractTitle(content, frontmatter, id); + const description = frontmatter.description; + const hash = ogImagePlugin.hashFor(title, description); + const expectedImage = new URL( + path.posix.join(config.baseUrl, 'img/og', `${hash}.${ogImagePlugin.IMAGE_EXTENSION}`), + ogImagePlugin.resolveSiteUrl(config), + ).toString(); + const expectedImagePath = path.join(BUILD_DIR, 'img', 'og', `${hash}.${ogImagePlugin.IMAGE_EXTENSION}`); + + if (ogImage !== expectedImage || twitterImage !== expectedImage) { + docMismatches.push({ + file: path.relative(BUILD_DIR, htmlPath), + expected: expectedImage, + ogImage, + twitterImage, + }); + } + if (!fs.existsSync(expectedImagePath)) { + missingImages.push({ file: path.relative(BUILD_DIR, htmlPath), expectedImagePath }); + } + } + + const otherMismatches = []; + const allHtmlFiles = walkHtmlFiles(BUILD_DIR); + const otherFiles = allHtmlFiles.filter((f) => !docHtmlPaths.has(f)); + + for (const file of otherFiles) { + const ogImage = extractMetaContent(fs.readFileSync(file, 'utf8'), 'property', 'og:image'); + if (ogImage !== defaultImage) { + otherMismatches.push({ file: path.relative(BUILD_DIR, file), ogImage }); + } + } + + const generatedPagesChecked = docPagesChecked - overridePagesChecked; + + console.log(`[validate-og-images] ${docPagesChecked} doc page(s) checked, ${skippedPartials} partial(s) skipped (not routed)`); + console.log(`[validate-og-images] ${generatedPagesChecked - docMismatches.length}/${generatedPagesChecked} doc page(s) have a correct generated og:image + twitter:image`); + console.log(`[validate-og-images] ${generatedPagesChecked - missingImages.length}/${generatedPagesChecked} doc page(s) have their generated image present on disk`); + console.log(`[validate-og-images] ${overridePagesChecked - overrideMismatches.length}/${overridePagesChecked} manual-override doc page(s) kept their own og:image`); + console.log(`[validate-og-images] ${otherFiles.length - otherMismatches.length}/${otherFiles.length} non-doc page(s) still match the site default`); + + const failures = docMismatches.length + missingImages.length + overrideMismatches.length + otherMismatches.length; + if (failures > 0) { + if (docMismatches.length > 0) { + console.error(`\n${docMismatches.length} doc page(s) have an unexpected og:image/twitter:image:\n`); + for (const m of docMismatches.slice(0, 20)) { + console.error(` ${m.file}: expected ${m.expected}, got og:image=${m.ogImage} twitter:image=${m.twitterImage}`); + } + } + if (overrideMismatches.length > 0) { + console.error(`\n${overrideMismatches.length} manual-override page(s) had their override replaced or not applied correctly:\n`); + for (const m of overrideMismatches.slice(0, 20)) { + console.error(` ${m.file}: expected ${m.expected}, got og:image=${m.ogImage} twitter:image=${m.twitterImage}`); + } + } + if (missingImages.length > 0) { + console.error(`\n${missingImages.length} doc page(s) reference an image that doesn't exist on disk:\n`); + for (const m of missingImages.slice(0, 20)) { + console.error(` ${m.file}: missing ${m.expectedImagePath}`); + } + } + if (otherMismatches.length > 0) { + console.error(`\n${otherMismatches.length} non-doc page(s) no longer match the site default:\n`); + for (const m of otherMismatches.slice(0, 20)) { + console.error(` ${m.file}: ${m.ogImage ?? '(no og:image tag found)'}`); + } + } + process.exit(1); + } + + console.log('\nOK: every doc page has a correct generated og:image (or kept its manual override), and every other page still uses the site default.'); +} + +module.exports = { walkHtmlFiles, extractMetaContent, getSiteConfig }; + +if (require.main === module) { + main(); +} diff --git a/docusaurus.config.js b/docusaurus.config.js index 8537215b1e..6a450d4816 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -429,6 +429,12 @@ module.exports = async function createConfigAsync() { docsDir: 'docs', }, ], + [ + require.resolve('./plugins/og-image'), + { + docsDir: 'docs', + }, + ], [ 'docusaurus-plugin-llms', { diff --git a/package.json b/package.json index b03f5f6358..ffdc3fb1d0 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,9 @@ "deploy": "docusaurus deploy", "docusaurus": "docusaurus", "check-links": "hyperlink build/index.html --recursive --check-anchors", + "validate:og-images": "node ./bin/validate-og-images.js", + "check:og-budget": "node ./bin/check-og-build-budget.js", + "test": "node --test", "lint": "vale --output=JSON docs/**/**/*.mdx > vale-output.json; vale --output=JSON docs/**/**/*.md > vale-md-output.json", "lint:go": "vale docs/develop/go/*.mdx", "lint:java": "vale docs/develop/java/*.mdx", @@ -62,6 +65,7 @@ "@docusaurus/theme-mermaid": "^3.10.1", "@docusaurus/types": "^3.10.1", "@mdx-js/react": "^3.0.0", + "@resvg/resvg-js": "^2.6.2", "@types/react": "^19.2.17", "@types/react-dom": "^19.1.0", "@vercel/functions": "^3.7.1", @@ -72,6 +76,7 @@ "concurrently": "^10.0.3", "docusaurus-plugin-llms": "^0.2.0", "docusaurus-pushfeedback": "^1.0.3", + "gray-matter": "^4.0.3", "js-yaml": "^5.1.0", "path": "^0.12.7", "react": "^19.2.7", @@ -82,7 +87,9 @@ "react-player": "^3.4.0", "rehype-katex": "7", "remark-math": "6", + "satori": "^0.26.0", "search-insights": "^2", + "sharp": "^0.35.3", "snipsync": "^1.12.0", "tar-fs": "^3.1.2", "uuid": "^14.0.1", diff --git a/plugins/markdown-pages/index.js b/plugins/markdown-pages/index.js index 77788c8204..d822e97b07 100644 --- a/plugins/markdown-pages/index.js +++ b/plugins/markdown-pages/index.js @@ -1,38 +1,13 @@ const fs = require('fs'); const path = require('path'); const matter = require('gray-matter'); +const { walkDir, resolveUrlPath: resolveUrlPathShared } = require('../shared/docsRouting'); module.exports = function markdownPagesPlugin(context, options = {}) { const docsDir = path.resolve(context.siteDir, options.docsDir || 'docs'); const routeBasePath = options.routeBasePath || '/'; - function walkDir(dir) { - if (!fs.existsSync(dir)) return []; - return fs.readdirSync(dir).flatMap((name) => { - const full = path.join(dir, name); - if (fs.statSync(full).isDirectory()) return walkDir(full); - if (/\.(md|mdx)$/i.test(name)) return [full]; - return []; - }); - } - - function resolveUrlPath(filePath, frontmatter) { - if (frontmatter.slug) { - const slug = frontmatter.slug.replace(/^\/+/, '').replace(/\/+$/, ''); - return slug || 'index'; - } - const rel = path.relative(docsDir, filePath).replace(/\\/g, '/'); - const withoutExt = rel.replace(/\.(md|mdx)$/i, ''); - const id = frontmatter.id || path.basename(withoutExt); - const dir = path.dirname(withoutExt); - if (dir === '.') return id === 'index' ? 'index' : id; - // Docusaurus treats a doc named the same as its parent folder (e.g. - // `event-history/event-history.mdx`) as that folder's index page, the - // same way it treats `index.mdx`/`README.mdx`. Mirror that convention - // here so the generated .md file lands at the same route as the real page. - if (id === 'index' || id === path.basename(dir)) return dir; - return `${dir}/${id}`; - } + const resolveUrlPath = (filePath, frontmatter) => resolveUrlPathShared(docsDir, filePath, frontmatter); return { name: 'markdown-pages', diff --git a/plugins/og-image/assets/og-background.png b/plugins/og-image/assets/og-background.png new file mode 100644 index 0000000000000000000000000000000000000000..8034f2f221c3cf626252c80ddb318909e8341df0 GIT binary patch literal 780216 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%0D%8Y{_=iM-poMJQp179-MPqphv0 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

tU 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%0DqIh?$?33Aik^~ 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%0D~rkTqp&pF)^SX_sxkgA0r^0WnJs$V82x*3I5L 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

9Orw25LkJL<>-2Qmm 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 ciN`ok76vy07n$-_=2@Phlf<$0 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 z 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 c.toUpperCase()); +} + +function extractTitle(content, frontmatter, id) { + if (frontmatter.title) return frontmatter.title; + const heading = content.match(/^#\s+(.+)$/m); + if (heading) return heading[1].trim(); + return humanize(id); +} + +// A page opts out of the generated card either via front matter `image:` +// (the mechanism Docusaurus already supports natively for docs) or by +// embedding its own og:image override directly in the MDX content +// (the mechanism used for pages without front matter support). Either way, +// Docusaurus/react-helmet has already rendered that override into the built +// HTML by the time postBuild runs, so all we have to do is leave it alone. +function hasManualOverride(frontmatter, content) { + return Boolean(frontmatter.image) || /]*>[\s\S]*?og:image[\s\S]*?<\/Head>/i.test(content); +} + +// For a page with a manual override, this is the image it's actually using +// — front-matter `image:` if set, otherwise whatever content= value the +// page's own og:image tag has. Used by bin/validate-og-images.js and +// bin/generate-og-gallery.js so neither has to re-parse the block. +function overrideImageFor(frontmatter, content, siteUrl) { + if (frontmatter.image) return new URL(frontmatter.image, siteUrl).toString(); + const headMatch = content.match(/]*>([\s\S]*?)<\/Head>/i); + if (!headMatch) return null; + const tagMatch = headMatch[1].match(/]*property=["']?og:image["']?[^>]*>/i); + if (!tagMatch) return null; + const contentMatch = tagMatch[0].match(/content=["']?([^"'\s>]+)["']?/i); + return contentMatch ? contentMatch[1] : null; +} + +// Deliberately excludes section: render.js doesn't render it (dropped along +// with the section pill in the Figma redesign), so including it here would +// just fragment the cache between pages that render pixel-identically. +function hashFor(title, description) { + return crypto + .createHash('sha256') + .update(`v${TEMPLATE_VERSION}:${title}:${description || ''}`) + .digest('hex') + .slice(0, 16); +} + +async function getCardBuffer(title, description) { + const hash = hashFor(title, description); + const cachePath = path.join(CACHE_DIR, `${hash}.${IMAGE_EXTENSION}`); + if (fs.existsSync(cachePath)) { + return { hash, buffer: fs.readFileSync(cachePath), cached: true }; + } + const buffer = await renderCard({ title, description }); + fs.mkdirSync(CACHE_DIR, { recursive: true }); + fs.writeFileSync(cachePath, buffer); + return { hash, buffer, cached: false }; +} + +// On a Vercel preview (or local dev) deployment, generated cards only exist +// on that deployment's own URL — siteConfig.url is always the production +// domain, which never got this build's images. Pointing og:image there +// means Slack/X/Facebook/etc. 404 when fetching a preview link, since they +// resolve the literal URL in the meta tag, not wherever the page happens to +// be served from. VERCEL_URL is Vercel's own reachable hostname for the +// current deployment (preview or production); only substitute it for +// non-production deployments, since production should keep the stable +// custom domain. Local builds (no VERCEL_ENV) are unaffected. +function resolveSiteUrl(siteConfig) { + if (process.env.VERCEL_ENV && process.env.VERCEL_ENV !== 'production' && process.env.VERCEL_URL) { + return `https://${process.env.VERCEL_URL}`; + } + return siteConfig.url; +} + +function replaceImageMeta(html, absoluteUrl) { + return html + .replace( + /(]*property=["']?og:image["']?[^>]*content=)["']?[^"'\s>]+["']?/i, + `$1${absoluteUrl}`, + ) + .replace( + /(]*name=["']?twitter:image["']?[^>]*content=)["']?[^"'\s>]+["']?/i, + `$1${absoluteUrl}`, + ); +} + +function ogImagePlugin(context, options = {}) { + const docsDir = path.resolve(context.siteDir, options.docsDir || 'docs'); + + return { + name: 'og-image', + + async postBuild({ outDir, siteConfig }) { + const files = walkDir(docsDir); + let generated = 0; + let cached = 0; + let skipped = 0; + let overridden = 0; + let renderMs = 0; + let outputBytes = 0; + + for (const filePath of files) { + const raw = fs.readFileSync(filePath, 'utf8'); + const { data: frontmatter, content } = matter(raw); + const urlPath = resolveUrlPath(docsDir, filePath, frontmatter); + const htmlPath = htmlPathForUrlPath(outDir, urlPath); + + if (!fs.existsSync(htmlPath)) { + // Not a routed page (e.g. an underscore-prefixed partial or an + // excluded directory) — nothing to inject an og:image into. + skipped++; + continue; + } + + if (hasManualOverride(frontmatter, content)) { + // Docusaurus already rendered the author's own image into this + // page's meta tags — don't touch it. + overridden++; + continue; + } + + const id = frontmatter.id || path.basename(filePath).replace(/\.(md|mdx)$/i, ''); + const title = extractTitle(content, frontmatter, id); + const description = frontmatter.description; + const renderStart = Date.now(); + const { hash, buffer, cached: wasCached } = await getCardBuffer(title, description); + if (wasCached) { + cached++; + } else { + generated++; + renderMs += Date.now() - renderStart; + } + outputBytes += buffer.length; + + const cardOutPath = path.join(outDir, 'img', 'og', `${hash}.${IMAGE_EXTENSION}`); + if (!fs.existsSync(cardOutPath)) { + fs.mkdirSync(path.dirname(cardOutPath), { recursive: true }); + fs.copyFileSync(path.join(CACHE_DIR, `${hash}.${IMAGE_EXTENSION}`), cardOutPath); + } + + const absoluteUrl = new URL( + path.posix.join(siteConfig.baseUrl, 'img/og', `${hash}.${IMAGE_EXTENSION}`), + resolveSiteUrl(siteConfig), + ).toString(); + + const html = fs.readFileSync(htmlPath, 'utf8'); + fs.writeFileSync(htmlPath, replaceImageMeta(html, absoluteUrl)); + } + + console.log( + `[og-image] ${generated} card(s) rendered, ${cached} served from cache, ${overridden} page(s) kept a manual override, ${skipped} page(s) skipped (not routed)`, + ); + + // Consumed by bin/check-og-build-budget.js so build-time/size + // regressions can be caught in CI instead of just eyeballed. + fs.writeFileSync( + path.join(outDir, '.og-image-stats.json'), + JSON.stringify({ generated, cached, overridden, skipped, renderMs, outputBytes }, null, 2), + ); + }, + }; +} + +// Exposed so bin/validate-og-images.js can compute the exact same expected +// route/title/hash a doc page got, instead of re-deriving that logic and +// risking drift between the plugin and its own validation script. +ogImagePlugin.walkDir = walkDir; +ogImagePlugin.resolveUrlPath = resolveUrlPath; +ogImagePlugin.htmlPathForUrlPath = htmlPathForUrlPath; +ogImagePlugin.extractTitle = extractTitle; +ogImagePlugin.hashFor = hashFor; +ogImagePlugin.hasManualOverride = hasManualOverride; +ogImagePlugin.overrideImageFor = overrideImageFor; +ogImagePlugin.resolveSiteUrl = resolveSiteUrl; +ogImagePlugin.IMAGE_EXTENSION = IMAGE_EXTENSION; + +module.exports = ogImagePlugin; diff --git a/plugins/og-image/index.test.js b/plugins/og-image/index.test.js new file mode 100644 index 0000000000..da14627050 --- /dev/null +++ b/plugins/og-image/index.test.js @@ -0,0 +1,79 @@ +const { describe, it } = require('node:test'); +const assert = require('node:assert'); +const ogImagePlugin = require('./index'); + +const SITE_URL = 'https://docs.temporal.io/'; + +describe('hasManualOverride', () => { + it('is true when front matter has an image field', () => { + assert.strictEqual(ogImagePlugin.hasManualOverride({ image: '/img/custom.png' }, 'Body text'), true); + }); + + it('is true when content has a og:image override', () => { + const content = ` +import Head from '@docusaurus/Head'; + + + + + +Body text`; + assert.strictEqual(ogImagePlugin.hasManualOverride({}, content), true); + }); + + it('is false for a normal page with neither', () => { + assert.strictEqual(ogImagePlugin.hasManualOverride({}, 'Just a normal doc page.'), false); + }); + + it('is false when is used for something other than og:image', () => { + const content = ` + + + + +Body text`; + assert.strictEqual(ogImagePlugin.hasManualOverride({}, content), false); + }); +}); + +describe('overrideImageFor', () => { + it('resolves a relative front-matter image against the site URL', () => { + assert.strictEqual( + ogImagePlugin.overrideImageFor({ image: '/img/custom.png' }, '', SITE_URL), + 'https://docs.temporal.io/img/custom.png', + ); + }); + + it('leaves an already-absolute front-matter image as-is', () => { + assert.strictEqual( + ogImagePlugin.overrideImageFor({ image: 'https://example.com/img/custom.png' }, '', SITE_URL), + 'https://example.com/img/custom.png', + ); + }); + + it('extracts the content= value from a og:image override', () => { + const content = ` + + + + +`; + assert.strictEqual(ogImagePlugin.overrideImageFor({}, content, SITE_URL), 'https://docs.temporal.io/img/custom.png'); + }); + + it('prefers front-matter image over a override if somehow both are present', () => { + const content = ` + + + +`; + assert.strictEqual( + ogImagePlugin.overrideImageFor({ image: '/img/frontmatter-version.png' }, content, SITE_URL), + 'https://docs.temporal.io/img/frontmatter-version.png', + ); + }); + + it('returns null when there is no override to resolve', () => { + assert.strictEqual(ogImagePlugin.overrideImageFor({}, 'Just a normal doc page.', SITE_URL), null); + }); +}); diff --git a/plugins/og-image/render.js b/plugins/og-image/render.js new file mode 100644 index 0000000000..2040ebdf59 --- /dev/null +++ b/plugins/og-image/render.js @@ -0,0 +1,227 @@ +const fs = require('fs'); +const path = require('path'); +const satori = require('satori').default; +const { Resvg } = require('@resvg/resvg-js'); +const sharp = require('sharp'); +const { TITLE_COLOR, SUBTITLE_COLOR, FOOTER_COLOR } = require('../../src/constants/ogImageColors'); + +const CARD_WIDTH = 1200; +const CARD_HEIGHT = 630; + +// Bump this whenever the card layout/design changes (including the encoding +// step below) so cached images invalidate even though the underlying page +// content didn't change. +const TEMPLATE_VERSION = 8; + +// The icon spans the full height of the lockup's viewBox (0-395 of 0-395), +// so rendering the whole icon+wordmark asset at LOGO_HEIGHT makes the icon +// itself exactly LOGO_HEIGHT square (matches Figma's ~60x60 icon spec) +// while keeping the already-correct icon-to-wordmark proportions intact. +const LOGO_HEIGHT = 60; +const LOGO_ASPECT_RATIO = 1571 / 395; + +const TITLE_MAX_LINES = 3; +const DESCRIPTION_MAX_LINES = 3; + +function dataUri(assetPath, mimeType) { + const data = fs.readFileSync(assetPath); + return `data:${mimeType};base64,${data.toString('base64')}`; +} + +// satori has no equivalent of CSS `overflow-wrap: break-word` — its only +// word-breaking knobs are `word-break: break-all` (breaks every word, even +// short ones, which looks broken for normal titles) or the default (never +// breaks within a word, so one long unbroken token — a hash, identifier, or +// concatenated string with no spaces/hyphens — just runs off the edge of the +// card). Inserting a zero-width space every `maxSegmentLength` characters +// gives satori's line breaker a place to wrap inside such a token, while +// leaving every word under that length (i.e. all real-world titles) untouched. +function breakLongWords(text, maxSegmentLength) { + return text + .split(' ') + .map((word) => (word.length <= maxSegmentLength ? word : word.replace(new RegExp(`(.{${maxSegmentLength}})`, 'g'), '$1\u200B'))) + .join(' '); +} + +let assetsPromise; +function loadAssets() { + if (!assetsPromise) { + const fontsDir = path.resolve(__dirname, '../../src/fonts'); + assetsPromise = Promise.resolve({ + fonts: [ + { + name: 'Aeonik', + data: fs.readFileSync(path.join(fontsDir, 'Aeonik/Aeonik-Light.woff')), + weight: 300, + style: 'normal', + }, + { + // Static instance derived from the variable font at wght=400, + // opsz=14 (via `fonttools varLib.instancer`) — same reason as + // Noto Sans Mono below, satori's font parser can't load a + // variable font directly, and Google Fonts doesn't publish a + // static build of this family either. + name: 'Inter', + data: fs.readFileSync(path.join(fontsDir, 'Inter/Inter-Regular.ttf')), + weight: 400, + style: 'normal', + }, + { + // Static instance derived from the variable font at wght=400, + // wdth=100 (via `fonttools varLib.instancer`) — satori's font + // parser (an older opentype.js fork) crashes on the variable font + // itself (no fvar table support), so we can't load it directly. + name: 'Noto Sans Mono', + data: fs.readFileSync(path.join(fontsDir, 'Noto Sans Mono/NotoSansMono-Regular.ttf')), + weight: 400, + style: 'normal', + }, + ], + logo: dataUri(path.resolve(__dirname, '../../static/img/assets/temporal-logo.svg'), 'image/svg+xml'), + // Lives next to render.js (not under static/) because nothing on the + // live site ever links to it — static/ gets copied verbatim into the + // public build output, which would ship this ~780KB source texture to + // every deploy for zero benefit. Unlike temporal-logo.svg above, which + // is also used elsewhere on the site and genuinely needs to be public. + background: dataUri(path.resolve(__dirname, 'assets/og-background.png'), 'image/png'), + }); + } + return assetsPromise; +} + +function buildTree({ title, description }, { logo, background }) { + return { + type: 'div', + props: { + style: { + width: '100%', + height: '100%', + display: 'flex', + position: 'relative', + }, + children: [ + { + type: 'img', + props: { + src: background, + width: CARD_WIDTH, + height: CARD_HEIGHT, + style: { position: 'absolute', top: 0, left: 0 }, + }, + }, + { + type: 'div', + props: { + style: { + position: 'relative', + width: '100%', + height: '100%', + display: 'flex', + flexDirection: 'column', + justifyContent: 'space-between', + padding: '64px', + fontFamily: 'Inter', + }, + children: [ + { + type: 'div', + props: { + style: { display: 'flex', flexDirection: 'column', gap: 24 }, + children: [ + { + type: 'div', + props: { + style: { + // display: 'block' (not 'flex') is required for + // lineClamp to actually truncate — satori silently + // ignores lineClamp on flex containers, same as the + // description div below. + display: 'block', + fontFamily: 'Aeonik', + fontSize: 75, + fontWeight: 300, + color: TITLE_COLOR, + lineHeight: 1.15, + maxWidth: '92%', + lineClamp: TITLE_MAX_LINES, + }, + children: breakLongWords(title, 25), + }, + }, + description + ? { + type: 'div', + props: { + style: { + display: 'block', + fontFamily: 'Inter', + fontSize: 30, + fontWeight: 400, + color: SUBTITLE_COLOR, + lineHeight: 1.35, + maxWidth: '80%', + lineClamp: DESCRIPTION_MAX_LINES, + }, + children: breakLongWords(description, 40), + }, + } + : null, + ].filter(Boolean), + }, + }, + { + type: 'div', + props: { + style: { display: 'flex', flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }, + children: [ + { + type: 'img', + props: { src: logo, width: Math.round(LOGO_HEIGHT * LOGO_ASPECT_RATIO), height: LOGO_HEIGHT }, + }, + { + type: 'div', + props: { + style: { + display: 'flex', + fontFamily: 'Noto Sans Mono', + fontSize: 25, + fontWeight: 400, + color: FOOTER_COLOR, + }, + children: 'DOCS.TEMPORAL.IO', + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + }; +} + +async function renderCard({ title, description }) { + const { fonts, logo, background } = await loadAssets(); + const svg = await satori(buildTree({ title, description }, { logo, background }), { + width: CARD_WIDTH, + height: CARD_HEIGHT, + fonts, + }); + const resvg = new Resvg(svg, { + fitTo: { mode: 'width', value: CARD_WIDTH }, + }); + const png = resvg.render().asPng(); + + // resvg's PNG encoder has no compression/quality knobs. A textured photo- + // like background (grid lines + gradient + grain) compresses terribly as + // lossless PNG (~320KB/card even palette-quantized) — palette quantization + // works well for flat/gradient-only art but not this kind of detail. + // JPEG is built for exactly this kind of content: quality 80 lands at + // ~70KB/card with no visible artifacting around the text edges (checked + // at 2x zoom), an ~80% reduction over the palette-PNG approach. + return sharp(png).jpeg({ quality: 80 }).toBuffer(); +} + +module.exports = { renderCard, TEMPLATE_VERSION, CARD_WIDTH, CARD_HEIGHT, IMAGE_EXTENSION: 'jpg' }; diff --git a/plugins/shared/docsRouting.js b/plugins/shared/docsRouting.js new file mode 100644 index 0000000000..318b1f0905 --- /dev/null +++ b/plugins/shared/docsRouting.js @@ -0,0 +1,40 @@ +const fs = require('fs'); +const path = require('path'); + +// Shared by plugins/markdown-pages and plugins/og-image, which both need to +// walk the same docs tree and independently re-derive the route Docusaurus +// will build each file to. Keeping this in one place means the two plugins +// can't silently drift apart on what counts as a routed doc page. + +function walkDir(dir) { + if (!fs.existsSync(dir)) return []; + return fs.readdirSync(dir).flatMap((name) => { + const full = path.join(dir, name); + if (fs.statSync(full).isDirectory()) return walkDir(full); + if (/\.(md|mdx)$/i.test(name)) return [full]; + return []; + }); +} + +// Mirrors Docusaurus's own route resolution (front-matter `slug` takes +// precedence, then `id`, then the file path) so callers land on the same +// route Docusaurus actually builds the page at. +function resolveUrlPath(docsDir, filePath, frontmatter) { + if (frontmatter.slug) { + const slug = frontmatter.slug.replace(/^\/+/, '').replace(/\/+$/, ''); + return slug || 'index'; + } + const rel = path.relative(docsDir, filePath).replace(/\\/g, '/'); + const withoutExt = rel.replace(/\.(md|mdx)$/i, ''); + const id = frontmatter.id || path.basename(withoutExt); + const dir = path.dirname(withoutExt); + if (dir === '.') return id === 'index' ? 'index' : id; + // Docusaurus treats a doc named the same as its parent folder (e.g. + // `event-history/event-history.mdx`) as that folder's index page, the + // same way it treats `index.mdx`/`README.mdx`. Mirror that convention + // here so callers land on the same route as the real page. + if (id === 'index' || id === path.basename(dir)) return dir; + return `${dir}/${id}`; +} + +module.exports = { walkDir, resolveUrlPath }; diff --git a/src/constants/ogImageColors.js b/src/constants/ogImageColors.js new file mode 100644 index 0000000000..44d6b842d2 --- /dev/null +++ b/src/constants/ogImageColors.js @@ -0,0 +1,14 @@ +// Colors used by the generated og:image cards (plugins/og-image/render.js). +// Where a value matches an existing brand color, it's the same hex as the +// CSS custom property in src/css/custom.css — CSS custom properties aren't +// consumable from a Node build script, so the value is duplicated here +// rather than imported. Keep these in sync if the source token changes. +module.exports = { + // Matches --indigo-100 in src/css/custom.css. + SUBTITLE_COLOR: '#cacbf9', + // Matches --off-white in src/css/custom.css. + FOOTER_COLOR: '#f8fafc', + // Pure white per the design team's Figma spec — deliberately not + // --off-white, no matching existing token. + TITLE_COLOR: '#ffffff', +}; diff --git a/src/fonts/Inter/Inter-Regular.ttf b/src/fonts/Inter/Inter-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..706043941a9b95909021db279a5dfddc8c63a274 GIT binary patch literal 341396 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

GppFSA<9lg38beM#4N;4{yRL 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፼&Tc5}@QCN(55hZmfzA;8)i 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

q0YgGjvKD;9i7b;udkMxJ}$H?htp1yTsk%9`O%x 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 hIQkL(8iK^-T%&)F$L9fDCY#%=Pz(FlHULT literal 0 HcmV?d00001 diff --git a/src/fonts/Inter/OFL.txt b/src/fonts/Inter/OFL.txt new file mode 100644 index 0000000000..21f6aff961 --- /dev/null +++ b/src/fonts/Inter/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/fonts/Noto Sans Mono/NotoSansMono-Regular.ttf b/src/fonts/Noto Sans Mono/NotoSansMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..61344a1f36945279d40d79eeace4aa010eb4fbd9 GIT binary patch literal 405760 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