1.0.9 • Published 7 months ago

01cm-new-layout v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

APP 01CM

Overview

Aplicação desenvolvida em Next.js. Iniciado com create-next-app.

Este aplicativo compõe a plataforma 01CM, onde os clientes poderão acessar e visualizar os documentos processados pelo Invoice Manager. Cada cliente tem uma instância dessa aplicação sendo executada na Cloud da Google.

Colocar algum GIF demonstrando o ambiente

Dependências

Projetos relacionados:

  • Invoice Manager - Sistema que recebe os documentos de todos os clientes e os processa para extração de dados.
  • Consumer - Consome as notas do integrador e envia para o backend da aplicação do cliente
  • 01CM API - Backend da aplicação do cliente
  • ERP Oracle - O projeto contém integrações com a API do ERP Oracle para envio de notas e boletos.

Pacotes utilizados

Os apontamentos são configuradas através das variáveis de ambiente. Para mais detalhes a cerca das dependências, consultar o ecossistema de aplicativos no guia

Rodar localmente

Instalação

Como estamos utilizando pacotes privados, é necessário fazer a autenticação no Artifact. Para isso, foi criado o arquivo .npmrc na raiz do projeto com as configurações. Esse conteúdo pode ser obtido com o gcloud:

gcloud artifacts print-settings npm --scope=@somma

O token expira periodicamente (por padrão, após 1 hora), portanto é necessário também atualizá-lo com o utilitário do gcloud:

npx google-artifactregistry-auth

O arquivo .npmrc pode ser criado na pasta do usuário (~/.npmrc) para que seja utilizado em todos os projetos também.

A partir daí, pode ser executado o comando de instalação das dependências:

yarn install

Variáveis de ambiente

# Variáveis para acesso ao Invoice Manager
NEXT_PUBLIC_IMG_BASE_URL=https://api-01cm-invoices-management-dev-fasdf-uc.a.run.app
NEXT_PUBLIC_IMG_USERNAME=invoice-manager
NEXT_PUBLIC_IMG_PASSWORD=123456

# Variáveis para acesso ao Backend do 01cm
NEXT_PUBLIC_LOCALHOST=https://api-01cm-dev-4yyh5fptba-uc.a.run.app

# Variáveis para acesso ao ERP Oracle
NEXT_PUBLIC_ERP_BASE_URL=https://fa-ertf-test-saasfaprod1.fa.ocs.oraclecloud.com
NEXT_PUBLIC_ERP_USER=integration.bild # usuário de integração
NEXT_PUBLIC_ERP_PASSWORD=54234h2b34h2b34 # Senha do usuário de integração

# variáveis de configuração do front
NEXT_PUBLIC_BASE_URL=http://localhost:4001

Variáveis padrão do NEXT podem ser consultadas aqui

Configuradas as variáveis, o servidor de desenvolvimento do Node pode ser executado com:

npm run dev
# or
yarn dev
# or
pnpm dev

Ou simulado os processos de produção, fazendo o build e consequente start:

yarn build
yarn start

Abrir http://localhost:8080 para utilizar a aplicação.

Deploy

O arquivo Dockerfile contém uma imagem a ser construída e executada em plataformas com suporte, como o GCP Cloud Run ou o próprio Docker.

A imagem basicamente recebe as variáveis de ambiente via argumentos em tempo de build. Essas variáveis são resolvidas durante o transpile no build da imagem, sendo substituídas pelo valor recebido do ARG da linha de build do docker. Exemplo:

docker buildx build --build-arg="NEXT_PUBLIC_BASE_URL=DCK_NEXT_PUBLIC_BASE_URL"  -t app01cm:local .

Mais informações sobre esse processo de substituição de variáveis no repositório do pacote que faz esse processo nas variáveis em runtime.

Para o deploy na GCP, temos a pipeline configurada no arquivo cloudbuild.yml. A pipeline faz o build da imagem e envia para o Artifact Registry, que é o repositório de imagens da GCP. Logo em seguida faz o deploy no Cloud Run, seguindo o fluxo comentado aqui.

Links úteis