Skip to content

Commit 980bee8

Browse files
authored
Merge branch 'develop' into chore/update_adminapi
2 parents cc86521 + dc011e6 commit 980bee8

39 files changed

+904
-398
lines changed

Dockerfile-15

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ARG rum_release=1.3.13
2424
ARG pg_hashids_release=cd0e1b31d52b394a0df64079406a14a4f7387cd6
2525
ARG libsodium_release=1.0.18
2626
ARG pgsodium_release=3.1.6
27-
ARG pg_graphql_release=1.5.1
27+
ARG pg_graphql_release=1.5.11
2828
ARG pg_stat_monitor_release=1.1.1
2929
ARG pg_jsonschema_release=0.1.4
3030
ARG pg_repack_release=1.4.8
@@ -67,6 +67,7 @@ WORKDIR /nixpg
6767

6868
RUN nix profile install .#psql_15/bin
6969

70+
RUN nix store gc
7071

7172

7273
WORKDIR /

Dockerfile-kubernetes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM alpine:3.21
22

33
ADD ./output-cloudimg/packer-cloudimg /disk/focal.qcow2
44

5-
RUN apk add --no-cache qemu-system-aarch64 qemu-img openssh-client nftables cloud-utils-localds aavmf
5+
RUN apk add --no-cache qemu-system-aarch64 qemu-img openssh-client nftables cloud-utils-localds aavmf virtiofsd
66
# dev stuff
77
# RUN apk add --no-cache iproute2
88

Dockerfile-orioledb-17

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ARG rum_release=1.3.13
2424
ARG pg_hashids_release=cd0e1b31d52b394a0df64079406a14a4f7387cd6
2525
ARG libsodium_release=1.0.18
2626
ARG pgsodium_release=3.1.6
27-
ARG pg_graphql_release=1.5.1
27+
ARG pg_graphql_release=1.5.11
2828
ARG pg_stat_monitor_release=1.1.1
2929
ARG pg_jsonschema_release=0.1.4
3030
ARG pg_repack_release=1.4.8
@@ -68,7 +68,7 @@ WORKDIR /nixpg
6868

6969
RUN nix profile install .#psql_orioledb-17/bin
7070

71-
71+
RUN nix store gc
7272

7373
WORKDIR /
7474

README.md

Lines changed: 75 additions & 64 deletions
Large diffs are not rendered by default.

ansible/files/admin_api_scripts/grow_fs.sh

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,32 @@ if pgrep resizefs; then
99
exit 1
1010
fi
1111

12+
# Parses the output of lsblk to get the root partition number
13+
# Example output:
14+
# NAME MOUNTPOINT
15+
# nvme0n1
16+
# ├─nvme0n1p1 /boot
17+
# └─nvme0n1p3 /
18+
# nvme1n1 /data
19+
#
20+
# Resulting in:
21+
# └─nvme0n1p3 / -> nvme0n1p3 -> 3
22+
ROOT_PARTITION_NUMBER=$(lsblk -no NAME,MOUNTPOINT | grep ' /$' | awk '{print $1;}' | sed 's/.*nvme[0-9]n[0-9]p//g')
23+
24+
if ! [[ "$ROOT_PARTITION_NUMBER" =~ ^[0-9]+$ ]]; then
25+
echo "Error: ROOT_PARTITION_NUMBER is not a valid number: $ROOT_PARTITION_NUMBER"
26+
exit 1
27+
fi
28+
1229
if [ -b /dev/nvme1n1 ] ; then
1330
if [[ "${VOLUME_TYPE}" == "data" ]]; then
1431
resize2fs /dev/nvme1n1
1532

