netgescon-day0/docs/00-IMPORT/03-SCRIPTS/README-SCRIPTS.md

5.0 KiB

🚀 SCRIPT AUTOMATICI IMPORT NETGESCON

📋 OVERVIEW

Script Node.js per automatizzare l'import dei dati dal vecchio sistema Gescon a NetGescon tramite API.


🔧 SETUP

1. Prerequisiti

# Installa Node.js e npm
node --version  # >= 14.0.0
npm --version   # >= 6.0.0

# Installa dipendenze
npm install axios

2. Configurazione

# Copia file environment
cp .env.example .env

# Modifica configurazione API
nano .env

3. Variabili Environment

NETGESCON_API_URL=http://localhost:8000/api/v1
NETGESCON_EMAIL=admin@netgescon.local
NETGESCON_PASSWORD=your_password

🎯 SCRIPT DISPONIBILI

validation-checker.js

Validazione preliminare dati senza import

# Esecuzione
node validation-checker.js

# Output
- validation-report-{timestamp}.json
- Log validazione su console

import-runner.js

Import automatico completo via API

# Solo validazione (no import)
node import-runner.js --validate-only

# Import solo amministratori
node import-runner.js --step=admin

# Import solo stabili
node import-runner.js --step=stabili

# Import completo
node import-runner.js

📊 PROCESSO STEP-BY-STEP

Step 1: Validazione Pre-Import

# Controlla tutti i dati prima di iniziare
node validation-checker.js

Controlla:

  • Formati codici fiscali
  • Validità email e PEC
  • Formati IBAN
  • CAP e province italiane
  • Riferimenti incrociati amministratori-stabili

Step 2: Test Validazione API

# Test chiamata API senza modifiche
node import-runner.js --validate-only

Verifica:

  • Connessione API
  • Autenticazione
  • Validazione remota dati
  • Mappatura campi corretta

Step 3: Import Amministratori

# Import solo amministratori
node import-runner.js --step=admin

Risultato:

  • Creazione utenti sistema
  • Assegnazione ruoli
  • Generazione password temporanee

Step 4: Import Stabili

# Import stabili (dopo amministratori)
node import-runner.js --step=stabili

Risultato:

  • Creazione stabili
  • Collegamento amministratori
  • Configurazione dati bancari

📁 FILE GENERATI

Log Files

  • import.log - Log dettagliato operazioni
  • validation-report-{timestamp}.json - Report validazione
  • import-report-{timestamp}.json - Report import finale

Struttura Log

[2025-01-08T10:30:15.123Z] [INFO] Avvio import...
[2025-01-08T10:30:16.456Z] [INFO] Login API completato
[2025-01-08T10:30:17.789Z] [INFO] Amministratori importati: 1
[2025-01-08T10:30:18.012Z] [ERROR] Errore validazione stabile...

🔍 MONITORING E DEBUG

Verifica Stato

# Durante import - altro terminale
tail -f import.log

# Controlla API server
curl http://localhost:8000/api/v1/auth/login

Recovery da Errori

# Re-run solo step falliti
node import-runner.js --step=stabili

# Debug modalità
DEBUG_MODE=true node import-runner.js --validate-only

ESEMPI USO

Workflow Completo

# 1. Validazione locale
node validation-checker.js

# 2. Test API
node import-runner.js --validate-only

# 3. Import step-by-step
node import-runner.js --step=admin
node import-runner.js --step=stabili

# 4. Verifica risultati
grep "importati" import.log

Solo Validazione

# Controllo rapido dati
node validation-checker.js | grep ERROR

# Test connessione API
node import-runner.js --validate-only --step=admin

🔧 TROUBLESHOOTING

Errori Comuni

Connection Refused

# Verifica server Laravel attivo
php artisan serve --host=0.0.0.0 --port=8000

# Test connessione
curl http://localhost:8000/api/v1/auth/login

Authentication Failed

# Verifica credenziali in .env
cat .env | grep NETGESCON_

# Test login manuale
curl -X POST http://localhost:8000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@netgescon.local","password":"password"}'

Validation Errors

# Controlla dettagli errori
node validation-checker.js > validation-output.txt
grep "ERROR" validation-output.txt

# Fix dati in JSON files
nano ../01-GESCON/amministratori.json

📈 PERFORMANCE

Tempi Stimati

  • Validazione: ~5 secondi
  • Import 1 amministratore: ~2 secondi
  • Import 7 stabili: ~10 secondi
  • Totale: ~20 secondi

Ottimizzazione

  • Batch size: 50 record/volta
  • Timeout: 30 secondi/richiesta
  • Retry: 3 tentativi automatici

🔒 SICUREZZA

Best Practices

  • Password sicure in .env (non committare)
  • Token API con scadenza
  • Log senza dati sensibili
  • Backup prima import

Rollback

-- In caso di problemi
DELETE FROM stabili WHERE created_at > '2025-01-08 10:30:00';
DELETE FROM users WHERE email LIKE '%@import.temp';

🎯 NEXT STEPS

Dopo import amministratori e stabili:

  1. Import unità immobiliari
  2. Import anagrafica condomini
  3. Import dati contabilità
  4. Verifica integrità finale