协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
finta-debug-bundle【开发与工程】Collect Finta diagnostic information for support. Trigger with phrases like "finta debug", "finta support".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: finta-debug-bundle description: 'Collect Finta diagnostic information for support.
Trigger with phrases like "finta debug", "finta support".
' allowed-tools: Read, Grep version: 1.7.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Collect the smallest diagnostic bundle needed to reproduce an integration failure while preserving investor and financial-data boundaries.
Create a redacted incident bundle index with correlation ID, artifacts, access owner, retention date, reproduction outcome, and next action. Keep any sensitive original evidence outside the index in the approved secure location.
For a synthetic sync failure, retain the service version, an opaque event ID, and aggregate retry count. Verify the bundle contains neither contact emails nor tokens, grant access only to the incident owner, and remove it at the documented retention date.
Collect Finta API connectivity status, fundraising round data, investor pipeline health, and integration state into a single diagnostic archive. This bundle helps troubleshoot CRM sync failures, missing investor records, round update errors, and authentication problems. Attach the output to Finta support tickets for faster resolution of fundraising workflow issues.
#!/bin/bash
set -euo pipefail
BUNDLE="debug-finta-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"
# Environment check
echo "=== Finta Debug Bundle ===" | tee "$BUNDLE/summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/summary.txt"
echo "FINTA_API_KEY: ${FINTA_API_KEY:+[SET]}" >> "$BUNDLE/summary.txt"
# API connectivity
HTTP=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer ${FINTA_API_KEY}" \
https://api.finta.io/v1/rounds 2>/dev/null || echo "000")
echo "API Status: HTTP $HTTP" >> "$BUNDLE/summary.txt"
# Fundraising rounds summary
curl -s -H "Authorization: Bearer ${FINTA_API_KEY}" \
"https://api.finta.io/v1/rounds" \
> "$BUNDLE/rounds.json" 2>&1 || true
# Investor records (limited)
curl -s -H "Authorization: Bearer ${FINTA_API_KEY}" \
"https://api.finta.io/v1/investors?limit=10" \
> "$BUNDLE/investors-sample.json" 2>&1 || true
# Connected integrations status
curl -s -H "Authorization: Bearer ${FINTA_API_KEY}" \
"https://api.finta.io/v1/integrations" \
> "$BUNDLE/integrations.json" 2>&1 || true
# Rate limit headers
curl -s -D "$BUNDLE/rate-headers.txt" -o /dev/null \
-H "Authorization: Bearer ${FINTA_API_KEY}" \
https://api.finta.io/v1/rounds 2>/dev/null || true
tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE"
echo "Bundle: $BUNDLE.tar.gz"
tar -xzf debug-finta-*.tar.gz
cat debug-finta-*/summary.txt # Auth + connectivity overview
jq '.[] | {id, name, status}' debug-finta-*/rounds.json # Active rounds
jq 'length' debug-finta-*/investors-sample.json # Investor count check
grep -i "ratelimit\|retry" debug-finta-*/rate-headers.txt
| Symptom | Check in Bundle | Fix |
|---|---|---|
| API returns 401 | summary.txt shows HTTP 401 | Regenerate API key in Finta Settings > API Keys |
| Rounds list empty | rounds.json returns empty array | Verify rounds exist in Finta dashboard; check workspace permissions |
| Investor sync missing | investors-sample.json has fewer records than expected | Check CRM integration in integrations.json; re-authorize connection |
| Integration disconnected | integrations.json shows error status | Re-authenticate the integration from Finta Settings > Integrations |
| Rate limited (429) | rate-headers.txt shows Retry-After | Reduce polling frequency; batch investor lookups |
async function checkFinta(): Promise<void> {
const key = process.env.FINTA_API_KEY;
if (!key) { console.error("[FAIL] FINTA_API_KEY not set"); return; }
const res = await fetch("https://api.finta.io/v1/rounds", {
headers: { Authorization: `Bearer ${key}` },
});
console.log(`[${res.ok ? "OK" : "FAIL"}] API: HTTP ${res.status}`);
if (res.ok) {
const data = await res.json();
console.log(`[INFO] Active rounds: ${Array.isArray(data) ? data.length : 0}`);
}
}
checkFinta();
See finta-common-errors for fundraising CRM sync and investor pipeline troubleshooting patterns.