From afb15239b3828e29ce19a7da7e29a2ec43ed38b2 Mon Sep 17 00:00:00 2001 From: "Dominik Z." Date: Thu, 13 Feb 2025 11:07:26 +0200 Subject: [PATCH 1/4] fix: GBI-2392 | Add error messages on local env autoconfiguration --- docker-compose/local/lps-env.sh | 220 ++++++++++++++++---------------- sample-config.env | 2 +- 2 files changed, 114 insertions(+), 108 deletions(-) diff --git a/docker-compose/local/lps-env.sh b/docker-compose/local/lps-env.sh index a6c50583..f410fa36 100755 --- a/docker-compose/local/lps-env.sh +++ b/docker-compose/local/lps-env.sh @@ -185,110 +185,116 @@ if [ "$FAIL" = true ]; then fi rm -f cookie_jar.txt -MANAGEMENT_PWD=$(docker exec lps01 cat /tmp/management_password.txt) -CSRF_TOKEN=$(curl -s -c cookie_jar.txt -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Content-Type: application/json' \ - -H 'Origin: http://localhost:8080' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - "http://localhost:8080/management" | sed -n 's/.*name="csrf"[^>]*value="\([^"]*\)".*/\1/p') - -CSRF_TOKEN=${CSRF_TOKEN//+/+} -curl -s -b cookie_jar.txt -c cookie_jar.txt "http://localhost:8080/management/login" \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Content-Type: application/json' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data "{ - \"username\": \"admin\", - \"password\": \"$MANAGEMENT_PWD\" - }" - -echo "Setting up general regtest configuration" -curl -s -b cookie_jar.txt 'http://localhost:8080/configuration' \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Content-Type: application/json' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data '{ - "configuration": { - "rskConfirmations": { - "100000000000000000": 4, - "2000000000000000000": 20, - "400000000000000000": 12, - "4000000000000000000": 40, - "8000000000000000000": 80 - }, - "btcConfirmations": { - "100000000000000000": 2, - "2000000000000000000": 10, - "400000000000000000": 6, - "4000000000000000000": 20, - "8000000000000000000": 40 - }, - "publicLiquidityCheck": true - } - }' - -echo "Setting up pegin regtest configuration" -curl -s -b cookie_jar.txt 'http://localhost:8080/pegin/configuration' \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Content-Type: application/json' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data '{ - "configuration": { - "timeForDeposit": 3600, - "callTime": 7200, - "penaltyFee": "1000000000000000", - "callFee": "10000000000000000", - "maxValue": "10000000000000000000", - "minValue": "600000000000000000" - } - }' - -echo "Setting up pegout regtest configuration" -curl -s -b cookie_jar.txt 'http://localhost:8080/pegout/configuration' \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Content-Type: application/json' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data '{ - "configuration": { - "timeForDeposit": 3600, - "expireTime": 10800, - "penaltyFee": "1000000000000000", - "callFee": "10000000000000000", - "maxValue": "10000000000000000000", - "minValue": "600000000000000000", - "expireBlocks": 500, - "bridgeTransactionMin": "1500000000000000000" - } - }' + +PASSWORD_FILE_PATH="/tmp/management_password.txt" + +echo "Checking for management_password.txt..." +if docker exec lps01 test -f "$PASSWORD_FILE_PATH"; then + echo "management_password.txt found. Proceeding with configuration." + + MANAGEMENT_PWD=$(docker exec lps01 cat "$PASSWORD_FILE_PATH") + CSRF_TOKEN=$(curl -s -c cookie_jar.txt -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Content-Type: application/json' \ + -H 'Origin: http://localhost:8080' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + "http://localhost:8080/management" | sed -n 's/.*name="csrf"[^>]*value="\([^"]*\)".*/\1/p') + + CSRF_TOKEN=${CSRF_TOKEN//+/+} + curl -s -b cookie_jar.txt -c cookie_jar.txt "http://localhost:8080/management/login" \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data "{ + \"username\": \"admin\", + \"password\": \"$MANAGEMENT_PWD\" + }" + + echo "Setting up general regtest configuration" + curl -sfS -b cookie_jar.txt 'http://localhost:8080/configuration' \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data '{ + "configuration": { + "rskConfirmations": { + "100000000000000000": 4, + "2000000000000000000": 20, + "400000000000000000": 12, + "4000000000000000000": 40, + "8000000000000000000": 80 + }, + "btcConfirmations": { + "100000000000000000": 2, + "2000000000000000000": 10, + "400000000000000000": 6, + "4000000000000000000": 20, + "8000000000000000000": 40 + }, + "publicLiquidityCheck": true + } + }' || { echo "Error in configuring general regtest configuration"; exit 1; } + + echo "Setting up pegin regtest configuration" + curl -sfS -b cookie_jar.txt 'http://localhost:8080/pegin/configuration' \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data '{ + "configuration": { + "timeForDeposit": 3600, + "callTime": 7200, + "penaltyFee": "1000000000000000", + "callFee": "10000000000000000", + "maxValue": "10000000000000000000", + "minValue": "600000000000000000" + } + }' || { echo "Error in configuring pegin regtest configuration"; exit 1; } + + echo "Setting up pegout regtest configuration" + curl -sfS -b cookie_jar.txt 'http://localhost:8080/pegout/configuration' \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data '{ + "configuration": { + "timeForDeposit": 3600, + "expireTime": 10800, + "penaltyFee": "1000000000000000", + "callFee": "10000000000000000", + "maxValue": "10000000000000000000", + "minValue": "600000000000000000", + "expireBlocks": 500, + "bridgeTransactionMin": "1500000000000000000" + } + }' || { echo "Error in configuring pegout regtest configuration"; exit 1; } +else + echo "management_password.txt not found. Skipping configuration steps." +fi diff --git a/sample-config.env b/sample-config.env index c2b0df1d..9e0050e4 100644 --- a/sample-config.env +++ b/sample-config.env @@ -55,7 +55,7 @@ DISABLE_CAPTCHA=true CAPTCHA_URL="https://www.google.com/recaptcha/api/siteverify" # Management api env -ENABLE_MANAGEMENT_API=false +ENABLE_MANAGEMENT_API=true MANAGEMENT_AUTH_KEY=a2fbac02d66202e8468d2a4f1deba4fa5c2491f592e0e22e32fe1e6acac25923 MANAGEMENT_ENCRYPTION_KEY=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 MANAGEMENT_TOKEN_AUTH_KEY=c5ff177a86e82441f93e3772da700d5f6838157fa1bfdc0bb689d7f7e55e7aba From 2b0e1d16a8be9118bbfc5766df9ed77b0fb35388 Mon Sep 17 00:00:00 2001 From: "Dominik Z." Date: Fri, 14 Feb 2025 14:45:29 +0200 Subject: [PATCH 2/4] fix: removing management ui "if" condition --- docker-compose/local/lps-env.sh | 218 ++++++++++++++++---------------- 1 file changed, 110 insertions(+), 108 deletions(-) diff --git a/docker-compose/local/lps-env.sh b/docker-compose/local/lps-env.sh index f410fa36..77008d25 100755 --- a/docker-compose/local/lps-env.sh +++ b/docker-compose/local/lps-env.sh @@ -189,112 +189,114 @@ rm -f cookie_jar.txt PASSWORD_FILE_PATH="/tmp/management_password.txt" echo "Checking for management_password.txt..." -if docker exec lps01 test -f "$PASSWORD_FILE_PATH"; then - echo "management_password.txt found. Proceeding with configuration." - - MANAGEMENT_PWD=$(docker exec lps01 cat "$PASSWORD_FILE_PATH") - CSRF_TOKEN=$(curl -s -c cookie_jar.txt -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Content-Type: application/json' \ - -H 'Origin: http://localhost:8080' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - "http://localhost:8080/management" | sed -n 's/.*name="csrf"[^>]*value="\([^"]*\)".*/\1/p') - - CSRF_TOKEN=${CSRF_TOKEN//+/+} - curl -s -b cookie_jar.txt -c cookie_jar.txt "http://localhost:8080/management/login" \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data "{ - \"username\": \"admin\", - \"password\": \"$MANAGEMENT_PWD\" - }" - - echo "Setting up general regtest configuration" - curl -sfS -b cookie_jar.txt 'http://localhost:8080/configuration' \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data '{ - "configuration": { - "rskConfirmations": { - "100000000000000000": 4, - "2000000000000000000": 20, - "400000000000000000": 12, - "4000000000000000000": 40, - "8000000000000000000": 80 - }, - "btcConfirmations": { - "100000000000000000": 2, - "2000000000000000000": 10, - "400000000000000000": 6, - "4000000000000000000": 20, - "8000000000000000000": 40 - }, - "publicLiquidityCheck": true - } - }' || { echo "Error in configuring general regtest configuration"; exit 1; } - - echo "Setting up pegin regtest configuration" - curl -sfS -b cookie_jar.txt 'http://localhost:8080/pegin/configuration' \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data '{ - "configuration": { - "timeForDeposit": 3600, - "callTime": 7200, - "penaltyFee": "1000000000000000", - "callFee": "10000000000000000", - "maxValue": "10000000000000000000", - "minValue": "600000000000000000" - } - }' || { echo "Error in configuring pegin regtest configuration"; exit 1; } - - echo "Setting up pegout regtest configuration" - curl -sfS -b cookie_jar.txt 'http://localhost:8080/pegout/configuration' \ - -H "X-CSRF-Token: $CSRF_TOKEN" \ - -H 'Content-Type: application/json' \ - -H 'Accept: */*' \ - -H 'Connection: keep-alive' \ - -H 'Origin: http://localhost:8080' \ - -H 'Referer: http://localhost:8080/management' \ - -H 'Sec-Fetch-Dest: empty' \ - -H 'Sec-Fetch-Mode: cors' \ - -H 'Sec-Fetch-Site: same-origin' \ - --data '{ - "configuration": { - "timeForDeposit": 3600, - "expireTime": 10800, - "penaltyFee": "1000000000000000", - "callFee": "10000000000000000", - "maxValue": "10000000000000000000", - "minValue": "600000000000000000", - "expireBlocks": 500, - "bridgeTransactionMin": "1500000000000000000" - } - }' || { echo "Error in configuring pegout regtest configuration"; exit 1; } -else - echo "management_password.txt not found. Skipping configuration steps." +if ! docker exec lps01 test -f "$PASSWORD_FILE_PATH"; then + echo "management_password.txt not found. Skipping configuration steps" + exit 0 fi + +echo "management_password.txt found. Proceeding with configuration." + +MANAGEMENT_PWD=$(docker exec lps01 cat "$PASSWORD_FILE_PATH") + +CSRF_TOKEN=$(curl -s -c cookie_jar.txt \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Content-Type: application/json' \ + -H 'Origin: http://localhost:8080' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + "http://localhost:8080/management" | sed -n 's/.*name="csrf"[^>]*value="\([^"]*\)".*/\1/p') + +CSRF_TOKEN=${CSRF_TOKEN//+/+} +curl -s -b cookie_jar.txt -c cookie_jar.txt "http://localhost:8080/management/login" \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data "{ + \"username\": \"admin\", + \"password\": \"$MANAGEMENT_PWD\" + }" || { echo "Error: login to Management UI failed"; exit 1; } + +echo "Setting up general regtest configuration" +curl -sfS -b cookie_jar.txt 'http://localhost:8080/configuration' \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data '{ + "configuration": { + "rskConfirmations": { + "100000000000000000": 4, + "2000000000000000000": 20, + "400000000000000000": 12, + "4000000000000000000": 40, + "8000000000000000000": 80 + }, + "btcConfirmations": { + "100000000000000000": 2, + "2000000000000000000": 10, + "400000000000000000": 6, + "4000000000000000000": 20, + "8000000000000000000": 40 + }, + "publicLiquidityCheck": true + } + }' || { echo "Error in configuring general regtest configuration"; exit 1; } + +echo "Setting up pegin regtest configuration" +curl -sfS -b cookie_jar.txt 'http://localhost:8080/pegin/configuration' \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data '{ + "configuration": { + "timeForDeposit": 3600, + "callTime": 7200, + "penaltyFee": "1000000000000000", + "callFee": "10000000000000000", + "maxValue": "10000000000000000000", + "minValue": "600000000000000000" + } + }' || { echo "Error in configuring pegin regtest configuration"; exit 1; } + +echo "Setting up pegout regtest configuration" +curl -sfS -b cookie_jar.txt 'http://localhost:8080/pegout/configuration' \ + -H "X-CSRF-Token: $CSRF_TOKEN" \ + -H 'Content-Type: application/json' \ + -H 'Accept: */*' \ + -H 'Connection: keep-alive' \ + -H 'Origin: http://localhost:8080' \ + -H 'Referer: http://localhost:8080/management' \ + -H 'Sec-Fetch-Dest: empty' \ + -H 'Sec-Fetch-Mode: cors' \ + -H 'Sec-Fetch-Site: same-origin' \ + --data '{ + "configuration": { + "timeForDeposit": 3600, + "expireTime": 10800, + "penaltyFee": "1000000000000000", + "callFee": "10000000000000000", + "maxValue": "10000000000000000000", + "minValue": "600000000000000000", + "expireBlocks": 500, + "bridgeTransactionMin": "1500000000000000000" + } + }' || { echo "Error in configuring pegout regtest configuration"; exit 1; } From 9ac7042bd184eb58f894b7a146150ba618b66375 Mon Sep 17 00:00:00 2001 From: "Dominik Z." Date: Fri, 14 Feb 2025 17:24:13 +0200 Subject: [PATCH 3/4] fix: update sample-config | disable ENABLE_MANAGEMENT_API --- sample-config.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-config.env b/sample-config.env index 9e0050e4..c2b0df1d 100644 --- a/sample-config.env +++ b/sample-config.env @@ -55,7 +55,7 @@ DISABLE_CAPTCHA=true CAPTCHA_URL="https://www.google.com/recaptcha/api/siteverify" # Management api env -ENABLE_MANAGEMENT_API=true +ENABLE_MANAGEMENT_API=false MANAGEMENT_AUTH_KEY=a2fbac02d66202e8468d2a4f1deba4fa5c2491f592e0e22e32fe1e6acac25923 MANAGEMENT_ENCRYPTION_KEY=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 MANAGEMENT_TOKEN_AUTH_KEY=c5ff177a86e82441f93e3772da700d5f6838157fa1bfdc0bb689d7f7e55e7aba From c4a8e602d048332618bc8bb0508fd3f05d9d6e01 Mon Sep 17 00:00:00 2001 From: "Dominik Z." Date: Fri, 21 Feb 2025 15:45:27 +0200 Subject: [PATCH 4/4] fix: Force Management API to be enabled in lps-env.sh --- docker-compose/local/lps-env.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-compose/local/lps-env.sh b/docker-compose/local/lps-env.sh index 77008d25..d88c2fd7 100755 --- a/docker-compose/local/lps-env.sh +++ b/docker-compose/local/lps-env.sh @@ -31,6 +31,10 @@ fi echo "LPS_STAGE: $LPS_STAGE; ENV_FILE: $ENV_FILE; LPS_UID: $LPS_UID" +# Force Management API to be enabled +if [ -f "$ENV_FILE" ]; then + sed -i '' 's/^ENABLE_MANAGEMENT_API=.*/ENABLE_MANAGEMENT_API=true/' "$ENV_FILE" +fi SCRIPT_CMD=$1 if [ -z "${SCRIPT_CMD}" ]; then