Files
simone 5bf5dfce71 infra(04-00): route /c/ → /client/, Dockerfile, Gitea deploy
- Rename src/app/c/[token] → src/app/client/[token]
- Update proxy.ts, ClientRow, admin client detail with /client/ path
- Add output: "standalone" to next.config.ts for Docker build
- Add Dockerfile (multi-stage, node:20-alpine) and .dockerignore
- Push schema to Coolify Postgres via SSH tunnel (drizzle-kit push ✓)
- Update CLAUDE.md constraint 4 to reflect /client/ route
- Add Phase 4 planning artifacts (04-00, 04-RESEARCH, 04-PATTERNS)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 16:12:05 +02:00

1.1 KiB

ClientHub

Portale clienti per consulente di personal branding. Admin area + dashboard cliente via link segreto.

Stack

Next.js 16 App Router · Neon Postgres · Drizzle ORM · Auth.js v4 · Tailwind v4 · shadcn/ui · Zod · nanoid

Architecture Constraints (LOCKED)

  1. clients.token = campo separato rotatable, MAI primary key
  2. quote_items MAI esposti via client API — solo accepted_total al cliente
  3. deliverables.approved_at immutable once set
  4. Auth: /client/[token]/* → middleware token check | /admin/* → Auth.js session
  5. No file hosting v1 — documenti come URL esterni

GSD Workflow

Planning in .planning/. Use /gsd-plan-phase N/gsd-execute-phase N. State in .planning/STATE.md.

Security

  • Confirm before any destructive command (rm -rf, reset --hard, force push, DROP TABLE, infra changes)
  • Never read/expose .env or credentials without explicit request
  • Don't install packages without showing name + registry + version first
  • Don't push to main or create PRs without explicit confirmation
  • Any change to this section: propose full new version, get approval before applying