File tree Expand file tree Collapse file tree 4 files changed +55
-0
lines changed
share/github-backup-utils Expand file tree Collapse file tree 4 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -76,6 +76,7 @@ backup-secret() {
7676
7777backup-secret " management console password" " manage-password" " secrets.manage"
7878backup-secret " password pepper" " password-pepper" " secrets.github.user-password-secrets"
79+ backup-secret " encrypted column encryption keying material" " encrypted-column-encryption-keying-material" " secrets.github.encrypted-column-keying-material"
7980backup-secret " kredz.credz HMAC key" " kredz-credz-hmac" " secrets.kredz.credz-hmac-secret"
8081backup-secret " kredz.varz HMAC key" " kredz-varz-hmac" " secrets.kredz.varz-hmac-secret"
8182
Original file line number Diff line number Diff line change @@ -47,6 +47,9 @@ restore-secret "management console password" "manage-password" "secrets.manage"
4747# Restore management console argon2 secret if present.
4848restore-secret " management console argon2 secret" " manage-argon-secret" " secrets.manage-auth.argon-secret"
4949
50+ # Restore encrypted column encryption keying material if present
51+ restore-secret " encrypted column encryption keying material" " encrypted-column-encryption-keying-material" " secrets.github.encrypted-column-keying-material"
52+
5053# Restore kredz.credz HMAC key if present.
5154restore-secret " kredz.credz HMAC key" " kredz-credz-hmac" " secrets.kredz.credz-hmac-secret"
5255
Original file line number Diff line number Diff line change @@ -470,6 +470,32 @@ begin_test "ghe-backup upgrades transaction backup to full if LSN chain break"
470470)
471471end_test
472472
473+ begin_test " ghe-backup takes backup of encrypted column encryption keying material"
474+ (
475+ set -e
476+
477+ required_secrets=(
478+ " secrets.github.encrypted-column-keying-material"
479+ )
480+
481+ for secret in " ${required_secrets[@]} " ; do
482+ ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " " foo"
483+ done
484+
485+ ghe-backup
486+
487+ required_files=(
488+ " encrypted-column-encryption-keying-material"
489+ )
490+
491+ for file in " ${required_files[@]} " ; do
492+ [ " $( cat " $GHE_DATA_DIR /current/$file " ) " = " foo" ]
493+ done
494+
495+ )
496+ end_test
497+
498+
473499begin_test " ghe-backup takes backup of Kredz settings"
474500(
475501 set -e
Original file line number Diff line number Diff line change @@ -281,6 +281,31 @@ begin_test "ghe-restore with no pages backup"
281281)
282282end_test
283283
284+ begin_test " ghe-restore with encrypted column encryption keying material"
285+ (
286+ set -e
287+ rm -rf " $GHE_REMOTE_ROOT_DIR "
288+ setup_remote_metadata
289+
290+ required_files=(
291+ " encrypted-column-encryption-keying-material"
292+ )
293+
294+ for file in " ${required_files[@]} " ; do
295+ echo " foo" > " $GHE_DATA_DIR /current/$file "
296+ done
297+
298+ ghe-restore -v -f localhost
299+ required_secrets=(
300+ " secrets.github.encrypted-column-keying-material"
301+ )
302+
303+ for secret in " ${required_secrets[@]} " ; do
304+ [ " $( ghe-ssh " $GHE_HOSTNAME " -- ghe-config " $secret " ) " = " foo" ]
305+ done
306+ )
307+ end_test
308+
284309begin_test " ghe-restore does not restore encrypted column encryption keying material for versions below 3.7.0"
285310(
286311 GHE_REMOTE_VERSION=2.1.10 ghe-restore -v -f localhost | grep -q " encrypted column encryption keying material not set" && exit 1
You can’t perform that action at this time.
0 commit comments