|
| 1 | +--- |
| 2 | +slug: /integrations/integration-development/documenting-your-integration |
| 3 | +sidebar_label: 'Documenting your integration' |
| 4 | +sidebar_position: 4 |
| 5 | +title: 'Documenting your ClickHouse integration' |
| 6 | +description: 'How to contribute integration pages to clickhouse-docs, including required sections and a copy-paste skeleton.' |
| 7 | +keywords: ['partner', 'integration', 'documentation', 'contributing', 'pull request', 'integration docs'] |
| 8 | +doc_type: 'guide' |
| 9 | +--- |
| 10 | + |
| 11 | +# Documenting your ClickHouse integration |
| 12 | + |
| 13 | +Integration documentation on this site gives end users one place to scope and troubleshoot setups. This page describes what to include, where files go, and how to open a pull request. |
| 14 | + |
| 15 | +Start with [Building integrations](/integrations/integration-development/building-integrations) and [Testing your integration](/integrations/integration-development/testing-your-integration) if you have not already. |
| 16 | + |
| 17 | +## Where docs live {#where-docs-live} |
| 18 | + |
| 19 | +- **Repository:** [`ClickHouse/clickhouse-docs`](https://github.com/ClickHouse/clickhouse-docs) |
| 20 | +- **Format:** Markdown, built with Docusaurus |
| 21 | +- **Location:** `/docs/integrations/<category>/<your-integration>/`, where `<category>` reflects what your product does (`data-visualization`, `data-ingestion`, `language-clients`, and so on) |
| 22 | +- **Process:** open a pull request against `main`. The ClickHouse integrations team reviews. First-time contributors sign the Contributor License Agreement when the bot prompts on the PR |
| 23 | + |
| 24 | +Integration pages in this repository are the primary reference for end users. You can link to supplementary documentation on your site from your integration page for product-specific details. |
| 25 | + |
| 26 | +Good exemplars: [Tableau](/integrations/tableau) and [Metabase](/integrations/metabase). |
| 27 | + |
| 28 | +## Choosing a category {#choosing-a-category} |
| 29 | + |
| 30 | +Pick the category that best matches what your product does. Browse existing categories under [Integrations](/integrations) before you open a PR. If you are unsure, note your proposed category in the PR description and the integrations team will help place the page. |
| 31 | + |
| 32 | +## Required sections {#required-sections} |
| 33 | + |
| 34 | +Every integration page should cover the following, ideally in this order: |
| 35 | + |
| 36 | +1. **Purpose.** What problem the integration solves, in two or three sentences. Avoid marketing copy. Readers are usually engineers scoping a setup |
| 37 | +2. **Prerequisites and supported version matrix.** What the user needs installed and which versions you support for **both ClickHouse Cloud and self-hosted (open source)**. A small table works well |
| 38 | +3. **Setup walkthrough.** Step-by-step instructions to a working connection, with **side-by-side coverage of Cloud and self-hosted** where they differ (host, port, TLS) |
| 39 | +4. **Authentication.** Which auth modes you support (username and password over TLS at minimum, plus mTLS, SSL client cert, IP allow-list notes if relevant) |
| 40 | +5. **End-to-end example.** At least one realistic example from connection through a meaningful result. Use a [ClickHouse example dataset](/getting-started/example-datasets) so readers can reproduce it |
| 41 | +6. **Known limits and performance characteristics.** Type-system gaps, result-set thresholds, throughput notes, unsupported features. Honesty here saves support cycles |
| 42 | +7. **Troubleshooting.** Common errors and resolutions. Two or three frequent cases are enough for a first version |
| 43 | + |
| 44 | +## Style notes {#style-notes} |
| 45 | + |
| 46 | +- **Show both Cloud and self-hosted.** Cloud typically uses HTTPS on port `8443` and native TCP on `9440`. Self-hosted defaults to `8123` and `9000` |
| 47 | +- **Use Docusaurus admonitions** (`:::note`, `:::warning`, `:::tip`) for callouts instead of bold paragraphs |
| 48 | +- **Link out for depth.** Link to existing docs for data types, formats, JDBC, ClickPipes, and similar topics instead of re-explaining them |
| 49 | +- **No marketing.** Integration pages here are technical reference. Promotional content belongs on your site; we can link to it from the partner directory |
| 50 | + |
| 51 | +## Copy-paste skeleton {#copy-paste-skeleton} |
| 52 | + |
| 53 | +Fill in the bracketed sections, save as `/docs/integrations/<category>/<your-integration>/index.md`, and open a PR. |
| 54 | + |
| 55 | +```markdown |
| 56 | +# [Your product] and ClickHouse |
| 57 | + |
| 58 | +[One to three sentences: what the integration does and why a |
| 59 | +ClickHouse user would want it.] |
| 60 | + |
| 61 | +## Prerequisites |
| 62 | + |
| 63 | +- [Your product, version X.Y or later] |
| 64 | +- ClickHouse Cloud, or self-hosted ClickHouse version [X.Y] or later |
| 65 | +- [Anything else: driver, plugin, network access requirements] |
| 66 | + |
| 67 | +### Version matrix |
| 68 | + |
| 69 | +| [Your product] | ClickHouse Cloud | ClickHouse open source | Notes | |
| 70 | +| -------------- | ---------------- | ---------------------- | -------- | |
| 71 | +| X.Y | ✅ | ✅ 24.x+ | [if any] | |
| 72 | + |
| 73 | +## Setup |
| 74 | + |
| 75 | +### Connect to ClickHouse Cloud |
| 76 | + |
| 77 | +1. In the ClickHouse Cloud console, select your service and click **Connect**. |
| 78 | +2. Choose **HTTPS**. Copy the host, port (8443), username, and password. |
| 79 | +3. In [your product], [steps to configure the connection]. |
| 80 | + |
| 81 | +### Connect to self-hosted ClickHouse |
| 82 | + |
| 83 | +1. [How to point at a self-hosted instance — host, port 8123 or 9000, TLS notes.] |
| 84 | +2. In [your product], [steps to configure the connection]. |
| 85 | + |
| 86 | +## Authentication |
| 87 | + |
| 88 | +[List supported auth modes — username/password over TLS, mTLS, etc. — and how |
| 89 | +to configure each.] |
| 90 | + |
| 91 | +## Example: querying the [dataset] dataset |
| 92 | + |
| 93 | +[Walkthrough using one of the ClickHouse example datasets, end-to-end.] |
| 94 | + |
| 95 | +## Known limits |
| 96 | + |
| 97 | +- [Types not yet supported, e.g., deeply nested JSON] |
| 98 | +- [Result-set size thresholds or other performance notes] |
| 99 | +- [Feature gaps] |
| 100 | + |
| 101 | +## Troubleshooting |
| 102 | + |
| 103 | +### [Common error message] |
| 104 | + |
| 105 | +[Cause and resolution.] |
| 106 | + |
| 107 | +### [Another common error] |
| 108 | + |
| 109 | +[Cause and resolution.] |
| 110 | +``` |
| 111 | + |
| 112 | +## Review {#review} |
| 113 | + |
| 114 | +The ClickHouse integrations team reviews PRs for technical accuracy, Cloud and self-hosted coverage, and docs style. Iterate in the PR until reviewers approve. That approval is the merge gate. |
0 commit comments