DataAccessAwsPostGreSql 1.0.3

dotnet add package DataAccessAwsPostGreSql --version 1.0.3
                    
NuGet\Install-Package DataAccessAwsPostGreSql -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DataAccessAwsPostGreSql" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DataAccessAwsPostGreSql" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="DataAccessAwsPostGreSql" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DataAccessAwsPostGreSql --version 1.0.3
                    
#r "nuget: DataAccessAwsPostGreSql, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DataAccessAwsPostGreSql@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DataAccessAwsPostGreSql&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=DataAccessAwsPostGreSql&version=1.0.3
                    
Install as a Cake Tool

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

  • IDbConexaoService
  • ISecretCache
  • IUnitOfWork

💡 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 208 6/4/2025
1.0.2 207 3/18/2025
1.0.1 205 3/10/2025