Skip to content

Commit 92965a8

Browse files
authored
Chore: move SSO docs to security section (#4896)
1 parent 56e79b8 commit 92965a8

23 files changed

+48
-49
lines changed

docs/cloud/features/scheduler/airflow.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ $ pip install tobiko-cloud-scheduler-facade[airflow]
5252

5353
### Connect Airflow to Tobiko Cloud
5454

55-
First, provision an OAuth Client for Airflow to use by following the guide on how to [provision client credentials](../single_sign_on.md#provisioning-client-credentials).
55+
First, provision an OAuth Client for Airflow to use by following the guide on how to [provision client credentials](../security/single_sign_on.md#provisioning-client-credentials).
5656

5757
After provisioning the credentials, you can obtain the `Client ID` and `Client Secret` values for Airflow to use to connect to Tobiko Cloud.
5858

docs/cloud/features/scheduler/dagster.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Dagster recommends [injecting secret values using Environment Variables](https:/
5757

5858
On this page, we demonstrate the secrets method Dagster recommends for **local development**.
5959

60-
First, provision an OAuth Client for Dagster to use by following the guide on how to [provision client credentials](../single_sign_on.md#provisioning-client-credentials).
60+
First, provision an OAuth Client for Dagster to use by following the guide on how to [provision client credentials](../security/single_sign_on.md#provisioning-client-credentials).
6161

6262
After provisioning the credentials, you can obtain the `Client ID` and `Client Secret` values for Dagster to use to connect to Tobiko Cloud.
6363

@@ -374,8 +374,8 @@ customer_revenue_by_day = AssetKey(["postgres", "sushi", "customer_revenue_by_da
374374
| Option | Description | Type | Required |
375375
|----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----:|:--------:|
376376
| `url` | The Base URL to your Tobiko Cloud instance | str | Y |
377-
| `oauth_client_id` | OAuth Client ID of the credentials you [provisioned](../single_sign_on.md#provisioning-client-credentials) for Dagster | str | N |
378-
| `oauth_client_secret` | OAuth Client Secret of the credentials you [provisioned](../single_sign_on.md#provisioning-client-credentials) for Dagster | str | N |
377+
| `oauth_client_id` | OAuth Client ID of the credentials you [provisioned](../security/single_sign_on.md#provisioning-client-credentials) for Dagster | str | N |
378+
| `oauth_client_secret` | OAuth Client Secret of the credentials you [provisioned](../security/single_sign_on.md#provisioning-client-credentials) for Dagster | str | N |
379379
| `dagster_graphql_host` | Hostname of the Dagster Webserver GraphQL endpoint | str | N |
380380
| `dagster_graphql_port` | Port of the Dagster Webserver GraphQL endpoint | int | N |
381381
| `dagster_graphql_kwargs` | Extra args to pass to the [DagsterGraphQLClient](https://docs.dagster.io/api/python-api/libraries/dagster-graphql#dagster_graphql.DagsterGraphQLClient) class when it is instantiated | dict | N |

docs/cloud/features/scheduler/hybrid_executors_docker_compose.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Both executors must be properly configured with environment variables to connect
1919

2020
- Access to a [data warehouse supported by Tobiko Cloud](../../../integrations/overview.md#execution-engines) (e.g., Postgres, Snowflake, BigQuery)
2121
- Docker and Docker Compose
22-
- A Tobiko Cloud account with [client ID and client secret](../single_sign_on.md#provisioning-client-credentials)
22+
- A Tobiko Cloud account with [client ID and client secret](../security/single_sign_on.md#provisioning-client-credentials)
2323

2424
## Quick start guide
2525

docs/cloud/features/scheduler/hybrid_executors_helm.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Both executors must be properly configured with environment variables to connect
1717

1818
- Access to a [data warehouse supported by Tobiko Cloud](../../../integrations/overview.md#execution-engines) (e.g., Postgres, Snowflake, BigQuery)
1919
- Helm 3.8+
20-
- A Tobiko Cloud account with [client ID and client secret](../single_sign_on.md#provisioning-client-credentials)
20+
- A Tobiko Cloud account with [client ID and client secret](../security/single_sign_on.md#provisioning-client-credentials)
2121

2222
## Quick start guide
2323

@@ -267,7 +267,7 @@ run:
267267

268268
## Defining Custom Environment Variables
269269

270-
If there are additional environment variables that are required to run your project, you will want to define them for both the apply and run executors.
270+
If there are additional environment variables that are required to run your project, you will want to define them for both the apply and run executors.
271271

272272
```yaml
273273
apply:

docs/cloud/features/scheduler/hybrid_executors_overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ One important type of environment variable is the `TCLOUD` variables used for co
5757

5858
The first required `TCLOUD` variable is a unique Tobiko Cloud URL for your project, which your Solutions Architect will provide after your project is created.
5959

60-
You also need the Client ID and Client Secret variables, which are generated when you [create an OAuth Client](../single_sign_on.md#provisioning-client-credentials) in the Tobiko Cloud UI.
60+
You also need the Client ID and Client Secret variables, which are generated when you [create an OAuth Client](../security/single_sign_on.md#provisioning-client-credentials) in the Tobiko Cloud UI.
6161

6262
Specify the URL, Client ID, and Client Secret in these environment variables:
6363

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# Security Overview
22

33

4-
At Tobiko, we treat security as a first-class citizen because we know how valuable your data assets are. Our team follows and executes security best practices across each layer of our product.
4+
At Tobiko, we treat security as a first-class citizen because we know how valuable your data assets are. Our team follows and executes security best practices across each layer of our product.
55

66
## Tobiko Cloud Standard Deployment
77

8-
Our standard Tobiko Cloud deployment consists of several components that are each responsible for different parts of the product.
8+
Our standard Tobiko Cloud deployment consists of several components that are each responsible for different parts of the product.
99

10-
Below is a diagram of the components along with their descriptions.
10+
Below is a diagram of the components along with their descriptions.
1111

12-
![tobiko_cloud_standard_deployment](./tcloud_standard_deployment.png){ width=80% height=60% style="display: block; margin: 0 auto" }
12+
![tobiko_cloud_standard_deployment](./security/tcloud_standard_deployment.png){ width=80% height=60% style="display: block; margin: 0 auto" }
1313

1414
- **Scheduler**: Orchestrates schedule cadence and hosts state metadata (code versions, logs, cost)
1515
- **Executor**: Applies code changes and runs SQL queries (actual data processing in SQL Engine) and Python models in proper DAG order.
@@ -18,29 +18,29 @@ Below is a diagram of the components along with their descriptions.
1818

1919
## Tobiko Cloud Hybrid Deployment
2020

21-
For some customers, our hybrid deployment option is a great fit. It provides a seamless experience with Tobiko Cloud but within your own VPC and infrastructure.
21+
For some customers, our hybrid deployment option is a great fit. It provides a seamless experience with Tobiko Cloud but within your own VPC and infrastructure.
2222

23-
In a hybrid deployment, Tobiko Cloud does not execute tasks directly with the engine. Instead, it passes tasks to the executors hosted in your environment, which then execute the tasks with the engine.
23+
In a hybrid deployment, Tobiko Cloud does not execute tasks directly with the engine. Instead, it passes tasks to the executors hosted in your environment, which then execute the tasks with the engine.
2424

2525
Executors are Docker containers that connect to both Tobiko Cloud and your SQL engine. They pull work tasks from the Tobiko Cloud scheduler and execute them with your SQL engine. This is a pull-only mechanism authenticated through an OAuth Client ID/Secret. Whitelist IPs in your network to allow reaching Tobiko Cloud IPs from the executor: 34.28.17.91, 34.136.27.153, 34.136.131.20
2626

27-
Below is a diagram of the components along with their description.
27+
Below is a diagram of the components along with their description.
2828

29-
![tobiko_cloud_hybrid_deployment](./tcloud_hybrid_deployment.png){ width=80% height=60% style="display: block; margin: 0 auto" }
29+
![tobiko_cloud_hybrid_deployment](./security/tcloud_hybrid_deployment.png){ width=80% height=60% style="display: block; margin: 0 auto" }
3030

3131
- **Scheduler**: Orchestrates schedule cadence and hosts state metadata (code versions, logs, cost). **Never pushes** instructions to executor.
3232
- **Executor**: Appplies code changes and runs SQL queries and Python models in proper DAG order (actual data processing in SQL Engine)
3333
- **Gateway**: Stores authentication credentials for SQL Engine. Secured through your secrets manager or Kubernetes Secrets.
3434
- **SQL Engine**: Processes and stores data based on the above instructions
35-
- **Executor -> Scheduler**: A pull-only mechanism for obtaining work tasks.
35+
- **Executor -> Scheduler**: A pull-only mechanism for obtaining work tasks.
3636
- **Helm Chart**: For production environements, we provide a [Helm chart](../scheduler/hybrid_executors_helm.md) that includes robust configurability, secret management, and scaling options.
3737
- **Docker Compose**: For simpler environments or testing, we offer a [Docker Compose setup](../scheduler/hybrid_executors_docker_compose.md) to quickly deploy executors on any machine with Docker.
3838

3939

4040

4141
## Internal Code Practices
4242

43-
We enforce coding standards throughout Tobiko to write, maintain, and collaborate on code effectively. These practice ensure consistency, maintainability, reliability, and most importantly, trust.
43+
We enforce coding standards throughout Tobiko to write, maintain, and collaborate on code effectively. These practice ensure consistency, maintainability, reliability, and most importantly, trust.
4444

4545
A few key components of our internal code requirements:
4646

@@ -49,19 +49,19 @@ A few key components of our internal code requirements:
4949
- We sign commits and register the key with GitHub ([Github Docs](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)).
5050
- Binaries are signed using cosign and OIDC for keyless ([Signing docs](https://docs.sigstore.dev/cosign/signing/overview/)).
5151
- Attestations are created to certify an image, enforced with GCP Binary Authorization ([Attestation docs](https://cloud.google.com/binary-authorization/docs/key-concepts#attestations)).
52-
- Encryption is a key feature of our security posture and is enforced at each stage of access. For example, the state database automatically encrypts all data. Credentials are also securely encrypted and stored.
52+
- Encryption is a key feature of our security posture and is enforced at each stage of access. For example, the state database automatically encrypts all data. Credentials are also securely encrypted and stored.
5353
- We back up each state database nightly and before upgrades. These backups are stored for 14 days.
5454

5555
## Penetration Testing
5656

5757
At least once a year, Tobiko engages a third-party security firm to perform a penetration test. This test evaluates our systems by identifying and attempting to exploit known vulnerabilities, focusing on critical external and/or internal assets. A detailed report is available upon request.
58-
5958

60-
## Asset and Access Management
59+
60+
## Asset and Access Management
6161

6262
### How do we protect PGP keys?
6363

64-
If an employee loses their laptop, we don't need to get the old PGP key back because we can invalidate the key directly.
64+
If an employee loses their laptop, we don't need to get the old PGP key back because we can invalidate the key directly.
6565

6666
We use GitHub to sign code commits. At the time the code was committed, the PGP key was valid. When an employee loses their laptop, we will invalidate it, and they will regenerate a new key to use in future commits. The old commits are still valid because the PGP key was valid at the time the commit was made.
6767

@@ -77,4 +77,3 @@ We would revoke access for the GitHub user account associated with the compromis
7777
- We follow a formal IT asset disposal procedure to prevent key compromise through improper hardware disposal.
7878
- See above for PGP key protection.
7979
- Binaries are signed using Cosign and OIDC for keyless signing.
80-

docs/cloud/features/security/tcloud_hybrid_deployment.png renamed to docs/cloud/features/security/security/tcloud_hybrid_deployment.png

File renamed without changes.

docs/cloud/features/security/tcloud_standard_deployment.png renamed to docs/cloud/features/security/security/tcloud_standard_deployment.png

File renamed without changes.

0 commit comments

Comments
 (0)