#!/usr/bin/env bash set -euo pipefail # Simple curl tester for the Framework X API using Bearer token auth. # Usage: # ./bin/curl-test.sh [METHOD] [PATH] [APP_ID] # Examples: # ./bin/curl-test.sh GET /hello 1 # ./bin/curl-test.sh GET /hello # if DEFAULT_APPLICATION_ID is set in .env METHOD="${1:-GET}" PATH_URL="${2:-/hello}" APP_ID_INPUT="${3:-1}" # Base URL HOST="${HOST:-localhost}" PORT="${APP_PORT:-8080}" BASE_URL="http://$HOST:$PORT" # Default headers APP_ID_HEADER="${APP_ID_HEADER:-x-app-id}" DEFAULT_APP_ID="${DEFAULT_APPLICATION_ID:-}" # (legacy) optional support for flag APP_FLAG_HEADER="${APP_FLAG_HEADER:-x-app-flag}" DEFAULT_APP_FLAG="${DEFAULT_APPLICATION_FLAG:-}" # Temporary token provided by request (DO NOT COMMIT TO PROD) TOKEN="Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjksInVzZXJuYW1lIjoiTWl4dGVjaCIsInJvbGVfaWQiOjEsImNvbXBhbnlfaWQiOjIsImlhdCI6MTc1NTg1MDEzNywiZXhwIjoxNzU1ODY0NTM3fQ.9HXKAPw5Pw_K69KHPyncSJcW0FlRNNoEYNfnevB9vg4" # Choose app id (preferred) APP_ID="$APP_ID_INPUT" if [[ -z "$APP_ID" && -n "$DEFAULT_APP_ID" ]]; then APP_ID="$DEFAULT_APP_ID" fi # Choose legacy flag only if ID is not provided APP_FLAG="${APP_FLAG:-}" if [[ -z "$APP_ID" ]]; then if [[ -n "$DEFAULT_APP_FLAG" ]]; then APP_FLAG="$DEFAULT_APP_FLAG"; fi fi URL="$BASE_URL$PATH_URL" echo "=> Request: $METHOD $URL" echo "=> Using app id header: $APP_ID_HEADER=${APP_ID:-} (legacy flag $APP_FLAG_HEADER=${APP_FLAG:-})" HDRS=(-H "Authorization: $TOKEN" -H "Accept: application/json") if [[ -n "$APP_ID" ]]; then HDRS+=( -H "$APP_ID_HEADER: $APP_ID" ) elif [[ -n "$APP_FLAG" ]]; then HDRS+=( -H "$APP_FLAG_HEADER: $APP_FLAG" ) fi set -x curl -i -sS -X "$METHOD" "${HDRS[@]}" "$URL"