Files
Data-Coupler/README.md
T
Alessio Dal Santo e35de1614f [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
2026-01-23 15:52:15 +01:00

5.9 KiB

Data-Coupler

Panoramica

Data-Coupler è una soluzione integrata per la gestione di connessioni dati e credenziali, composta da tre progetti principali:

  • CredentialManager: Libreria per la gestione sicura delle credenziali
  • DataConnection: Libreria per connessioni a database e API REST
  • Data_Coupler: Applicazione Blazor Server per l'interfaccia utente

Architettura

CredentialManager

Libreria responsabile per:

  • Gestione sicura delle credenziali (Database, REST API)
  • Crittografia dei dati sensibili
  • Persistenza su database SQLite
  • Validazione delle credenziali

DataConnection

Libreria per connessioni dati che include:

  • Supporto per database: SQL Server, MySQL, PostgreSQL, Oracle, SQLite, DB2, SAP HANA
  • Gestione connessioni REST API
  • Integrazione con CredentialManager per l'autenticazione
  • Factory pattern per la gestione di diversi provider

Data_Coupler

Applicazione Blazor Server che fornisce:

  • Interfaccia web per la gestione delle credenziali
  • CRUD completo per credenziali database e REST API
  • Test delle connessioni
  • Validazione form integrata

Configurazione

1. Database delle Credenziali

L'applicazione utilizza SQLite per memorizzare le credenziali. Il database viene automaticamente creato in:

Data_Coupler/wwwroot/data/credentials.db

2. Registrazione Servizi

Nel Program.cs di Data_Coupler:

// Add CredentialManager services
builder.Services.AddDataConnectionCredentialManagement("Data Source=wwwroot/data/credentials.db");

Utilizzo

Gestione Credenziali via Web Interface

  1. Avviare l'applicazione Data_Coupler
  2. Navigare su /credentials
  3. Utilizzare l'interfaccia per:
    • Aggiungere nuove credenziali (Database/REST API)
    • Modificare credenziali esistenti
    • Testare le connessioni
    • Eliminare credenziali

Utilizzo Programmatico

// Iniettare il servizio
@inject IDataConnectionCredentialService CredentialService

// Ottenere opzioni per connessione database
var dbOptions = await CredentialService.GetDbManagerOptionsAsync("MyDatabase");

// Ottenere opzioni per API REST
var apiOptions = await CredentialService.GetRestServiceOptionsAsync("MyApi");

// Gestire credenziali
var credential = new DatabaseCredential
{
    Name = "Test",
    DatabaseType = DatabaseType.SqlServer,
    Host = "localhost",
    Port = 1433,
    DatabaseName = "TestDB",
    Username = "user",
    Password = "password"
};

await CredentialService.SaveDatabaseCredentialAsync(credential);

Struttura dei Progetti

Data-Coupler/
├── CredentialManager/              # Gestione credenziali
│   ├── Data/                       # DbContext e configurazioni
│   ├── Models/                     # Modelli per credenziali
│   └── Services/                   # Servizi core
├── DataConnection/                 # Connessioni dati
│   ├── CredentialManagement/       # Integrazione con CredentialManager
│   │   ├── Interfaces/             # Interfacce servizi
│   │   ├── Models/                 # Extension methods e conversioni
│   │   └── Services/               # Implementazione servizi
│   ├── DB/                         # Gestione database
│   └── REST/                       # Gestione API REST
└── Data_Coupler/                   # Applicazione Blazor
    ├── Pages/                      # Pagine Blazor
    │   └── CredentialManagement.razor
    ├── Shared/                     # Componenti condivisi
    └── wwwroot/data/               # Database SQLite

Build e Deployment

Prerequisiti

  • .NET 9.0 SDK
  • Visual Studio 2022 o VS Code
  • Docker (opzionale, per deployment containerizzato)

Build Locale

dotnet build Data_Coupler.sln

Esecuzione Locale

dotnet run --project Data_Coupler/Data_Coupler.csproj

L'applicazione sarà disponibile su:

🐳 Deployment Docker

Quick Start con Docker:

# Pull e run (immagine pubblica)
docker run -d -p 7550:7550 -v data-coupler-data:/var/lib/Data_Coupler ghcr.io/alessiodalsi/data-coupler:latest

# Con Docker Compose
docker-compose up -d

Build Locale:

# Linux
docker build -t data-coupler:local -f Dockerfile .

# Windows
docker build -t data-coupler:local-windows -f Dockerfile.windows .

# Script automatico (PowerShell)
.\build-docker.ps1 -Target all -Test

# Script automatico (Bash)
./build-docker.sh all

Immagini Disponibili:

  • Linux: ghcr.io/alessiodalsi/data-coupler:latest
  • Windows: ghcr.io/alessiodalsi/data-coupler:latest-windows
  • Dev: ghcr.io/alessiodalsi/data-coupler:dev-latest
  • Staging: ghcr.io/alessiodalsi/data-coupler:staging-latest

📚 Documentazione Docker Completa: Vedi DOCKER_DEPLOYMENT.md e GITHUB_ACTIONS_SETUP.md

Caratteristiche di Sicurezza

  • Crittografia: Le password vengono crittografate prima del salvataggio
  • Validazione: Validazione completa dei dati in input
  • Isolamento: Ogni progetto ha responsabilità specifiche
  • Type Safety: Uso di tipi forti per evitare errori
  • Deletion Sync Sicuro:
    • Disabilitato di default per prevenire eliminazioni accidentali
    • Disponibile solo nelle schedulazioni con configurazione esplicita
    • Warning chiaro nell'interfaccia utente per operazioni critiche

Testing

L'applicazione include funzionalità di test per:

  • Connessioni database
  • Chiamate API REST
  • Validazione credenziali

Il testing può essere eseguito direttamente dall'interfaccia web.

Log e Monitoring

I servizi utilizzano ILogger per tracciare:

  • Operazioni CRUD sulle credenziali
  • Test di connessione
  • Errori e eccezioni

Contributi

Per contribuire al progetto:

  1. Fork del repository
  2. Creare un branch per la feature
  3. Implementare i cambiamenti
  4. Testare thoroughly
  5. Creare una Pull Request

Licenza

[Specificare la licenza del progetto]