# Criar um Novo Ente no e-Ciga

Este procedimento deve ser seguido sempre que um novo ente for incorporado ao sistema de processo eletrônico do e-Ciga. Ele envolve duas partes principais:

1. **Configuração da realm no Keycloak (autenticação)**
2. **Criação do registro do ente no MongoDB (backend)**

---

# 🔐 **1️⃣ Criar e Configurar a Realm no Keycloak**

### ✔️ **1. Verificar se a Realm já Existe**

1. Acesse: **[https://sso.ciga.sc.gov.br/<svg class="block h-[0.75em] w-[0.75em] stroke-current stroke-[0.75]" data-rtl-flip="" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"></svg>](https://sso.ciga.sc.gov.br/)**
2. Faça login com um usuário com permissão administrativa.
3. No menu lateral, clique na lista de *Realms*.
4. **Verifique se a realm já existe**.
    
    
    - Se não existir, prossiga com *Add realm*.

---

### ✔️ **2. Criar a Realm**

1. Clique em **Add Realm**.
2. No campo **Name**, informe o nome da realm:
    
    
    - **Apenas letras minúsculas**
    - **Sem espaços**
    - **Sem caracteres especiais**
3. Clique em **Create**.

A realm está criada — agora vamos configurá-la.

---

# ⚙️ **2️⃣ Configurações da Realm**

---

### ✔️ **General**

1. Vá em **General**.
2. No campo **Display Name**, informe o nome do ente como ele é apresentado oficialmente.
3. Em **HTML Display Name**, copie o mesmo conteúdo.
4. Clique em **Save**.

---

### ✔️ **Login**

1. Vá para a guia **Login**.
2. Habilite:
    
    
    - ✔️ *Forgot Password*
    - ✔️ *Login with email*
3. Clique em **Save**.

---

### ✔️ **Email**

1. Vá para a guia **Email**.
2. Configure:
    
    
    - **Host:** `lb2.consorciociga.gov.br`
    - **From:** `sso-no-reply@postal.consorciociga.gov.br`
    - **Enable Authentication:** habilitar
    - **Username:** `ciga`
    - **Password:** pegar no **Passbolt**
        
        
        - Se não tiver acesso → solicitar ao **Francis**, **Ricardo Taska** ou **Leandro**
3. Clique em **Save**.

---

### ✔️ **Themes**

1. Vá para a guia **Themes**.
2. Habilite:
    
    
    - ✔️ *Internationalization Enabled*
3. Em **Supported Locales**, deixe **apenas pt-BR**.
4. Em **Default Locale**, selecione **pt-BR**.
5. Clique em **Save**.

As configurações gerais estão concluídas. Agora vamos criar e configurar os *clients*.

---

# 🧩 **3️⃣ Configurar os Clients do Keycloak**

---

## **Client: eciga2**

### ✔️ **Criar o Client**

1. Vá em **Clients**.
2. Clique em **Create**.
3. Preencha:
    
    
    - **Client ID:** `eciga2`
    - **Client Protocol:** `openid-connect`
4. Clique em **Save**.

---

### ✔️ **Configurar o Client eciga2**

#### **Guia: Settings**

1. **Name:** `e-CIGA 2.0`
2. **Desabilitar:** *Direct Access Grants Enabled*
3. Em **Valid Redirect URIs**, adicionar (substituindo `nomedarealm`):

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-https%3A%2F%2Fnomedarealm."><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`https:<span class="hljs-comment">//nomedarealm.eciga.consorciociga.gov.br/*</span>https:<span class="hljs-comment">//ntfy.eciga.consorciociga.gov.br/oauth/callback</span>https:<span class="hljs-comment">//nomedarealm-treinamento-e2-186-250-92-134.beta.ciga.sc.gov.br/*</span>`</div></div>4. **Base URL:**

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-https%3A%2F%2Fnomedarealm.-1"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`https:<span class="hljs-comment">//nomedarealm.eciga.consorciociga.gov.br/</span>`</div></div>5. **Web Origens:**

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-%2B"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-addition">+</span>`</div></div>6. Clique em **Save**.

---

### ✔️ **Guia: Roles**

Criar 3 Roles:

- `access`
- `adminAcesso`
- `classificacaoDocumental`

Procedimento:

1. Clique em **Add Role**
2. Informe o nome da role
3. Clique em **Save**
4. Repita para as 3 roles

---

### ✔️ **Guia: Client Scopes**

1. Em **Assigned Default Client Scopes**
2. Selecione **web-origens**
3. Clique em **Remove selected**

---

### ✔️ **Guia: Mappers**

1. Clique em **Create**
2. **Name:** `groups`
3. **Mapper Type:** *Group Membership*
4. **Token Claim Name:** `groups`
5. Clique em **Save**

---

### ✔️ **Guia: Scope**

1. **Desmarque** a opção *Full Scope Allowed*
2. Clique em **Save**

Client `eciga2` finalizado.

---

## **Client: certificados**

### ✔️ **Criar / Importar**

O client **certificados** é criado via importação:

1. Baixe o arquivo [certificados.json](https://conhecimento.ciga.sc.gov.br/attachments/116)
2. Vá em **Clients** → **Create**
3. Clique em **Select file** no campo **Import**
4. Selecione o arquivo
5. Clique em **Save**

Client certificado criado.

---

# 🗂️ **4️⃣ Criar Grupos Padrão (Setores e Cargos)**

1. Vá em **Groups**.
2. Clique em **New**.
3. Crie o grupo:
    
    
    - `Setores`
4. Clique em **Save**
5. Repita o processo para criar:
    
    
    - `Cargo`

Configurações do Keycloak concluídas.

---

# 🗄️ **5️⃣ Criar o Ente no MongoDB**

1. Acesse o Mongo Express:  
    **[https://mongo.eciga.consorciociga.gov.br/db/eciga/entes<svg class="block h-[0.75em] w-[0.75em] stroke-current stroke-[0.75]" data-rtl-flip="" fill="currentColor" height="20" viewbox="0 0 20 20" width="20" xmlns="http://www.w3.org/2000/svg"></svg>](https://mongo.eciga.consorciociga.gov.br/db/eciga/entes)**
2. Clique em **New Document**
3. Preencha seguindo este modelo:

<div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22_id%22%3A-%22nomedareal"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-punctuation">{</span>    <span class="hljs-attr">"_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"nomedarealm"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"mongoUri"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"/eciga-nomedarealm"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"nome"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Prefeitura Municipal de *****"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"issuer"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"https://sso.ciga.sc.gov.br/auth/realms/nomedarealm"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"origin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"https://nomedarealm.eciga.consorciociga.gov.br"</span><span class="hljs-punctuation">,</span>    <span class="hljs-attr">"diarioCodigoEntidade"</span><span class="hljs-punctuation">:</span> **<span class="hljs-punctuation">}</span>`</div></div>4. Clique em **Save**

---

# 🔎 **⚠️ Informações Importantes**

- **O código do diário** deve ser solicitado ao **Francis** ou **Bruno**.
- O campo **\_id** deve ser **exatamente** o nome da realm criada no Keycloak.
- A URL deve seguir rigorosamente o padrão do e-Ciga.
- Após isso, ainda será necessário:
    
    
    - Ativar buckets do ente (solicitar ao Francis)
    - Reiniciar o backend (solicitar ao Francis)