1633
elif [[ "${VOLUME_TYPE}" == "root" ]] ; then
1734
PLACEHOLDER_FL=/home/ubuntu/50M_PLACEHOLDER
1835
rm -f "${PLACEHOLDER_FL}" || true
19-
growpart /dev/nvme0n1 2
20-
resize2fs /dev/nvme0n1p2
36+
growpart /dev/nvme0n1 "${ROOT_PARTITION_NUMBER}"
37+
resize2fs "/dev/nvme0n1p${ROOT_PARTITION_NUMBER}"
2138
if [[ ! -f "${PLACEHOLDER_FL}" ]] ; then
2239
fallocate -l50M "${PLACEHOLDER_FL}"
2340
fi
@@ -26,7 +43,7 @@ if [ -b /dev/nvme1n1 ] ; then
2643
exit 1
2744
fi
2845
else
29-
growpart /dev/nvme0n1 2
30-
resize2fs /dev/nvme0n1p2
46+
growpart /dev/nvme0n1 "${ROOT_PARTITION_NUMBER}"
47+
resize2fs "/dev/nvme0n1p${ROOT_PARTITION_NUMBER}"
3148
fi
3249
echo "Done resizing disk"

ansible/files/admin_api_scripts/pg_upgrade_scripts/complete.sh

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -150,43 +150,6 @@ EOF
150150

151151
run_sql -c "$PATCH_PGMQ_QUERY"
152152
run_sql -c "update pg_extension set extowner = 'postgres'::regrole where extname = 'pgmq';"
153-
154-
# Patch to handle upgrading to pgsodium-less Vault
155-
REENCRYPT_VAULT_SECRETS_QUERY=$(cat <<EOF
156-
DO \$\$
157-
BEGIN
158-
IF EXISTS (SELECT FROM pg_available_extension_versions WHERE name = 'supabase_vault' AND version = '0.3.0')
159-
AND EXISTS (SELECT FROM pg_extension WHERE extname = 'supabase_vault')
160-
THEN
161-
IF (SELECT extversion FROM pg_extension WHERE extname = 'supabase_vault') != '0.2.8' THEN
162-
GRANT USAGE ON SCHEMA vault TO postgres WITH GRANT OPTION;
163-
GRANT SELECT, DELETE ON vault.secrets, vault.decrypted_secrets TO postgres WITH GRANT OPTION;
164-
GRANT EXECUTE ON FUNCTION vault.create_secret, vault.update_secret, vault._crypto_aead_det_decrypt TO postgres WITH GRANT OPTION;
165-
END IF;
166-
-- Do an explicit IF EXISTS check to avoid referencing pgsodium objects if the project already migrated away from using pgsodium.
167-
IF EXISTS (SELECT FROM vault.secrets WHERE key_id IS NOT NULL) THEN
168-
UPDATE vault.secrets s
169-
SET
170-
secret = encode(
171-
vault._crypto_aead_det_encrypt(
172-
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),
173-
additional := convert_to(s.id::text, 'utf8'),
174-
key_id := 0,
175-
context := 'pgsodium'::bytea,
176-
nonce := s.nonce
177-
),
178-
'base64'
179-
),
180-
key_id = NULL
181-
WHERE
182-
key_id IS NOT NULL;
183-
END IF;
184-
END IF;
185-
END
186-
\$\$;
187-
EOF
188-
)
189-
run_sql -c "$REENCRYPT_VAULT_SECRETS_QUERY"
190153
fi
191154

192155
run_sql -c "grant pg_read_all_data, pg_signal_backend to postgres"

ansible/files/admin_api_scripts/pg_upgrade_scripts/initiate.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
EXTENSIONS_TO_DISABLE=(
1313
"pg_graphql"
1414
"pg_stat_monitor"
15+
"pg_backtrace"
1516
)
1617

