Debug scripts

This commit is contained in:
Dan 2026-01-12 08:56:55 +00:00
parent fed9aabcb0
commit d6a9519146
2 changed files with 118 additions and 0 deletions

75
send-webmentions-debug.sh Executable file
View file

@ -0,0 +1,75 @@
#!/bin/bash
# Load environment variables from .env file
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | xargs)
else
echo "⚠️ Warning: .env file not found, using defaults"
fi
# Use environment variables with fallback defaults
WEBMENTIONS_FILE="${WEBMENTIONS_FILE:-public/webmentions.json}"
SENT_CACHE="${SENT_CACHE:-.webmentions-sent}"
API_ENDPOINT="${API_ENDPOINT:-https://api.ritual.sh/webmention/send}"
API_KEY="${API_KEY:-your-secret-key}"
echo "DEBUG: Configuration"
echo "===================="
echo "API_ENDPOINT: $API_ENDPOINT"
echo "API_KEY: ${API_KEY:0:10}... (first 10 chars)"
echo "WEBMENTIONS_FILE: $WEBMENTIONS_FILE"
echo ""
# Read the webmentions JSON
if [ ! -f "$WEBMENTIONS_FILE" ]; then
echo "No webmentions.json found at $WEBMENTIONS_FILE"
exit 0
fi
# Get first mention for testing
first_mention=$(jq -c '.[0]' "$WEBMENTIONS_FILE")
source=$(echo "$first_mention" | jq -r '.source')
target=$(echo "$first_mention" | jq -r '.target')
echo "DEBUG: Testing with first webmention"
echo "====================================="
echo "Source: $source"
echo "Target: $target"
echo ""
# Create the JSON payload
payload=$(jq -n \
--arg auth "$API_KEY" \
--arg source "$source" \
--arg target "$target" \
'{auth: $auth, source: $source, target: $target}')
echo "DEBUG: Payload"
echo "=============="
echo "$payload" | jq '.'
echo ""
echo "DEBUG: Sending request..."
echo "========================="
# Send with verbose output
response=$(curl -v -X POST "$API_ENDPOINT" \
-H "Content-Type: application/json" \
-d "$payload" \
2>&1)
echo ""
echo "DEBUG: Full Response"
echo "===================="
echo "$response"
echo ""
# Extract just the HTTP status and response body
http_status=$(echo "$response" | grep "< HTTP" | tail -1)
response_body=$(echo "$response" | sed -n '/^{/,/^}/p' | tail -1)
echo ""
echo "DEBUG: Parsed Results"
echo "====================="
echo "HTTP Status: $http_status"
echo "Response Body: $response_body"

43
test-webmention-auth.sh Executable file
View file

@ -0,0 +1,43 @@
#!/bin/bash
# Simple test to verify API authentication
# Usage: ./test-webmention-auth.sh YOUR_API_KEY
API_KEY="${1:-your-secret-key}"
API_ENDPOINT="${API_ENDPOINT:-https://api.ritual.sh/webmention/send}"
echo "Testing webmention API authentication"
echo "======================================"
echo "Endpoint: $API_ENDPOINT"
echo "API Key: ${API_KEY:0:10}... (truncated)"
echo ""
# Test 1: Wrong auth (should get 401)
echo "Test 1: Wrong auth (expecting 401 Unauthorized)"
echo "------------------------------------------------"
curl -v -X POST "$API_ENDPOINT" \
-H "Content-Type: application/json" \
-d '{"auth":"wrong-key","source":"https://ritual.sh/test/","target":"https://example.com/test/"}' \
2>&1 | grep -E "(< HTTP|Unauthorized|error)"
echo ""
echo ""
# Test 2: Correct auth (should get 400 or 201 depending on whether endpoints exist)
echo "Test 2: Correct auth (expecting 400 'No endpoint found' or 201 success)"
echo "------------------------------------------------------------------------"
curl -v -X POST "$API_ENDPOINT" \
-H "Content-Type: application/json" \
-d "{\"auth\":\"$API_KEY\",\"source\":\"https://ritual.sh/test/\",\"target\":\"https://example.com/test/\"}" \
2>&1 | grep -E "(< HTTP|success|error|endpoint)"
echo ""
echo ""
# Test 3: Missing auth (should get 401)
echo "Test 3: Missing auth (expecting 401 Unauthorized)"
echo "--------------------------------------------------"
curl -v -X POST "$API_ENDPOINT" \
-H "Content-Type: application/json" \
-d '{"source":"https://ritual.sh/test/","target":"https://example.com/test/"}' \
2>&1 | grep -E "(< HTTP|Unauthorized|error)"