> For the complete documentation index, see [llms.txt](https://ajuda.rnp.br/diplomas-digitais/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.rnp.br/diplomas-digitais/passo-a-passo/conector-local-1/conector.md).

# Conector Local -  Instalação e Atualização

## 1. Pré-Instalação

#### 1.1. Solicite as credenciais para uso do serviço

**a.** Credenciais para uso do RAP: \
&#x20;       **i.** Login; \
&#x20;       **ii.** Senha; \
&#x20;       **iii.** Client ID - ID que identifica unicamente cada instituição; \
&#x20;       **iv.** URL do ambiente de homologação. \
**b.** Credenciais para acesso ao registro de imagens privados do Serviço: \
&#x20;       **i.** Login; \
&#x20;       **ii.** Senha;

#### 1.2. Cadastro e Configuração de Certificados Digitais

**a.** Envie os certificados com chave pública que serão utilizados no teste para RNP:\
&#x20;       **i.** Podem ser exportados a partir dos containers A1 (arquivo.pfx) ou A3 (token criptográfico) para o formato .cer via ferramenta RAPSign;\
&#x20;       **ii.** Caso ainda não tenha certificado, solicite à RNP certificados exemplares. Nesse caso, eles já serão cadastrados no sistema antes do envio;\
&#x20;       **iii.** Recomendamos o uso de pelo menos dois certificados para simular o processo. Um para simular a pessoa jurídica da instituição e outro para simular uma pessoa física;

#### 1.**3**. Requisitos para Infraestrutura recomendada para instalação do Conector

Serão executados, nesse ambiente, um par de imagens Docker (uma com o conector e outra com o banco de dados) além de um volume para armazenar o banco. A configuração mínima é uma Máquina virtual básica com uma CPU e 2Gb de RAM. É recomendado 2 vCPU e 4 Gb de RAM para um processamento mais fluido.&#x20;

Apesar do Docker virtualizar também para outros sistemas operacionais é fortemente recomendado que a imagem seja utilizada no Sistema Operacional Linux, mais especificamente nas distribuições Ubuntu ou Debian. Isso é necessário para evitar problemas de configurações que diferem de um sistema para outro, principalmente, configurações de rede.

#### 1.**4**. Requisitos para instalação do Container

**a.** Para o deploy deste projeto, é necessário ter instalado algumas ferramentas de conteinerização:\
&#x20;       **i.** Para instalação do [Docker Engine](https://docs.docker.com/) execute os seguintes comandos:

```
$ curl -fsSL https://get.docker.com -o get-docker.sh
```

```
$ sudo sh get-docker.sh
```

&#x20;       **ii.** Para instalação do [Docker Compose](https://docs.docker.com/compose/) execute os seguintes comandos:

```
$ sudo curl -L
"https://github.com/docker/compose/releases/download/1.25.3/docker-compose-
$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```

```
$ sudo chmod +x /usr/local/bin/docker-compose
```

## 2. Instalação&#x20;

#### 2.1 Edite o arquivo docker-compose.api.yml\*\*

**a.** Adicione as credenciais para acesso ao Serviço de Diplomas:\
&#x20;       **i.** Login (RAP\_API\_USER\_EMAIL);\
&#x20;       **ii.** Senha (RAP\_API\_USER\_PASS);\
&#x20;       **iii.** Client ID (INSTITUTION\_ID).\
&#x20;       **iv.** **\***&#x41;s variáveis de configuração do RAP Sign WEB também serão configuradas no mesmo arquivo docker-compose. Verifique manual próprio da aplicação

**b**. Realize login no registro privado de imagens do ambiente de homologação:

```
$ docker login https://homolog-diploma.rnp.br/
```

**c.** Execute o script do docker-compose para:\
&#x20;       **i.** Download da imagem atualizada do Conector;\
&#x20;       **ii.** Configuração automática do banco (criação e execução dos scripts para migração de tabelas); \
&#x20;       **iii.** Inicialização dos daemons de processamento de documentos e APIs de Comunicação;

```
$ docker-compose -f docker-compose.api.yml up
```

&#x20;       **iv.** Opcionalmente efetue logoff do serviço de registro de imagens;

```
$ docker logout https://homolog-diploma.rnp.br/
```

*Obs.: Caso o conector na primeira execução apresentar problema de conexão com o banco, reinicie o mesmo.*

#### **Vídeo demonstrativo da Instalação e Configuração dos Componentes Locais:**

{% file src="/files/-MW4c9t00fPSuaFwYrc3" %}
Vídeo - Instalação e Configuração&#x20;
{% endfile %}

{% file src="/files/-MW4cFd\_BTrKXPgahIdh" %}
Video - Homologação da Instalação Local
{% endfile %}

### 3. Procedimentos de Instalação

### Procedimentos para instalação e integração via API de Comunicação

1. Acessar o serviço de registro de imagens (URL temporária do ambiente de homologação. A URL para configuração do ambiente de produção é enviada para instituição junto com as credenciais do ambiente de produção no início da operação do serviço).

<figure><img src="/files/8gjXO7PF1ggt1qkoynum" alt=""><figcaption></figcaption></figure>

2\.   Inserir credenciais para acesso ao serviço registro privado de imagens docker do Conector local;

3\.   Instalar o docker-compose4;

4\.   Configurar as variáveis de ambiente no arquivo docker-compose.api.yml para acesso ao banco de dados, serviço RAP, bem como variáveis adicionais (ver Seção 5);

5\.   Iniciar o Conector local. É possível indicar a opção -d para que o serviço rode em background;

<figure><img src="/files/Hpu5qqeqiifWdazuTU7c" alt=""><figcaption></figcaption></figure>

6\.   (Opcional) Após a configuração e execução do docker-compose é possível remover as informações de login ao repositório privado de imagens com o comando. Caso seja necessário no futuro atualizar a imagem do Conector, o processo de login deverá ser feito novamente.

<figure><img src="/files/QjGJ9Y8IZwKecMylfU78" alt=""><figcaption></figcaption></figure>

3 <https://www.iti.gov.br/legislacao/documentos-principais>

4 <https://docs.docker.com/compose/install/>

**OBSERVAÇÃO:** Na primeira execução, as ações de configuração do banco de dados serão executadas pelo próprio Conector, sendo necessário apenas configurar as informações referentes ao nome do banco e credenciais que serão usados. O banco de dados utilizado é o PostgresSQL.

## 4. Atualização do Conector

Para verificar a existência de atualizações no Conector deve-se executar o seguinte comando utilizando o docker-compose\*:

```scheme
$ docker login https://homolog-diploma.rnp.br/
$ docker-compose -f docker-compose.api.yml pull
$ docker logout https://homolog-diploma.rnp.br/

```

Caso exista a versão mais recente do Conector, esta será baixada automaticamente. Após isso, basta reiniciar os containers.

```bash
$ docker-compose -f docker-compose.api.yml restart
```

*Vide* [*Release Note*](/diplomas-digitais/passo-a-passo/conector-local-1/conector-local-release-note.md) *do Conector Local.*

**4.1 Como localizar o log completo do conector.**

Para localizar o log completo do conector deve-se executar o seguinte comando:

* *sudo docker cp \<container\_id>:/var/log*

### 5. Procedimentos de Configuração

O Conector Local possui algumas variáveis configuráveis.&#x20;

Essas variáveis são passadas para container do Conector Local por meio de arquivo de configuração docker-compose.api.yml.&#x20;

A descrição de cada variável de ambiente é dada no próprio arquivo.

## 6. Documentação da API

Toda a comunicação entre o Sistema da Instituição e o Conector Local é feito via API de Comunicação.&#x20;

A documentação da API de Comunicação pode ser acessada e testada em tempo real via swagger no próprio Conector Local na URL: ***http\://\<IP-DO-CONECTOR>:\<PORTAS>/docs***. A porta padrão para a API de comunicação e para acesso a documentação é a **80**. Ela pode ser alterada no arquivo de configuração do docker-compose. \
Outra forma de acessar a documentação da API de Comunicação é a partir do arquivo **openapi.json\*\***

Esse arquivo pode ser renderizado em qualquer visualizador de documentação swagger, a exemplo do [Swagger Editor](https://editor.swagger.io/). \
\
Além da documentação do Swagger, também é disponibilizada às instituições documentação para uso com o [Postman](<https://www.postman.com/&#xD;>):

Vide arquivo **Conector API Environment.postman\_environment.json\*\***

Vide arquivo **RAP Conector.postman\_collection.json\*\***

**\*\****Os arquivos referenciados são disponibilizados para as Instituições que aderiram ao Serviço e que estão em processo de implantação.*

### 7.   Procedimentos para Operação

### Inicialização do Processo de Gestão do Diploma

Para o início do processo de geração as seguintes ações devem ser realizadas:

● **XML da Documentação Acadêmica:**

Montagem dos metadados a partir do preenchimento do JSON específico;&#x20;

Inserção do JSON no Conector via API;&#x20;

Indicação do código 4 para tratamento de Documentação Acadêmica;

● **XML do Histórico Escolar Final:**

Montagem dos metadados a partir do preenchimento do JSON específico;

Inserção do JSON no Conector via API;

Indicação do código 3 para tratamento do Histórico Escolar Final;

**● XML do Diploma Digital:**

Montagem dos metadados a partir do preenchimento do JSON específico;&#x20;

Inserção do JSON no Conector via API;

Indicação do código 2 para tratamento do Diploma Digital;

● **Tratamento da versão PDF/A da Representação Visual:**

Montagem dos metadados a partir do preenchimento do JSON específico;&#x20;

Inserção do JSON no Conector via API;

Indicação do código 5 para tratamento da Representação Visual;

Envio do arquivo no formato PDF/A que será processado;

O processo de tratamento da Representação Visual converte verifica se a representação visual está no formato de preservação PDF/A. Caso não esteja, o Conector tentará convertê-lo. Caso a conversão seja bem sucedida, o processo de registro do referido documento no Serviço RAP será realizado.

No presente momento todas as demais ações necessárias para geração da representação visual do diploma (layout e aposição de estruturas visuais) são de responsabilidade da instituição;

### 7.1 Ordem de Processamento

Para o caso dos documentos associados ao Diploma Digital, uma vez que esses dados possuem interdependência, os documentos devem ser processados na seguinte ordem:

**XML da Documentação Acadêmica;**&#x20;

a. Geração, Assinatura

**XML do Histórico Escolar Final;**&#x20;

a. Geração, Assinatura

**XML do Diploma Digital;**&#x20;

a. Geração, Assinatura

**PDF da Representação Visual (assinatura digital é dispensada);**&#x20;

a. Geração

Vale reforçar, que um documento subsequente, só deve ser enviado para processamento após a finalização completa do anterior, ou seja, após concluída a fase de registro.

### 8. Segurança e Estratégias de Backup

**8.1 Autenticação na API do Conector com token JWT**

No arquivo docker-compose existe uma flag RAP\_USE\_JWT\_AUTHORIZATION que permite ativar a obrigatoriedade de autenticação com tokens JWT para uso das rotas do Conector.

O token pode ser obtido através da rota POST /users/auth e as credenciais são as mesmas que a instituição usa para configurar o Conector. O token tem duração de 15 minutos, mas é recomendado fazer o gerenciamento da expiração através da variável "exp" do token JWT decodificado (<https://jwt.io/>). Para atualização do token existe uma rota denominada POST /users/auth/refresh que permite a aquisição de um novo token JWT a partir do envio do refresh token.

**8.2 Arquitetura e Estratégias de Firewall**

A partir da versão 0.3.7 do RAP Sign WEB houve uma alteração da arquitetura dos componentes locais do serviço. O RAP Sign WEB possui agora um componente de front-end e um componente de back-end. O componente de back-end é o que de fato se comunica com a API do conector. Com essa arquitetura é possível isolar o conector na infraestrutura da instituição, sem a necessidade de expor suas rotas para acesso público.

A única aplicação que precisa ficar pública é o RAP Sign Web. Desta forma, recomenda-se limitar o acesso da API conector apenas para a aplicação RAP Sign Web e para as aplicações internas da instituição como forma de aumentar a segurança sobre a solução.

**8.3 Estratégias de Backup**

Para garantir a consistência, histórico dos documentos e funcionamento correto do serviço é necessário manter o banco de dados de integração do Conector íntegro. Sendo assim, é recomendado que as instituições utilizem estratégias de backup regulares para esse banco de integração.

Abaixo um exemplo de comando que pode ser utilizado para realizar o backup do banco de dados.

<figure><img src="/files/o39WYd9P7gLnjCoTeDm1" alt=""><figcaption></figcaption></figure>

Recomenda-se também trabalhar com uma estratégia de backup do volume onde os arquivos do relacionados aos arquivos da documentação acadêmica, diplomas e representação visual se encontram. Para tanto recomenda-se o uso de redundância e sincronização periódica dos arquivos. É preciso observar a manutenção da coerência dos paths dos arquivos a partir do diretório base para que o Conector consiga acessar de forma correta todos os arquivos em caso de uma restauração de arquivos seja necessária.

Com relação às políticas e frequências de backup de banco e volume de arquivos, as instituições devem observar as melhores práticas para esse tipo de ação e aplicar/desenvolver estratégias nesse sentido que se encaixe aos requisitos de segurança trabalhados na instituição.

**8.4 Execução dos serviços Docker**

Recomenda-se apenas a execução de uma cópia do serviço Conector, dada a forma como os daemons internos trabalham. A execução de múltiplas cópias da aplicação pode gerar problemas de inconsistência dos dados.

Os serviços descritos no docker-compose não possuem mecanismo de reinicialização automática. Caso a máquina host seja reiniciada, estes devem ser manualmente reiniciados também. É possível, contudo, que a instituição configure via docker-compose políticas de reinicialização.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ajuda.rnp.br/diplomas-digitais/passo-a-passo/conector-local-1/conector.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
