Files
iti-technology/prompts/09-api-schema-utenti.md
T
Lorenzo SanesiandClaude Opus 5.5 b83ce039fb
Deploy stack su Proxmox / deploy (push) Failing after 3s
Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA),
apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/;
infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e
workflow Gitea Actions per il deploy via SSH a ogni push su master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
2026-10-20 09:30:48 +02:00

1.1 KiB

09 — API: database e schema utenti

Leggi CLAUDE.md.

Obiettivo

Drizzle ORM su iti_app con le tabelle di identità.

Cosa fare

  • Drizzle ORM + drizzle-kit, migrazioni versionate in apps/api/src/db/migrations.
  • Plugin Fastify db che espone l'istanza Drizzle.
  • Tabelle:
    • users: id uuid, email unique (case-insensitive, salvata lowercase), password_hash, role (enum customer|company|installer|admin), first_name, last_name, company_name null, vat_number null, medusa_customer_id null unique, email_verified_at null, created_at, updated_at, disabled_at null.
    • refresh_tokens: id, user_id FK, token_hash, family_id, expires_at, revoked_at null, created_at, user_agent, ip.
    • password_reset_tokens: id, user_id FK, token_hash, expires_at, used_at null.
    • email_verification_tokens: stessa struttura.
  • Script db:migrate, db:generate, db:seed (seed: un utente admin da env SEED_ADMIN_EMAIL/PASSWORD).

Criteri di accettazione

  • npm run db:migrate -w apps/api crea le tabelle su un DB vuoto.
  • Il seed crea l'admin ed è idempotente.
  • I token sono salvati solo come hash, mai in chiaro.
  • CLAUDE.md aggiornato.