Skip to content

Commit 048fdda

Browse files
ralyodioclaude
andauthored
threatcrush-nightly: nightly ThreatCrush report (money, installs, CLI, accounts, fleet, scans, attacks) (#35)
Same shape as w3bs-nightly. Revenue across every payment table, install.sh fetches + npm downloads, CLI users and daemon heartbeats by Node UA in nginx, accounts/teams/fleets/servers/GitHub App/property runs and fleet-wide detections + bans from the threatcrush.com DB (read-only), CrawlProof traffic. Cron 06:00 UTC; failures mail + alert --key threatcrush-nightly. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 081975f commit 048fdda

2 files changed

Lines changed: 705 additions & 0 deletions

File tree

‎README.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,3 +468,33 @@ w3bs-nightly --to a@b.com,c@d someone else (default anthony@ + preshy@profull
468468

469469
Runs from cron at 05:55 UTC. A failure is mailed as "W3BS nightly FAILED" and
470470
raised with `alert`.
471+
472+
## threatcrush-nightly
473+
474+
The nightly ThreatCrush report, in the same shape as w3bs-nightly and
475+
smshub-nightly, money first. Revenue is settled (confirmed/forwarded) rows across
476+
every payment table in the threatcrush.com DB (credit deposits minus code grants,
477+
scan orders, module and reputation subscriptions minus comp plans, licenses,
478+
funding, crawl sales), plus checkouts opened and paid plans running. Installs are
479+
outside IPs fetching `install.sh`/`install.ps1` in dev2's nginx log (kept ~2 days);
480+
npm downloads of `@profullstack/threatcrush` come from api.npmjs.org (posted a day
481+
late, shown as "·" until then). The CLI and daemon send Node's default `node`
482+
user agent, so CLI users are outside IPs calling `/api/` with it, and daemon
483+
heartbeats are ingest + ban-claim + run-poll calls (our boxes by server name).
484+
Accounts, logins, CLI logins, orgs/teams/fleets/invites/agent keys, servers online
485+
and daemon versions, GitHub App installs and repo scans, property runs, and the
486+
fleet's attack events (detections) and bans (remediation_actions) come from the
487+
threatcrush.com Supabase Postgres on dev2, read-only; visitors from CrawlProof.
488+
Accounts matching the internal regex are ours, and so are the orgs they created
489+
and those orgs' servers. `ai-scan` and local scans send nothing home, so they are
490+
not counted.
491+
492+
```
493+
threatcrush-nightly mail yesterday's (UTC) report
494+
threatcrush-nightly --dry-run build it under ~/.local/share/threatcrush-nightly, send nothing
495+
threatcrush-nightly --day 2026-10-26 a specific UTC day
496+
threatcrush-nightly --to a@b.com,c@d someone else (default anthony@ + preshy@profullstack.com)
497+
```
498+
499+
Runs from cron at 06:00 UTC. A failure is mailed as "ThreatCrush nightly FAILED"
500+
and raised with `alert --key threatcrush-nightly`.

0 commit comments

Comments
 (0)