DataAccessAwsPostGreSql 1.0.3
dotnet add package DataAccessAwsPostGreSql --version 1.0.3
NuGet\Install-Package DataAccessAwsPostGreSql -Version 1.0.3
<PackageReference Include="DataAccessAwsPostGreSql" Version="1.0.3" />
<PackageVersion Include="DataAccessAwsPostGreSql" Version="1.0.3" />
<PackageReference Include="DataAccessAwsPostGreSql" />
paket add DataAccessAwsPostGreSql --version 1.0.3
#r "nuget: DataAccessAwsPostGreSql, 1.0.3"
#:package DataAccessAwsPostGreSql@1.0.3
#addin nuget:?package=DataAccessAwsPostGreSql&version=1.0.3
#tool nuget:?package=DataAccessAwsPostGreSql&version=1.0.3
DbConexaoService - Pacote NuGet para Gerenciamento de Conexão com PostgreSQL via AWS Secrets Manager
📦 Descrição
Este pacote fornece uma solução robusta e segura para o gerenciamento de conexões com bancos de dados PostgreSQL utilizando:
- AWS Secrets Manager para armazenar e recuperar segredos.
- Npgsql como driver de conexão PostgreSQL.
- Logging integrado com
ILogger. - Injeção de Dependência com interfaces bem definidas.
- Gerenciamento de transações com a implementação do padrão Unit of Work.
🎯 Funcionalidades
- Recuperação segura de credenciais via AWS Secrets Manager.
- Criação automática de
NpgsqlConnection. - Suporte a transações com
UnitOfWork. - Totalmente compatível com .NET Core e .NET 5/6/7/8.
- Configuração centralizada via
IOptions<Settings>.
🗂️ Estrutura de Pastas
- Configuracao: Serviço de conexão com PostgreSQL (
DbConexaoService). - Entidade: Classe de configuração (
Settings). - Facades: Facade para AWS Secrets Manager (
SecretsManagerFacade). - Interface: Contratos de serviço (
IDbConexaoService,ISecretCache,IUnitOfWork). - Service: Implementação de Unit of Work (
UnitOfWork).
🚀 Como Usar
1. Instale o pacote
dotnet add package DbConexaoService
2. Configure o Settings
{
"Settings": {
"UsersSecretName": "your-username-secret",
"PwdSecretName": "your-password-secret",
"HostName": "your-db-host",
"DataBase": "your-db-name",
"Port": 5432,
"Environment": "Production"
}
}
3. Configure a Injeção de Dependência
services.Configure<Settings>(Configuration.GetSection("Settings"));
services.AddSingleton<ISecretCache, SecretsManagerFacade>();
services.AddScoped<IDbConexaoService, DbConexaoService>();
services.AddScoped<IUnitOfWork, UnitOfWork>();
services.AddAWSService<IAmazonSecretsManager>();
🛠️ Principais Classes
✅ DbConexaoService
Responsável por criar a conexão com o banco de dados PostgreSQL de forma segura.
✅ Settings
Classe de configuração contendo os parâmetros necessários.
✅ SecretsManagerFacade
Responsável por realizar o cache e a recuperação dos segredos.
✅ UnitOfWork
Gerencia a conexão e a transação.
✅ Interfaces
IDbConexaoServiceISecretCacheIUnitOfWork
💡 Benefícios
✅ Segurança: senhas e usuários nunca ficam hardcoded.
✅ Flexibilidade: facilmente adaptável.
✅ Facilidade: abstrações para simplificar a configuração.
✅ Robustez: tratamento de exceções com ILogger.
⚠️ Requisitos
- .NET Core 3.1 ou superior.
- AWS Secrets Manager configurado.
- PostgreSQL.
📄 Exemplo de Uso
public class MeuServico
{
private readonly IUnitOfWork _unitOfWork;
public MeuServico(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
public void Executar()
{
using var transaction = _unitOfWork.BeginTransaction();
try
{
// Sua lógica de banco de dados aqui.
_unitOfWork.CommitTransaction();
}
catch
{
_unitOfWork.Rollback();
throw;
}
}
}
📚 Referências
- Npgsql Documentation
- AWS Secrets Manager Documentation
- Microsoft Dependency Injection
📝 Licença
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- AWSSDK.SecretsManager (>= 3.7.400.114)
- AWSSDK.SecretsManager.Caching (>= 1.0.6)
- Microsoft.Extensions.Options (>= 9.0.3)
- Npgsql (>= 9.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.