supabase-postgres.git / summary / log / commit / refs
commit 5a91952ae216ff363c17445eb28bcd0df6eb9241
Author: Bobbie Soedirgo <bobbie@soedirgo.dev>
Commit: Bobbie Soedirgo <31685197+soedirgo@users.noreply.github.com>
Date: Tue Feb 18 03:21:27 2025 +0000
fix: pgsodium mask_role migration
ansible/vars.yml | 4 ++--
.../20250218031949_pgsodium_mask_role.sql | 25 ++++++++++++++++++++++
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/ansible/vars.yml b/ansible/vars.yml
index fe8ec2d3..6d3d096b 100644
--- a/ansible/vars.yml
+++ b/ansible/vars.yml
@@ -8,8 +8,8 @@ postgres_major:
# Full version strings for each major version
postgres_release:
- postgresorioledb-17: "17.0.1.34-orioledb"
- postgres15: "15.8.1.038"
+ postgresorioledb-17: "17.0.1.036-orioledb"
+ postgres15: "15.8.1.040"
# Non Postgres Extensions
pgbouncer_release: "1.19.0"
diff --git a/migrations/db/migrations/20250218031949_pgsodium_mask_role.sql b/migrations/db/migrations/20250218031949_pgsodium_mask_role.sql
new file mode 100644
index 00000000..c4a3eadf
--- /dev/null
+++ b/migrations/db/migrations/20250218031949_pgsodium_mask_role.sql
@@ -0,0 +1,25 @@
+-- migrate:up
+CREATE OR REPLACE FUNCTION pgsodium.mask_role(masked_role regrole, source_name text, view_name text)
+RETURNS void
+LANGUAGE plpgsql
+SECURITY DEFINER
+SET search_path TO ''
+AS $function$
+BEGIN
+ EXECUTE format(
+ 'GRANT SELECT ON pgsodium.key TO %s',
+ masked_role);
+
+ EXECUTE format(
+ 'GRANT pgsodium_keyiduser, pgsodium_keyholder TO %s',
+ masked_role);
+
+ EXECUTE format(
+ 'GRANT ALL ON %I TO %s',
+ view_name,
+ masked_role);
+ RETURN;
+END
+$function$;
+
+-- migrate:down
[parent: 447f4492258b]