From 5748aab4d4b342e6a9d0efe2972343555736f52d Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Tue, 23 May 2023 18:40:58 +0200 Subject: [PATCH] chore: backup automatically --- .gitignore | 5 +++-- CONTRIBUTING.md | 7 +++++-- acceptance/docker-compose.yaml | 4 ++-- acceptance/setup.sh | 21 +++++++++++++++++++++ 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 42a5cee25e2..8b5eae16066 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,8 @@ dist dist-ssr *.local .env -./apps/login/.env.local.bak +apps/login/.env.local.?.bak +apps/login/.env.local.??.bak .cache server/dist public/dist @@ -15,4 +16,4 @@ public/dist packages/zitadel-server/src/app/proto packages/zitadel-client/src/app/proto -apps/login/.vscode \ No newline at end of file +apps/login/.vscode diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d0a6b12a89c..d1b438a4a42 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,8 +41,11 @@ or have limited resources on your local machine. ### Developing Against Your Local ZITADEL Instance ```sh -# Backup your ./apps/login/.env.local if it exists to ./apps/login/.env.local.bak -mv ./apps/login/.env.local ./apps/login/.env.local.bak +# To have your service user key and environment file written with the correct ownership, export your current users ID. +export ZITADEL_DEV_UID="$(id -u)" + +# Pull images +docker compose --file ./acceptance/docker-compose.yaml pull # Run ZITADEL and configure ./apps/login/.env.local docker compose --file ./acceptance/docker-compose.yaml run setup diff --git a/acceptance/docker-compose.yaml b/acceptance/docker-compose.yaml index 56a20e263da..4f359ee3b04 100644 --- a/acceptance/docker-compose.yaml +++ b/acceptance/docker-compose.yaml @@ -2,7 +2,7 @@ version: '3.8' services: zitadel: - user: '$UID' + user: '${ZITADEL_DEV_UID}' image: '${ZITADEL_IMAGE:-ghcr.io/zitadel/zitadel:latest}' command: 'start-from-init --masterkey "MasterkeyNeedsToHave32Characters" --tlsMode disabled --config /zitadel.yaml --steps /zitadel.yaml' ports: @@ -34,7 +34,7 @@ services: - zitadel setup: - user: '$UID' + user: '${ZITADEL_DEV_UID}' container_name: setup build: . environment: diff --git a/acceptance/setup.sh b/acceptance/setup.sh index 15316440a51..5783201cc3f 100755 --- a/acceptance/setup.sh +++ b/acceptance/setup.sh @@ -44,6 +44,27 @@ echo "${ORG_RESPONSE}" | jq ORG_ID=$(echo -n ${ORG_RESPONSE} | jq -r '.org.id') echo "Extracted default org id ${ORG_ID}" +ENVIRONMENT_BACKUP_FILE=${WRITE_ENVIRONMENT_FILE} +# If the original file already exists, rename it +if [[ -e ${WRITE_ENVIRONMENT_FILE} ]]; then + if grep -q 'localhost' ${WRITE_ENVIRONMENT_FILE}; then + echo "Current environment file ${WRITE_ENVIRONMENT_FILE} contains localhost. Overwriting:" + cat ${WRITE_ENVIRONMENT_FILE} + else + i=0 + # If a backup file already exists, increment counter until a free filename is found + while [[ -e ${ENVIRONMENT_BACKUP_FILE}.${i}.bak ]]; do + let "i++" + if [[ ${i} -eq 50 ]]; then + echo "Warning: Too many backup files (limit is 50), overwriting ${ENVIRONMENT_BACKUP_FILE}.${i}.bak" + break + fi + done + mv ${WRITE_ENVIRONMENT_FILE} ${ENVIRONMENT_BACKUP_FILE}.${i}.bak + echo "Renamed existing environment file to ${ENVIRONMENT_BACKUP_FILE}.${i}.bak" + fi +fi + echo "ZITADEL_API_URL=${AUDIENCE} ZITADEL_ORG_ID=${ORG_ID} ZITADEL_SERVICE_USER_TOKEN=${TOKEN}" > ${WRITE_ENVIRONMENT_FILE}