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
This commit is contained in:
@@ -1 +1,167 @@
|
||||
# Data-Coupler
|
||||
# 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:
|
||||
|
||||
```csharp
|
||||
// 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
|
||||
|
||||
```csharp
|
||||
// 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
|
||||
```bash
|
||||
dotnet build Data_Coupler.sln
|
||||
```
|
||||
|
||||
### Esecuzione
|
||||
```bash
|
||||
dotnet run --project Data_Coupler/Data_Coupler.csproj
|
||||
```
|
||||
|
||||
L'applicazione sarà disponibile su:
|
||||
- HTTP: http://localhost:5135
|
||||
- HTTPS: https://localhost:7132
|
||||
|
||||
## 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]
|
||||
Reference in New Issue
Block a user