Pular para o conteúdo principal

Setup e instalação

Versão detalhada do README.

Requisitos

FerramentaVersão
Node.js20 (CI e Docker node:20-alpine)
npmo que vem com Node 20; use package-lock.json
Gitqualquer recente
Docker Desktopopcional, para docker compose

Não há .nvmrc; alinhe o Node ao CI.

1. Clonar e instalar

git clone https://github.com/Gevtech/ARKUS_FRONTEND.git
cd ARKUS_FRONTEND
cp .env.example .env
npm ci

npm install só se precisar regenerar o lockfile (PR separado).

2. Variáveis de ambiente

Contrato: .env.example. Tipos: src/vite-env.d.ts.

VariávelObrigatóriaNotas
VITE_API_BASE_URLde facto em prodCentral. Vazio = same-origin + proxy
VITE_GOVERNANCE_API_BASE_URLde facto em prodDefault. Em DEV ausente → same-origin
VITE_API_PROXY_TARGETsó dev same-originalvo do proxy Central
VITE_GOVERNANCE_API_PROXY_TARGETsó dev same-originalvo do proxy Default
VITE_SESSION_VAULT_SECRETprodução≥16 chars; cifra localStorage
VITE_TENANT_IDopcionalheader se JWT sem tenant
VITE_DEFAULT_GOVERNANCE_COMPANY_UUIDopcionalfallback de empresa-mãe
VITE_LOGIN_TENANT_SLUGopcionallogo/banner do login

Nunca commitar .env. VITE_* vai para o JavaScript do cliente.

3. Subir o front

npm run dev

Abra a URL que o Vite imprimir (em geral http://localhost:5173). Sem backends locais, o proxy tenta localhost:3000 / :3001 e cai nos hosts remotos de src/config/api.ts.

Login: usuário da API Central. Primeiro acesso / reset dependem de e-mail configurado no backend.

4. Docker local

# .env na raiz com VITE_API_BASE_URL (build-arg)
docker compose up --build
  • Porta host: 3000 → container 80
  • Nginx: try_files SPA (nginx.conf)
  • Rebuild obrigatório se mudar VITE_*

5. Qualidade local

npm run lint
npm run test
npm run test:coverage
npm run build

Sonar: sonar-project.properties + secrets SONAR_TOKEN / SONAR_HOST_URL no GitHub (não rode token no laptop a menos que o time peça).

6. i18n e tema

  • Textos: src/locales/pt-BR/translation.json e en/translation.json
  • Tema: src/theme — spec em doc-dark-mode.md

Problemas comuns

SintomaCausa típica
CORS no loginVITE_API_BASE_URL absoluto sem CORS no backend; use same-origin vazio + proxy
Presença não conectaWebSocket /socket.io não proxied; ver getSocketApiOrigin
Lista de empresas vaziahost Default vs Central; JWT sem permissão; filtro “Todas” vs filiais
Sessão some no F5vault; VITE_SESSION_VAULT_SECRET mudou
401 imediatointerceptor; token expirado; relogin
Form-fields 404rota Default-only indo para Central — proxy isDefaultApiOnlyGovernanceRoute