Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/cli/setup-cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ extension using the following command:

:::tip Support, stability, and dependency info

The Temporal Cloud extension is in [Pre-release](/evaluate/development-production-features/release-stages#pre-release).
The Temporal Cloud extension is in [Public Preview](/evaluate/development-production-features/release-stages#public-preview).
APIs and configuration may change before the stable release.

:::
Expand Down
46 changes: 43 additions & 3 deletions docs/cloud/aws-export-s3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ tags:
- Temporal Cloud
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import * as Components from '@site/src/components';

## Prerequisites
Expand All @@ -29,12 +31,12 @@ Before configuring the Export Sink, ensure you have the following:
- An AWS S3 bucket.
- The S3 bucket must reside in the same region as your Namespace.
- (Optional) An IAM role that has write permission to the above S3 bucket.
- You can follow the automation in the UI to create the IAM role. Please pre-create the role if setting up Export via terraform/tcld.
- You can follow the automation in the UI to create the IAM role. Please pre-create the role if setting up Export via Terraform or the CLI.
- (Optional) A KMS ARN associated with the S3 bucket.

## Configure Workflow History export

There are multiple ways to configure export: through the [Temporal Cloud UI](#using-temporal-cloud-ui), [`tcld`](#using-tcld), or [`terraform`](#using-terraform).
There are multiple ways to configure export: through the [Temporal Cloud UI](#using-temporal-cloud-ui), the [CLI](#using-the-cli), or [`terraform`](#using-terraform).

### Using Temporal Cloud UI

Expand Down Expand Up @@ -96,7 +98,42 @@ You can manually configure a CloudFormation stack using the provided template.
- Configure the CloudFormation template for your export sink.
- Follow the steps in the [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) by uploading the template to the CloudFormation console.

### Using `tcld`
### Using the CLI

<Tabs groupId="cloud-cli" queryString>
<TabItem value="temporal-cloud" label="Temporal CLI" default>

Run the `temporal cloud namespace export s3 create` command and provide the following information:

- `--namespace`: The Namespace to configure export for.
- `--sink-name`: The name of the export sink.
- `--role-arn`: The ARN of the AWS IAM role to use for the CloudFormation stack that has write permission to the S3 bucket.
- `--bucket-name`: The name of the AWS S3 bucket.
- `--region`: The AWS region the S3 bucket is in.

For example:

```command
temporal cloud namespace export s3 create \
--namespace "your-namespace.your-account" \
--sink-name "your-sink-name" \
--role-arn "arn:aws:iam::123456789012:role/test-sink" \
--bucket-name "your-aws-s3-bucket-name" \
--region "us-east-1"
```

Retrieve the status of this command by running the `temporal cloud namespace export get` command.

For example:

```command
temporal cloud namespace export get \
--namespace "your-namespace.your-account" \
--sink-name "your-sink-name"
```

</TabItem>
<TabItem value="tcld" label="tcld">

Run the `tcld namespace export s3 create` command and provide the following information:

Expand All @@ -119,6 +156,9 @@ For example:
tcld namespace export s3 get --namespace "your-namespace.your-account" --sink-name "your-sink-name"
```

</TabItem>
</Tabs>

The following is an example of the output:

```json
Expand Down
37 changes: 35 additions & 2 deletions docs/cloud/capacity-modes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ tags:
- TRUs
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Each Namespace in Temporal has a rate limit, which is measured in [Actions](/cloud/pricing#action) per second.
Temporal offers two different modes for adjusting capacity: On-Demand Capacity or Provisioned Capacity.
With On-Demand Capacity, Namespace capacity is increased automatically along with usage.
Expand Down Expand Up @@ -116,7 +119,7 @@ Each Namespace has a rate limit, which is measured in Actions per second (APS).
Your APS limit automatically adjusts based on a formula that compares your average usage over the last 7 days and your usage at the 90th percentile, or P90.
Your throughput limit will never fall below the [default limit](/cloud/limits#actions-per-second) for your Namespace.
Under On-Demand capacity you are only charged for the Actions you use.
To see your current limit, view it in the Temporal Cloud UI under the Namespace overview, retrieve it with the [CLI (`tcld`)](/cloud/tcld/namespace/#capacity) by running `tcld namespace capacity get`, or track the `temporal_cloud_v1_action_limit` metric described in [Monitoring Trends Against Limits](/cloud/service-health#rps-aps-rate-limits).
To see your current limit, view it in the Temporal Cloud UI under the Namespace overview, retrieve it with the CLI by running [`temporal cloud namespace capacity get`](/cli/command-reference/cloud/namespace#capacity-get) or [`tcld namespace capacity get`](/cloud/tcld/namespace/#capacity), or track the `temporal_cloud_v1_action_limit` metric described in [Monitoring Trends Against Limits](/cloud/service-health#rps-aps-rate-limits).

For example, if your average APS over the last 7 days was 200 and your P90 was 500, your limit would be the greater of:
* The [default limit](/cloud/limits#actions-per-second)
Expand Down Expand Up @@ -210,8 +213,35 @@ See [Monitoring Trends Against Limits](/cloud/service-health#rps-aps-rate-limits

### Setting Capacity Modes from the CLI

<Tabs groupId="cloud-cli" queryString>
<TabItem value="temporal-cloud" label="Temporal CLI" default>

```command
temporal cloud namespace capacity update \
--namespace <namespace_name> \
--capacity-mode <on_demand|provisioned> \
--capacity-value <tru_value>
Comment on lines +220 to +223
```

Use this command to specify the Namespace name and configure the capacity settings:

* `--capacity-mode` sets the billing mode for the Namespace. Use `on_demand` for automatic scaling or `provisioned` for a fixed capacity allocation.
* `--capacity-value` sets the throughput value in TRUs (Temporal Resource Units).

Optional flags:

* `--async-operation-id` specifies an identifier for tracking the asynchronous operation. If not specified, the CLI generates one automatically.
* `--resource-version` specifies the resource version (etag) to update from. If not set, the CLI uses the latest version.

</TabItem>
<TabItem value="tcld" label="tcld">

```command
tcld namespace capacity update --namespace <namespace_name> --capacity-mode <on_demand|provisioned> --capacity-value <tru value> [--request–id <request_id> --resource-version <resource-version>]
tcld namespace capacity update \
--namespace <namespace_name> \
--capacity-mode <on_demand|provisioned> \
--capacity-value <tru_value> \
[--request-id <request_id> --resource-version <resource-version>]
```

Use this command to specify the Namespace name and configure the capacity settings:
Expand All @@ -226,6 +256,9 @@ Optional flags:

If using API key authentication with the `--api-key` flag, you must add it directly after the tcld command and before capacity update.

</TabItem>
</Tabs>

### Setting Capacity Modes from the API

Call the `UpdateNamespace` API after Namespace creation and define the desired capacity state as part of the capacity spec.
108 changes: 95 additions & 13 deletions docs/cloud/connectivity/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ keywords:
- term
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { CaptionedImage, SdkTabs } from '@site/src/components';

## Private network connectivity for namespaces
Expand Down Expand Up @@ -101,7 +103,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](/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 the [Temporal Cloud CLI extension](/cli/cloud), [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

Expand All @@ -119,32 +121,52 @@ There is only one public rule allowed per account, because it's generic and can

## Creating a connectivity rule

### Temporal Cloud CLI (tcld)
### Temporal Cloud CLI

Create private connectivity rule (AWS):
<Tabs groupId="cloud-cli" queryString>
<TabItem value="temporal-cloud" label="Temporal CLI" default>

Create a private connectivity rule (AWS):

```bash
temporal cloud connectivity private create --connection-id "vpce-abcde" --region "aws-us-east-1"
```

Create a private connectivity rule (GCP):

```bash
temporal cloud connectivity private create --connection-id "1234567890" --region "gcp-us-central1" --gcp-project-id "my-project-123"
```

Create a public connectivity rule. You only need to do this once for your account:

```bash
temporal cloud connectivity public create
```

</TabItem>
<TabItem value="tcld" label="tcld">

Create a private connectivity rule (AWS):

```bash
tcld connectivity-rule create --connectivity-type private --connection-id "vpce-abcde" --region "aws-us-east-1"
```

Create private connectivity rule (GCP):
Create a private connectivity rule (GCP):

```bash
tcld connectivity-rule create --connectivity-type private --connection-id "1234567890" --region "gcp-us-central1" --gcp-project-id "my-project-123"
```

Create public connectivity rule (you only need to do this once ever in your account):
Create a public connectivity rule. You only need to do this once for your account:

```bash
tcld connectivity-rule create --connectivity-type public
```

To enable [Stable IPs](/cloud/connectivity/ip-addresses#stable-ip-addresses) on the public rule, use the Cloud Ops API or Terraform. See [How to enable Stable IPs](/cloud/connectivity/ip-addresses#how-to-enable-stable-ips).

The `cr` alias works the same way:

Private connectivity rule:

```bash
tcld cr create --connectivity-type private --connection-id "vpce-abcde" --region "aws-us-east-1"
```
Expand All @@ -153,6 +175,11 @@ tcld cr create --connectivity-type private --connection-id "vpce-abcde" --region
tcld cr create --connectivity-type public
```

</TabItem>
</Tabs>

To enable [Stable IPs](/cloud/connectivity/ip-addresses#stable-ip-addresses) on the public rule, use the Cloud Ops API or Terraform. See [How to enable Stable IPs](/cloud/connectivity/ip-addresses#how-to-enable-stable-ips).

### Terraform

[Examples in the Terraform repo](https://github.com/temporalio/terraform-provider-temporalcloud/blob/main/examples/resources/temporalcloud_connectivity_rule/resource.tf)
Expand All @@ -163,9 +190,35 @@ Be careful! When any connectivity rules are set on a namespace, that namespace i

If you already have workers using a namespace, adding both a public rule and any private rules simultaneously can help you avoid unintended loss of access. You can then ensure all workers are using private connections, and then remove the public rule.

### Temporal Cloud CLI (tcld)
### Temporal Cloud CLI

<Tabs groupId="cloud-cli" queryString>
<TabItem value="temporal-cloud" label="Temporal CLI" default>

Setting the connectivity rules on a namespace:
Attach connectivity rules to a namespace:

```bash
temporal cloud namespace connectivity attach --namespace "my-namespace.abc123" \
--connectivity-rule-id "rule-id-1" --connectivity-rule-id "rule-id-2"
```

Rules attach and detach individually. To detach `rule-c` while leaving `rule-a` and `rule-b` in place, detach only `rule-c`:

```bash
temporal cloud namespace connectivity detach --namespace "my-namespace.abc123" \
--connectivity-rule-id "rule-c"
```

Detaching every rule makes the namespace public. List the attached rules first, then detach them:

```bash
temporal cloud namespace connectivity list --namespace "my-namespace.abc123"
```

</TabItem>
<TabItem value="tcld" label="tcld">

Set the connectivity rules on a namespace:

```bash
tcld namespace set-connectivity-rules --namespace "my-namespace.abc123" --connectivity-rule-ids "rule-id-1" --connectivity-rule-ids "rule-id-2"
Expand All @@ -180,7 +233,7 @@ tcld n scrs -n "my-namespace.abc123" --ids "rule-id-1" --ids "rule-id-2"
Connectivity rules are attached as a set, so if rules `rule-a`, `rule-b`, and `rule-c` were attached to a namespace and you wanted to detach `rule-c` only, you'd make one call attaching both `rule-a` and `rule-b`:

```bash
tcld namespace set-connectivity-rules --namespace "my-namespace.abc123 --ids rule-a --ids rule-b
tcld namespace set-connectivity-rules --namespace "my-namespace.abc123" --ids rule-a --ids rule-b
```

Remove all connectivity rules (this will make the namespace public):
Expand All @@ -189,6 +242,9 @@ Remove all connectivity rules (this will make the namespace public):
tcld namespace set-connectivity-rules --namespace "my-namespace.abc123" --remove-all
```

</TabItem>
</Tabs>

### Terraform

[Example in the Terraform repo](https://github.com/temporalio/terraform-provider-temporalcloud/tree/main/examples/resources/temporalcloud_namespace/resource.tf#L113-L128)
Expand All @@ -202,18 +258,44 @@ You have two ways to view the connectivity rules attached to a particular namesp

Connectivity rules are included in the namespace details returned by the `namespace get` command.

<Tabs groupId="cloud-cli" queryString>
<TabItem value="temporal-cloud" label="Temporal CLI" default>

```bash
temporal cloud namespace get -n "my-namespace.abc123"
```

</TabItem>
<TabItem value="tcld" label="tcld">

```bash
tcld namespace get -n "my-namespace.abc123"
```

</TabItem>
</Tabs>

### List connectivity rules by namespace

To see only the connectivity rules for a specific namespace (without other namespace details), use the `connectivity-rule list` command with a namespace argument.
To see only the connectivity rules for a specific namespace, without other namespace details, list the rules for that namespace.

<Tabs groupId="cloud-cli" queryString>
<TabItem value="temporal-cloud" label="Temporal CLI" default>

```bash
temporal cloud namespace connectivity list -n "my-namespace.abc123"
```

</TabItem>
<TabItem value="tcld" label="tcld">

```bash
tcld connectivity-rule list -n "my-namespace.abc123"
```

</TabItem>
</Tabs>

## Update DNS or clients to use private connectivity

We strongly recommend using private DNS instead of updating client server and TLS settings:
Expand Down
Loading