Document Manager
Informações da Release | Considerações |
|---|---|
Aplicação | document-manager |
Nome da Versão | 2.0.1 |
Data de Publicação | 12/10/2024 |
Cards Relacionados (Informar título do card) | ... |
Imagens da versão (Central IT | nexus.centralit.io:9091/hyper-document-manager:2.0.1 |
Correções
- Remoção da dependência do Keycloak, pois estão sendo usados os usuários do agility
- Remoção temporária das notificações por e-mail
Orientações para deploy
- As orientações para deploy estão na documentação.
- É necessário rodar as migrações.
Informações da Release | Considerações |
|---|---|
Aplicação | document-manager |
Nome da Versão | 2.0.0 |
Data de Publicação | 02/09/2024 |
Cards Relacionados (Informar título do card) | ... |
Imagens da versão (Central IT | nexus.centralit.io:9091/hyper-document-manager:2.0.0 |
Melhorias/ Novas funcionalidades
- Mudança do framework para Next.js
- Conclusão do escopo inicial, com gestão de documento, envio de email, criação de templates e auditoria
Orientações para deploy
Implantação
Dependências
- Criação do database e usuário próprio: As informações serão passadas por variável de ambiente para o container, portanto, o nome não tem um valor obrigatório.
- Rodar as migrations: Dentro do container, rode o comando /usr/local/bin/auditum migrate.
- Garanta que as portas 8080 e 9090 estejam expostas e que o container do document manager tenha acesso.
Exemplo de docker-compose do Auditum:
<span id="LC1" class="line" lang="yaml"><span class="na">auditum</span><span class="pi">:</span></span>
<span id="LC2" class="line" lang="yaml"> <span class="na">image</span><span class="pi">:</span> <span class="s">auditumio/auditum:0.3.0</span></span>
<span id="LC3" class="line" lang="yaml"> <span class="na">environment</span><span class="pi">:</span></span>
<span id="LC4" class="line" lang="yaml"> <span class="na">AUDITUM_store_type</span><span class="pi">:</span> <span class="s">postgres</span></span>
<span id="LC5" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_host</span><span class="pi">:</span> <span class="s">postgres</span></span>
<span id="LC6" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_port</span><span class="pi">:</span> <span class="m">5432</span></span>
<span id="LC7" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_database</span><span class="pi">:</span> <span class="s">auditum</span> <span class="c1">#(criar banco)</span></span>
<span id="LC8" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_username</span><span class="pi">:</span> <span class="s2">"</span><span class="s">auditum"</span></span>
<span id="LC9" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_password</span><span class="pi">:</span> <span class="s2">"</span><span class="s">auditum"</span></span>
<span id="LC10" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_sslmode</span><span class="pi">:</span> <span class="s">disable</span></span>
<span id="LC11" class="line" lang="yaml"> <span class="na">AUDITUM_store_postgres_logQueries</span><span class="pi">:</span> <span class="no">true</span> <span class="c1">#(opcional)</span></span>
<span id="LC12" class="line" lang="yaml"> <span class="na">entrypoint</span><span class="pi">:</span> <span class="s">/bin/sh</span></span>
<span id="LC13" class="line" lang="yaml"> <span class="na">command</span><span class="pi">:</span> <span class="s">-c "/usr/local/bin/auditum migrate && /usr/local/bin/auditum serve"</span> <span class="c1">#(roda as migrations)</span></span>
<span id="LC14" class="line" lang="yaml"> <span class="na">depends_on</span><span class="pi">:</span></span>
<span id="LC15" class="line" lang="yaml"> <span class="pi">-</span> <span class="s">postgres</span></span>
<span id="LC16" class="line" lang="yaml"> <span class="na">ports</span><span class="pi">:</span></span>
<span id="LC17" class="line" lang="yaml"> <span class="pi">-</span> <span class="s">8000:8080</span></span>
<span id="LC18" class="line" lang="yaml"> <span class="pi">-</span> <span class="s">9000:9090</span></span>Configurações de deploy
Keycloak
É necessário criar um grupo com role no Keycloack e preencher as variáveis de ambiente ROLE_DM_USER e GROUP_DM_USERS, para que o usuário tenha acesso ao sistema. Caso as variáveis não sejam informadas, os valores default serão:
ROLE_DM_USER e document_manager_users.
Migrations
Para rodar as migrações execute o comando dentro do container: npm run db:migrate.
Kubernets
Exemplo de configuração de deploy para kubernetes:
configmap.template.yml
<span id="LC1" class="line" lang="yaml"><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">v1</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">kind</span><span class="pi">:</span> <span class="s">ConfigMap</span></span>
<span id="LC3" class="line" lang="yaml"><span class="na">metadata</span><span class="pi">:</span></span>
<span id="LC4" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC5" class="line" lang="yaml"> <span class="na">labels</span><span class="pi">:</span></span>
<span id="LC6" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC7" class="line" lang="yaml"> <span class="na">app.kubernetes.io/name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC8" class="line" lang="yaml"> <span class="na">app.kubernetes.io/version</span><span class="pi">:</span> <span class="s">${K8S_APP_VERSION}</span></span>
<span id="LC9" class="line" lang="yaml"> <span class="na">app.kubernetes.io/component</span><span class="pi">:</span> <span class="s">frontend</span></span>
<span id="LC10" class="line" lang="yaml"> <span class="na">app.kubernetes.io/part-of</span><span class="pi">:</span> <span class="s">frontmanager</span></span>
<span id="LC11" class="line" lang="yaml"><span class="na">data</span><span class="pi">:</span></span>
<span id="LC12" class="line" lang="yaml"> <span class="na">AUDIT_SERVICE_URL</span><span class="pi">:</span> <span class="s">auditum.frontmanager-dev-eveo:9000</span></span>
<span id="LC13" class="line" lang="yaml"> <span class="na">DATABASE_URL</span><span class="pi">:</span> <span class="s">postgresql://postgres:[email protected]:5432/document_manager</span></span>
<span id="LC14" class="line" lang="yaml"> <span class="na">EMAIL_SERVICE_URL</span><span class="pi">:</span> <span class="s">http://lowcode.frontmanager-dev-eveo/integrations/disparo_de_email/faas</span></span>
<span id="LC15" class="line" lang="yaml"> <span class="na">KANBAN_API_URL</span><span class="pi">:</span> <span class="s">http://hyper-kanban-api.frontmanager-dev-eveo/api</span></span>
<span id="LC16" class="line" lang="yaml"> <span class="na">KEYCLOAK_BASE_URL</span><span class="pi">:</span> <span class="s">http://keycloak-eveo.keycloak/auth</span></span>
<span id="LC17" class="line" lang="yaml"> <span class="na">KEYCLOAK_CLIENT_ID</span><span class="pi">:</span> <span class="s">admin-cli</span></span>
<span id="LC18" class="line" lang="yaml"> <span class="na">KEYCLOAK_PASSWORD</span><span class="pi">:</span> <span class="s">admin</span></span>
<span id="LC19" class="line" lang="yaml"> <span class="na">KEYCLOAK_USERNAME</span><span class="pi">:</span> <span class="s">admin</span></span>
<span id="LC20" class="line" lang="yaml"> <span class="na">NEXT_PUBLIC_BASE_NAME</span><span class="pi">:</span> <span class="s">/${K8S_APP_NAME}</span></span>
<span id="LC21" class="line" lang="yaml"> <span class="na">ROLE_DM_USER</span><span class="pi">:</span> <span class="s">ROLE_DM_USER</span></span>
<span id="LC22" class="line" lang="yaml"> <span class="na">GROUP_DM_USERS</span><span class="pi">:</span> <span class="s">document_manager_users</span></span>
<span id="LC23" class="line" lang="yaml"> <span class="na">THEME</span><span class="pi">:</span> <span class="s1">'</span><span class="s">{</span><span class="nv"> </span><span class="s">"colorPrimary":</span><span class="nv"> </span><span class="s">"#0f7bc2"</span><span class="nv"> </span><span class="s">}'</span></span>
<span id="LC24" class="line" lang="yaml"></span>
<span id="LC25" class="line" lang="yaml"> <span class="na">AGILITY_SERVICE_NAME</span><span class="pi">:</span> <span class="s">kanban (Campo Opcional, caso não preenchido o default é "kanban")</span></span>deployment.template.yml
<span id="LC1" class="line" lang="yaml"><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">apps/v1</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">kind</span><span class="pi">:</span> <span class="s">Deployment</span></span>
<span id="LC3" class="line" lang="yaml"><span class="na">metadata</span><span class="pi">:</span></span>
<span id="LC4" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC5" class="line" lang="yaml"> <span class="na">labels</span><span class="pi">:</span></span>
<span id="LC6" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC7" class="line" lang="yaml"> <span class="na">app.kubernetes.io/name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC8" class="line" lang="yaml"> <span class="na">app.kubernetes.io/version</span><span class="pi">:</span> <span class="s">${K8S_APP_VERSION}</span></span>
<span id="LC9" class="line" lang="yaml"> <span class="na">app.kubernetes.io/component</span><span class="pi">:</span> <span class="s">frontend</span></span>
<span id="LC10" class="line" lang="yaml"> <span class="na">app.kubernetes.io/part-of</span><span class="pi">:</span> <span class="s">frontmanager</span></span>
<span id="LC11" class="line" lang="yaml"><span class="na">spec</span><span class="pi">:</span></span>
<span id="LC12" class="line" lang="yaml"> <span class="na">selector</span><span class="pi">:</span></span>
<span id="LC13" class="line" lang="yaml"> <span class="na">matchLabels</span><span class="pi">:</span></span>
<span id="LC14" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC15" class="line" lang="yaml"> <span class="na">template</span><span class="pi">:</span></span>
<span id="LC16" class="line" lang="yaml"> <span class="na">metadata</span><span class="pi">:</span></span>
<span id="LC17" class="line" lang="yaml"> <span class="na">labels</span><span class="pi">:</span></span>
<span id="LC18" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC19" class="line" lang="yaml"> <span class="na">app.kubernetes.io/name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC20" class="line" lang="yaml"> <span class="na">app.kubernetes.io/version</span><span class="pi">:</span> <span class="s">${K8S_APP_VERSION}</span></span>
<span id="LC21" class="line" lang="yaml"> <span class="na">app.kubernetes.io/component</span><span class="pi">:</span> <span class="s">frontend</span></span>
<span id="LC22" class="line" lang="yaml"> <span class="na">app.kubernetes.io/part-of</span><span class="pi">:</span> <span class="s">frontmanager</span></span>
<span id="LC23" class="line" lang="yaml"> <span class="na">spec</span><span class="pi">:</span></span>
<span id="LC24" class="line" lang="yaml"> <span class="na">containers</span><span class="pi">:</span></span>
<span id="LC25" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">envFrom</span><span class="pi">:</span></span>
<span id="LC26" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">configMapRef</span><span class="pi">:</span></span>
<span id="LC27" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC28" class="line" lang="yaml"> <span class="na">image</span><span class="pi">:</span> <span class="s">${K8S_APP_IMAGE}</span></span>
<span id="LC29" class="line" lang="yaml"> <span class="na">imagePullPolicy</span><span class="pi">:</span> <span class="s">IfNotPresent</span></span>
<span id="LC30" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC31" class="line" lang="yaml"> <span class="na">ports</span><span class="pi">:</span></span>
<span id="LC32" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">containerPort</span><span class="pi">:</span> <span class="m">8080</span></span>
<span id="LC33" class="line" lang="yaml"> <span class="na">protocol</span><span class="pi">:</span> <span class="s">TCP</span></span>
<span id="LC34" class="line" lang="yaml"> <span class="na">imagePullSecrets</span><span class="pi">:</span></span>
<span id="LC35" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">4biz-automacao-cdi</span></span>ingress-kong.template.yml
<span id="LC1" class="line" lang="yaml"><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">networking.k8s.io/v1</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">kind</span><span class="pi">:</span> <span class="s">Ingress</span></span>
<span id="LC3" class="line" lang="yaml"><span class="na">metadata</span><span class="pi">:</span></span>
<span id="LC4" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC5" class="line" lang="yaml"> <span class="na">labels</span><span class="pi">:</span></span>
<span id="LC6" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC7" class="line" lang="yaml"> <span class="na">app.kubernetes.io/name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC8" class="line" lang="yaml"> <span class="na">app.kubernetes.io/version</span><span class="pi">:</span> <span class="s">${K8S_APP_VERSION}</span></span>
<span id="LC9" class="line" lang="yaml"> <span class="na">app.kubernetes.io/component</span><span class="pi">:</span> <span class="s">frontend</span></span>
<span id="LC10" class="line" lang="yaml"> <span class="na">app.kubernetes.io/part-of</span><span class="pi">:</span> <span class="s">frontmanager</span></span>
<span id="LC11" class="line" lang="yaml"><span class="na">spec</span><span class="pi">:</span></span>
<span id="LC12" class="line" lang="yaml"> <span class="na">ingressClassName</span><span class="pi">:</span> <span class="s">nginx</span></span>
<span id="LC13" class="line" lang="yaml"> <span class="na">tls</span><span class="pi">:</span></span>
<span id="LC14" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">hosts</span><span class="pi">:</span></span>
<span id="LC15" class="line" lang="yaml"> <span class="pi">-</span> <span class="s2">"</span><span class="s">*.cloud4biz.com"</span></span>
<span id="LC16" class="line" lang="yaml"> <span class="na">secretName</span><span class="pi">:</span> <span class="s">cloud4biz-tls</span></span>
<span id="LC17" class="line" lang="yaml"> <span class="na">rules</span><span class="pi">:</span></span>
<span id="LC18" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">host</span><span class="pi">:</span> <span class="s2">"</span><span class="s">*.cloud4biz.com"</span></span>
<span id="LC19" class="line" lang="yaml"> <span class="na">http</span><span class="pi">:</span></span>
<span id="LC20" class="line" lang="yaml"> <span class="na">paths</span><span class="pi">:</span></span>
<span id="LC21" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">path</span><span class="pi">:</span> <span class="s">/${K8S_APP_NAME}</span></span>
<span id="LC22" class="line" lang="yaml"> <span class="na">pathType</span><span class="pi">:</span> <span class="s">ImplementationSpecific</span></span>
<span id="LC23" class="line" lang="yaml"> <span class="na">backend</span><span class="pi">:</span></span>
<span id="LC24" class="line" lang="yaml"> <span class="na">service</span><span class="pi">:</span></span>
<span id="LC25" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">kong-eveo-kong-proxy</span></span>
<span id="LC26" class="line" lang="yaml"> <span class="na">port</span><span class="pi">:</span></span>
<span id="LC27" class="line" lang="yaml"> <span class="na">number</span><span class="pi">:</span> <span class="s">80</span></span>ingress.template.yml
<span id="LC1" class="line" lang="yaml"><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">networking.k8s.io/v1</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">kind</span><span class="pi">:</span> <span class="s">Ingress</span></span>
<span id="LC3" class="line" lang="yaml"><span class="na">metadata</span><span class="pi">:</span></span>
<span id="LC4" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC5" class="line" lang="yaml"> <span class="na">annotations</span><span class="pi">:</span></span>
<span id="LC6" class="line" lang="yaml"> <span class="na">konghq.com/plugins</span><span class="pi">:</span> <span class="s">jwt</span></span>
<span id="LC7" class="line" lang="yaml"> <span class="na">labels</span><span class="pi">:</span></span>
<span id="LC8" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC9" class="line" lang="yaml"> <span class="na">app.kubernetes.io/name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC10" class="line" lang="yaml"> <span class="na">app.kubernetes.io/version</span><span class="pi">:</span> <span class="s">${K8S_APP_VERSION}</span></span>
<span id="LC11" class="line" lang="yaml"> <span class="na">app.kubernetes.io/component</span><span class="pi">:</span> <span class="s">frontend</span></span>
<span id="LC12" class="line" lang="yaml"> <span class="na">app.kubernetes.io/part-of</span><span class="pi">:</span> <span class="s">frontmanager</span></span>
<span id="LC13" class="line" lang="yaml"><span class="na">spec</span><span class="pi">:</span></span>
<span id="LC14" class="line" lang="yaml"> <span class="na">ingressClassName</span><span class="pi">:</span> <span class="s">kong</span></span>
<span id="LC15" class="line" lang="yaml"> <span class="na">tls</span><span class="pi">:</span></span>
<span id="LC16" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">hosts</span><span class="pi">:</span></span>
<span id="LC17" class="line" lang="yaml"> <span class="pi">-</span> <span class="s2">"</span><span class="s">*.cloud4biz.com"</span></span>
<span id="LC18" class="line" lang="yaml"> <span class="na">secretName</span><span class="pi">:</span> <span class="s">cloud4biz-tls</span></span>
<span id="LC19" class="line" lang="yaml"> <span class="na">rules</span><span class="pi">:</span></span>
<span id="LC20" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">host</span><span class="pi">:</span> <span class="s2">"</span><span class="s">*.cloud4biz.com"</span></span>
<span id="LC21" class="line" lang="yaml"> <span class="na">http</span><span class="pi">:</span></span>
<span id="LC22" class="line" lang="yaml"> <span class="na">paths</span><span class="pi">:</span></span>
<span id="LC23" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">path</span><span class="pi">:</span> <span class="s">/${K8S_APP_NAME}</span></span>
<span id="LC24" class="line" lang="yaml"> <span class="na">pathType</span><span class="pi">:</span> <span class="s">ImplementationSpecific</span></span>
<span id="LC25" class="line" lang="yaml"> <span class="na">backend</span><span class="pi">:</span></span>
<span id="LC26" class="line" lang="yaml"> <span class="na">service</span><span class="pi">:</span></span>
<span id="LC27" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC28" class="line" lang="yaml"> <span class="na">port</span><span class="pi">:</span></span>
<span id="LC29" class="line" lang="yaml"> <span class="na">number</span><span class="pi">:</span> <span class="s">80</span></span>service.template.yml
<span id="LC1" class="line" lang="yaml"><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">v1</span></span>
<span id="LC2" class="line" lang="yaml"><span class="na">kind</span><span class="pi">:</span> <span class="s">Service</span></span>
<span id="LC3" class="line" lang="yaml"><span class="na">metadata</span><span class="pi">:</span></span>
<span id="LC4" class="line" lang="yaml"> <span class="na">name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC5" class="line" lang="yaml"> <span class="na">labels</span><span class="pi">:</span></span>
<span id="LC6" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC7" class="line" lang="yaml"> <span class="na">app.kubernetes.io/name</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>
<span id="LC8" class="line" lang="yaml"> <span class="na">app.kubernetes.io/version</span><span class="pi">:</span> <span class="s">${K8S_APP_VERSION}</span></span>
<span id="LC9" class="line" lang="yaml"> <span class="na">app.kubernetes.io/component</span><span class="pi">:</span> <span class="s">frontend</span></span>
<span id="LC10" class="line" lang="yaml"> <span class="na">app.kubernetes.io/part-of</span><span class="pi">:</span> <span class="s">frontmanager</span></span>
<span id="LC11" class="line" lang="yaml"><span class="na">spec</span><span class="pi">:</span></span>
<span id="LC12" class="line" lang="yaml"> <span class="na">ports</span><span class="pi">:</span></span>
<span id="LC13" class="line" lang="yaml"> <span class="pi">-</span> <span class="na">port</span><span class="pi">:</span> <span class="m">80</span></span>
<span id="LC14" class="line" lang="yaml"> <span class="na">protocol</span><span class="pi">:</span> <span class="s">TCP</span></span>
<span id="LC15" class="line" lang="yaml"> <span class="na">targetPort</span><span class="pi">:</span> <span class="m">8080</span></span>
<span id="LC16" class="line" lang="yaml"> <span class="na">selector</span><span class="pi">:</span></span>
<span id="LC17" class="line" lang="yaml"> <span class="na">app</span><span class="pi">:</span> <span class="s">${K8S_APP_NAME}</span></span>