Skip to main content
AI/MLjeremylongshore

finta-debug-bundle

'Collect Finta diagnostic information for support.

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--finta-debug-bundle
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/finta-pack/skills/finta-debug-bundle/SKILL.md -o .claude/skills/finta-debug-bundle.md

Drops the SKILL.md into .claude/skills/finta-debug-bundle.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Finta Debug Bundle

Overview

Collect the smallest diagnostic bundle needed to reproduce an integration failure while preserving investor and financial-data boundaries.

Prerequisites

  • An incident owner, an approved secure evidence location, and a retention deadline.
  • A reproducible symptom and opaque correlation identifier.
  • Redaction rules for credentials, contact details, financial terms, document links, and provider payloads.

Instructions

  1. Capture timestamps, service version, configuration references, aggregate counters, and redacted error categories.
  2. Reproduce with a synthetic record or a read-only probe before collecting live data.
  3. Review the bundle for secrets and sensitive fields, encrypt it in the approved location, and limit access to incident responders.
  4. Delete or retire the bundle according to the retention decision after resolution.

Output

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.

Error Handling

  • Stop collection if a secret, unredacted export, or unauthorized recipient is detected; rotate credentials if exposure is possible.
  • Record missing diagnostics as a gap rather than expanding collection indiscriminately.
  • Escalate suspected data exposure through the incident process before continuing normal troubleshooting.

Examples

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.

Debug Collection Script

#!/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"

Analyzing the Bundle

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

Common Issues

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

Automated Health Check

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();

Resources

Next Steps

See finta-common-errors for fundraising CRM sync and investor pipeline troubleshooting patterns.