Skip to content

Commit 3af02cd

Browse files
committed
move to docusaraus i18n standard£
1 parent 975e84a commit 3af02cd

File tree

4,348 files changed

+445778
-80888
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,348 files changed

+445778
-80888
lines changed

.gitignore

+13-19
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,22 @@ node_modules
22
.docusaurus
33
.vercel
44
build
5-
docs/en/development
6-
docs/en/engines
7-
docs/en/getting-started
8-
docs/en/interfaces
9-
docs/en/operations
10-
docs/en/sql-reference
5+
docs/development
6+
docs/engines
7+
docs/getting-started
8+
docs/interfaces
9+
docs/operations
10+
docs/sql-reference
11+
docs/_clients
1112
docs/ru
1213
docs/zh
13-
docs/ja/development
14-
docs/ja/engines
15-
docs/ja/getting-started
16-
docs/ja/interfaces
17-
docs/ja/operations
18-
docs/ja/sql-reference
19-
docs/_clients
2014

2115
**/.DS_Store
2216
run.sh
2317
cleanup.sh
2418
update.sh
2519

26-
docs/en/whats-new/changelog/_2023.md
20+
docs/whats-new/changelog/_2023.md
2721

2822
.ignore
2923
.marksman.toml
@@ -46,11 +40,11 @@ active_links.json
4640
scripts/settings/tmp
4741

4842
# Files whose content gets autogenerated
49-
docs/en/cloud/manage/api/invitations-api-reference.md
50-
docs/en/cloud/manage/api/keys-api-reference.md
51-
docs/en/cloud/manage/api/members-api-reference.md
52-
docs/en/cloud/manage/api/organizations-api-reference.md
53-
docs/en/cloud/manage/api/services-api-reference.md
43+
docs/cloud/manage/api/invitations-api-reference.md
44+
docs/cloud/manage/api/keys-api-reference.md
45+
docs/cloud/manage/api/members-api-reference.md
46+
docs/cloud/manage/api/organizations-api-reference.md
47+
docs/cloud/manage/api/services-api-reference.md
5448
.vscode
5549
.aspell.en.prepl
5650
*.md.bak

