fix: Gitea Traefik routing and connection pool optimization
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
This commit is contained in:
111
scripts/test/test-upload-system.sh
Executable file
111
scripts/test/test-upload-system.sh
Executable file
@@ -0,0 +1,111 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Upload System Test Script
|
||||
# Tests the complete JavaScript upload system with CSRF protection
|
||||
|
||||
echo "🧪 Testing Upload System with CSRF Protection"
|
||||
echo "================================================"
|
||||
|
||||
BASE_URL="https://localhost"
|
||||
USER_AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
|
||||
|
||||
# Test 1: CSRF Token Generation
|
||||
echo ""
|
||||
echo "📋 Test 1: CSRF Token Generation"
|
||||
echo "--------------------------------"
|
||||
|
||||
CSRF_RESPONSE=$(curl -k -s -H "User-Agent: $USER_AGENT" -H "Accept: application/json" \
|
||||
"$BASE_URL/api/csrf/token?action=/api/images&method=post")
|
||||
|
||||
if [ $? -eq 0 ] && [[ $CSRF_RESPONSE == *"form_id"* ]]; then
|
||||
echo "✅ CSRF API reachable and returns tokens"
|
||||
echo "Response: $CSRF_RESPONSE"
|
||||
|
||||
# Extract tokens using simple text manipulation
|
||||
FORM_ID=$(echo "$CSRF_RESPONSE" | sed -n 's/.*"form_id":"\([^"]*\)".*/\1/p')
|
||||
TOKEN=$(echo "$CSRF_RESPONSE" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p')
|
||||
|
||||
echo "Form ID: $FORM_ID"
|
||||
echo "Token: ${TOKEN:0:20}..."
|
||||
else
|
||||
echo "❌ CSRF API test failed"
|
||||
echo "Response: $CSRF_RESPONSE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test 2: Test Page Accessibility
|
||||
echo ""
|
||||
echo "🌐 Test 2: Test Page Accessibility"
|
||||
echo "----------------------------------"
|
||||
|
||||
HTTP_STATUS=$(curl -k -s -o /dev/null -w "%{http_code}" -H "User-Agent: $USER_AGENT" \
|
||||
"$BASE_URL/admin/test/upload")
|
||||
|
||||
if [ "$HTTP_STATUS" = "200" ]; then
|
||||
echo "✅ Test page accessible at /admin/test/upload"
|
||||
else
|
||||
echo "❌ Test page not accessible (HTTP $HTTP_STATUS)"
|
||||
fi
|
||||
|
||||
# Test 3: Upload API Endpoint Check
|
||||
echo ""
|
||||
echo "📤 Test 3: Upload API Endpoint Check"
|
||||
echo "------------------------------------"
|
||||
|
||||
# Test without file (should return error about missing file)
|
||||
UPLOAD_RESPONSE=$(curl -k -s -H "User-Agent: $USER_AGENT" -H "Accept: application/json" \
|
||||
-H "X-CSRF-Form-ID: $FORM_ID" -H "X-CSRF-Token: $TOKEN" \
|
||||
-X POST "$BASE_URL/api/images")
|
||||
|
||||
if [[ $UPLOAD_RESPONSE == *"No image file uploaded"* ]]; then
|
||||
echo "✅ Upload API reachable and CSRF validation working"
|
||||
echo "Expected error: No image file uploaded"
|
||||
else
|
||||
echo "❌ Upload API test failed"
|
||||
echo "Response: $UPLOAD_RESPONSE"
|
||||
fi
|
||||
|
||||
# Test 4: JavaScript Files Accessibility
|
||||
echo ""
|
||||
echo "📜 Test 4: JavaScript Files Accessibility"
|
||||
echo "-----------------------------------------"
|
||||
|
||||
JS_STATUS=$(curl -k -s -o /dev/null -w "%{http_code}" -H "User-Agent: $USER_AGENT" \
|
||||
"$BASE_URL/js/test-upload.js")
|
||||
|
||||
if [ "$JS_STATUS" = "200" ]; then
|
||||
echo "✅ JavaScript test file accessible"
|
||||
else
|
||||
echo "❌ JavaScript test file not accessible (HTTP $JS_STATUS)"
|
||||
fi
|
||||
|
||||
UPLOAD_JS_STATUS=$(curl -k -s -o /dev/null -w "%{http_code}" -H "User-Agent: $USER_AGENT" \
|
||||
"$BASE_URL/js/utils/upload.js")
|
||||
|
||||
if [ "$UPLOAD_JS_STATUS" = "200" ]; then
|
||||
echo "✅ Upload utility accessible"
|
||||
else
|
||||
echo "❌ Upload utility not accessible (HTTP $UPLOAD_JS_STATUS)"
|
||||
fi
|
||||
|
||||
# Summary
|
||||
echo ""
|
||||
echo "📊 Test Summary"
|
||||
echo "==============="
|
||||
echo "✅ CSRF token generation: Working"
|
||||
echo "✅ Test page: Available at $BASE_URL/admin/test/upload"
|
||||
echo "✅ Upload API: Ready for file uploads"
|
||||
echo "✅ JavaScript modules: Accessible"
|
||||
echo ""
|
||||
echo "🎯 Next Steps:"
|
||||
echo "1. Open browser: $BASE_URL/admin/test/upload"
|
||||
echo "2. Select image files and test upload"
|
||||
echo "3. Check browser console for debug info"
|
||||
echo "4. Test console commands: await testCsrfTokens()"
|
||||
echo ""
|
||||
echo "🔧 Manual Browser Tests:"
|
||||
echo "- Open DevTools Console"
|
||||
echo "- Run: await uploadManager.getCsrfTokens('/api/images', 'post')"
|
||||
echo "- Select image files in the form"
|
||||
echo "- Click Upload Files button"
|
||||
echo "- Watch progress and results"
|
||||
Reference in New Issue
Block a user