Skip to content

Commit 7fa39db

Browse files
authored
Merge pull request #431 from github/enterprise-3.7-backport-rebackport-364
Re-backport #364
2 parents 74d2d0c + 9c3c4ab commit 7fa39db

File tree

4 files changed

+55
-0
lines changed

4 files changed

+55
-0
lines changed

share/github-backup-utils/ghe-backup-settings

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ backup-secret() {
7676

7777
backup-secret "management console password" "manage-password" "secrets.manage"
7878
backup-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"
7980
backup-secret "kredz.credz HMAC key" "kredz-credz-hmac" "secrets.kredz.credz-hmac-secret"
8081
backup-secret "kredz.varz HMAC key" "kredz-varz-hmac" "secrets.kredz.varz-hmac-secret"
8182

share/github-backup-utils/ghe-restore-settings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ restore-secret "management console password" "manage-password" "secrets.manage"
4747
# Restore management console argon2 secret if present.
4848
restore-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.
5154
restore-secret "kredz.credz HMAC key" "kredz-credz-hmac" "secrets.kredz.credz-hmac-secret"
5255

test/test-ghe-backup.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,32 @@ begin_test "ghe-backup upgrades transaction backup to full if LSN chain break"
470470
)
471471
end_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+
473499
begin_test "ghe-backup takes backup of Kredz settings"
474500
(
475501
set -e

test/test-ghe-restore.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,31 @@ begin_test "ghe-restore with no pages backup"
281281
)
282282
end_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+
284309
begin_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

0 commit comments

Comments
 (0)