Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻譯準備中
This project is designed to provide a collection of community-created and curated research tools and links, accessible via a web interface.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Intelligence analysis and research platform built on Cloudflare Pages.
Live at researchtools.net.
Provides analysts a workspace for structured analytic techniques (ACH, COG, COM-B,
Starbursting, SWOT, PEST, PMESII-PT, DIME, DOTMLPF, Stakeholder, Causeway,
Deception/SATS), content intelligence (URL/PDF/social-media extraction with AI
entity extraction), evidence and entity management, network analysis with exports
to Gephi/Neo4j/Maltego/i2 ANB, and a Common Operating Picture (COP) workspace
for multi-source incident analysis.檢視完整 README ↗Intelligence analysis and research platform built on Cloudflare Pages. Live at researchtools.net.
Provides analysts a workspace for structured analytic techniques (ACH, COG, COM-B, Starbursting, SWOT, PEST, PMESII-PT, DIME, DOTMLPF, Stakeholder, Causeway, Deception/SATS), content intelligence (URL/PDF/social-media extraction with AI entity extraction), evidence and entity management, network analysis with exports to Gephi/Neo4j/Maltego/i2 ANB, and a Common Operating Picture (COP) workspace for multi-source incident analysis.
react-i18next (English, Spanish)npm install
# Dev runs two processes — wrangler proxies API on :8788, vite serves UI on :5173
npm run dev:wrangler # terminal 1 — Pages Functions
npm run dev:vite # terminal 2 — frontend (proxies /api to 8788)
# Verify
npm run type-check
npm run lint
npm run test:e2e:smoke
The combined
npm run devscript uses&and is unreliable on wrangler 4.40+. Use the two-process form above.
.
├── src/ React app
│ ├── components/ UI components (grouped by domain: ach, cop, frameworks, ...)
│ ├── pages/ Route components
│ ├── lib/ Client-side libraries (ai, api, exports, reports)
│ ├── hooks/ React hooks
│ ├── stores/ Zustand stores
│ └── locales/ en, es translations
├── functions/ Cloudflare Pages Functions (server)
│ └── api/ REST endpoints grouped by domain
├── schema/ D1 schema, managed migrations, and legacy migration archive
├── public/ Static assets, _headers, _redirects, _routes.json
├── containers/ Containerized services (osint-agent, searxng)
├── scripts/ Shell utilities (cop-api.sh, pre-deployment-check.sh)
├── tests/ Playwright E2E
└── docs/ Documentation (see below)
This repository deploys independently from the IrregularChat monorepo. Running
the monorepo's ./deploy.sh workers does not deploy ResearchTools, and running
the commands below does not deploy Signal/RSS workers. Cross-repository releases
must run and verify both deployments explicitly; see the
scraping deployment runbook.
./deploy.sh # migrate + build + deploy (recommended)
./deploy.sh --dry-run # list pending migrations + build; no production writes
./deploy.sh --skip-migrate # build + deploy, no D1 migrations
# Watch logs
source ./scripts/cloudflare-account.sh
npx wrangler pages deployment tail --project-name=researchtoolspy
The deploy script handles a subtle gotcha: Cloudflare Pages bundles functions/
relative to the deploy directory, so the script copies functions/ into dist/
before wrangler pages deploy dist/. Do not deploy from repo root.
Local: .env (gitignored). See .env.example if added.
Production secrets are stored as Cloudflare environment variables and bindings
in wrangler.toml:
OPENAI_API_KEY (secret) — required for AI featuresDB → researchtoolspy-prodUPLOADS → file/image storage| Area | Path |
|---|---|
| API reference | docs/api/ |
| Framework guides | docs/frameworks/ — ACH, COM-B / behavior, framework auto-population |
| Integrations | docs/integrations/ — Gephi, Neo4j, Maltego, i2 ANB, R, social-media extraction |
| Operations | docs/operations/ — D1 migrations, accessibility, Cloudflare/general lessons learned, changelog |
| Scraping deployment | docs/operations/SCRAPING_DEPLOYMENT.md — release gates, topology, verification, logs, rollback |
| Implementation plans | docs/plans/ — phase plans, design docs |
| Upgrades | docs/upgrades/ — dependency upgrade reports |
| Cypher queries | docs/neo4j-queries/ |
| R scripts | docs/r-scripts/ |
For Claude Code workflows, see CLAUDE.md — covers the cop-api.sh
shell helpers (cop_sessions, cop_add_rfi, cop_add_evidence, etc.) and the
key API conventions.
D1 (SQLite). New forward-only changes live in
schema/managed-migrations/ and are tracked by
Wrangler. schema/migrations/ is a legacy archive; it is
not replay-safe and must not be applied as a directory.
# List local pending migrations
pnpm run migrate:list
# List production pending migrations (read-only)
pnpm run migrate:list:prod
# Apply migrations remotely
pnpm run migrate:prod
# Ad-hoc query (remote)
source ./scripts/cloudflare-account.sh
pnpm exec wrangler d1 execute researchtoolspy-prod --remote --command "SELECT name FROM sqlite_master WHERE type='table'"
Back up D1 and record a Time Travel restore point before applying production
migrations. See docs/operations/D1_MIGRATIONS.md
for the required apply, verification, and rollback procedure.
Conventions:
lowercase_snake_case (PascalCase causes silent FK
failures in D1).actors.type, places.type, ...) must be uppercase — D1
CHECK constraints enforce this.actors, sources, events, places, behaviors,
evidence_items, relationships) use created_by and workspace_id.framework_sessions, mom_assessments) use user_id.feat(scope):, fix(scope):,
chore(scope):, ...).fix/cop-share-auth).npm run type-check && npm run lint && npm run test:e2e:smoke.audit-ci (high/critical).Proprietary — All rights reserved.