From c7bf0f69991c87b1d5b80000a3bcbdb566d14c67 Mon Sep 17 00:00:00 2001 From: Lenny Chen Date: Wed, 14 Jan 2026 15:39:03 -0800 Subject: [PATCH 1/3] docs: unified cli draft --- .github/workflows/update-cli-docs.yml | 4 +- docs/cli/{ => command-reference}/activity.mdx | 0 docs/cli/{ => command-reference}/batch.mdx | 0 .../{ => command-reference}/cmd-options.mdx | 2 +- docs/cli/{ => command-reference}/config.mdx | 0 docs/cli/{ => command-reference}/env.mdx | 0 docs/cli/{ => command-reference}/operator.mdx | 0 docs/cli/{ => command-reference}/schedule.mdx | 0 docs/cli/{ => command-reference}/server.mdx | 0 .../{ => command-reference}/task-queue.mdx | 0 docs/cli/{ => command-reference}/worker.mdx | 0 docs/cli/{ => command-reference}/workflow.mdx | 0 docs/cli/common-operations.mdx | 134 +++++ docs/cli/index.mdx | 509 +----------------- docs/cli/setup-cli.mdx | 263 +++++++-- docs/cli/temporal-cloud.mdx | 57 ++ .../dotnet/converters-and-encryption.mdx | 2 +- docs/develop/dotnet/observability.mdx | 2 +- docs/develop/dotnet/temporal-client.mdx | 2 +- docs/develop/environment-configuration.mdx | 2 +- docs/develop/go/converters-and-encryption.mdx | 2 +- docs/develop/go/namespaces.mdx | 10 +- docs/develop/go/observability.mdx | 2 +- docs/develop/go/temporal-client.mdx | 2 +- .../java/converters-and-encryption.mdx | 2 +- docs/develop/java/namespaces.mdx | 6 +- docs/develop/java/observability.mdx | 2 +- docs/develop/php/observability.mdx | 2 +- docs/develop/php/temporal-clients.mdx | 2 +- .../python/converters-and-encryption.mdx | 2 +- docs/develop/python/observability.mdx | 2 +- docs/develop/python/temporal-client.mdx | 2 +- .../ruby/converters-and-encryption.mdx | 2 +- docs/develop/ruby/observability.mdx | 2 +- docs/develop/ruby/temporal-client.mdx | 2 +- docs/develop/typescript/core-application.mdx | 2 +- docs/develop/typescript/observability.mdx | 2 +- docs/develop/typescript/testing-suite.mdx | 2 +- .../data-conversion/dataconversion.mdx | 2 +- .../namespaces/global-namespaces.mdx | 4 +- docs/encyclopedia/nexus-registry.mdx | 2 +- .../temporal-service/temporal-server.mdx | 8 +- docs/encyclopedia/visibility/list-filter.mdx | 2 +- docs/encyclopedia/workers/task-queues.mdx | 2 +- .../workers/worker-versioning.mdx | 2 +- .../sending-messages.mdx | 4 +- docs/encyclopedia/workflow/schedule.mdx | 4 +- .../workflow-execution/workflow-execution.mdx | 2 +- docs/evaluate/temporal-cloud/limits.mdx | 2 +- docs/evaluate/temporal-cloud/pricing.mdx | 2 +- .../self-hosted-guide/defaults.mdx | 2 +- .../self-hosted-guide/namespaces.mdx | 10 +- .../server-frontend-api-reference.mdx | 2 +- sidebars.js | 30 +- 54 files changed, 500 insertions(+), 605 deletions(-) rename docs/cli/{ => command-reference}/activity.mdx (100%) rename docs/cli/{ => command-reference}/batch.mdx (100%) rename docs/cli/{ => command-reference}/cmd-options.mdx (99%) rename docs/cli/{ => command-reference}/config.mdx (100%) rename docs/cli/{ => command-reference}/env.mdx (100%) rename docs/cli/{ => command-reference}/operator.mdx (100%) rename docs/cli/{ => command-reference}/schedule.mdx (100%) rename docs/cli/{ => command-reference}/server.mdx (100%) rename docs/cli/{ => command-reference}/task-queue.mdx (100%) rename docs/cli/{ => command-reference}/worker.mdx (100%) rename docs/cli/{ => command-reference}/workflow.mdx (100%) create mode 100644 docs/cli/common-operations.mdx create mode 100644 docs/cli/temporal-cloud.mdx diff --git a/.github/workflows/update-cli-docs.yml b/.github/workflows/update-cli-docs.yml index aec532a88e..3cf7b4680a 100644 --- a/.github/workflows/update-cli-docs.yml +++ b/.github/workflows/update-cli-docs.yml @@ -79,7 +79,9 @@ jobs: branch_name="update-cli-docs-$CLI_RELEASE_TAG" git checkout -b "$branch_name" - cp ../cli/dist/docs/*.mdx docs/cli/ + rm -rf docs/cli/command-reference + mkdir -p docs/cli/command-reference + cp ../cli/dist/docs/*.mdx docs/cli/command-reference/ git add . git commit -m "$COMMIT_MESSAGE" git push origin "$branch_name" diff --git a/docs/cli/activity.mdx b/docs/cli/command-reference/activity.mdx similarity index 100% rename from docs/cli/activity.mdx rename to docs/cli/command-reference/activity.mdx diff --git a/docs/cli/batch.mdx b/docs/cli/command-reference/batch.mdx similarity index 100% rename from docs/cli/batch.mdx rename to docs/cli/command-reference/batch.mdx diff --git a/docs/cli/cmd-options.mdx b/docs/cli/command-reference/cmd-options.mdx similarity index 99% rename from docs/cli/cmd-options.mdx rename to docs/cli/command-reference/cmd-options.mdx index bc35e9a468..3c7103a419 100644 --- a/docs/cli/cmd-options.mdx +++ b/docs/cli/command-reference/cmd-options.mdx @@ -476,7 +476,7 @@ Promote local Namespace to Global Namespace. ## query Provides a SQL-like Query of Search Attributes to return Workflow Executions to reset. For more information, refer to -the [`temporal workflow list`](/cli/workflow#list) command. +the [`temporal workflow list`](/cli/command-reference/workflow#list) command. ## raw diff --git a/docs/cli/config.mdx b/docs/cli/command-reference/config.mdx similarity index 100% rename from docs/cli/config.mdx rename to docs/cli/command-reference/config.mdx diff --git a/docs/cli/env.mdx b/docs/cli/command-reference/env.mdx similarity index 100% rename from docs/cli/env.mdx rename to docs/cli/command-reference/env.mdx diff --git a/docs/cli/operator.mdx b/docs/cli/command-reference/operator.mdx similarity index 100% rename from docs/cli/operator.mdx rename to docs/cli/command-reference/operator.mdx diff --git a/docs/cli/schedule.mdx b/docs/cli/command-reference/schedule.mdx similarity index 100% rename from docs/cli/schedule.mdx rename to docs/cli/command-reference/schedule.mdx diff --git a/docs/cli/server.mdx b/docs/cli/command-reference/server.mdx similarity index 100% rename from docs/cli/server.mdx rename to docs/cli/command-reference/server.mdx diff --git a/docs/cli/task-queue.mdx b/docs/cli/command-reference/task-queue.mdx similarity index 100% rename from docs/cli/task-queue.mdx rename to docs/cli/command-reference/task-queue.mdx diff --git a/docs/cli/worker.mdx b/docs/cli/command-reference/worker.mdx similarity index 100% rename from docs/cli/worker.mdx rename to docs/cli/command-reference/worker.mdx diff --git a/docs/cli/workflow.mdx b/docs/cli/command-reference/workflow.mdx similarity index 100% rename from docs/cli/workflow.mdx rename to docs/cli/command-reference/workflow.mdx diff --git a/docs/cli/common-operations.mdx b/docs/cli/common-operations.mdx new file mode 100644 index 0000000000..62719847c3 --- /dev/null +++ b/docs/cli/common-operations.mdx @@ -0,0 +1,134 @@ +--- +id: common-operations +title: Common CLI operations +sidebar_label: Common operations +slug: /cli/common-operations +description: Common Temporal CLI workflows for starting, listing, and describing Workflows. +keywords: + - Temporal CLI + - workflow start + - workflow list + - workflow describe +--- + +The following are some of the more common operations you can perform with the Temporal CLI. + +## Start a Workflow + +In another terminal, use the following commands to interact with the Server. The following command starts a Workflow: + +```shell +$ temporal workflow start \ + --task-queue hello-world \ + --type MyWorkflow \ + --workflow-id 123 \ + --input 456 + +Running execution: + WorkflowId 123 + RunId 357074e4-0dd8-4c44-8367-d92536dd0943 + Type MyWorkflow + Namespace default + TaskQueue hello-world + Args [456] +``` + +Shorthand options are available: + +```shell +temporal workflow start --task-queue hello-world --type MyWorkflow --workflow-id 123 --input 456 +``` + +You can also list and describe Workflows: + +```shell +$ temporal workflow list + + Status WorkflowId Name StartTime + Running 123 MyWorkflow 14 seconds ago + +$ temporal workflow describe --workflow-id 123 + +{ + "executionConfig": { + "taskQueue": { + "name": "hello-world", + "kind": "Normal" + }, + "workflowExecutionTimeout": "0s", + "workflowRunTimeout": "0s", + "defaultWorkflowTaskTimeout": "10s" + }, + "workflowExecutionInfo": { + "execution": { + "workflowId": "123", + "runId": "357074e4-0dd8-4c44-8367-d92536dd0943" + }, + "type": { + "name": "MyWorkflow" + }, + "startTime": "2023-04-15T06:42:31.191137Z", + "status": "Running", + "historyLength": "2", + "executionTime": "2023-04-15T06:42:31.191137Z", + "memo": { + + }, + "autoResetPoints": { + + }, + "stateTransitionCount": "1" + }, + "pendingWorkflowTask": { + "state": "Scheduled", + "scheduledTime": "2023-04-15T06:42:31.191173Z", + "originalScheduledTime": "2023-04-15T06:42:31.191173Z", + "attempt": 1 + } +} +``` + +For more detailed output in JSON format, use the following command: + +```shell +$ temporal workflow list --output json + +[ + { + "execution": { + "workflow_id": "123", + "run_id": "357074e4-0dd8-4c44-8367-d92536dd0943" + }, + "type": { + "name": "MyWorkflow" + }, + "start_time": "2023-04-15T06:42:31.191137Z", + "status": 1, + "execution_time": "2023-04-15T06:42:31.191137Z", + "memo": {}, + "task_queue": "hello-world" + } +] +``` + +Filter out Workflows based on Workflow Type with [jq](https://stedolan.github.io/jq/): + +```shell +$ temporal workflow list --output json | jq '.[].type.name' + +"OtherWorkflow" +"MyWorkflow" +"MyWorkflow" +``` + +To count the number of Workflows, use the following command: + +```shell +$ temporal workflow list --output json | jq '.[].type.name' | uniq -c + + 1 "OtherWorkflow" + 2 "MyWorkflow" +``` + +To see the full range of Workflow-related commands, run `temporal workflow` or see the +[Temporal CLI workflow command reference](/cli/command-reference/workflow). diff --git a/docs/cli/index.mdx b/docs/cli/index.mdx index 39bba67d13..442366a50b 100644 --- a/docs/cli/index.mdx +++ b/docs/cli/index.mdx @@ -1,10 +1,10 @@ --- id: index -title: Temporal CLI command reference +title: Temporal CLI sidebar_label: Temporal CLI description: - The Temporal CLI offers terminal access to Temporal Services for managing, monitoring, and debugging Workflows and - Activities, including Namespace and Task Queue management, with embedded development support. + The Temporal CLI provides terminal access to Temporal Services for managing, monitoring, and debugging Workflows and + Activities, plus embedded development support. slug: /cli toc_max_heading_level: 4 keywords: @@ -17,494 +17,41 @@ tags: - Temporal CLI --- -The Temporal CLI provides direct access to a Temporal Service via the terminal. It's a powerful tool for managing, -monitoring, and debugging Temporal Applications. You can use it to start, stop, inspect and operate on Workflows and -Activities, and perform administrative tasks such as Namespace, Schedule, and Task Queue management. +The Temporal CLI provides direct access to a Temporal Service via the terminal. Use it to manage, monitor, and debug +Temporal applications, plus run an embedded development service when you need fast local feedback. -The Temporal CLI also includes an embedded Temporal Service suitable for use in development and CI/CD. It includes the -[Temporal Server](/temporal-service/temporal-server), SQLite persistence, and the [Temporal Web UI](/web-ui). - -:::note +::::note When upgrading from [tctl](/tctl-v1) to the Temporal CLI, make sure to update your environment variables and use updated commands. For details, see [CLI release notes](https://github.com/temporalio/cli/releases/). -::: - -## Install the Temporal CLI {#install} - -The Temporal CLI is available on macOS, Windows, and Linux, or as a Docker image. - -### macOS - -Choose one of the following install methods to install the Temporal CLI on macOS: - -- Install the Temporal CLI with Homebrew. - -```shell -brew install temporal -``` - -- Install the Temporal CLI from CDN. - - 1. Select the platform and architecture needed. - - - Download for Darwin amd64: https://temporal.download/cli/archive/latest?platform=darwin&arch=amd64 - - Download for Darwin arm64: https://temporal.download/cli/archive/latest?platform=darwin&arch=arm64 - - 2. Extract the downloaded archive. - - 3. Add the Temporal CLI binary to your PATH. - -### Linux - -Choose one of the following install methods to install the Temporal CLI on Linux: - -- Install the Temporal CLI from CDN. - - 1. Select the platform and architecture needed. - - - Download for Linux amd64: https://temporal.download/cli/archive/latest?platform=linux&arch=amd64 - - Download for Linux arm64: https://temporal.download/cli/archive/latest?platform=linux&arch=arm64 - - 2. Extract the downloaded archive. - - 3. Add the `temporal` binary to your PATH. - -### Windows - -Choose one of the following methods to install the Temporal CLI on Windows: - -- Install the Temporal CLI from CDN. - - 1. Select the platform and architecture needed and download the binary. - - - Download for Windows amd64: https://temporal.download/cli/archive/latest?platform=windows&arch=amd64 - - Download for Windows arm64: https://temporal.download/cli/archive/latest?platform=windows&arch=arm64 - - 2. Extract the downloaded archive. - - 3. Add the `temporal.exe` binary to your PATH. - -### Docker - -The Temporal CLI container image is available on [DockerHub](https://hub.docker.com/r/temporalio/temporal) and can be -run directly: - -```shell -docker run --rm temporalio/temporal --help -``` - -:::note - -When running the Temporal CLI inside Docker, for the development server to be accessible from the host system, the -server needs to be configured to listen on external IP and the ports need to be forwarded: - -```shell -docker run --rm -p 7233:7233 -p 8233:8233 temporalio/temporal server start-dev --ip 0.0.0.0 -# UI is now accessible from host at http://localhost:8233/ -``` - -::: - -## Start a Temporal development server {#start-dev-server} - -To start a Temporal development server, run the following command: - -```bash -temporal server start-dev -``` - -This command automatically starts the Web UI, creates the `default` [Namespace](/namespaces), and uses an in-memory -database. - -The Temporal Server will be available on `localhost:7233` and the Temporal Web UI will be available at -[`http://localhost:8233`](http://localhost:8233/). - -The in-memory SQLite database does not persist if you stop the development server. Use the `--db-filename` option to -specify a database file, persisting application state. This is helpful if you plan on stopping and re-starting the -development server. - -```shell -temporal server start-dev --db-filename temporal.db -``` - -:::note - -Local databases created with `--db-filename` may not be compatible with newer versions of the Temporal CLI. The -`temporal server start-dev` command is only intended for development environments. - -::: - -For the full list of development server options, use the `--help` flag: - -```shell -temporal server start-dev --help -``` - -## Enable auto-completion {#enable-auto-completion} - -Enable auto-completion using the following commands. - -### zsh auto-completion - -1. Add the following line to your `~/.zshrc` startup script: - - ```sh - eval "$(temporal completion zsh)" - ``` - -2. Re-launch your shell or run: - - ```sh - source ~/.zshrc - ``` - -### Bash auto-completion - -1. Install [bash-completion](https://github.com/scop/bash-completion#installation) and add the software to your - `~/.bashrc`. - -2. Add the following line to your `~/.bashrc` startup script: - - ```sh - eval "$(temporal completion bash)" - ``` - -3. Re-launch your shell or run: - - ```sh - source ~/.bashrc - ``` - -:::note - -If auto-completion fails with the error: `bash: _get_comp_words_by_ref: command not found`, you did not successfully -install [bash-completion](https://github.com/scop/bash-completion#installation). This package must be loaded into your -shell for `temporal` auto-completion to work. - -::: - -### Fish auto-completion - -1. Create the Fish custom completions directory if it does not already exist: - - ```fish - mkdir -p ~/.config/fish/completions - ``` - -2. Configure the completions to load when needed. Note: the file name must be `temporal.fish` or the completions will - not be found: - - ```fish - echo 'eval "$(temporal completion fish)"' >~/.config/fish/completions/temporal.fish - ``` - -3. Re-launch your shell or run: - - ```fish - source ~/.config/fish/completions/temporal.fish - ``` - -## Command set - -- [temporal activity](/cli/activity/) -- [temporal batch](/cli/batch/) -- [temporal env](/cli/env/) -- [temporal operator](/cli/operator/) -- [temporal schedule](/cli/schedule/) -- [temporal server](/cli/server) -- [temporal task-queue](/cli/task-queue/) -- [temporal workflow](/cli/workflow/) - -## Configuration - -The following information provides important configuration details. - -### Namespace registration - -Namespaces are pre-registered at startup for immediate use. Customize pre-registered Namespaces with the following -command: - -```shell -temporal server start-dev --namespace foo --namespace bar -``` - -Register Namespaces with `namespace create`: - -```shell -temporal operator namespace create --namespace foo -``` - -### Enable or disable Temporal UI - -By default, the Temporal UI is enabled when running the development server using the Temporal CLI. To disable the UI, -use the `--headless` modifier: - -```shell -temporal server start-dev --headless -``` - -### Dynamic configuration - -Advanced Temporal CLI configuration requires a dynamic configuration file. - -To set values on the command line, use `--dynamic-config-value KEY=JSON_VALUE`. For example, enable the Search Attribute -cache: - -```bash -temporal server start-dev --dynamic-config-value system.forceSearchAttributesCacheRefreshOnRead=false -``` - -This setting makes created Search Attributes immediately available. - -## Environment variables - -The following table describes the environment variables you can set for the Temporal CLI. - - - -| Variable | Definition | Client Option | -| ---------------------------------------- | ------------------------------------------------------------------------- | ------------------------------- | -| `TEMPORAL_ADDRESS` | Host and port (formatted as host:port) for the Temporal Frontend Service. | --address | -| `TEMPORAL_CODEC_AUTH` | Authorization header for requests to Codec Server. | --codec-auth | -| `TEMPORAL_CODEC_ENDPOINT` | Endpoint for remote Codec Server. | --codec-endpoint | -| `TEMPORAL_NAMESPACE` | Namespace in Temporal Workflow. Default: "default". | --namespace | -| `TEMPORAL_TLS_CA` | Path to server CA certificate. | --tls-ca-path | -| `TEMPORAL_TLS_CERT` | Path to x509 certificate. | --tls-cert-path | -| `TEMPORAL_TLS_DISABLE_HOST_VERIFICATION` | Disables TLS host name verification. Default: false. | --tls-disable-host-verification | -| `TEMPORAL_TLS_KEY` | Path to private certificate key. | --tls-key-path | -| `TEMPORAL_TLS_SERVER_NAME` | Override for target TLS server name. | --tls-server-name | -| `TEMPORAL_API_KEY` | API key used for authentication. | --api-key | - - - - -:::tip ENVIRONMENT VARIABLES - -Do not confuse environment variables, set with your shell, with temporal env options. - -::: - -## Create and modify configuration files {#configuration-files} - -The Temporal CLI lets you create and modify TOML configuration files to store your environment variables and other -settings. Refer to [Environment Configuration](../develop/environment-configuration#cli-integration) for more -information. - -## Proxy support - -The Temporal CLI provides support for users who are operating behind a proxy. This feature ensures seamless -communication even in network-restricted environments. - -#### Setting up proxy support - -If you are behind a proxy, you'll need to instruct the Temporal CLI to route its requests via that proxy. You can -achieve this by setting the `HTTPS_PROXY` environment variable. - -```command -export HTTPS_PROXY=: -``` - -Replace `` with the proxy's hostname or IP address, and `` with the proxy's port number. - -Once set, you can run the Temporal CLI commands as you normally would. - -:::note - -Temporal CLI uses the gRPC library which natively supports HTTP CONNECT proxies. The gRPC library checks for the -`HTTPS_PROXY` (and its case-insensitive variants) environment variable to determine if it should route requests through -a proxy. - -::: - -In addition to `HTTPS_PROXY`, gRPC also respects the `NO_PROXY` environment variable. This can be useful if there are -specific addresses or domains you wish to exclude from proxying. - -For more information, see [Proxy](https://github.com/grpc/grpc-go/blob/master/Documentation/proxy.md) in the gRPC -documentation. - -## Common CLI operations {#common-operations} - -The following are some of the more common operations you can perform with the Temporal CLI. - -### Start a Workflow - -In another terminal, use the following commands to interact with the Server. The following command starts a Workflow: - -```shell -$ temporal workflow start \ - --task-queue hello-world \ - --type MyWorkflow \ - --workflow-id 123 \ - --input 456 - -Running execution: - WorkflowId 123 - RunId 357074e4-0dd8-4c44-8367-d92536dd0943 - Type MyWorkflow - Namespace default - TaskQueue hello-world - Args [456] -``` - -Shorthand options are available: - -```shell -temporal workflow start --task-queue hello-world --type MyWorkflow --workflow-id 123 --input 456 -``` - -You can also list and describe Workflows: - -```shell -$ temporal workflow list - - Status WorkflowId Name StartTime - Running 123 MyWorkflow 14 seconds ago - -$ temporal workflow describe --workflow-id 123 - -{ - "executionConfig": { - "taskQueue": { - "name": "hello-world", - "kind": "Normal" - }, - "workflowExecutionTimeout": "0s", - "workflowRunTimeout": "0s", - "defaultWorkflowTaskTimeout": "10s" - }, - "workflowExecutionInfo": { - "execution": { - "workflowId": "123", - "runId": "357074e4-0dd8-4c44-8367-d92536dd0943" - }, - "type": { - "name": "MyWorkflow" - }, - "startTime": "2023-04-15T06:42:31.191137Z", - "status": "Running", - "historyLength": "2", - "executionTime": "2023-04-15T06:42:31.191137Z", - "memo": { - - }, - "autoResetPoints": { - - }, - "stateTransitionCount": "1" - }, - "pendingWorkflowTask": { - "state": "Scheduled", - "scheduledTime": "2023-04-15T06:42:31.191173Z", - "originalScheduledTime": "2023-04-15T06:42:31.191173Z", - "attempt": 1 - } -} -``` - -For more detailed output in JSON format, use the following command: - -```shell -$ temporal workflow list --output json - -[ - { - "execution": { - "workflow_id": "123", - "run_id": "357074e4-0dd8-4c44-8367-d92536dd0943" - }, - "type": { - "name": "MyWorkflow" - }, - "start_time": "2023-04-15T06:42:31.191137Z", - "status": 1, - "execution_time": "2023-04-15T06:42:31.191137Z", - "memo": {}, - "task_queue": "hello-world" - } -] -``` - -Filter out Workflows based on Workflow Type with [jq](https://stedolan.github.io/jq/): - -```shell -$ temporal workflow list --output json | jq '.[].type.name' - -"OtherWorkflow" -"MyWorkflow" -"MyWorkflow" -``` - -To count the number of Workflows, use the following command: - -```shell -$ temporal workflow list --output json | jq '.[].type.name' | uniq -c - - 1 "OtherWorkflow" - 2 "MyWorkflow" -``` - -To see the full range of Workflow-related commands, run `temporal workflow` or see the -[Temporal CLI workflow command reference](/cli/workflow). - -For a full list of available commands, run `temporal` without arguments or see [Available commands](#command-set). - -### Customize your environment variables - -To communicate with a different Server, like a production Namespace on Temporal Cloud: - -1. Create an environment named `prod`. -2. Pass `--env prod` to commands, like `temporal workflow list --env prod`. - -To create a new environment and set its properties: - -```shell -temporal env set prod.namespace production.f45a2 -temporal env set prod.address production.f45a2.tmprl.cloud:7233 -temporal env set prod.tls-cert-path /temporal/certs/prod.pem -temporal env set prod.tls-key-path /temporal/certs/prod.key -``` - -Check your settings: - -```shell -$ temporal env get prod - - address production.f45a2.tmprl.cloud:7233 - namespace production.f45a2 - tls-cert-path /temporal/certs/prod.pem - tls-key-path /temporal/certs/prod.key -``` +:::: -Run a command to test the connection: +## Install and configure the CLI -```shell -$ temporal workflow list --env prod -``` +Set up the CLI, run a local development server, and configure your environment in +[Install and configure the CLI](/cli/setup-cli). -For a full list of properties, use `temporal env set -h`. +## Integrate CLI with Temporal Cloud -```shell -$ temporal env set -h +Connect the `temporal` CLI to Temporal Cloud with environment profiles and authentication settings in +[Integrate CLI with Temporal Cloud](/cli/temporal-cloud). -OPTIONS: - Client Options: +## Common CLI operations - --address value The host and port (formatted as host:port) for the Temporal Frontend Service. [$TEMPORAL_CLI_ADDRESS] - --codec-auth value Sets the authorization header on requests to the Codec Server. [$TEMPORAL_CLI_CODEC_AUTH] - --codec-endpoint value Endpoint for a remote Codec Server. [$TEMPORAL_CLI_CODEC_ENDPOINT] - --command-timeout duration Timeout for the span of a command. (default 0s) - --env value Name of the environment to read environment variables from. (default: "default") - --grpc-meta value [ --grpc-meta value ] Contains gRPC metadata to send with requests (format: key=value). Values must be in a valid JSON format. - --namespace value, -n value Identifies a Namespace in the Temporal Workflow. (default: "default") [$TEMPORAL_CLI_NAMESPACE] - --tls-ca-path value Path to server CA certificate. [$TEMPORAL_CLI_TLS_CA] - --tls-cert-path value Path to x509 certificate. [$TEMPORAL_CLI_TLS_CERT] - --tls-disable-host-verification Disables TLS host name verification if already enabled. (default: false) [$TEMPORAL_CLI_TLS_DISABLE_HOST_VERIFICATION] - --tls-key-path value Path to private certificate key. [$TEMPORAL_CLI_TLS_KEY] - --tls-server-name value Provides an override for the target TLS server name. [$TEMPORAL_CLI_TLS_SERVER_NAME] +Walk through everyday workflows such as starting, listing, and describing Workflows in +[Common CLI operations](/cli/common-operations). - Display Options: +## Command reference - --color value when to use color: auto, always, never. (default: "auto") -``` +- [activity](/cli/command-reference/activity/) +- [batch](/cli/command-reference/batch/) +- [command options](/cli/command-reference/cmd-options/) +- [config](/cli/command-reference/config/) +- [env](/cli/command-reference/env/) +- [operator](/cli/command-reference/operator/) +- [schedule](/cli/command-reference/schedule/) +- [server](/cli/command-reference/server/) +- [task-queue](/cli/command-reference/task-queue/) +- [worker](/cli/command-reference/worker/) +- [workflow](/cli/command-reference/workflow/) diff --git a/docs/cli/setup-cli.mdx b/docs/cli/setup-cli.mdx index 291f4e30ef..543227b6a9 100644 --- a/docs/cli/setup-cli.mdx +++ b/docs/cli/setup-cli.mdx @@ -1,9 +1,9 @@ --- id: setup-cli -title: Set up the Temporal CLI -sidebar_label: Set up the CLI +title: Install and configure the CLI +sidebar_label: Install and configure slug: /cli/setup-cli -description: Install the Temporal CLI and run a local development server. +description: Install the Temporal CLI, run a local development server, and configure your environment. keywords: - Temporal CLI - Install CLI @@ -13,16 +13,6 @@ keywords: The Temporal CLI is a command-line tool for interacting with the Temporal Service. It helps you manage, monitor, and debug Temporal applications. -You can also use it to run a local development server and interact with Temporal Applications from the command line. - -With the Temporal CLI, you can: - -- Run a local Temporal Service for development -- Start Workflow Executions on any Temporal Service (local, self-hosted, or Temporal Cloud) -- Interact with running Workflows -- Inspect the state of Workflows and Activities -- Manage Namespaces, Schedules, and Task Queues -- Monitor and debug application behavior ## Install the CLI @@ -43,7 +33,7 @@ Or download from the CDN: - [Darwin amd64](https://temporal.download/cli/archive/latest?platform=darwin&arch=amd64) - [Darwin arm64](https://temporal.download/cli/archive/latest?platform=darwin&arch=arm64) -Extract the archive and add the `temporal` binary to your `PATH`. +extract the archive and add the `temporal` binary to your `PATH`. @@ -60,7 +50,7 @@ Or download from the CDN: - [Linux amd64](https://temporal.download/cli/archive/latest?platform=linux&arch=amd64) - [Linux arm64](https://temporal.download/cli/archive/latest?platform=linux&arch=arm64) -Extract the archive and add the `temporal` binary to your `PATH`. +extract the archive and add the `temporal` binary to your `PATH`. @@ -71,7 +61,7 @@ Download from the CDN: - [Windows amd64](https://temporal.download/cli/archive/latest?platform=windows&arch=amd64) - [Windows arm64](https://temporal.download/cli/archive/latest?platform=windows&arch=arm64) -Extract the archive and add the `temporal.exe` binary to your `PATH`. +extract the archive and add the `temporal.exe` binary to your `PATH`. @@ -83,61 +73,229 @@ Temporal CLI container image is available on [DockerHub](https://hub.docker.com/ docker run --rm temporalio/temporal --help ``` +::::note + +When running the Temporal CLI inside Docker, for the development server to be accessible from the host system, the +server needs to be configured to listen on external IP and the ports need to be forwarded: + +```shell +docker run --rm -p 7233:7233 -p 8233:8233 temporalio/temporal server start-dev --ip 0.0.0.0 +# UI is now accessible from host at http://localhost:8233/ +``` + +:::: + -## Run the development server +## Run a local development server The CLI includes a local Temporal development service for fast feedback while building your application. Start the server: ```bash -temporal server start-dev \ - --db-filename path/to/local-persistent-store +temporal server start-dev ``` -View available options: +This command automatically starts the Web UI, creates the `default` [Namespace](/namespaces), and uses an in-memory +SQLite database. -```bash -temporal server start-dev \ - --help +The Temporal Server will be available on `localhost:7233` and the Temporal Web UI will be available at +[`http://localhost:8233`](http://localhost:8233/). + +Persist state locally by specifying a database file: + +```shell +temporal server start-dev --db-filename temporal.db ``` -:::note +::::note + +Local databases created with `--db-filename` may not be compatible with newer versions of the Temporal CLI. The +`temporal server start-dev` command is intended for development environments. + +:::: -When running the CLI inside Docker, for the development server to be accessible from the host system, -the server needs to be configured to listen on external IP and the ports need to be forwarded: +For the full list of development server options, use the `--help` flag: ```shell -docker run --rm \ - -p 7233:7233 -p 8233:8233 \ - temporalio/temporal server start-dev \ - --ip 0.0.0.0 -# UI is now accessible from host at http://localhost:8233/ +temporal server start-dev --help +``` + +### Development server configuration + +#### Namespace registration + +Namespaces are pre-registered at startup for immediate use. Customize pre-registered Namespaces with the following +command: + +```shell +temporal server start-dev --namespace foo --namespace bar +``` + +Register Namespaces with `namespace create`: + +```shell +temporal operator namespace create --namespace foo +``` + +#### Enable or turn off the Temporal Web UI + +By default, the Temporal Web UI is enabled when running the development server using the Temporal CLI. To turn off the UI, +use the `--headless` modifier: + +```shell +temporal server start-dev --headless +``` + +#### Dynamic configuration + +Advanced Temporal CLI configuration requires a dynamic configuration file. + +To set values on the command line, use `--dynamic-config-value KEY=JSON_VALUE`. For example, enable the Search Attribute +cache: + +```bash +temporal server start-dev --dynamic-config-value system.forceSearchAttributesCacheRefreshOnRead=false ``` -::: +This setting makes created Search Attributes immediately available. + +## Configure the CLI + +### Environment variables + +The following table describes the environment variables you can set for the Temporal CLI. + +{/* This is an automatically generated file and the TEMPORAL_API_KEY correction will disappear on the next push. */} + +| Variable | Definition | Client Option | +| ---------------------------------------- | ------------------------------------------------------------------------- | ------------------------------- | +| `TEMPORAL_ADDRESS` | Host and port (formatted as host:port) for the Temporal Frontend Service. | --address | +| `TEMPORAL_CODEC_AUTH` | Authorization header for requests to Codec Server. | --codec-auth | +| `TEMPORAL_CODEC_ENDPOINT` | Endpoint for remote Codec Server. | --codec-endpoint | +| `TEMPORAL_NAMESPACE` | Namespace in Temporal Workflow. Default: "default". | --namespace | +| `TEMPORAL_TLS_CA` | Path to server CA certificate. | --tls-ca-path | +| `TEMPORAL_TLS_CERT` | Path to x509 certificate. | --tls-cert-path | +| `TEMPORAL_TLS_DISABLE_HOST_VERIFICATION` | Turns off TLS host name verification. Default: false. | --tls-disable-host-verification | +| `TEMPORAL_TLS_KEY` | Path to private certificate key. | --tls-key-path | +| `TEMPORAL_TLS_SERVER_NAME` | Override for target TLS server name. | --tls-server-name | +| `TEMPORAL_API_KEY` | API key used for authentication. | --api-key | + +{/* This is an automatically generated file and this caution will disappear on the next push. */} +{/* issue: https://github.com/temporalio/cli/issues/776 */} + +::::tip ENVIRONMENT VARIABLES + +Do not confuse environment variables, set with your shell, with temporal env options. + +:::: + +### Create and modify configuration files + + + +The Temporal CLI lets you create and modify TOML configuration files to store your environment variables and other +settings. Refer to [Environment Configuration](../develop/environment-configuration#cli-integration) for more +information. + +### Configure proxy support + +The Temporal CLI provides support for users who are operating behind a proxy. This feature ensures seamless +communication even in network-restricted environments. + +#### Setting up proxy support + +If you are behind a proxy, you'll need to instruct the Temporal CLI to route its requests via that proxy. You can +achieve this by setting the `HTTPS_PROXY` environment variable. + +```command +export HTTPS_PROXY=: +``` + +Replace `` with the proxy's hostname or IP address, and `` with the proxy's port number. + +Once set, you can run the Temporal CLI commands as you normally would. + +::::note + +Temporal CLI uses the gRPC library which natively supports HTTP CONNECT proxies. The gRPC library checks for the +`HTTPS_PROXY` (and its case-insensitive variants) environment variable to determine if it should route requests through +a proxy. + +:::: + +In addition to `HTTPS_PROXY`, gRPC also respects the `NO_PROXY` environment variable. This can be useful if there are +specific addresses or domains you wish to exclude from proxying. + +For more information, see [Proxy](https://github.com/grpc/grpc-go/blob/master/Documentation/proxy.md) in the gRPC +documentation. + +## Enable auto-completion + +Enable auto-completion using the following commands. + +### zsh auto-completion + +1. Add the following line to your `~/.zshrc` startup script: + + ```sh + eval "$(temporal completion zsh)" + ``` + +2. Re-launch your shell or run: + + ```sh + source ~/.zshrc + ``` + +### Bash auto-completion + +1. Install [bash-completion](https://github.com/scop/bash-completion#installation) and add the software to your + `~/.bashrc`. + +2. Add the following line to your `~/.bashrc` startup script: + + ```sh + eval "$(temporal completion bash)" + ``` + +3. Re-launch your shell or run: + + ```sh + source ~/.bashrc + ``` + +::::note + +If auto-completion fails with the error: `bash: _get_comp_words_by_ref: command not found`, you did not successfully +install [bash-completion](https://github.com/scop/bash-completion#installation). This package must be loaded into your +shell for `temporal` auto-completion to work. + +:::: + +### Fish auto-completion -### What the local server provides +1. Create the Fish custom completions directory if it does not already exist: -- A local instance of the Temporal Service -- Automatic startup of the Web UI -- A default Namespace -- Optional persistence using SQLite + ```fish + mkdir -p ~/.config/fish/completions + ``` -Omitting `--db-filename` uses an in-memory database. This speeds up testing but does not persist Workflow data between sessions. +2. Configure the completions to load when needed. Note: the filename must be `temporal.fish` or the completions will + not be found: -### Access the Web UI + ```fish + echo 'eval "$(temporal completion fish)"' >~/.config/fish/completions/temporal.fish + ``` -- Temporal Service: `localhost:7233` -- Web UI: [http://localhost:8233](http://localhost:8233) +3. Re-launch your shell or run: -:::tip -The CLI works with all Temporal SDKs. -Use it to develop and test your application before deploying to production. -::: + ```fish + source ~/.config/fish/completions/temporal.fish + ``` ## Getting CLI help @@ -153,17 +311,4 @@ For example: - `temporal workflow --help` - `temporal workflow delete --help` -Available commands - -| Command | Description | -| ---------------------------------- | ----------------------------------------------------------- | -| [**activity**](/cli/activity) | Complete, update, pause, unpause, reset or fail an Activity | -| [**batch**](/cli/batch) | Manage running batch jobs | -| [**completion**](/cli/cmd-options) | Generate the autocompletion script for the specified shell | -| [**env**](/cli/env) | Manage environments | -| [**operator**](/cli/operator) | Manage Temporal deployments | -| [**schedule**](/cli/schedule) | Perform operations on Schedules | -| [**server**](/cli/server) | Run Temporal Server | -| [**task-queue**](/cli/task-queue) | Manage Task Queues | -| [**worker**](/cli/worker) | Read or update Worker state | -| [**workflow**](/cli/workflow) | Start, list, and operate on Workflows | +For a full list of commands, see the [Temporal CLI command reference](/cli#command-reference). diff --git a/docs/cli/temporal-cloud.mdx b/docs/cli/temporal-cloud.mdx new file mode 100644 index 0000000000..983e14b6e5 --- /dev/null +++ b/docs/cli/temporal-cloud.mdx @@ -0,0 +1,57 @@ +--- +id: temporal-cloud +title: Integrate CLI with Temporal Cloud +sidebar_label: Integrate with Cloud +slug: /cli/temporal-cloud +description: Connect the Temporal CLI to Temporal Cloud using environment profiles and authentication. +keywords: + - Temporal CLI + - Temporal Cloud + - API keys + - mTLS + - env +--- + +Use the `temporal` CLI to connect to Temporal Cloud by creating a reusable environment profile and setting the +Cloud-specific connection details. + +## Configure a Temporal Cloud profile + +Use `temporal env set` to store settings for your Temporal Cloud Namespace. + +```shell +temporal env set prod.namespace production.f45a2 +temporal env set prod.address production.f45a2.tmprl.cloud:7233 +temporal env set prod.tls-cert-path /temporal/certs/prod.pem +temporal env set prod.tls-key-path /temporal/certs/prod.key +``` + +If your Cloud setup uses API keys, you can also store an API key in the profile: + +```shell +temporal env set prod.api-key +``` + +You can create API keys in the Temporal Cloud UI. For details, see +[Create API keys](/production-deployment/cloud/get-started/api-keys). + +## Use the Cloud profile + +Run commands with the profile name: + +```shell +temporal workflow list --env prod +``` + +Check your stored settings: + +```shell +$ temporal env get prod + + address production.f45a2.tmprl.cloud:7233 + namespace production.f45a2 + tls-cert-path /temporal/certs/prod.pem + tls-key-path /temporal/certs/prod.key +``` + +For a full list of properties, use `temporal env set -h`. diff --git a/docs/develop/dotnet/converters-and-encryption.mdx b/docs/develop/dotnet/converters-and-encryption.mdx index 7bcb2df620..b29284fe87 100644 --- a/docs/develop/dotnet/converters-and-encryption.mdx +++ b/docs/develop/dotnet/converters-and-encryption.mdx @@ -89,7 +89,7 @@ var myClient = await TemporalClient.ConnectAsync(new("localhost:7233") ``` - Data **encoding** is performed by the client using the converters and codecs provided by Temporal or your custom implementation when passing input to the Temporal Cluster. For example, plain text input is usually serialized into a JSON object, and can then be compressed or encrypted. -- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/workflow#show) command or when browsing the Web UI to view output. +- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/command-reference/workflow#show) command or when browsing the Web UI to view output. For reference, see the [Encryption](https://github.com/temporalio/samples-dotnet/tree/main/src/Encryption) sample. diff --git a/docs/develop/dotnet/observability.mdx b/docs/develop/dotnet/observability.mdx index 042bb2961c..8790981dee 100644 --- a/docs/develop/dotnet/observability.mdx +++ b/docs/develop/dotnet/observability.mdx @@ -181,7 +181,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `Describe` on a `WorkflowHandle`. - In the Workflow by looking at `WorkflowInfo`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [In the Temporal CLI](/cli/operator#list-2) + - [In the Temporal CLI](/cli/command-reference/operator#list-2) - In code by calling `ListWorkflowsAsync`. ### List Workflow Executions {#list-workflow-executions} diff --git a/docs/develop/dotnet/temporal-client.mdx b/docs/develop/dotnet/temporal-client.mdx index 3d36a510cf..087fc15fd4 100644 --- a/docs/develop/dotnet/temporal-client.mdx +++ b/docs/develop/dotnet/temporal-client.mdx @@ -41,7 +41,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/server#start-dev)), the required options are minimal. If you +[Temporal CLI dev server](https://docs.temporal.io/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/environment-configuration.mdx b/docs/develop/environment-configuration.mdx index 13d31c136e..e89c52a977 100644 --- a/docs/develop/environment-configuration.mdx +++ b/docs/develop/environment-configuration.mdx @@ -104,7 +104,7 @@ MIIPrivateKeyDataHere... The Temporal CLI tool includes `temporal config` commands that allow you to read and write to the TOML configuration file. This provides a convenient way to manage your connection profiles without manually editing the file. Refer to -[Temporal CLI Reference - `temporal config`](../cli/config.mdx) for more details. +[Temporal CLI Reference - `temporal config`](../cli/command-reference/config.mdx) for more details. - `temporal config get `: Reads a specific value from the current profile. - `temporal config set `: Sets a property in the current profile. diff --git a/docs/develop/go/converters-and-encryption.mdx b/docs/develop/go/converters-and-encryption.mdx index c1e9946657..5ec48e57e6 100644 --- a/docs/develop/go/converters-and-encryption.mdx +++ b/docs/develop/go/converters-and-encryption.mdx @@ -127,7 +127,7 @@ c, err := client.Dial(client.Options{ ``` - Data **encoding** is performed by the client using the converters and codecs provided by Temporal or your custom implementation when passing input to the Temporal Cluster. For example, plain text input is usually serialized into a JSON object, and can then be compressed or encrypted. -- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/workflow#show) command or when browsing the Web UI to view output. +- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/command-reference/workflow#show) command or when browsing the Web UI to view output. For reference, see the [Encryption](https://github.com/temporalio/samples-go/tree/main/encryption) sample. diff --git a/docs/develop/go/namespaces.mdx b/docs/develop/go/namespaces.mdx index e8c57b44d6..d586075292 100644 --- a/docs/develop/go/namespaces.mdx +++ b/docs/develop/go/namespaces.mdx @@ -45,7 +45,7 @@ Use a custom [Authorizer](/self-hosted-guide/security#authorizer-plugin) on your Use [`Register` API](https://pkg.go.dev/go.temporal.io/sdk/client#NamespaceClient) with the `NamespaceClient` interface to register a [Namespace](/namespaces) and set the [Retention Period](/temporal-service/temporal-server#retention-period) for the Workflow Execution Event History for the Namespace. -You can also [register Namespaces using the Temporal CLI command-line tool](/cli/operator#create). +You can also [register Namespaces using the Temporal CLI command-line tool](/cli/command-reference/operator#create). ```go client, err := client.NewNamespaceClient(client.Options{HostPort: ts.config.ServiceAddr}) @@ -67,7 +67,7 @@ Ensure that you wait for this registration to complete before starting the Workf To update your Namespace, use the [`Update` API](https://pkg.go.dev/go.temporal.io/sdk/client#NamespaceClient) with the `NamespaceClient`. -To update your Namespace using the Temporal CLI, use the [temporal operator namespace update](/cli/operator#update) command. +To update your Namespace using the Temporal CLI, use the [temporal operator namespace update](/cli/command-reference/operator#update) command. ### How to manage Namespaces {#manage-namespaces} @@ -89,7 +89,7 @@ Note that these APIs and Temporal CLI commands will not work with Temporal Cloud - Update information and configuration for a registered Namespace on your Temporal Service: - - With the Temporal CLI: [`temporal operator namespace update`](/cli/operator#update) + - With the Temporal CLI: [`temporal operator namespace update`](/cli/command-reference/operator#update) Example - Use the [`UpdateNamespace` API](https://pkg.go.dev/go.temporal.io/sdk/client#NamespaceClient) to update configuration on a Namespace. Example @@ -127,7 +127,7 @@ Note that these APIs and Temporal CLI commands will not work with Temporal Cloud - Get details for a registered Namespace on your Temporal Service: - - With the Temporal CLI: [`temporal operator namespace describe`](/cli/operator#describe) + - With the Temporal CLI: [`temporal operator namespace describe`](/cli/command-reference/operator#describe) - Use the [`DescribeNamespace` API](https://pkg.go.dev/go.temporal.io/sdk/client#NamespaceClient) to return information and configuration details for a registered Namespace. Example @@ -141,7 +141,7 @@ Note that these APIs and Temporal CLI commands will not work with Temporal Cloud - Get details for all registered Namespaces on your Temporal Service: - - With the Temporal CLI: [`temporal operator namespace list`](/cli/operator#list) + - With the Temporal CLI: [`temporal operator namespace list`](/cli/command-reference/operator#list) - Use the [`ListNamespace` API](https://github.com/temporalio/api/blob/f0350f8032ad2f0c60c539b3b61ea37f412f1cf7/temporal/api/operatorservice/v1/service.proto) to return information and configuration details for all registered Namespaces on your Temporal Service. Example diff --git a/docs/develop/go/observability.mdx b/docs/develop/go/observability.mdx index 0158d3d4c0..1b03652a03 100644 --- a/docs/develop/go/observability.mdx +++ b/docs/develop/go/observability.mdx @@ -317,7 +317,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `DescribeWorkflow`. - In the Workflow by looking at `WorkflowInfo`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [In the Temporal CLI](/cli/workflow#list). + - [In the Temporal CLI](/cli/command-reference/workflow#list). - In code by calling `ListWorkflowExecutions`. Here is how to query Workflow Executions: diff --git a/docs/develop/go/temporal-client.mdx b/docs/develop/go/temporal-client.mdx index 0751661b19..bd4841642a 100644 --- a/docs/develop/go/temporal-client.mdx +++ b/docs/develop/go/temporal-client.mdx @@ -67,7 +67,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/server#start-dev), the connection options you must provide are minimal. +[Temporal CLI](https://docs.temporal.io/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 diff --git a/docs/develop/java/converters-and-encryption.mdx b/docs/develop/java/converters-and-encryption.mdx index e88d7e4ecb..836fb7b3ca 100644 --- a/docs/develop/java/converters-and-encryption.mdx +++ b/docs/develop/java/converters-and-encryption.mdx @@ -161,7 +161,7 @@ WorkflowServiceStubs service = WorkflowServiceStubs.newLocalServiceStubs(); ``` - Data **encoding** is performed by the client using the converters and codecs provided by Temporal or your custom implementation when passing input to the Temporal Cluster. For example, plain text input is usually serialized into a JSON object, and can then be compressed or encrypted. -- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/workflow#show) command or when browsing the Web UI to view output. +- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/command-reference/workflow#show) command or when browsing the Web UI to view output. For reference, see the [Encryption](https://github.com/temporalio/samples-java/tree/main/core/src/main/java/io/temporal/samples/encryptedpayloads) sample. diff --git a/docs/develop/java/namespaces.mdx b/docs/develop/java/namespaces.mdx index 0293bb5657..08dc313bff 100644 --- a/docs/develop/java/namespaces.mdx +++ b/docs/develop/java/namespaces.mdx @@ -96,7 +96,7 @@ Note that these APIs and Temporal CLI commands will not work with Temporal Cloud - Update information and configuration for a registered Namespace on your Temporal Service: - - With the Temporal CLI: [`temporal operator namespace update`](/cli/operator#update) + - With the Temporal CLI: [`temporal operator namespace update`](/cli/command-reference/operator#update) Example - Use the [`UpdateNamespace` API](https://github.com/temporalio/api/blob/e5cf521c6fdc71c69353f3d2ac5506dd6e827af8/temporal/api/workflowservice/v1/service.proto) to update configuration on a Namespace. Example @@ -119,7 +119,7 @@ Note that these APIs and Temporal CLI commands will not work with Temporal Cloud - Get details for a registered Namespace on your Temporal Service: - - With the Temporal CLI: [`temporal operator namespace describe`](/cli/operator#describe) + - With the Temporal CLI: [`temporal operator namespace describe`](/cli/command-reference/operator#describe) - Use the [`DescribeNamespace` API](https://github.com/temporalio/api/blob/e5cf521c6fdc71c69353f3d2ac5506dd6e827af8/temporal/api/workflowservice/v1/service.proto) to return information and configuration details for a registered Namespace. Example @@ -136,7 +136,7 @@ Note that these APIs and Temporal CLI commands will not work with Temporal Cloud - Get details for all registered Namespaces on your Temporal Service: - - With the Temporal CLI: [`temporal operator namespace list`](/cli/operator#list) + - With the Temporal CLI: [`temporal operator namespace list`](/cli/command-reference/operator#list) - Use the [`ListNamespace` API](https://github.com/temporalio/api/blob/e5cf521c6fdc71c69353f3d2ac5506dd6e827af8/temporal/api/workflowservice/v1/service.proto) to return information and configuration details for all registered Namespaces on your Temporal Service. Example diff --git a/docs/develop/java/observability.mdx b/docs/develop/java/observability.mdx index 11363a6e0f..7736aba9c5 100644 --- a/docs/develop/java/observability.mdx +++ b/docs/develop/java/observability.mdx @@ -189,7 +189,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `DescribeWorkflow`. - In the Workflow by looking at `WorkflowInfo`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [In the Temporal CLI](/cli/workflow#list). + - [In the Temporal CLI](/cli/command-reference/workflow#list). - In code by calling `ListWorkflowExecutions`. ### How to set custom Search Attributes {#custom-search-attributes} diff --git a/docs/develop/php/observability.mdx b/docs/develop/php/observability.mdx index ea2dee589c..1b0bebf6b6 100644 --- a/docs/develop/php/observability.mdx +++ b/docs/develop/php/observability.mdx @@ -126,7 +126,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `DescribeWorkflow`. - In the Workflow by looking at `WorkflowInfo`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [In the Temporal CLI](/cli/workflow#list). + - [In the Temporal CLI](/cli/command-reference/workflow#list). - In code by calling `ListWorkflowExecutions`. Here is how to query Workflow Executions: diff --git a/docs/develop/php/temporal-clients.mdx b/docs/develop/php/temporal-clients.mdx index 2a7d54e18e..66315fba3e 100644 --- a/docs/develop/php/temporal-clients.mdx +++ b/docs/develop/php/temporal-clients.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/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](https://docs.temporal.io/cli/command-reference/server#start-dev)), the number of connection options you must provide is minimal. Many SDKs default to the local host or IP address and port that Temporalite and [Docker Compose](https://github.com/temporalio/docker-compose) serve (`127.0.0.1:7233`). In the PHP SDK, different client classes are responsible for different functional areas. diff --git a/docs/develop/python/converters-and-encryption.mdx b/docs/develop/python/converters-and-encryption.mdx index ed3d1d224f..35ac01ce86 100644 --- a/docs/develop/python/converters-and-encryption.mdx +++ b/docs/develop/python/converters-and-encryption.mdx @@ -93,7 +93,7 @@ client = await Client.connect( ``` - Data **encoding** is performed by the client using the converters and codecs provided by Temporal or your custom implementation when passing input to the Temporal Cluster. For example, plain text input is usually serialized into a JSON object, and can then be compressed or encrypted. -- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/workflow#show) command or when browsing the Web UI to view output. +- Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/command-reference/workflow#show) command or when browsing the Web UI to view output. For reference, see the [Encryption](https://github.com/temporalio/samples-python/tree/main/encryption) sample. diff --git a/docs/develop/python/observability.mdx b/docs/develop/python/observability.mdx index ff67b51ea2..11635c7d3c 100644 --- a/docs/develop/python/observability.mdx +++ b/docs/develop/python/observability.mdx @@ -162,7 +162,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `DescribeWorkflow`. - In the Workflow by looking at `WorkflowInfo`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [In the Temporal CLI](/cli/operator#list-2) + - [In the Temporal CLI](/cli/command-reference/operator#list-2) - In code by calling `ListWorkflowExecutions`. Here is how to query Workflow Executions: diff --git a/docs/develop/python/temporal-client.mdx b/docs/develop/python/temporal-client.mdx index b60f95aee2..aa862dc20b 100644 --- a/docs/develop/python/temporal-client.mdx +++ b/docs/develop/python/temporal-client.mdx @@ -51,7 +51,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/server#start-dev)), the required options are minimal. If you +[Temporal CLI dev server](https://docs.temporal.io/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/converters-and-encryption.mdx b/docs/develop/ruby/converters-and-encryption.mdx index 21a0cdd95b..4cc0ca1f63 100644 --- a/docs/develop/ruby/converters-and-encryption.mdx +++ b/docs/develop/ruby/converters-and-encryption.mdx @@ -82,7 +82,7 @@ my_client = Temporalio::Client.connect( - Data **encoding** is performed by the client using the converters and codecs provided by Temporal or your custom implementation when passing input to the Temporal Cluster. For example, plain text input is usually serialized into a JSON object, and can then be compressed or encrypted. - Data **decoding** may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Cluster. - Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/workflow#show) command or when browsing the Web UI to view output. + Instead, they are stored encoded on the Cluster, and you need to provide an additional parameter when using the [temporal workflow show](/cli/command-reference/workflow#show) command or when browsing the Web UI to view output. diff --git a/docs/develop/ruby/observability.mdx b/docs/develop/ruby/observability.mdx index 571d04cdff..f77880e08a 100644 --- a/docs/develop/ruby/observability.mdx +++ b/docs/develop/ruby/observability.mdx @@ -156,7 +156,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `describe` on a `WorkflowHandle`. - In the Workflow by looking at `Temporalio::Workflow.search_attributes`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [In the Temporal CLI](/cli/operator#list-2) + - [In the Temporal CLI](/cli/command-reference/operator#list-2) - In code by calling `list_workflows`. ### List Workflow Executions {#list-workflow-executions} diff --git a/docs/develop/ruby/temporal-client.mdx b/docs/develop/ruby/temporal-client.mdx index e84791e35a..98ff00c108 100644 --- a/docs/develop/ruby/temporal-client.mdx +++ b/docs/develop/ruby/temporal-client.mdx @@ -39,7 +39,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/server#start-dev)), the required options are minimal. If you +[Temporal CLI dev server](https://docs.temporal.io/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/typescript/core-application.mdx b/docs/develop/typescript/core-application.mdx index d5a513538f..fc71d00a22 100644 --- a/docs/develop/typescript/core-application.mdx +++ b/docs/develop/typescript/core-application.mdx @@ -215,7 +215,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/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](https://docs.temporal.io/cli/command-reference/server#start-dev)), the number of connection options you must provide is minimal. Many SDKs default to the local host or IP address and port that Temporalite and [Docker Compose](https://github.com/temporalio/docker-compose) serve (`127.0.0.1:7233`). Creating a [Connection](https://typescript.temporal.io/api/classes/client.Connection) connects to the Temporal Service, and you can pass the `Connection` instance when creating the [Client](https://typescript.temporal.io/api/classes/client.Client#connection). diff --git a/docs/develop/typescript/observability.mdx b/docs/develop/typescript/observability.mdx index 95ad51d595..320a89ccdd 100644 --- a/docs/develop/typescript/observability.mdx +++ b/docs/develop/typescript/observability.mdx @@ -457,7 +457,7 @@ The steps to using custom Search Attributes are: - On the Client by calling `DescribeWorkflow`. - In the Workflow by looking at `WorkflowInfo`. - Query Workflow Executions by the Search Attribute using a [List Filter](/list-filter): - - [With the Temporal CLI](/cli/workflow#list). + - [With the Temporal CLI](/cli/command-reference/workflow#list). - In code by calling `ListWorkflowExecutions`. Here is how to query Workflow Executions: diff --git a/docs/develop/typescript/testing-suite.mdx b/docs/develop/typescript/testing-suite.mdx index 2b2cfe8214..a1146e289d 100644 --- a/docs/develop/typescript/testing-suite.mdx +++ b/docs/develop/typescript/testing-suite.mdx @@ -533,7 +533,7 @@ To replay a single Event History, use [worker.runReplayHistory](https://typescri When an Event History is replayed and non-determinism is detected (that is, the Workflow code is incompatible with the History), [DeterminismViolationError](https://typescript.temporal.io/api/classes/workflow.DeterminismViolationError) is thrown. If replay fails for any other reason, [ReplayError](https://typescript.temporal.io/api/classes/worker.ReplayError) is thrown. -In the following example, a single Event History is loaded from a JSON file on disk (as obtained from the [Web UI](/web-ui) or the [Temporal CLI](/cli/workflow#show)): +In the following example, a single Event History is loaded from a JSON file on disk (as obtained from the [Web UI](/web-ui) or the [Temporal CLI](/cli/command-reference/workflow#show)): ```ts const filePath = './history_file.json'; diff --git a/docs/encyclopedia/data-conversion/dataconversion.mdx b/docs/encyclopedia/data-conversion/dataconversion.mdx index 6171458474..fd88ef34ae 100644 --- a/docs/encyclopedia/data-conversion/dataconversion.mdx +++ b/docs/encyclopedia/data-conversion/dataconversion.mdx @@ -39,7 +39,7 @@ Data Converter steps are followed when data is sent to a Temporal Service (as in Due to how Temporal provides access to Workflow output, this implementation is asymmetric: - Data encoding is performed automatically using the default converter provided by Temporal or your custom Data Converter when passing input to a Temporal Service. For example, plain text input is usually serialized into a JSON object. -- Data decoding may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Service. Instead, they are stored encoded on the Temporal Service, and you need to provide an additional parameter when using [`temporal workflow show`](/cli/workflow#show) or when browsing the Web UI to view output. +- Data decoding may be performed by your application logic during your Workflows or Activities as necessary, but decoded Workflow results are never persisted back to the Temporal Service. Instead, they are stored encoded on the Temporal Service, and you need to provide an additional parameter when using [`temporal workflow show`](/cli/command-reference/workflow#show) or when browsing the Web UI to view output. Each piece of data (like a single argument or return value) is encoded as a [Payload](/dataconversion#payload), which consists of binary data and key-value metadata. diff --git a/docs/encyclopedia/namespaces/global-namespaces.mdx b/docs/encyclopedia/namespaces/global-namespaces.mdx index 2ba2d246fb..19f2c9fd17 100644 --- a/docs/encyclopedia/namespaces/global-namespaces.mdx +++ b/docs/encyclopedia/namespaces/global-namespaces.mdx @@ -18,8 +18,8 @@ This page provides an overview of Global Namespace. A Global Namespace is a [Namespace](/namespaces) that exists across Clusters when [Multi-Cluster Replication](/temporal-service/multi-cluster-replication) is set up. -- [How to register a Global Namespace](/cli/operator#create) -- [How to change the active Cluster for a Global Namespace](/cli/operator#update) +- [How to register a Global Namespace](/cli/command-reference/operator#create) +- [How to change the active Cluster for a Global Namespace](/cli/command-reference/operator#update) The Global Namespace feature enables Workflow Executions to progress through another Cluster in the event of a failover. diff --git a/docs/encyclopedia/nexus-registry.mdx b/docs/encyclopedia/nexus-registry.mdx index c253bdac3a..e1015705b6 100644 --- a/docs/encyclopedia/nexus-registry.mdx +++ b/docs/encyclopedia/nexus-registry.mdx @@ -54,7 +54,7 @@ Nexus Endpoints may be managed using the Temporal UI, CLI, Cloud Terraform provi - [Terraform support](/production-deployment/cloud/terraform-provider#manage-temporal-cloud-nexus-endpoints-with-terraform) for Temporal Cloud. - [tcld nexus](/cloud/tcld/nexus) for Temporal Cloud. -- [temporal operator nexus](/cli/operator#nexus) for self-hosted deployments. +- [temporal operator nexus](/cli/command-reference/operator#nexus) for self-hosted deployments. ::: ### Search for a Nexus Endpoint diff --git a/docs/encyclopedia/temporal-service/temporal-server.mdx b/docs/encyclopedia/temporal-service/temporal-server.mdx index 541d0be8f6..6723d46171 100644 --- a/docs/encyclopedia/temporal-service/temporal-server.mdx +++ b/docs/encyclopedia/temporal-service/temporal-server.mdx @@ -207,7 +207,7 @@ Ports are configurable in the Temporal Service configuration. Retention Period is the duration for which the Temporal Service stores data associated with closed Workflow Executions on a Namespace in the Persistence store. -- [How to set the Retention Period for a Namespace](/cli/operator#create) +- [How to set the Retention Period for a Namespace](/cli/command-reference/operator#create) - [How to set the Retention Period for a Namespace using the Go SDK](/develop/go/namespaces) - [How to set the Retention Period for a Namespace using the Java SDK](/develop/java/namespaces) @@ -220,10 +220,10 @@ On Temporal Service version 1.18 and later, the maximum Retention Period value f On Temporal Service versions 1.17 and earlier, the maximum Retention Period you can set is 30 days. Setting the Retention Period to 0 results in the error _A valid retention period is not set on request_. -If you don't set the Retention Period value when using the [`temporal operator namespace create`](/cli/operator#create) command, it defaults to 3 days. +If you don't set the Retention Period value when using the [`temporal operator namespace create`](/cli/command-reference/operator#create) command, it defaults to 3 days. If you don't set the Retention Period value when using the Register Namespace Request API, it returns an error. -When changing the Retention Period (with [`temporal operator namespace update`](/cli/operator#update) or the `UpdateNamespace` API), the new duration applies to Workflow Executions that close after the change is saved. +When changing the Retention Period (with [`temporal operator namespace update`](/cli/command-reference/operator#update) or the `UpdateNamespace` API), the new duration applies to Workflow Executions that close after the change is saved. :::info @@ -233,5 +233,5 @@ Changing the Retention Period does NOT affect existing closed Workflow Execution ### Manual cleanup of closed Workflow Executions -For cases where you need to remove closed Workflow Executions before their retention timer expires, you can use [`temporal workflow delete`](/cli/workflow#delete) or the `DeleteWorkflowExecution` command. +For cases where you need to remove closed Workflow Executions before their retention timer expires, you can use [`temporal workflow delete`](/cli/command-reference/workflow#delete) or the `DeleteWorkflowExecution` command. This is particularly useful along with reducing the Retention Period to clean up previously closed Workflow Executions to reduce storage costs. diff --git a/docs/encyclopedia/visibility/list-filter.mdx b/docs/encyclopedia/visibility/list-filter.mdx index 6b6a7a162a..206acb3abf 100644 --- a/docs/encyclopedia/visibility/list-filter.mdx +++ b/docs/encyclopedia/visibility/list-filter.mdx @@ -136,7 +136,7 @@ Continue until the page token becomes `null`/`nil`. #### List Filter examples -Here are examples of List Filters set with the [Temporal CLI](/cli/workflow#list): +Here are examples of List Filters set with the [Temporal CLI](/cli/command-reference/workflow#list): ``` WorkflowType = "main.YourWorkflowDefinition" and ExecutionStatus != "Running" and (StartTime > "2021-06-07T16:46:34.236-08:00" or CloseTime > "2021-06-07T16:46:34-08:00") diff --git a/docs/encyclopedia/workers/task-queues.mdx b/docs/encyclopedia/workers/task-queues.mdx index f68072c482..bb07cbb089 100644 --- a/docs/encyclopedia/workers/task-queues.mdx +++ b/docs/encyclopedia/workers/task-queues.mdx @@ -78,7 +78,7 @@ There are five places where the name of the Task Queue can be set by the develop 1. A Task Queue must be set when spawning a Workflow Execution: - - [How to start a Workflow Execution using the Temporal CLI](/cli/workflow#start) + - [How to start a Workflow Execution using the Temporal CLI](/cli/command-reference/workflow#start) - [How to start a Workflow Execution using the Go SDK](/develop/go/temporal-client#start-workflow-execution) - [How to start a Workflow Execution using the Java SDK](/develop/java/temporal-client#start-workflow-execution) - [How to start a Workflow Execution using the PHP SDK](/develop/php/temporal-client#start-workflow-execution) diff --git a/docs/encyclopedia/workers/worker-versioning.mdx b/docs/encyclopedia/workers/worker-versioning.mdx index ab8dc94218..70c6ed6b08 100644 --- a/docs/encyclopedia/workers/worker-versioning.mdx +++ b/docs/encyclopedia/workers/worker-versioning.mdx @@ -45,7 +45,7 @@ To learn more about implementing Worker Versioning, see our [Worker Versioning i ### Pinned Workflows {#pinned} -A **Pinned** Workflow is guaranteed to complete on a single Worker Deployment Version. You can mark a Workflow Type as pinned when you register it by adding an additional Pinned parameter. If you need to move a pinned Workflow to a new version, use [`temporal workflow update-options`](/cli/workflow#update-options). +A **Pinned** Workflow is guaranteed to complete on a single Worker Deployment Version. You can mark a Workflow Type as pinned when you register it by adding an additional Pinned parameter. If you need to move a pinned Workflow to a new version, use [`temporal workflow update-options`](/cli/command-reference/workflow#update-options). ### Auto-Upgrade Workflows {#auto-upgrade} diff --git a/docs/encyclopedia/workflow-message-passing/sending-messages.mdx b/docs/encyclopedia/workflow-message-passing/sending-messages.mdx index 70deb90c48..4c3c822606 100644 --- a/docs/encyclopedia/workflow-message-passing/sending-messages.mdx +++ b/docs/encyclopedia/workflow-message-passing/sending-messages.mdx @@ -47,7 +47,7 @@ You can also Signal-With-Start to lazily initialize a Workflow while sending a S #### Send a Signal from a Temporal Client or the CLI - + @@ -176,7 +176,7 @@ Queries can be sent from a Temporal Client or the Temporal CLI to a Workflow Exe You can also send a built-in "Stack Trace Query" for debugging. - + diff --git a/docs/encyclopedia/workflow/schedule.mdx b/docs/encyclopedia/workflow/schedule.mdx index 8ba15af7f5..0d4087ebf5 100644 --- a/docs/encyclopedia/workflow/schedule.mdx +++ b/docs/encyclopedia/workflow/schedule.mdx @@ -21,7 +21,7 @@ A Schedule contains instructions for starting a [Workflow Execution](/workflow-e Schedules provide a more flexible and user-friendly approach than [Temporal Cron Jobs](/cron-job). - [How to enable Schedules](#limitations) -- [How to operate Schedules using the Temporal CLI](/cli/schedule) +- [How to operate Schedules using the Temporal CLI](/cli/command-reference/schedule) A Schedule has an identity and is independent of a Workflow Execution. This differs from a Temporal Cron Job, which relies on a cron schedule as a property of the Workflow Execution. @@ -115,7 +115,7 @@ For more operational control, embed the contents of the time zone database file A Schedule can be Paused. When a Schedule is Paused, the Spec has no effect. -However, you can still force manual actions by using the [temporal schedule trigger](/cli/schedule#trigger) command. +However, you can still force manual actions by using the [temporal schedule trigger](/cli/command-reference/schedule#trigger) command. To assist communication among developers and operators, a “notes” field can be updated on pause or resume to store an explanation for the current state. diff --git a/docs/encyclopedia/workflow/workflow-execution/workflow-execution.mdx b/docs/encyclopedia/workflow/workflow-execution/workflow-execution.mdx index 59b487fe34..e06cb6d8e9 100644 --- a/docs/encyclopedia/workflow/workflow-execution/workflow-execution.mdx +++ b/docs/encyclopedia/workflow/workflow-execution/workflow-execution.mdx @@ -32,7 +32,7 @@ While the Workflow Definition is the code that defines the Workflow, the Workflo A Temporal Workflow Execution is a durable, reliable, and scalable function execution. It is the main unit of execution of a [Temporal Application](/temporal#temporal-application). -- [How to start a Workflow Execution using temporal](/cli/workflow#start) +- [How to start a Workflow Execution using temporal](/cli/command-reference/workflow#start) - [How to start a Workflow Execution using the Go SDK](/develop/go/temporal-client#start-workflow-execution) - [How to start a Workflow Execution using the Java SDK](/develop/java/temporal-client#start-workflow-execution) - [How to start a Workflow Execution using the PHP SDK](/develop/php/temporal-client#start-workflow-execution) diff --git a/docs/evaluate/temporal-cloud/limits.mdx b/docs/evaluate/temporal-cloud/limits.mdx index 9d52f935aa..ecccaee121 100644 --- a/docs/evaluate/temporal-cloud/limits.mdx +++ b/docs/evaluate/temporal-cloud/limits.mdx @@ -154,7 +154,7 @@ You can set the Retention Period between 1 and 90 days. ### Batch jobs -A Namespace can have just one [Batch job](/cli/batch) running at a time. +A Namespace can have just one [Batch job](/cli/command-reference/batch) running at a time. Each batch job operates on a maximum of 50 Workflow Executions per second. diff --git a/docs/evaluate/temporal-cloud/pricing.mdx b/docs/evaluate/temporal-cloud/pricing.mdx index 5c9768f075..401ff9be79 100644 --- a/docs/evaluate/temporal-cloud/pricing.mdx +++ b/docs/evaluate/temporal-cloud/pricing.mdx @@ -157,7 +157,7 @@ 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/batch): Batch Workflow executions also consume storage. +- [Batch jobs](https://docs.temporal.io/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/production-deployment/self-hosted-guide/defaults.mdx b/docs/production-deployment/self-hosted-guide/defaults.mdx index 03f9c4498b..f9e7476c47 100644 --- a/docs/production-deployment/self-hosted-guide/defaults.mdx +++ b/docs/production-deployment/self-hosted-guide/defaults.mdx @@ -64,7 +64,7 @@ These limits might apply specifically to each Workflow Execution and do not pert - `limit.numPendingSignals.error` - `limit.numPendingCancelRequests.error` - `limit.numPendingChildExecutions.error` - - By default, [Batch jobs](/cli/batch) are limited to one job at a time. + - By default, [Batch jobs](/cli/command-reference/batch) are limited to one job at a time. - [Custom Search Attributes limits](/search-attribute#custom-search-attribute-limits) For details on dynamic configuration keys, see [Dynamic configuration reference](/references/dynamic-configuration). diff --git a/docs/production-deployment/self-hosted-guide/namespaces.mdx b/docs/production-deployment/self-hosted-guide/namespaces.mdx index d625f40749..35013d892e 100644 --- a/docs/production-deployment/self-hosted-guide/namespaces.mdx +++ b/docs/production-deployment/self-hosted-guide/namespaces.mdx @@ -29,7 +29,7 @@ When you register a Namespace, you must set a [Retention Period](/temporal-servi You can create Namespaces using: -- **Temporal CLI** (recommended): [`temporal operator namespace create`](/cli/operator#create) +- **Temporal CLI** (recommended): [`temporal operator namespace create`](/cli/command-reference/operator#create) - **Go SDK**: [`RegisterNamespace`](/develop/go/namespaces#register-namespace) - **Java SDK**: [`RegisterNamespace`](/develop/java/namespaces#register-namespace) - **TypeScript SDK**: [Namespace management](/develop/typescript/namespaces#register-namespace) @@ -56,10 +56,10 @@ Common namespace management operations: | Operation | CLI Command | Description | |-----------|-------------|-------------| -| List | [`temporal operator namespace list`](/cli/operator#list) | List all registered Namespaces | -| Describe | [`temporal operator namespace describe`](/cli/operator#describe) | Get details for a Namespace | -| Update | [`temporal operator namespace update`](/cli/operator#update) | Update Namespace configuration | -| Delete | [`temporal operator namespace delete`](/cli/operator#delete) | Delete a Namespace and all its data | +| List | [`temporal operator namespace list`](/cli/command-reference/operator#list) | List all registered Namespaces | +| Describe | [`temporal operator namespace describe`](/cli/command-reference/operator#describe) | Get details for a Namespace | +| Update | [`temporal operator namespace update`](/cli/command-reference/operator#update) | Update Namespace configuration | +| Delete | [`temporal operator namespace delete`](/cli/command-reference/operator#delete) | Delete a Namespace and all its data | For SDK-based namespace management: - [Go SDK namespace management](/develop/go/namespaces#manage-namespaces) 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 7da95cda38..9658775545 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 @@ -40,7 +40,7 @@ If you're not using an SDK Client (rare), you can generate gRPC client stubs by: To query the API manually via command line or a GUI, first: -- If you don't already have a Server to connect to, run [`temporal server start-dev`](/cli/server#start-dev) +- If you don't already have a Server to connect to, run [`temporal server start-dev`](/cli/command-reference/server#start-dev) - Clone this repo: ```shell diff --git a/sidebars.js b/sidebars.js index 1aea3eacef..fcec5dc933 100644 --- a/sidebars.js +++ b/sidebars.js @@ -568,16 +568,26 @@ module.exports = { }, items: [ 'cli/setup-cli', - 'cli/activity', - 'cli/batch', - 'cli/config', - 'cli/env', - 'cli/operator', - 'cli/schedule', - 'cli/server', - 'cli/task-queue', - 'cli/worker', - 'cli/workflow', + 'cli/temporal-cloud', + 'cli/common-operations', + { + type: 'category', + label: 'Command reference', + collapsed: true, + items: [ + 'cli/command-reference/activity', + 'cli/command-reference/batch', + 'cli/command-reference/cmd-options', + 'cli/command-reference/config', + 'cli/command-reference/env', + 'cli/command-reference/operator', + 'cli/command-reference/schedule', + 'cli/command-reference/server', + 'cli/command-reference/task-queue', + 'cli/command-reference/worker', + 'cli/command-reference/workflow', + ], + }, ], }, { From f16fe71a1a332b1a81115c7ad5bf8b624a1f1a8b Mon Sep 17 00:00:00 2001 From: Lenny Chen Date: Wed, 14 Jan 2026 15:46:28 -0800 Subject: [PATCH 2/3] fix broken link --- docs/cli/temporal-cloud.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cli/temporal-cloud.mdx b/docs/cli/temporal-cloud.mdx index 983e14b6e5..f886f50349 100644 --- a/docs/cli/temporal-cloud.mdx +++ b/docs/cli/temporal-cloud.mdx @@ -33,7 +33,7 @@ temporal env set prod.api-key ``` You can create API keys in the Temporal Cloud UI. For details, see -[Create API keys](/production-deployment/cloud/get-started/api-keys). +[Manage API keys](/cloud/api-keys). ## Use the Cloud profile From 9c3ec01b80c941aeb9cffe571041e86dd5940938 Mon Sep 17 00:00:00 2001 From: Lenny Chen Date: Wed, 14 Jan 2026 15:52:17 -0800 Subject: [PATCH 3/3] docs: fix link errors --- docs/production-deployment/cloud/get-started/certificates.mdx | 3 ++- .../cloud/metrics/openmetrics/migration-guide.mdx | 4 ++-- docs/production-deployment/self-hosted-guide/index.mdx | 4 +++- .../self-hosted-guide/server-frontend-api-reference.mdx | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/production-deployment/cloud/get-started/certificates.mdx b/docs/production-deployment/cloud/get-started/certificates.mdx index dce0cb246a..abdcd87497 100644 --- a/docs/production-deployment/cloud/get-started/certificates.mdx +++ b/docs/production-deployment/cloud/get-started/certificates.mdx @@ -501,4 +501,5 @@ temporal \ --tls-server-name ``` -For more information on Temporal CLI environment variables, see [Environment variables](/cli#environment-variables). +For more information on Temporal CLI environment variables, see +[Environment variables](/cli/setup-cli#environment-variables). diff --git a/docs/production-deployment/cloud/metrics/openmetrics/migration-guide.mdx b/docs/production-deployment/cloud/metrics/openmetrics/migration-guide.mdx index 3913992926..b154797324 100644 --- a/docs/production-deployment/cloud/metrics/openmetrics/migration-guide.mdx +++ b/docs/production-deployment/cloud/metrics/openmetrics/migration-guide.mdx @@ -304,14 +304,14 @@ the metrics. For the complete list of labels, see the | Old Metric (v0) | New Metric (v1) | New Labels | | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------- | -| `temporal_cloud_v0_service_latency_bucket temporal_cloud_v0_service_latency_count temporal_cloud_v0_service_latency_sum` | `temporal_cloud_v1_service_latency_p99 temporal_cloud_v1_service_latency_p95 temporal_cloud_v1_service_latency_p50` | `region` | +| `temporal_cloud_v0_service_latency_bucket temporal_cloud_v0_service_latency_count temporal_cloud_v0_service_latency_sum` | `temporal_cloud_v1_service_latency_p99 temporal_cloud_v1_service_latency_p95 temporal_cloud_v1_service_latency_p50` | `region` | | `temporal_cloud_v0_replication_lag_bucket temporal_cloud_v0_replication_lag_count temporal_cloud_v0_replication_lag_sum` | `temporal_cloud_v1_replication_lag_p99 temporal_cloud_v1_replication_lag_p95 temporal_cloud_v1_replication_lag_p50` | `region` | #### Schedule Metrics | Old Metric (v0) | New Metric (v1) | New Labels | | -------------------------------------------------------- | -------------------------------------------------------- | ---------- | -| `temporal_cloud_v0_schedule_action_success_count` | `temporal_cloud_v1_schedule_action_success_count` | `region` | +| `temporal_cloud_v0_schedule_action_success_count` | `temporal_cloud_v1_schedule_action_success_count` | `region` | | `temporal_cloud_v0_schedule_buffer_overruns_count` | `temporal_cloud_v1_schedule_buffer_overruns_count` | `region` | | `temporal_cloud_v0_schedule_missed_catchup_window_count` | `temporal_cloud_v1_schedule_missed_catchup_window_count` | `region` | | `temporal_cloud_v0_schedule_rate_limited_count` | `temporal_cloud_v1_schedule_rate_limited_count` | `region` | diff --git a/docs/production-deployment/self-hosted-guide/index.mdx b/docs/production-deployment/self-hosted-guide/index.mdx index f621ca1596..d941d06edf 100644 --- a/docs/production-deployment/self-hosted-guide/index.mdx +++ b/docs/production-deployment/self-hosted-guide/index.mdx @@ -29,7 +29,9 @@ If you are just getting started with Temporal, we recommend our [introductory tu :::info Building an app? -If you are building a new Temporal Application, you might only need a [development server](/cli#start-dev-server) available through the [Temporal CLI](/cli). +If you are building a new Temporal Application, you might only need a +[development server](/cli/setup-cli#run-a-local-development-server) available through the +[Temporal CLI](/cli). Check out the [dev guide](/develop) for application development best practices. ::: 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 9658775545..89819b0403 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 @@ -102,7 +102,8 @@ As soon as [this HTTP API proposal](https://github.com/temporalio/proposals/pull ::: -To view the API docs, run [`temporal server start-dev`](/cli#start-dev-server) and open: +To view the API docs, run +[`temporal server start-dev`](/cli/setup-cli#run-a-local-development-server) and open: [`localhost:8233/openapi/`](http://localhost:8233/openapi/)