1718
PG14_EXTENSIONS_TO_DISABLE=(
@@ -217,6 +218,7 @@ function initiate_upgrade {
217218
SHARED_PRELOAD_LIBRARIES=$(echo "$SHARED_PRELOAD_LIBRARIES" | sed "s/pg_net//" | xargs)
218219
SHARED_PRELOAD_LIBRARIES=$(echo "$SHARED_PRELOAD_LIBRARIES" | sed "s/check_role_membership//" | xargs)
219220
SHARED_PRELOAD_LIBRARIES=$(echo "$SHARED_PRELOAD_LIBRARIES" | sed "s/safeupdate//" | xargs)
221+
SHARED_PRELOAD_LIBRARIES=$(echo "$SHARED_PRELOAD_LIBRARIES" | sed "s/pg_backtrace//" | xargs)
220222

221223
# Exclude empty-string entries, as well as leading/trailing commas and spaces resulting from the above lib exclusions
222224
# i.e. " , pg_stat_statements, , pgsodium, " -> "pg_stat_statements, pgsodium"

ansible/files/envoy_config/lds.supabase.yaml

Lines changed: 4 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -37,51 +37,6 @@ resources:
3737
rules:
3838
action: DENY
3939
policies:
40-
api_key_missing:
41-
permissions:
42-
- any: true
43-
principals:
44-
- not_id:
45-
or_ids:
46-
ids:
47-
- header:
48-
name: apikey
49-
present_match: true
50-
- header:
51-
name: ':path'
52-
string_match:
53-
contains: apikey=
54-
api_key_not_valid:
55-
permissions:
56-
- any: true
57-
principals:
58-
- not_id:
59-
or_ids:
60-
ids:
61-
- header:
62-
name: apikey
63-
string_match:
64-
exact: anon_key
65-
- header:
66-
name: apikey
67-
string_match:
68-
exact: service_key
69-
- header:
70-
name: apikey
71-
string_match:
72-
exact: supabase_admin_key
73-
- header:
74-
name: ':path'
75-
string_match:
76-
contains: apikey=anon_key
77-
- header:
78-
name: ':path'
79-
string_match:
80-
contains: apikey=service_key
81-
- header:
82-
name: ':path'
83-
string_match:
84-
contains: apikey=supabase_admin_key
8540
origin_protection_key_missing:
8641
permissions:
8742
- any: true
@@ -234,6 +189,10 @@ resources:
234189
prefix: /metrics/aggregated
235190
invert_match: true
236191
status_code: 401
192+
headers_to_add:
193+
- header:
194+
key: x-sb-error-code
195+
value: '%RESPONSE_CODE_DETAILS%'
237196
body_format_override:
238197
json_format:
239198
message: >-
@@ -383,24 +342,6 @@ resources:
383342
route:
384343
cluster: admin_api
385344
prefix_rewrite: /privileged/
386-
typed_per_filter_config:
387-
envoy.filters.http.rbac:
388-
'@type': >-
389-
type.googleapis.com/envoy.extensions.filters.http.rbac.v3.RBACPerRoute
390-
rbac:
391-
rules:
392-
action: DENY
393-
policies:
394-
basic_auth:
395-
permissions:
396-
- any: true
397-
principals:
398-
- header:
399-
name: authorization
400-
invert_match: true
401-
string_match:
402-
exact: Basic c2VydmljZV9yb2xlOnNlcnZpY2Vfa2V5
403-
treat_missing_header_as_empty: true
404345
- match:
405346
prefix: /metrics/aggregated
406347
request_headers_to_remove:

ansible/files/envoy_config/lds.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ resources:
215215
prefix: /metrics/aggregated
216216
invert_match: true
217217
status_code: 401
218+
headers_to_add:
219+
- header:
220+
key: x-sb-error-code
221+
value: '%RESPONSE_CODE_DETAILS%'
218222
body_format_override:
219223
json_format:
220224
message: >-

ansible/files/postgresql_config/postgresql.conf.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ default_text_search_config = 'pg_catalog.english'
688688
#local_preload_libraries = ''
689689
#session_preload_libraries = ''
690690

691-
shared_preload_libraries = 'pg_stat_statements, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle, plan_filter, supabase_vault' # (change requires restart)
691+
shared_preload_libraries = 'pg_stat_statements, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle, plan_filter' # (change requires restart)
692692
jit_provider = 'llvmjit' # JIT library to use
693693

694694
# - Other Defaults -

0 commit comments

Comments
 (0)