supabase-postgres.git / summary / log / commit / refs

commit    1deb6f23796c511d524d3c47fbfa244b98036cbd
Author:   Etienne Stalmans <staaldraad@users.noreply.github.com>
Commit:   GitHub <noreply@github.com>
Date:     Thu Oct 30 18:08:16 2025 +0000

    feat: update supautils (#1879)
    
    * feat: update supautils
    
    Bumps supautils to allow disabling `copy ... program` utility
    
    * fix: set supautils.disable_program guc
    
    * Apply suggestion from @soedirgo
    
    ---------
    
    Co-authored-by: Bobbie Soedirgo <31685197+soedirgo@users.noreply.github.com>


ansible/files/postgresql_config/supautils.conf.j2 | 1 + ansible/vars.yml | 6 +++--- nix/ext/supautils.nix | 4 ++-- nix/tests/expected/security.out | 4 ++++ nix/tests/sql/security.sql | 3 +++ 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ansible/files/postgresql_config/supautils.conf.j2 b/ansible/files/postgresql_config/supautils.conf.j2 index 43875c19..ec49090c 100644 --- a/ansible/files/postgresql_config/supautils.conf.j2 +++ b/ansible/files/postgresql_config/supautils.conf.j2 @@ -13,3 +13,4 @@ supautils.privileged_role = 'postgres' supautils.privileged_role_allowed_configs = 'auto_explain.*, log_lock_waits, log_min_duration_statement, log_min_messages, log_replication_commands, log_statement, log_temp_files, pg_net.batch_size, pg_net.ttl, pg_stat_statements.*, pgaudit.log, pgaudit.log_catalog, pgaudit.log_client, pgaudit.log_level, pgaudit.log_relation, pgaudit.log_rows, pgaudit.log_statement, pgaudit.log_statement_once, pgaudit.role, pgrst.*, plan_filter.*, safeupdate.enabled, session_replication_role, track_io_timing, wal_compression' supautils.reserved_memberships = 'pg_read_server_files, pg_write_server_files, pg_execute_server_program, supabase_admin, supabase_auth_admin, supabase_storage_admin, supabase_read_only_user, supabase_realtime_admin, supabase_replication_admin, supabase_etl_admin, dashboard_user, pgbouncer, authenticator' supautils.reserved_roles = 'supabase_admin, supabase_auth_admin, supabase_storage_admin, supabase_read_only_user, supabase_realtime_admin, supabase_replication_admin, supabase_etl_admin, dashboard_user, pgbouncer, service_role*, authenticator*, authenticated*, anon*' +supautils.disable_program = 'true' diff --git a/ansible/vars.yml b/ansible/vars.yml index 4f639e5f..631bd723 100644 --- a/ansible/vars.yml +++ b/ansible/vars.yml @@ -10,9 +10,9 @@ postgres_major: # Full version strings for each major version postgres_release: - postgresorioledb-17: "17.5.1.055-orioledb" - postgres17: "17.6.1.034" - postgres15: "15.14.1.034" + postgresorioledb-17: "17.5.1.056-orioledb" + postgres17: "17.6.1.035" + postgres15: "15.14.1.035" # Non Postgres Extensions pgbouncer_release: 1.19.0 diff --git a/nix/ext/supautils.nix b/nix/ext/supautils.nix index 7ee4a41b..a10d49c4 100644 --- a/nix/ext/supautils.nix +++ b/nix/ext/supautils.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "supautils"; - version = "3.0.0"; + version = "3.0.2"; buildInputs = [ postgresql ]; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { owner = "supabase"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-EKKjNZQf7HwP/MxpHoPtbEtwXk+wO241GoXVcXpDMFs="; + hash = "sha256-WTLZShBFVgb18vVi15TSZvtJrNUFgQa6mBkavvRSoUE="; }; installPhase = '' diff --git a/nix/tests/expected/security.out b/nix/tests/expected/security.out index 81b6b870..a57a0b64 100644 --- a/nix/tests/expected/security.out +++ b/nix/tests/expected/security.out @@ -31,3 +31,7 @@ order by 1,2; vault | update_secret (20 rows) +-- supautils disables copy ... program +copy (select '') to program 'id'; +ERROR: COPY TO/FROM PROGRAM not allowed +DETAIL: The copy to/from program utility statement is disabled diff --git a/nix/tests/sql/security.sql b/nix/tests/sql/security.sql index fb72f0e6..5822283c 100644 --- a/nix/tests/sql/security.sql +++ b/nix/tests/sql/security.sql @@ -7,3 +7,6 @@ from pg_catalog.pg_proc p where p.proowner = (select oid from pg_catalog.pg_roles where rolname = 'supabase_admin') and p.prosecdef = true order by 1,2; + +-- supautils disables copy ... program +copy (select '') to program 'id'; [parent: 8ac1c905a402]