[Feature] Disabilitata deletion sync nei trasferimenti manuali e aggiunta configurazione nelle schedulazioni

- Disabilitata completamente la sincronizzazione eliminazioni nei trasferimenti manuali (DataCoupler.razor.cs)
- Aggiunto campo EnableDeletionSync al modello ProfileSchedule (default: false)
- Implementata logica condizionale in ScheduledProfileExecutionService per deletion sync
- Aggiunta sezione 'Opzioni Avanzate' nell'interfaccia schedulazione con warning
- Creata migration Entity Framework AddEnableDeletionSyncToProfileSchedule
- Aggiornato BackupModels per supporto backup/restore del nuovo campo
- Aggiornata documentazione README.md e copilot-instructions.md
- La deletion sync è ora disponibile solo per schedulazioni con configurazione esplicita per massima sicurezza
This commit is contained in:
Alessio Dal Santo
2026-01-23 15:52:15 +01:00
parent 5169cd25c8
commit e35de1614f
13 changed files with 796 additions and 16 deletions
+4 -1
View File
@@ -1496,8 +1496,10 @@ public partial class DataCoupler : ComponentBase
recordNumber++;
}
// 3.5 Sincronizza le cancellazioni (se abilitato)
// 3.5 Sincronizzazione cancellazioni (DISABILITATA per trasferimenti manuali)
// Questa funzionalità è disponibile solo per le schedulazioni con configurazione esplicita
int deletedCount = 0;
/* DELETION SYNC DISABILITATA PER TRASFERIMENTI MANUALI
if (useRecordAssociations && !string.IsNullOrEmpty(sourceKeyField))
{
try
@@ -1570,6 +1572,7 @@ public partial class DataCoupler : ComponentBase
});
}
}
*/
// 4. Mostra risultati
if (errorCount == 0)
+24
View File
@@ -336,6 +336,30 @@
</label>
</div>
<div class="card mb-3">
<div class="card-header bg-warning text-dark">
<h6 class="mb-0">
<i class="fas fa-exclamation-triangle"></i> Opzioni Avanzate
</h6>
</div>
<div class="card-body">
<div class="form-check mb-2">
<InputCheckbox @bind-Value="editingSchedule.EnableDeletionSync" class="form-check-input" id="enableDeletionSyncCheckbox" />
<label class="form-check-label" for="enableDeletionSyncCheckbox">
<strong>Abilita sincronizzazione eliminazioni</strong>
</label>
</div>
<div class="alert alert-warning mb-0">
<small>
<i class="fas fa-info-circle"></i>
<strong>Attenzione:</strong> Se abilitata, i record eliminati dalla sorgente saranno automaticamente eliminati anche dalla destinazione durante l'esecuzione schedulata.
Questa opzione è <strong>disabilitata di default</strong> per motivi di sicurezza.
Usare con cautela!
</small>
</div>
</div>
</div>
<div class="d-flex justify-content-end gap-2">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annulla</button>
<button type="submit" class="btn btn-primary">