@@ -152,86 +152,86 @@ EOF
152
152
run_sql -c " update pg_extension set extowner = 'postgres'::regrole where extname = 'pgmq';"
153
153
fi
154
154
155
- # If upgrading to pgsodium-less Vault, Wrappers need to be updated so that
156
- # foreign servers use `vault.secrets.id` instead of `vault.secrets.key_id`
157
- UPDATE_WRAPPERS_SERVER_OPTIONS_QUERY=$( cat << EOF
158
- DO \$\$
159
- DECLARE
160
- server_rec RECORD;
161
- option_rec RECORD;
162
- vault_secrets RECORD;
163
- BEGIN
164
- IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'wrappers' AND version = '0.4.6')
165
- AND EXISTS (SELECT FROM pg_extension WHERE extname = 'wrappers')
166
- THEN
167
- FOR server_rec IN
168
- SELECT srvname, srvoptions
169
- FROM pg_foreign_server
170
- LOOP
171
- FOR option_rec IN
172
- SELECT split_part(srvoption, '=', 1) AS option_name, split_part(srvoption, '=', 2) AS option_value
173
- FROM UNNEST(server_rec.srvoptions) AS srvoption
174
- LOOP
175
- IF EXISTS (SELECT FROM vault.secrets WHERE option_rec.option_value IN (id::text, key_id::text)) THEN
176
- RAISE WARNING '%', format(
177
- 'ALTER SERVER %I OPTIONS (SET %I %L)',
178
- server_rec.srvname,
179
- option_rec.option_name,
180
- (SELECT id FROM vault.secrets WHERE option_rec.option_value IN (id::text, key_id::text))
181
- );
182
- EXECUTE format(
183
- 'ALTER SERVER %I OPTIONS (SET %I %L)',
184
- server_rec.srvname,
185
- option_rec.option_name,
186
- (SELECT id FROM vault.secrets WHERE option_rec.option_value IN (id::text, key_id::text))
187
- );
188
- END IF;
189
- END LOOP;
190
- END LOOP;
191
- END IF;
192
- END;
193
- \$\$ ;
194
- EOF
195
- )
196
- run_sql -c " $UPDATE_WRAPPERS_SERVER_OPTIONS_QUERY "
197
-
198
- # Patch to handle upgrading to pgsodium-less Vault
199
- REENCRYPT_VAULT_SECRETS_QUERY=$( cat << EOF
200
- DO \$\$
201
- BEGIN
202
- IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'supabase_vault' AND version = '0.3.0')
203
- AND EXISTS (SELECT FROM pg_extension WHERE extname = 'supabase_vault')
204
- THEN
205
- IF (SELECT extversion FROM pg_extension WHERE extname = 'supabase_vault') != '0.2.8' THEN
206
- GRANT USAGE ON SCHEMA vault TO postgres WITH GRANT OPTION;
207
- GRANT SELECT, DELETE ON vault.secrets, vault.decrypted_secrets TO postgres WITH GRANT OPTION;
208
- GRANT EXECUTE ON FUNCTION vault.create_secret, vault.update_secret, vault._crypto_aead_det_decrypt TO postgres WITH GRANT OPTION;
209
- END IF;
210
- -- Do an explicit IF EXISTS check to avoid referencing pgsodium objects if the project already migrated away from using pgsodium.
211
- IF EXISTS (SELECT FROM vault.secrets WHERE key_id IS NOT NULL) THEN
212
- UPDATE vault.secrets s
213
- SET
214
- secret = encode(
215
- vault._crypto_aead_det_encrypt(
216
- message := pgsodium.crypto_aead_det_decrypt(decode(s.secret, 'base64'), convert_to(s.id || s.description || s.created_at || s.updated_at, 'utf8'), s.key_id, s.nonce),
217
- additional := convert_to(s.id::text, 'utf8'),
218
- key_id := 0,
219
- context := 'pgsodium'::bytea,
220
- nonce := s.nonce
221
- ),
222
- 'base64'
223
- ),
224
- key_id = NULL
225
- WHERE
226
- key_id IS NOT NULL;
227
- END IF;
228
- END IF;
229
- END
230
- \$\$ ;
231
- EOF
232
- )
233
- run_sql -c " $REENCRYPT_VAULT_SECRETS_QUERY "
234
- exit 1
155
+ # # If upgrading to pgsodium-less Vault, Wrappers need to be updated so that
156
+ # # foreign servers use `vault.secrets.id` instead of `vault.secrets.key_id`
157
+ # UPDATE_WRAPPERS_SERVER_OPTIONS_QUERY=$(cat <<EOF
158
+ # DO \$\$
159
+ # DECLARE
160
+ # server_rec RECORD;
161
+ # option_rec RECORD;
162
+ # vault_secrets RECORD;
163
+ # BEGIN
164
+ # IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'wrappers' AND version = '0.4.6')
165
+ # AND EXISTS (SELECT FROM pg_extension WHERE extname = 'wrappers')
166
+ # THEN
167
+ # FOR server_rec IN
168
+ # SELECT srvname, srvoptions
169
+ # FROM pg_foreign_server
170
+ # LOOP
171
+ # FOR option_rec IN
172
+ # SELECT split_part(srvoption, '=', 1) AS option_name, split_part(srvoption, '=', 2) AS option_value
173
+ # FROM UNNEST(server_rec.srvoptions) AS srvoption
174
+ # LOOP
175
+ # IF EXISTS (SELECT FROM vault.secrets WHERE option_rec.option_value IN (id::text, key_id::text)) THEN
176
+ # RAISE WARNING '%', format(
177
+ # 'ALTER SERVER %I OPTIONS (SET %I %L)',
178
+ # server_rec.srvname,
179
+ # option_rec.option_name,
180
+ # (SELECT id FROM vault.secrets WHERE option_rec.option_value IN (id::text, key_id::text))
181
+ # );
182
+ # EXECUTE format(
183
+ # 'ALTER SERVER %I OPTIONS (SET %I %L)',
184
+ # server_rec.srvname,
185
+ # option_rec.option_name,
186
+ # (SELECT id FROM vault.secrets WHERE option_rec.option_value IN (id::text, key_id::text))
187
+ # );
188
+ # END IF;
189
+ # END LOOP;
190
+ # END LOOP;
191
+ # END IF;
192
+ # END;
193
+ # \$\$;
194
+ # EOF
195
+ # )
196
+ # run_sql -c "$UPDATE_WRAPPERS_SERVER_OPTIONS_QUERY"
197
+
198
+ # # Patch to handle upgrading to pgsodium-less Vault
199
+ # REENCRYPT_VAULT_SECRETS_QUERY=$(cat <<EOF
200
+ # DO \$\$
201
+ # BEGIN
202
+ # IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'supabase_vault' AND version = '0.3.0')
203
+ # AND EXISTS (SELECT FROM pg_extension WHERE extname = 'supabase_vault')
204
+ # THEN
205
+ # IF (SELECT extversion FROM pg_extension WHERE extname = 'supabase_vault') != '0.2.8' THEN
206
+ # GRANT USAGE ON SCHEMA vault TO postgres WITH GRANT OPTION;
207
+ # GRANT SELECT, DELETE ON vault.secrets, vault.decrypted_secrets TO postgres WITH GRANT OPTION;
208
+ # GRANT EXECUTE ON FUNCTION vault.create_secret, vault.update_secret, vault._crypto_aead_det_decrypt TO postgres WITH GRANT OPTION;
209
+ # END IF;
210
+ # -- Do an explicit IF EXISTS check to avoid referencing pgsodium objects if the project already migrated away from using pgsodium.
211
+ # IF EXISTS (SELECT FROM vault.secrets WHERE key_id IS NOT NULL) THEN
212
+ # UPDATE vault.secrets s
213
+ # SET
214
+ # secret = encode(
215
+ # vault._crypto_aead_det_encrypt(
216
+ # message := pgsodium.crypto_aead_det_decrypt(decode(s.secret, 'base64'), convert_to(s.id || s.description || s.created_at || s.updated_at, 'utf8'), s.key_id, s.nonce),
217
+ # additional := convert_to(s.id::text, 'utf8'),
218
+ # key_id := 0,
219
+ # context := 'pgsodium'::bytea,
220
+ # nonce := s.nonce
221
+ # ),
222
+ # 'base64'
223
+ # ),
224
+ # key_id = NULL
225
+ # WHERE
226
+ # key_id IS NOT NULL;
227
+ # END IF;
228
+ # END IF;
229
+ # END
230
+ # \$\$;
231
+ # EOF
232
+ # )
233
+ # run_sql -c "$REENCRYPT_VAULT_SECRETS_QUERY"
234
+ # exit 1
235
235
236
236
run_sql -c " grant pg_read_all_data, pg_signal_backend to postgres"
237
237
}
0 commit comments