This is an automated email from the ASF dual-hosted git repository.

dimas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git


The following commit(s) were added to refs/heads/main by this push:
     new ed851c399 Improve error handling in quickstart setup script (#3288)
ed851c399 is described below

commit ed851c399c452add7b383723b256849f917911e6
Author: Tamas Mate <[email protected]>
AuthorDate: Tue Dec 23 16:08:11 2025 +0100

    Improve error handling in quickstart setup script (#3288)
    
    Add error detection and validation to API calls in the quickstart
    docker-compose setup with clear error messages for easier debugging.
---
 getting-started/quickstart/docker-compose.yml | 83 +++++++++++++++++++--------
 1 file changed, 59 insertions(+), 24 deletions(-)

diff --git a/getting-started/quickstart/docker-compose.yml 
b/getting-started/quickstart/docker-compose.yml
index bd59e98e2..2697867b1 100644
--- a/getting-started/quickstart/docker-compose.yml
+++ b/getting-started/quickstart/docker-compose.yml
@@ -100,12 +100,21 @@ services:
         apk add --no-cache jq
 
         echo "Obtaining root access token..."
-        TOKEN_RESPONSE=$$(curl -s -X POST 
http://polaris:8181/api/catalog/v1/oauth/tokens \
+        TOKEN_RESPONSE=$$(curl --fail-with-body -s -S -X POST 
http://polaris:8181/api/catalog/v1/oauth/tokens \
           -H 'Content-Type: application/x-www-form-urlencoded' \
-          -d 
"grant_type=client_credentials&client_id=$${CLIENT_ID}&client_secret=$${CLIENT_SECRET}&scope=PRINCIPAL_ROLE:ALL")
+          -d 
"grant_type=client_credentials&client_id=$${CLIENT_ID}&client_secret=$${CLIENT_SECRET}&scope=PRINCIPAL_ROLE:ALL"
 2>&1) || {
+          echo "❌ Failed to obtain access token"
+          echo "$$TOKEN_RESPONSE" >&2
+          exit 1
+        }
 
         TOKEN=$$(echo $$TOKEN_RESPONSE | jq -r '.access_token')
-        echo "Obtained access token"
+        if [ -z "$$TOKEN" ] || [ "$$TOKEN" = "null" ]; then
+          echo "❌ Failed to parse access token from response"
+          echo "$$TOKEN_RESPONSE"
+          exit 1
+        fi
+        echo "✅ Obtained access token"
 
         echo "Creating catalog '$$CATALOG_NAME' in realm $$REALM..."
         PAYLOAD='{
@@ -126,71 +135,97 @@ services:
           }
         }'
 
-        curl -s -X POST http://polaris:8181/api/management/v1/catalogs \
+        RESPONSE=$$(curl --fail-with-body -s -S -X POST 
http://polaris:8181/api/management/v1/catalogs \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Accept: application/json" \
           -H "Content-Type: application/json" \
           -H "Polaris-Realm: $$REALM" \
-          -d "$$PAYLOAD" > /dev/null
-
+          -d "$$PAYLOAD" 2>&1) && echo -n "" || {
+          echo "❌ Failed to create catalog"
+          echo "$$RESPONSE" >&2
+          exit 1
+        }
         echo "✅ Catalog created"
 
         echo ""
         echo "Creating principal 'quickstart_user'..."
-        PRINCIPAL_RESPONSE=$$(curl -s -X POST 
http://polaris:8181/api/management/v1/principals \
+        PRINCIPAL_RESPONSE=$$(curl --fail-with-body -s -X POST 
http://polaris:8181/api/management/v1/principals \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Polaris-Realm: $$REALM" \
           -H "Content-Type: application/json" \
-          -d '{"principal": {"name": "quickstart_user", "properties": {}}}')
+          -d '{"principal": {"name": "quickstart_user", "properties": {}}}' 
2>&1) || {
+          echo "❌ Failed to create principal"
+          echo "$$PRINCIPAL_RESPONSE" >&2
+          exit 1
+        }
 
         USER_CLIENT_ID=$$(echo $$PRINCIPAL_RESPONSE | jq -r 
'.credentials.clientId')
         USER_CLIENT_SECRET=$$(echo $$PRINCIPAL_RESPONSE | jq -r 
'.credentials.clientSecret')
-
+        if [ -z "$$USER_CLIENT_ID" ] || [ "$$USER_CLIENT_ID" = "null" ] || [ 
-z "$$USER_CLIENT_SECRET" ] || [ "$$USER_CLIENT_SECRET" = "null" ]; then
+          echo "❌ Failed to parse user credentials from response"
+          echo "$$PRINCIPAL_RESPONSE"
+          exit 1
+        fi
         echo "✅ Principal created with clientId: $$USER_CLIENT_ID"
 
         echo "Creating principal role 'quickstart_user_role'..."
