Bootstrap EDEN: Fase 0 (arquitetura) e Fase 1 (monorepo + infra)

Fase 0 — descoberta e arquitetura:
- Inventário do projeto, glossário de domínio, arquitetura com bounded
  contexts e topologia de containers, threat model inicial.
- 12 ADRs cobrindo modular monolith, topologia de containers (Postgres
  isolado + eden-core/parceiros/assinante em containers e portas
  distintos), auth/sessões, modelo de permissões, criptografia/segredos,
  contrato first-class, stock ledger, separação billing/finance/fiscal,
  outbox transacional, adapters SaperX e Focus NFe, e identidade
  compartilhada entre as 3 apps.
- 14 subagentes e 7 skills especializados por domínio em .claude/.
- Hooks de segurança (PreToolUse/PostToolUse/Stop) testados via pipe.

Fase 1 — plataforma (em andamento):
- Monorepo pnpm workspaces + Turborepo: apps/{api,worker,core-web,
  reseller-web,subscriber-web} + 9 packages compartilhados.
- apps/api: NestJS mínimo com /health/live e /health/ready (checando
  Postgres real via @eden/database).
- 3 frontends Vite + React + TypeScript + Tailwind, com o favicon
  oficial do EDEN.
- packages/database: migration baseline (node-pg-migrate) criando
  roles/role_permissions/applications/users/user_applications/sessions/
  audit_log — audit log append-only com hash-chain, testado ao vivo
  (UPDATE/DELETE bloqueados pelo trigger).
- compose.yaml implementando a topologia da ADR-0002, validada de ponta
  a ponta: os 6 containers sobem e ficam saudáveis com um único
  `docker compose up`.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 08:01:14 -03:00
commit 44510bd019
149 changed files with 13006 additions and 0 deletions

59
docs/project-inventory.md Normal file
View File

@@ -0,0 +1,59 @@
# EDEN — Inventário do Projeto
Estado em: 2026-09-03 (Fase 0 — Descoberta e Arquitetura).
## 1. Arquivos de origem (raiz do projeto)
| Arquivo | Tamanho | Papel |
|---|---|---|
| `EDEN_MASTER_PROMPT_CLAUDE.md` | 45.8 KB | Fonte de verdade nº1 — missão, regras operacionais, arquitetura alvo, ordem de implementação. |
| `eden.md` | 325.5 KB / 4597 linhas | Fonte de verdade nº2 — especificação funcional completa do legado OrçaFácil (engenharia reversa). Índice de 7 módulos, ver seção 3 abaixo. |
| `tema_do_Eden.zip` | 360 MB | Tema visual comprado: **DreamsERP v1.0.1** (Angular + Bootstrap). Base para o Design System do EDEN — não copiar JS/Angular, extrair componentes visuais para React/Tailwind. |
| `Eden_logo_horizontal.png` | 454 KB | Logo oficial — uso em headers/documentos. |
| `Eden_logo_vertical.png` | 432 KB | Logo oficial — uso em telas de login/splash. |
| `eden_fav_ico.png` | 573 KB | Favicon oficial — precisa ser convertido/otimizado para tamanhos padrão de favicon (16/32/180px) antes do uso web. |
## 2. Conteúdo do `tema_do_Eden.zip`
- Raiz: `dreamserp-v1.0.1/`.
- Contém: `angular.zip` (build/fonte Angular do template), `documentation/` (HTML de documentação do tema, com assets próprios — Bootstrap, fontes Nunito/Poppins, imagens de banner/logo/tecnologia).
- Total de 2198 entradas no arquivo.
- **Decisão registrada em ADR-0012 pendente de detalhamento**: nenhuma regra de negócio do EDEN deve depender de HTML/JS do tema; extrair apenas tokens visuais (cores, tipografia, espaçamento, componentes) para `packages/ui`.
- Inventário completo de componentes reaproveitáveis fica pendente para quando o Design System (`eden-frontend`) for iniciado na Fase 1 — extrair o zip para pasta temporária dentro do projeto (`.tmp/theme-inventory/`, git-ignorada) só nesse momento, para não versionar 360MB de asset de terceiro sem necessidade.
## 3. Índice de módulos do `eden.md` (legado OrçaFácil)
| # | Módulo | Linhas aprox. | Mapeia para (EDEN) |
|---|---|---|---|
| 1 | Auth, Usuários, Papéis, Permissões, Segurança | 11450 | `eden-security`, IAM (Fase 1) |
| 2 | Produtos, Ofertas (Quotes), Faixas de Preço/Fidelidade, Contratos | 6901450 | `eden-commercial` (Fase 2), `eden-commercial`→Contratos first-class (Fase 3) |
| 3 | Cadastro de Cliente e Cadastro/Gestão de Revendas | 14512206 | `eden-commercial` (Customer 360, Revendas) (Fase 2/8) |
| 4 | Templates de Documentos, PDF, Assinatura Eletrônica | 22072822 | módulo Documentos (Fase 3) |
| 5 | Módulo Fiscal (NCM, CFOP, Municípios) | 28233143 | `eden-fiscal` (Fase 6) |
| 6 | Módulo de Ponto Eletrônico (Timeclock) | 31444141 | `eden-hr-timeclock` (Fase 9) |
| 7 | Backoffice diverso (Backup, Agenda, Welcome Page, Empresa, Dashboard) | 41424597 | plataforma/backoffice (Fase 1/9) |
Leitura completa registrada — nenhuma seção pulada.
## 3.1 Controle de versão
- Repositório git inicializado em `/opt/eden` na Fase 1 (branch `main`).
- Remoto `origin`: `https://git.falehandix.com.br/Matheus/eden.git` (servidor git próprio da Handix, definido pelo operador).
- Nenhum push realizado ainda — commits/push só ocorrem quando explicitamente solicitados.
## 4. Ambiente de execução observado
- Sistema operacional: Linux (Debian 13), sem systemd de usuário próprio visível além do host.
- **Não instalados neste ambiente**: `docker`, `docker compose`, `node`, `pnpm`. Precisam ser provisionados antes da Fase 1 (bootstrap de plataforma).
- Não é um repositório Git (`git status` não aplicável) — decisão pendente sobre iniciar `git init` no início da Fase 1.
## 5. Decisões já tomadas nesta Fase 0
- Topologia de deployment: Postgres em container próprio + um container por aplicação web (`eden-core`, `eden-parceiros`, `eden-assinante`), cada um em porta distinta — ver `docs/adr/0002-container-topology.md`.
- Demais decisões arquiteturais: ver `docs/adr/`.
## 6. Pendências explícitas (não bloqueantes, registradas conforme regra 2.3 do Master Prompt)
- Extração/inventário fino do `tema_do_Eden.zip` (componentes reaproveitáveis) — adiado para o início de `eden-frontend`.
- Provisionamento de Docker/Node/pnpm no ambiente — parte da Fase 1.
- Definição de qual gerenciador de containers/orquestração (Docker Compose simples vs. outra ferramenta) — assumido Docker Compose por ser o que o Master Prompt (seção 4.3) já pede; ver ADR-0002.