Pular para o conteúdo

Arquivos de Configuração

O Juca possui 11 arquivos de configuração na raiz do projeto. Esta página documenta a finalidade e as configurações principais de cada um.

ArquivoFinalidade
next.config.tsConfiguração do framework Next.js
tsconfig.jsonOpções do compilador TypeScript
tailwind.config.tsTailwind CSS v4 (mínimo — tokens definidos no CSS)
postcss.config.mjsPostCSS com plugin do Tailwind
vitest.config.tsConfiguração de testes unitários
playwright.config.tsConfiguração de testes E2E
eslint.config.mjsConfiguração flat do ESLint com regras do Next.js
.env.exampleTemplate de variáveis de ambiente
.env.localAmbiente local (ignorado pelo git)
DockerfileBuild de produção multi-estágio
docker-compose.ymlServiço local do Neo4j para desenvolvimento

Configurações principais em next.config.ts:

ConfiguraçãoValorFinalidade
output'standalone'Builds otimizados para Docker
serverExternalPackages['better-sqlite3']Suporte a módulos nativos
Remoção de consoleSomente em produção (mantém warn/error/info)Logs de produção mais limpos
Headers de segurançaX-Frame-Options, X-Content-Type-Options, etc.Boas práticas OWASP
Cache de APIno-store, max-age=0Evitar respostas de API desatualizadas

O Tailwind v4 usa uma abordagem de configuração CSS-first. Os tokens de design são definidos em src/app/globals.css como propriedades customizadas do CSS, e não no tailwind.config.ts:

/* src/app/globals.css — tokens de design */
:root {
--color-primary: #000000;
--color-accent: #fff06d;
--color-bg-primary: #ffffff;
--color-bg-secondary: #f5f5f5;
--color-text-primary: #000000;
--color-text-secondary: #666a6f;
--radius-sm: 4px;
--radius-full: 9999px;
/* ... 50+ tokens para cores IRAC, níveis de confiança, temas do GC, sombras */
}

O arquivo tailwind.config.ts é mínimo — existe principalmente para registro de plugins.

O tsconfig.json configura um único alias de caminho:

{
"compilerOptions": {
"paths": { "@/*": ["./src/*"] }
}
}

Todos os imports em toda a codebase usam @/ em vez de caminhos relativos:

import { auth } from '@/lib/auth';
import { getBlocksDB } from '@/lib/db/sessions';

Hooks customizados em .githooks/:

HookAção
pre-commitExecuta ESLint nos arquivos em stage
pre-pushExecuta o conjunto completo de testes do Vitest
post-checkoutTarefas de limpeza
post-commitTarefas de limpeza
post-mergeTarefas de limpeza

Configurado via package.json:

{ "scripts": { "prepare": "git config core.hooksPath .githooks" } }

O Dockerfile usa um build de 3 estágios:

  1. depsnpm ci com dependências de produção
  2. buildnext build com saída standalone
  3. runtime — Imagem mínima do Node.js com apenas artefatos de produção

O docker-compose.yml fornece uma instância local do Neo4j Community 5 para desenvolvimento. Isso será descontinuado após a conclusão da migração para o Valter.