-        curl -s -X POST http://polaris:8181/api/management/v1/principal-roles \
+        RESPONSE=$$(curl --fail-with-body -s -S -X POST 
http://polaris:8181/api/management/v1/principal-roles \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Polaris-Realm: $$REALM" \
           -H "Content-Type: application/json" \
-          -d '{"principalRole": {"name": "quickstart_user_role", "properties": 
{}}}' > /dev/null
-
+          -d '{"principalRole": {"name": "quickstart_user_role", "properties": 
{}}}' 2>&1) && echo -n "" || {
+          echo "❌ Failed to create principal role"
+          echo "$$RESPONSE" >&2
+          exit 1
+        }
         echo "✅ Principal role created"
 
         echo "Creating catalog role 'quickstart_catalog_role'..."
-        curl -s -X POST 
http://polaris:8181/api/management/v1/catalogs/$$CATALOG_NAME/catalog-roles \
+        RESPONSE=$$(curl --fail-with-body -s -S -X POST 
http://polaris:8181/api/management/v1/catalogs/$$CATALOG_NAME/catalog-roles \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Polaris-Realm: $$REALM" \
           -H "Content-Type: application/json" \
-          -d '{"catalogRole": {"name": "quickstart_catalog_role", 
"properties": {}}}' > /dev/null
-
+          -d '{"catalogRole": {"name": "quickstart_catalog_role", 
"properties": {}}}' 2>&1) && echo -n "" || {
+          echo "❌ Failed to create catalog role"
+          echo "$$RESPONSE" >&2
+          exit 1
+        }
         echo "✅ Catalog role created"
 
         echo "Assigning principal role to principal..."
-        curl -s -X PUT 
http://polaris:8181/api/management/v1/principals/quickstart_user/principal-roles
 \
+        RESPONSE=$$(curl --fail-with-body -s -S -X PUT 
http://polaris:8181/api/management/v1/principals/quickstart_user/principal-roles
 \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Polaris-Realm: $$REALM" \
           -H "Content-Type: application/json" \
-          -d '{"principalRole": {"name": "quickstart_user_role"}}' > /dev/null
-
+          -d '{"principalRole": {"name": "quickstart_user_role"}}' 2>&1) && 
echo -n "" || {
+          echo "❌ Failed to assign principal role"
+          echo "$$RESPONSE" >&2
+          exit 1
+        }
         echo "✅ Principal role assigned"
 
         echo "Assigning catalog role to principal role..."
-        curl -s -X PUT 
http://polaris:8181/api/management/v1/principal-roles/quickstart_user_role/catalog-roles/$$CATALOG_NAME
 \
+        RESPONSE=$$(curl --fail-with-body -s -S -X PUT 
http://polaris:8181/api/management/v1/principal-roles/quickstart_user_role/catalog-roles/$$CATALOG_NAME
 \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Polaris-Realm: $$REALM" \
           -H "Content-Type: application/json" \
-          -d '{"catalogRole": {"name": "quickstart_catalog_role"}}' > /dev/null
-
+          -d '{"catalogRole": {"name": "quickstart_catalog_role"}}' 2>&1) && 
echo -n "" || {
+          echo "❌ Failed to assign catalog role"
+          echo "$$RESPONSE" >&2
+          exit 1
+        }
         echo "✅ Catalog role assigned"
 
         echo "Granting CATALOG_MANAGE_CONTENT privilege..."
-        curl -s -X PUT 
http://polaris:8181/api/management/v1/catalogs/$$CATALOG_NAME/catalog-roles/quickstart_catalog_role/grants
 \
+        RESPONSE=$$(curl --fail-with-body -s -S -X PUT 
http://polaris:8181/api/management/v1/catalogs/$$CATALOG_NAME/catalog-roles/quickstart_catalog_role/grants
 \
           -H "Authorization: Bearer $$TOKEN" \
           -H "Polaris-Realm: $$REALM" \
           -H "Content-Type: application/json" \
-          -d '{"type": "catalog", "privilege": "CATALOG_MANAGE_CONTENT"}' > 
/dev/null
-
+          -d '{"type": "catalog", "privilege": "CATALOG_MANAGE_CONTENT"}' 
2>&1) && echo -n "" || {
+          echo "❌ Failed to grant privileges"
+          echo "$$RESPONSE" >&2
+          exit 1
+        }
         echo "✅ Privileges granted"
 
         echo ""

Reply via email to