> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Embeddable é um kit de ferramentas para desenvolvedores criarem experiências de análise de dados rápidas, interativas e totalmente personalizadas diretamente no seu aplicativo.

# Conectando o Embeddable ao ClickHouse

export const CommunityMaintainedBadge = () => {
  return <div className="CommunityMaintainedBadge">
            <div className="CommunityMaintainedIcon">
            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256">
                <path d="M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z"></path>
            </svg>
        </div>
            Mantido pela comunidade
        </div>;
};

No [Embeddable](https://embeddable.com/), você define [Modelos de Dados](https://docs.embeddable.com/data-modeling/introduction) e [Componentes](https://docs.embeddable.com/development/introduction) em código (armazenado no seu próprio repositório de código) e usa nosso **SDK** para disponibilizá-los à sua equipe no poderoso **builder no-code** do Embeddable.

O resultado final é a capacidade de oferecer análises rápidas e interativas voltadas para o cliente diretamente no seu produto; projetadas pela sua equipe de produto; desenvolvidas pela sua equipe de engenharia; mantidas pelas suas equipes de atendimento ao cliente e de dados. Exatamente como deve ser.

A segurança em nível de linha integrada garante que cada usuário veja apenas os dados que tem permissão para ver. E dois níveis de cache totalmente configuráveis significam que você pode oferecer análises rápidas, em tempo real e em escala.

<div id="1-gather-your-connection-details">
  ## 1. Reúna suas informações de conexão
</div>

Para se conectar ao ClickHouse via HTTP(S), você precisa das seguintes informações:

| Parâmetro(s)              | Descrição                                                                                                         |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `HOST` and `PORT`         | Normalmente, a porta é 8443 ao usar TLS ou 8123 quando não se usa TLS.                                            |
| `DATABASE NAME`           | Por padrão, há um banco de dados chamado `default`; use o nome do banco de dados ao qual você deseja se conectar. |
| `USERNAME` and `PASSWORD` | Por padrão, o nome de usuário é `default`. Use o nome de usuário apropriado para o seu caso de uso.               |

Os detalhes do seu serviço do ClickHouse Cloud estão disponíveis no console do ClickHouse Cloud.
Selecione um serviço e clique em **Connect**:

<Image img="/images/_snippets/cloud-connect-button.webp" size="md" alt="botão Connect do serviço do ClickHouse Cloud" border />

Escolha **HTTPS**. Os detalhes de conexão são exibidos em um comando `curl` de exemplo.

<Image img="/images/_snippets/connection-details-https.webp" size="md" alt="detalhes de conexão HTTPS do ClickHouse Cloud" border />

Se você estiver usando ClickHouse autogerenciado, os detalhes de conexão são definidos pelo administrador do seu ClickHouse.

<div id="2-create-a-clickhouse-connection-type">
  ## 2. Crie um tipo de conexão do ClickHouse
</div>

Adicione uma conexão de banco de dados usando a API Embeddable. Essa conexão é usada para se conectar ao seu serviço ClickHouse. Você pode adicionar uma conexão com a seguinte chamada de API:

```javascript title="Query" theme={null}
// por razões de segurança, isso *nunca* deve ser chamado do lado do cliente
fetch('https://api.embeddable.com/api/v1/connections', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
    Authorization: `Bearer ${apiKey}` /* mantenha sua API Key segura */,
  },
  body: JSON.stringify({
    name: 'my-clickhouse-db',
    type: 'clickhouse',
    credentials: {
      host: 'my.clickhouse.host',
      user: 'clickhouse_user',
      port: 8443,
      password: '*****',
    },
  }),
});
```

```text title="Response" theme={null}
Status 201 { errorMessage: null }
```

O item acima representa uma ação `CREATE`, mas todas as operações `CRUD` estão disponíveis.

A `apiKey` pode ser encontrada clicando em "**Publish**" em um dos seus dashboards no Embeddable.

O `name` é um nome exclusivo para identificar esta conexão.

* Por padrão, seus Modelos de Dados procurarão uma conexão chamada "default", mas você pode fornecer aos seus modelos diferentes nomes de `data_source` para permitir conectar diferentes modelos de dados a diferentes conexões (basta especificar o nome de data\_source no modelo)

O `type` informa ao Embeddable qual driver usar

* Aqui, o ideal é usar `clickhouse`, mas você pode conectar várias fontes de dados diferentes a um workspace do Embeddable, então também pode usar outras, como: `postgres`, `bigquery`, `mongodb`, etc.

As `credentials` são um objeto JavaScript que contém as credenciais necessárias esperadas pelo driver

* Elas são criptografadas com segurança e usadas apenas para recuperar exatamente os dados que você descreveu nos seus modelos de dados.
  O Embeddable recomenda fortemente que você crie um usuário do banco de dados com acesso somente leitura para cada conexão (o Embeddable apenas lerá do seu banco de dados, nunca gravará).

Para oferecer suporte à conexão com diferentes bancos de dados para prod, qa, test etc. (ou para oferecer suporte a diferentes bancos de dados para diferentes clientes), você pode atribuir cada conexão a um ambiente (consulte a [API de Environments](https://docs.embeddable.com/data/environments)).
