Files
Data-Coupler/README.md
T
Alessio c22b4a2613 feat: Integrazione completa gestione credenziali per database e REST API con supporto SAP B1 e Salesforce
NUOVE FUNZIONALITÀ:
- Aggiunto modulo CredentialManager per gestione centralizzata credenziali
- Implementata UI Blazor per gestione credenziali (CredentialManagement.razor)
- Supporto completo per credenziali database (SQL Server, MySQL, PostgreSQL, Oracle, SQLite, DB2, SAP HANA)
- Gestione unificata REST API con supporto specifico per SAP B1 Service Layer e Salesforce
- Test reali di connessione per database, SAP B1 e Salesforce OAuth2
- Selezione dinamica tipo servizio REST (Generico, SAP B1, Salesforce) con campi specifici
- Persistenza sicura di credenziali con crittografia password e campi sensibili

COMPONENTI AGGIUNTI:
- CredentialManager/Models/: CredentialEntity, CredentialModels (DatabaseCredential, RestApiCredential, SapB1ServiceLayerCredential, SalesforceCredential)
- CredentialManager/Services/: CredentialService, EncryptionService, DatabaseInitializer
- CredentialManager/Data/: CredentialDbContext con Entity Framework
- DataConnection/CredentialManagement/: Interfacce e servizi di integrazione
- Data_Coupler/Pages/CredentialManagement.razor: UI completa per gestione credenziali

MIGLIORAMENTI UI:
- Form dinamica per REST API con campi specifici per tipo servizio
- Validazione campi obbligatori per Salesforce (ClientId, ClientSecret, SecurityToken)
- Test connessione in tempo reale dalla modale di inserimento/modifica
- Rimozione sezioni separate per SAP B1 e Salesforce (ora unificate in REST API)
- Gestione stato loading durante operazioni async

PERSISTENZA AVANZATA:
- Campo RestServiceType aggiunto a CredentialEntity con migrazione automatica
- Serializzazione campi specifici Salesforce/SAP B1 in AdditionalParameters JSON
- Mapping bidirezionale tra entità database e modelli business
- Gestione nullability e conversioni tipo sicure

SICUREZZA:
- Crittografia AES-256 per password e token sensibili
- Gestione sicura ConnectionString database
- Validazione input e sanitizzazione dati

TESTING E CONNETTIVITÀ:
- Test autenticazione reale SAP B1 Service Layer
- Test OAuth2 Salesforce con supporto Connected App
- Test connettività database multi-provider
- Logging dettagliato per debugging e monitoraggio

CONFIGURAZIONE:
- Dependency injection per tutti i servizi
- Configurazione Entity Framework con SQLite
- Tasks VS Code per build e run
- Gestione connection string centralizzata

CORREZIONI:
- Risolti errori nullability in CredentialService
- Aggiunto using Microsoft.JSInterop per IJSRuntime
- Fix compilazione e warning

Files modificati: 35+ file tra nuovi e aggiornati
2025-06-17 01:43:17 +02:00

4.7 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

Build

dotnet build Data_Coupler.sln

Esecuzione

dotnet run --project Data_Coupler/Data_Coupler.csproj

L'applicazione sarà disponibile su:

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

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]