Files
wehub-resource-sync bb5c75ce05
Component Security Validation / Security Audit (push) Has been cancelled
Deploy to Cloudflare Pages / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:38:58 +08:00

7 lines
3.0 KiB
JSON

{
"description": "Development-focused Neon monitor showing connection status, response time, and database activity. Perfect for daily development work. Setup: Add variables to your project's .env file or export them: NEON_ENDPOINT, NEON_DATABASE, NEON_API_KEY, and NEON_PROJECT_ID. Shows connection state, response time, pool status, compute usage, environment detection, and project info for development workflow.",
"statusLine": {
"type": "command",
"command": "bash -c 'input=$(cat); DIR=$(echo \"$input\" | jq -r \".workspace.current_dir\" 2>/dev/null || echo \"unknown\"); DIR_NAME=$(basename \"$DIR\" 2>/dev/null || echo \"project\"); if [ -f \"$DIR/.env\" ]; then while IFS= read -r line; do case \"$line\" in NEON_ENDPOINT=*) export NEON_ENDPOINT=\"${line#*=}\";; NEON_DATABASE=*) export NEON_DATABASE=\"${line#*=}\";; NEON_API_KEY=*) export NEON_API_KEY=\"${line#*=}\";; NEON_PROJECT_ID=*) export NEON_PROJECT_ID=\"${line#*=}\";; esac; done < \"$DIR/.env\"; fi; if [ -n \"$NEON_ENDPOINT\" ] && [ -n \"$NEON_DATABASE\" ]; then REGION=$(echo \"$NEON_ENDPOINT\" | grep -o \"us-[a-z0-9-]*\" | head -1 || echo \"unknown\"); DB_NAME=$(echo \"$NEON_DATABASE\" | cut -c1-6); START_TIME=$(date +%s); DNS_TEST=$(nslookup \"$NEON_ENDPOINT\" >/dev/null 2>&1 && echo \"🟢\" || echo \"🔴\"); END_TIME=$(date +%s); RESPONSE_TIME=$(( (END_TIME - START_TIME) * 1000 )); if [ \"$RESPONSE_TIME\" -lt 100 ]; then PERF_ICON=\"⚡\"; elif [ \"$RESPONSE_TIME\" -lt 500 ]; then PERF_ICON=\"🟡\"; else PERF_ICON=\"🔴\"; fi; if command -v nc >/dev/null 2>&1; then CONNECTION_TEST=$(timeout 3 nc -z \"$NEON_ENDPOINT\" 5432 >/dev/null 2>&1 && echo \"connected\" || echo \"sleeping\"); else CONNECTION_TEST=\"unknown\"; fi; if [ \"$CONNECTION_TEST\" = \"connected\" ]; then CONN_ICON=\"🟢\"; CONN_STATUS=\"active\"; POOL_INFO=\"pool:✓\"; elif [ \"$CONNECTION_TEST\" = \"sleeping\" ] && [ \"$DNS_TEST\" = \"🟢\" ]; then CONN_ICON=\"🟡\"; CONN_STATUS=\"sleep\"; POOL_INFO=\"pool:💤\"; else CONN_ICON=\"🔴\"; CONN_STATUS=\"down\"; POOL_INFO=\"pool:✗\"; fi; PROJECT_ID=$(echo \"$NEON_ENDPOINT\" | cut -d- -f3- | cut -d. -f1); ENV_TYPE=\"dev\"; if echo \"$DIR_NAME\" | grep -qi \"prod\\|main\\|master\"; then ENV_TYPE=\"prod\"; elif echo \"$DIR_NAME\" | grep -qi \"stage\\|staging\"; then ENV_TYPE=\"stage\"; fi; CURRENT_TIME=$(date \"+%H:%M\"); if [ -n \"$NEON_API_KEY\" ] && [ -n \"$NEON_PROJECT_ID\" ]; then QUOTA_DATA=$(curl -s -m 3 -H \"Authorization: Bearer $NEON_API_KEY\" \"https://console.neon.tech/api/v2/projects/$NEON_PROJECT_ID/consumption\" 2>/dev/null | jq -r \".active_time_seconds // 0\" 2>/dev/null || echo \"0\"); USAGE_HOURS=$(( QUOTA_DATA / 3600 )); if [ \"$USAGE_HOURS\" -gt 0 ]; then USAGE_INFO=\"${USAGE_HOURS}h\"; else USAGE_INFO=\"<1h\"; fi; else USAGE_INFO=\"n/a\"; fi; echo \"🐘 Neon $CONN_ICON $CONN_STATUS | $PERF_ICON ${RESPONSE_TIME}ms | 📊 $DB_NAME | $POOL_INFO | ⏱️ $USAGE_INFO | 🌍 $ENV_TYPE | 📁 $DIR_NAME\"; else echo \"🐘 Neon 🔧 config-needed | ⚠️ set NEON_ENDPOINT & NEON_DATABASE | 📁 $DIR_NAME\"; fi'"
}
}