Integra Jarvis (GoHighLevel) ai CRM dei clienti tramite un middleware ad adapter.
- Nx monorepo + pnpm + TypeScript
apps/api: Fastify webhook API (Jarvis ingestion + auth + CRUD); entrymain.ts→instrumentation.ts(OpenTelemetry opzionale, vedi.env.example)apps/web: React + Vite + Tailwind CSS + Lucide Icons admin console- Prisma ORM + PostgreSQL per utenti, sessioni, flussi, mapping, inbox eventi, delivery tracking
- Redis/BullMQ per code delivery con retry esponenziale e stato
DEAD_LETTER(seREDIS_URLassente, consegna inline come prima)
apps/apiapps/weblibs/core-domainlibs/connectorslibs/sharedprisma/VERSIONscripts/release.shscripts/rollback.shCHECKLIST.mddocs/OBSERVABILITY_AND_TRACING_PLAN.md— piano tracciamento / debug / AI-friendly (pre-connettori)
contact.createdcontact.updatedappointment.createdappointment.updatedappointment.cancelled
Sync iniziale solo unidirezionale: Jarvis -> CRM esterno.
- HubSpot adapter implementato in
libs/connectors(contact + appointment methods). - Login funzionante con session token persistito lato frontend.
- CRUD utenti (ADMIN) in webapp + API.
- Frontend mini-zapier con flow creation e import/export JSON (file + clipboard).
- Persistenza idempotency/event inbox su PostgreSQL via Prisma.
- Mapping campi Jarvis → modelli canonici per tenant/connettore/evento (
FieldMapping+ UI/mappings). - Logging backend strutturato con request lifecycle.
Se non esiste un admin, all'avvio API viene creato automaticamente:
ADMIN_EMAIL(defaultadmin@wavebridge.local)ADMIN_PASSWORD(defaultChangeMe123!)
Cambiare subito le credenziali in produzione.
Copia .env.example in .env e compila i valori reali.
.env non è tracciato da git (.gitignore).
Prisma gestisce il mapping modello -> tabelle.
Comandi utili:
pnpm db:generate
pnpm db:migrate:dev
pnpm db:migrate:deployAll'avvio API vengono eseguite automaticamente le migrazioni con prisma migrate deploy.
Versione di deploy canonica in VERSION. package.json non pilota release o rollback.
Flusso standard:
- partire da
mainpulito - creare il commit release che aggiorna
VERSION - creare il tag ambiente
vX.Y.Z-testovX.Y.Z-prod - pushare
maine il tag - repuntare il branch remoto ambiente (
testoproduction) a quel tag
Comandi:
pnpm release:test 1.0.0
pnpm release:prod 1.0.0Rollback:
pnpm rollback:test 1.0.0
pnpm rollback:prod v1.0.0-prodI branch ambiente sono il puntamento operativo usato da Dokploy; i tag ambiente restano il riferimento immutabile della release.
Prerequisiti iniziali:
- creare i branch remoti
testeproduction - configurare Dokploy per seguire
testper l'ambiente di test eproductionper quello di produzione
Esempi Git diretti:
./scripts/release.sh test 1.0.0
./scripts/release.sh prod 1.0.0
./scripts/rollback.sh test 1.0.0
./scripts/rollback.sh prod v1.0.0-prodVedi CHECKLIST.md per task prioritizzate, stato avanzamento e roadmap integrazioni CRM (HubSpot, Salesforce, CRM in Cloud, Focus CRM, Treatwell, Optix, pattern export file).
- Già in codice: adapter HubSpot e Salesforce (
libs/connectors). - Prossimi target API pubbliche: CRM in Cloud (TeamSystem), Optix — dopo consolidamento coda e mapping da DB.
- Focus iniziativa commerciale a tre: CRM in Cloud, Focus CRM (BluData), Treatwell (iCal + CSV contatti). Dettagli, vincoli e roadblock in
CHECKLIST.md.