Files
davila7--claude-code-templates/dashboard/public/component-content/settings/statusline/neon-database-dev.json
T
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

1 line
3.3 KiB
JSON

{"content": "{\n \"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.\",\n \"statusLine\": {\n \"type\": \"command\",\n \"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'\"\n }\n}"}