DEV-000068 support strong Postgres credentials #58

Merged
m merged 1 commits from codex/dev000068-postgres-strong-secret-dsn into main 2026-08-17 15:59:02 +00:00
9 changed files with 27 additions and 16 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ import (
type AuthorityRepository struct{ pool *pgxpool.Pool }
func OpenAuthority(ctx context.Context, c ContinuityConfig) (*AuthorityRepository, error) {
p, e := pgxpool.New(ctx, fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", c.Host, c.Port, c.Database, c.User, c.Password))
p, e := openPool(ctx, c)
if e != nil {
return nil, e
}
+1 -2
View File
@@ -19,8 +19,7 @@ var ErrCapabilityImplementationNotFound = errors.New("capability implementation
type CapabilityRepository struct{ pool *pgxpool.Pool }
func OpenCapability(ctx context.Context, config ContinuityConfig) (*CapabilityRepository, error) {
dsn := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", config.Host, config.Port, config.Database, config.User, config.Password)
pool, err := pgxpool.New(ctx, dsn)
pool, err := openPool(ctx, config)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -23,7 +23,7 @@ var (
type CommitRepository struct{ pool *pgxpool.Pool }
func OpenCommit(ctx context.Context, c ContinuityConfig) (*CommitRepository, error) {
p, e := pgxpool.New(ctx, fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", c.Host, c.Port, c.Database, c.User, c.Password))
p, e := openPool(ctx, c)
if e != nil {
return nil, e
}
+19 -2
View File
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"strconv"
"git.cin.su/m/Assistant/contracts/authority"
"git.cin.su/m/Assistant/contracts/continuity"
@@ -29,9 +30,25 @@ var (
type ContinuityConfig struct{ Host, Port, Database, User, Password string }
type ContinuityRepository struct{ pool *pgxpool.Pool }
func openPool(ctx context.Context, config ContinuityConfig) (*pgxpool.Pool, error) {
poolConfig, err := pgxpool.ParseConfig("")
if err != nil {
return nil, err
}
port, err := strconv.ParseUint(config.Port, 10, 16)
if err != nil {
return nil, fmt.Errorf("invalid postgres port: %w", err)
}
poolConfig.ConnConfig.Host = config.Host
poolConfig.ConnConfig.Port = uint16(port)
poolConfig.ConnConfig.Database = config.Database
poolConfig.ConnConfig.User = config.User
poolConfig.ConnConfig.Password = config.Password
return pgxpool.NewWithConfig(ctx, poolConfig)
}
func OpenContinuity(ctx context.Context, config ContinuityConfig) (*ContinuityRepository, error) {
dsn := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", config.Host, config.Port, config.Database, config.User, config.Password)
pool, err := pgxpool.New(ctx, dsn)
pool, err := openPool(ctx, config)
if err != nil {
return nil, err
}
+1 -2
View File
@@ -11,8 +11,7 @@ import (
type EpistemicsRepository struct{ pool *pgxpool.Pool }
func OpenEpistemics(ctx context.Context, config ContinuityConfig) (*EpistemicsRepository, error) {
dsn := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", config.Host, config.Port, config.Database, config.User, config.Password)
pool, err := pgxpool.New(ctx, dsn)
pool, err := openPool(ctx, config)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -11,7 +11,7 @@ import (
type IdentityRepository struct{ pool *pgxpool.Pool }
func OpenIdentity(ctx context.Context, config ContinuityConfig) (*IdentityRepository, error) {
pool, err := pgxpool.New(ctx, fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", config.Host, config.Port, config.Database, config.User, config.Password))
pool, err := openPool(ctx, config)
if err != nil {
return nil, err
}
+1 -2
View File
@@ -2,7 +2,6 @@ package postgres
import (
"context"
"fmt"
"git.cin.su/m/Assistant/contracts/interaction"
"github.com/jackc/pgx/v5/pgxpool"
@@ -11,7 +10,7 @@ import (
type InteractionRepository struct{ pool *pgxpool.Pool }
func OpenInteraction(ctx context.Context, c ContinuityConfig) (*InteractionRepository, error) {
p, e := pgxpool.New(ctx, fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", c.Host, c.Port, c.Database, c.User, c.Password))
p, e := openPool(ctx, c)
return &InteractionRepository{p}, e
}
func (r *InteractionRepository) Close() { r.pool.Close() }
+1 -3
View File
@@ -2,7 +2,6 @@ package postgres
import (
"context"
"fmt"
"strings"
"git.cin.su/m/Assistant/contracts/identity"
@@ -13,8 +12,7 @@ import (
type SituationRepository struct{ pool *pgxpool.Pool }
func OpenSituation(ctx context.Context, config ContinuityConfig) (*SituationRepository, error) {
dsn := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", config.Host, config.Port, config.Database, config.User, config.Password)
pool, err := pgxpool.New(ctx, dsn)
pool, err := openPool(ctx, config)
if err != nil {
return nil, err
}
+1 -2
View File
@@ -11,8 +11,7 @@ import (
type WorkRepository struct{ pool *pgxpool.Pool }
func OpenWork(ctx context.Context, config ContinuityConfig) (*WorkRepository, error) {
dsn := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s", config.Host, config.Port, config.Database, config.User, config.Password)
pool, err := pgxpool.New(ctx, dsn)
pool, err := openPool(ctx, config)
if err != nil {
return nil, err
}