# File Deletion Policy ## Comportamento di Default Per impostazione predefinita, i file ricevuti via FTP/SFTP vengono **mantenuti** sul server dopo l'elaborazione: - ✅ **Elaborazione riuscita**: il file viene rinominato con timestamp e salvato nella directory dell'utente, i dati vengono inseriti nel database - ❌ **Elaborazione fallita**: il file rimane nella directory dell'utente per permettere debug e riprocessamento manuale ## Abilitare la Cancellazione Automatica Per cancellare automaticamente i file dopo un'elaborazione **riuscita**, imposta la variabile d'ambiente nel `docker-compose.yml`: ```yaml environment: DELETE_AFTER_PROCESSING: "true" ``` ### Valori Accettati La variabile accetta i seguenti valori (case-insensitive): - `true`, `1`, `yes` → cancellazione **abilitata** - `false`, `0`, `no` o qualsiasi altro valore → cancellazione **disabilitata** (default) ## Comportamento con DELETE_AFTER_PROCESSING=true | Scenario | Comportamento | |----------|---------------| | File elaborato con successo | ✅ Dati inseriti nel DB → File **cancellato** | | Errore durante elaborazione | ❌ Errore loggato → File **mantenuto** per debug | | File vuoto | 🗑️ File cancellato immediatamente (comportamento esistente) | ## Log Quando un file viene cancellato dopo l'elaborazione, viene loggato: ``` INFO: File example_20250103120000.csv loaded successfully INFO: File example_20250103120000.csv deleted after successful processing ``` In caso di errore durante la cancellazione: ``` WARNING: Failed to delete file example_20250103120000.csv: [errno] [description] ``` ## Esempio Configurazione ### Mantenere i file (default) ```yaml ftp-server: environment: DB_HOST: "mysql-server" # DELETE_AFTER_PROCESSING non impostata o impostata a false ``` ### Cancellare i file dopo elaborazione ```yaml ftp-server: environment: DB_HOST: "mysql-server" DELETE_AFTER_PROCESSING: "true" ``` ## Note Implementative - La cancellazione avviene **solo dopo** l'inserimento riuscito nel database - Se la cancellazione fallisce, viene loggato un warning ma l'elaborazione è considerata riuscita - I file con errori di elaborazione rimangono sempre sul server indipendentemente dalla configurazione - La policy si applica sia a FTP che a SFTP