Vai al contenuto

Il gestionale che non riusciva a parlare con l'ERP

Un'app fatta con Lovable non riusciva a collegarsi all'ERP aziendale: la causa, il ponte API e cosa è uscito leggendo il codice.

Autore

G. Tempesta

Pubblicato

Lettura

3 min

Aggiornato

Scritto con l'aiuto dell'AI, rivisto da Giovanni Tempesta

Il gestionale che non riusciva a parlare con l'ERP

Dettagli modificati per tutelare la riservatezza del cliente.

Cosa doveva fare l'app

Un'azienda aveva costruito con Lovable e Supabase il suo gestionale. L'app funzionava. Mancava un pezzo: parlare con l'ERP aziendale, cioè leggere e aggiornare i suoi dati.

Sulla carta era un'integrazione come tante. In pratica, la connessione non partiva.

Perché la connessione all'ERP non partiva?

Il database dell'ERP accettava connessioni solo da indirizzi IP autorizzati, e le funzioni serverless su cui girava l'app non hanno un indirizzo IP fisso: cambia di continuo. Non c'era un indirizzo da autorizzare.

Accettare solo indirizzi autorizzati è una buona pratica di sicurezza. L'AI e Lovable non avevano sbagliato nulla: è un limite dell'architettura, di cui nessuno aveva tenuto conto quando l'app era solo un prototipo.

Come ho collegato l'app all'ERP

Ho costruito un piccolo layer API su un server con IP statico, che fa da ponte fra l'app e l'ERP:

  • l'ERP autorizza un solo indirizzo, quello del ponte;
  • l'app parla con il ponte usando un token;
  • ogni chiamata viene registrata, così si sa sempre chi ha letto o scritto cosa;
  • le richieste sono accettate solo dai domini dell'app;
  • la sincronizzazione verso l'ERP parte da sola, senza interventi manuali.

Ora l'app e l'ERP si parlano in modo controllato e tracciabile.

Cosa è emerso leggendo il codice

Per costruire il ponte ho dovuto leggere il codice, e sono uscite altre tre cose, che ho segnalato:

  1. La chiave principale del database era pubblicata nel repository. Una chiave con pieni poteri, scritta in chiaro in un file salvato su GitHub. Chi la trova può leggere, cambiare o cancellare tutto.
  2. La modalità debug era attiva in produzione. I messaggi d'errore mostravano percorsi del server.
  3. Non esisteva un ambiente di prova. Ogni test scriveva direttamente sull'ERP vero.

Nessuna delle tre si vedeva usando l'app. Tutte e tre potevano costare molto più dell'integrazione.

Cosa controllare se la tua app deve collegarsi a un ERP

  • Se la tua app deve collegarsi a sistemi aziendali (ERP, gestionali, database interni), chiediti da dove partono le chiamate. Le piattaforme serverless spesso non hanno un IP fisso.
  • Oltre a risolvere il collegamento, un ponte API ti dà un registro di tutto quello che passa.
  • Prima di mettere mano a un'integrazione, fai rileggere il codice. È il momento in cui escono i problemi che la demo non mostra.

Ogni settimana racconto un problema reale trovato nel codice delle app fatte con l'AI, sempre in forma anonima. Lo trovi qui sul blog e su LinkedIn.

  • Lovable
  • Supabase
  • Integrazioni
  • Caso reale