default: @just --choose start-auth: ./main_auth.py stop-auth: pkill -f main_auth.py || true start-nginx: docker run \ --rm \ --name nginx \ --network host \ -v "$PWD/site":/usr/share/nginx/html:ro \ -v "$PWD/nginx.conf":/etc/nginx/nginx.conf:ro \ docker.io/library/nginx logs-nginx: docker logs -f nginx stop-nginx: docker stop nginx # JWT Authentication Tests test-login-admin: @echo "=== Testing admin login ===" curl -c admin_cookies.txt -X POST \ -H "Authorization: Basic $(echo -n 'admin:admin' | base64)" \ http://localhost:8000/login 2>/dev/null @echo "\nโœ… Admin logged in, cookies saved to admin_cookies.txt" test-login-reader: @echo "=== Testing reader login ===" curl -c reader_cookies.txt -X POST \ -H "Authorization: Basic $(echo -n 'reader:reader' | base64)" \ http://localhost:8000/login 2>/dev/null @echo "\nโœ… Reader logged in, cookies saved to reader_cookies.txt" test-admin-access: @echo "=== Testing admin access to /admin/ ===" @curl -b admin_cookies.txt -w "Status: %{http_code}" \ http://localhost:8000/admin/ 2>/dev/null | tail -1 @echo "\nโœ… Admin should have 200 status" test-reader-blocked: @echo "=== Testing reader blocked from /admin/ ===" @curl -b reader_cookies.txt -w "Status: %{http_code}" \ http://localhost:8000/admin/ 2>/dev/null | tail -1 @echo "\n๐Ÿšซ Reader should have 403 status" test-whoami-admin: @echo "=== Admin user info ===" @curl -b admin_cookies.txt http://localhost:5115/me 2>/dev/null | jq . test-whoami-reader: @echo "=== Reader user info ===" @curl -b reader_cookies.txt http://localhost:5115/me 2>/dev/null | jq . test-logout: @echo "=== Testing logout ===" curl -b admin_cookies.txt http://localhost:8000/logout 2>/dev/null @echo "โœ… Logged out" test-full-flow: @echo "๐Ÿ” Running full JWT authentication test suite" @echo "=================================================" just test-login-admin just test-login-reader just test-whoami-admin just test-whoami-reader just test-admin-access just test-reader-blocked @echo "=================================================" @echo "โœ… All tests completed!" clean-cookies: @echo "๐Ÿงน Cleaning up cookie files" rm -f admin_cookies.txt reader_cookies.txt cookies.txt @echo "โœ… Cookies cleaned"