clickhouseapi.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ async function main() {
158158

159159
for (const prefix in groupedEndpoints) {
160160
const markdownContent = generateDocusaurusMarkdown(openAPISpec, groupedEndpoints[prefix], prefix);
161-
fs.writeFileSync(`docs/en/cloud/manage/api/${prefix}-api-reference.md`, markdownContent);
161+
fs.writeFileSync(`docs/cloud/manage/api/${prefix}-api-reference.md`, markdownContent);
162162
}
163163

164164
console.log('Markdown files generated successfully.');

contrib-writing-guide.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ Many of the pages in the docs have a section toward the top about gathering the
193193

194194
If you are writing about some language client or visualization tool, or ELT tool and it needs to connect to an HTTPS port then this line imports the content:
195195
```jsx
196-
import ConnectionDetails from '@site/docs/en/_snippets/_gather_your_details_http.mdx';
196+
import ConnectionDetails from '@site/docs/_snippets/_gather_your_details_http.mdx';
197197
```
198198

199199
and this will render it:
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
slug: /whats-new/changelog/
3+
sidebar_position: 2
4+
sidebar_label: 2025
5+
title: 2025 Changelog
6+
note: This file is autogenerated by the yarn new-build
7+
---
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
<details>
3+
<summary>Create GCS buckets and an HMAC key</summary>
4+
5+
### ch_bucket_us_east1
6+
7+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-bucket-1.png)
8+
9+
### ch_bucket_us_east4
10+
11+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-bucket-2.png)
12+
13+
### Generate an Access key
14+
15+
### Create a service account HMAC key and secret
16+
17+
Open **Cloud Storage > Settings > Interoperability** and either choose an existing **Access key**, or **CREATE A KEY FOR A SERVICE ACCOUNT**. This guide covers the path for creating a new key for a new service account.
18+
19+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-create-a-service-account-key.png)
20+
21+
### Add a new service account
22+
23+
If this is a project with no existing service account, **CREATE NEW ACCOUNT**.
24+
25+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-create-service-account-0.png)
26+
27+
There are three steps to creating the service account, in the first step give the account a meaningful name, ID, and description.
28+
29+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-create-service-account-a.png)
30+
31+
In the Interoperability settings dialog the IAM role **Storage Object Admin** role is recommended; select that role in step two.
32+
33+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-create-service-account-2.png)
34+
35+
Step three is optional and not used in this guide. You may allow users to have these privileges based on your policies.
36+
37+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-create-service-account-3.png)
38+
39+
The service account HMAC key will be displayed. Save this information, as it will be used in the ClickHouse configuration.
40+
41+
![Add a bucket](@site/docs/integrations/data-ingestion/s3/images/GCS-guide-key.png)
42+
43+
</details>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
2+
<details>
3+
<summary>Create S3 buckets and an IAM user</summary>
4+
5+
This article demonstrates the basics of how to configure an AWS IAM user, create an S3 bucket and configure ClickHouse to use the bucket as an S3 disk. You should work with your security team to determine the permissions to be used, and consider these as a starting point.
6+
7+
### Create an AWS IAM user
8+
In this procedure, we'll be creating a service account user, not a login user.
9+
1. Log into the AWS IAM Management Console.
10+
11+
2. In "users", select **Add users**
12+
13+
![create_iam_user_0](@site/docs/_snippets/images/s3/s3-1.png)
14+
15+
3. Enter the user name and set the credential type to **Access key - Programmatic access** and select **Next: Permissions**
16+
17+
![create_iam_user_1](@site/docs/_snippets/images/s3/s3-2.png)
18+
19+
4. Do not add the user to any group; select **Next: Tags**
20+
21+
![create_iam_user_2](@site/docs/_snippets/images/s3/s3-3.png)
22+
23+
5. Unless you need to add any tags, select **Next: Review**
24+
25+
![create_iam_user_3](@site/docs/_snippets/images/s3/s3-4.png)
26+
27+
6. Select **Create User**
28+
29+
:::note
30+
The warning message stating that the user has no permissions can be ignored; permissions will be granted on the bucket for the user in the next section
31+
:::
32+
33+
![create_iam_user_4](@site/docs/_snippets/images/s3/s3-5.png)
34+
35+
7. The user is now created; click on **show** and copy the access and secret keys.
36+
:::note
37+
Save the keys somewhere else; this is the only time that the secret access key will be available.
38+
:::
39+
40+
![create_iam_user_5](@site/docs/_snippets/images/s3/s3-6.png)
41+
42+
8. Click close, then find the user in the users screen.
43+
44+
![create_iam_user_6](@site/docs/_snippets/images/s3/s3-7.png)
45+
46+
9. Copy the ARN (Amazon Resource Name) and save it for use when configuring the access policy for the bucket.
47+
48+
![create_iam_user_7](@site/docs/_snippets/images/s3/s3-8.png)
49+
50+
### Create an S3 bucket
51+
1. In the S3 bucket section, select **Create bucket**
52+
53+
![create_s3_bucket_0](@site/docs/_snippets/images/s3/s3-9.png)
54+
55+
2. Enter a bucket name, leave other options default
56+
:::note
57+
The bucket name must be unique across AWS, not just the organization, or it will emit an error.
58+
:::
59+
3. Leave `Block all Public Access` enabled; public access is not needed.
60+
61+
![create_s3_bucket_2](@site/docs/_snippets/images/s3/s3-a.png)
62+
63+
4. Select **Create Bucket** at the bottom of the page
64+
65+
![create_s3_bucket_3](@site/docs/_snippets/images/s3/s3-b.png)
66+
67+
5. Select the link, copy the ARN, and save it for use when configuring the access policy for the bucket.
68+
69+
6. Once the bucket has been created, find the new S3 bucket in the S3 buckets list and select the link
70+
71+
![create_s3_bucket_4](@site/docs/_snippets/images/s3/s3-c.png)
72+
73+
7. Select **Create folder**
74+
75+
![create_s3_bucket_5](@site/docs/_snippets/images/s3/s3-d.png)
76+
77+
8. Enter a folder name that will be the target for the ClickHouse S3 disk and select **Create folder**
78+
79+
![create_s3_bucket_6](@site/docs/_snippets/images/s3/s3-e.png)
80+
81+
9. The folder should now be visible on the bucket list
82+
83+
![create_s3_bucket_7](@site/docs/_snippets/images/s3/s3-f.png)
84+
85+
10. Select the checkbox for the new folder and click on **Copy URL** Save the URL copied to be used in the ClickHouse storage configuration in the next section.
86+
87+
![create_s3_bucket_8](@site/docs/_snippets/images/s3/s3-g.png)
88+
89+
11. Select the **Permissions** tab and click on the **Edit** button in the **Bucket Policy** section
90+
91+
![create_s3_bucket_9](@site/docs/_snippets/images/s3/s3-h.png)
92+
93+
12. Add a bucket policy, example below:
94+
```json
95+
{
96+
"Version": "2012-10-17",
97+
"Id": "Policy123456",
98+
"Statement": [
99+
{
100+
"Sid": "abc123",
101+
"Effect": "Allow",
102+
"Principal": {
103+
"AWS": "arn:aws:iam::921234567898:user/mars-s3-user"
104+
},
105+
"Action": "s3:*",
106+
"Resource": [
107+
"arn:aws:s3:::mars-doc-test",
108+
"arn:aws:s3:::mars-doc-test/*"
109+
]
110+
}
111+
]
112+
}
113+
```
114+
115+
```response
116+
|Parameter | Description | Example Value |
117+
|----------|-------------|----------------|
118+
|Version | Version of the policy interpreter, leave as-is | 2012-10-17 |
119+
|Sid | User-defined policy id | abc123 |
120+
|Effect | Whether user requests will be allowed or denied | Allow |
121+
|Principal | The accounts or user that will be allowed | arn:aws:iam::921234567898:user/mars-s3-user |
122+
|Action | What operations are allowed on the bucket| s3:*|
123+
|Resource | Which resources in the bucket will operations be allowed in | "arn:aws:s3:::mars-doc-test", "arn:aws:s3:::mars-doc-test/*" |
124+
```
125+
126+
:::note
127+
You should work with your security team to determine the permissions to be used, consider these as a starting point.
128+
For more information on Policies and settings, refer to AWS documentation:
129+
https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html
130+
:::
131+
132+
13. Save the policy configuration.
133+
134+
</details>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<details>
2+
<summary>Manage your IP Access List</summary>
3+
4+
From your ClickHouse Cloud services list choose the service that you will work with and switch to **Settings**. If the IP Access List does not contain the IP Address or range of the remote system that needs to connect to your ClickHouse Cloud service, then you can resolve the problem with **Add IPs**:
5+
6+
![Check to see if the service allows traffic](@site/docs/_snippets/images/ip-allow-list-check-list.png)
7+
8+
Add the individual IP Address, or the range of addresses that need to connect to your ClickHouse Cloud service. Modify the form as you see fit and then **Save**.
9+
10+
![Add your current IP address](@site/docs/_snippets/images/ip-allow-list-add-current-ip.png)
11+
12+
</details>
13+
File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<br/>
2+
1. After creating your ClickHouse Cloud Service, on the `Connect your app` screen, select MySQL from the drop down.
3+
<br/>
4+
5+
<div class="eighty-percent">
6+
![Credentials screen - Prompt](./images/mysql1.png)
7+
</div>
8+
9+
2. Toggle the switch to enable the MySQL interface for this specific service. This will expose port `3306` for this service and prompt you with your MySQL connection screen that include your unique MySQL username.
10+
11+
<br/>
12+
<div class="eighty-percent">
13+
![Credentials screen - Enabled MySQL](./images/mysql2.png)
14+
</div>
15+
<br/>
16+
17+
Alternatively, in order to enable the MySQL interface for an existing service:
18+
19+
3. Ensure your service is in `Running` state then click on the service you want to enable the MySQL interface for. Select "Connect" from the left menu:
20+
21+
<br/>
22+
<div class="eighty-percent">
23+
![Connection screen - Prompt MySQL](./images/mysql3.png)
24+
</div>
25+
<br/>
26+
27+
28+
4. Select MySQL from the `Connect With` drop down.
29+
30+
<br/>
31+
![Connection screen - Prompt MySQL](./images/mysql4.png)
32+
<br/>
33+
34+
5. Toggle the switch to enable the MySQL interface for this specific service. This will expose port `3306` for this service and prompt you with your MySQL connection screen that include your unique MySQL username.
35+
36+
![Connection screen - MySQL Enabled](./images/mysql5.png)
37+
38+
## Creating multiple MySQL users in ClickHouse Cloud
39+
40+
By default, there is a built-in `mysql4<subdomain>` user, which uses the same password as the `default` one. The `<subdomain>` part is the first segment of your ClickHouse Cloud hostname. This format is necessary to work with the tools that implement secure connection, but don't provide [SNI information in their TLS handshake](https://www.cloudflare.com/learning/ssl/what-is-sni), which makes it impossible to do the internal routing without an extra hint in the username (MySQL console client is one of such tools).
41+
42+
Because of this, we _highly recommend_ following the `mysql4<subdomain>_<username>` format when creating a new user intended to be used with the MySQL interface, where `<subdomain>` is a hint to identify your Cloud service, and `<username>` is an arbitrary suffix of your choice.
43+
44+
:::tip
45+
For ClickHouse Cloud hostname like `foobar.us-east1.aws.clickhouse.cloud`, the `<subdomain>` part equals to `foobar`, and a custom MySQL username could look like `mysql4foobar_team1`.
46+
:::
47+
48+
You can create extra users to use with the MySQL interface if, for example, you need to apply extra settings.
49+
50+
1. Optional - create a [settings profile](/sql-reference/statements/create/settings-profile) to apply for your custom user. For example, `my_custom_profile` with an extra setting which will be applied by default when we connect with the user we create later:
51+
52+
```sql
53+
CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1;
54+
```
55+
56+
`prefer_column_name_to_alias` is used just as an example, you can use other settings there.
57+
2. [Create a user](/sql-reference/statements/create/user) using the following format: `mysql4<subdomain>_<username>` ([see above](#creating-multiple-mysql-users-in-clickhouse-cloud)). The password must be in double SHA1 format. For example:
58+
59+
```sql
60+
CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$';
61+
```
62+
63+
or if you want to use a custom profile for this user:
64+
65+
```sql
66+
CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$' SETTINGS PROFILE 'my_custom_profile';
67+
```
68+
69+
where `my_custom_profile` is the name of the profile you created earlier.
70+
3. [Grant](/sql-reference/statements/grant) the new user the necessary permissions to interact with the desired tables or databases. For example, if you want to grant access to `system.query_log` only:
71+
72+
```sql
73+
GRANT SELECT ON system.query_log TO mysql4foobar_team1;
74+
```
75+
76+
4. Use the created user to connect to your ClickHouse Cloud service with the MySQL interface.
77+
78+
### Troubleshooting multiple MySQL users in ClickHouse Cloud
79+
80+
If you created a new MySQL user, and you see the following error while connecting via MySQL CLI client:
81+
82+
```
83+
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54
84+
```
85+
86+
In this case, ensure that the username follows the `mysql4<subdomain>_<username>` format, as described ([above](#creating-multiple-mysql-users-in-clickhouse-cloud)).

0 commit comments

Comments
 (0)