|
|
@@ -0,0 +1,66 @@
|
|
|
+#!/usr/bin/env bash
|
|
|
+set -euo pipefail
|
|
|
+
|
|
|
+usage() {
|
|
|
+ cat <<'USAGE'
|
|
|
+Usage:
|
|
|
+ Add B3_CLIENT_ID and B3_CLIENT_SECRET to the project .env file, then run:
|
|
|
+ ./test/b3_credentials_check.sh
|
|
|
+
|
|
|
+The script:
|
|
|
+ 1. Loads credentials from ../.env
|
|
|
+ 2. Requests an OAuth token via Client Credentials (prod URL)
|
|
|
+ 3. Calls the prod healthcheck endpoint with the token
|
|
|
+
|
|
|
+Both endpoints are hardcoded to the production environment.
|
|
|
+USAGE
|
|
|
+}
|
|
|
+
|
|
|
+SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
|
+PROJECT_ROOT=$(cd "$SCRIPT_DIR/.." && pwd)
|
|
|
+ENV_FILE="$PROJECT_ROOT/.env"
|
|
|
+
|
|
|
+parse_env_value() {
|
|
|
+ local key="$1"
|
|
|
+ if [[ ! -f "$ENV_FILE" ]]; then
|
|
|
+ return
|
|
|
+ fi
|
|
|
+ sed -n "s/^${key}=//p" "$ENV_FILE" | tail -n1 | tr -d '\r'
|
|
|
+}
|
|
|
+
|
|
|
+B3_CLIENT_ID=$(parse_env_value "B3_CLIENT_ID")
|
|
|
+B3_CLIENT_SECRET=$(parse_env_value "B3_CLIENT_SECRET")
|
|
|
+
|
|
|
+if [[ -z "$B3_CLIENT_ID" || -z "$B3_CLIENT_SECRET" ]]; then
|
|
|
+ echo "[error] B3_CLIENT_ID and B3_CLIENT_SECRET must be defined in .env" >&2
|
|
|
+ usage
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+B3_AUTH_URL="https://apib3i.b3.com.br/auth/oauth/v2/token"
|
|
|
+B3_HEALTHCHECK_URL="https://apib3i.b3.com.br/api/healthcheck/{token}"
|
|
|
+
|
|
|
+echo "[info] Requesting OAuth token from $B3_AUTH_URL"
|
|
|
+TOKEN_RESPONSE=$(curl --silent --show-error --fail \
|
|
|
+ -u "$B3_CLIENT_ID:$B3_CLIENT_SECRET" \
|
|
|
+ -H "Content-Type: application/x-www-form-urlencoded" \
|
|
|
+ -d 'grant_type=client_credentials' \
|
|
|
+ "$B3_AUTH_URL")
|
|
|
+
|
|
|
+TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r '.access_token // empty')
|
|
|
+
|
|
|
+if [[ -z "$TOKEN" ]]; then
|
|
|
+ echo "[error] Failed to extract access_token from response:" >&2
|
|
|
+ echo "$TOKEN_RESPONSE" >&2
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+echo "[info] Token retrieved successfully"
|
|
|
+
|
|
|
+HEALTH_URL=${B3_HEALTHCHECK_URL//\{token\}/$TOKEN}
|
|
|
+echo "[info] Calling healthcheck at $HEALTH_URL"
|
|
|
+
|
|
|
+HEALTH_RESPONSE=$(curl --silent --show-error --fail "$HEALTH_URL")
|
|
|
+
|
|
|
+echo "[info] Healthcheck response:"
|
|
|
+echo "$HEALTH_RESPONSE" | jq .
|