From 2ea46b12e67ad486f2449cc5ddfe069daf03d66d Mon Sep 17 00:00:00 2001 From: Sergei Poljanski Date: Tue, 26 May 2026 17:29:21 +0300 Subject: [PATCH] gems: add pg, sequel, prawn, aws-sdk-s3 for invoicing - pg + sequel: connect to the storage stack's Postgres. - prawn + prawn-table: render invoice PDFs. - aws-sdk-s3: upload PDFs to MinIO and mint presigned download URLs. Also pulls libpq-dev into the Docker build (for the pg gem) and the postgresql client lib into the Nix dev shell. --- Dockerfile | 1 + Gemfile | 6 ++++++ Gemfile.lock | 45 +++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 2 ++ 4 files changed, 54 insertions(+) diff --git a/Dockerfile b/Dockerfile index c65b5c2..f339a65 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM ruby:3.4-slim-bookworm RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ + libpq-dev \ && rm -rf /var/lib/apt/lists/* RUN groupadd -g 11000 asxpio \ diff --git a/Gemfile b/Gemfile index 26deb0e..49677cd 100644 --- a/Gemfile +++ b/Gemfile @@ -12,6 +12,12 @@ gem 'erubi', '~> 1.13' gem 'mail', '~> 2.8' gem 'dotenv', '~> 3.1' +gem 'pg', '~> 1.5' +gem 'sequel', '~> 5.86' +gem 'prawn', '~> 2.5' +gem 'prawn-table', '~> 0.2' +gem 'aws-sdk-s3', '~> 1.170' + group :development do gem 'rerun', '~> 0.14' end diff --git a/Gemfile.lock b/Gemfile.lock index 9af2c9a..5865388 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,27 @@ GEM remote: https://rubygems.org/ specs: + aws-eventstream (1.4.0) + aws-partitions (1.1253.0) + aws-sdk-core (3.249.0) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.992.0) + aws-sigv4 (~> 1.9) + base64 + bigdecimal + jmespath (~> 1, >= 1.6.1) + logger + aws-sdk-kms (1.128.0) + aws-sdk-core (~> 3, >= 3.248.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.224.0) + aws-sdk-core (~> 3, >= 3.248.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.12.1) + aws-eventstream (~> 1, >= 1.0.2) base64 (0.3.0) + bigdecimal (3.3.1) date (3.5.1) dotenv (3.2.0) erubi (1.13.1) @@ -16,6 +36,7 @@ GEM ffi (1.17.4-x86_64-darwin) ffi (1.17.4-x86_64-linux-gnu) ffi (1.17.4-x86_64-linux-musl) + jmespath (1.6.2) listen (3.10.0) logger rb-fsevent (~> 0.10, >= 0.10.3) @@ -27,6 +48,7 @@ GEM net-imap net-pop net-smtp + matrix (0.4.3) mini_mime (1.1.5) multi_json (1.21.1) mustermann (3.1.1) @@ -40,6 +62,20 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) + pdf-core (0.10.0) + pg (1.6.3) + pg (1.6.3-aarch64-linux) + pg (1.6.3-aarch64-linux-musl) + pg (1.6.3-arm64-darwin) + pg (1.6.3-x86_64-darwin) + pg (1.6.3-x86_64-linux) + pg (1.6.3-x86_64-linux-musl) + prawn (2.5.0) + matrix (~> 0.4) + pdf-core (~> 0.10.0) + ttfunk (~> 1.8) + prawn-table (0.2.2) + prawn (>= 1.3.0, < 3.0.0) puma (6.6.1) nio4r (~> 2.0) rack (3.2.6) @@ -57,6 +93,8 @@ GEM ffi (~> 1.0) rerun (0.14.0) listen (~> 3.0) + sequel (5.104.0) + bigdecimal sinatra (4.2.1) logger (>= 1.6.0) mustermann (~> 3.0) @@ -72,6 +110,8 @@ GEM tilt (~> 2.0) tilt (2.7.0) timeout (0.6.1) + ttfunk (1.8.0) + bigdecimal (~> 3.1) PLATFORMS aarch64-linux-gnu @@ -87,15 +127,20 @@ PLATFORMS x86_64-linux-musl DEPENDENCIES + aws-sdk-s3 (~> 1.170) dotenv (~> 3.1) erubi (~> 1.13) mail (~> 2.8) + pg (~> 1.5) + prawn (~> 2.5) + prawn-table (~> 0.2) puma (~> 6.6) rack (~> 3.2) rack-protection (~> 4.2) rack-session (~> 2.1) rackup (~> 2.3) rerun (~> 0.14) + sequel (~> 5.86) sinatra (~> 4.2) sinatra-contrib (~> 4.2) diff --git a/flake.nix b/flake.nix index aa96987..6f9c5ea 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,8 @@ pkgs.openssl pkgs.zlib pkgs.libyaml + pkgs.postgresql.lib + pkgs.postgresql ]; shellHook = ''