Open-core vertical applications on the SynapCores AI-native database.
Two production-shape verticals in this monorepo today, both built on a
shared @synapcores/app-framework:
| App | What it is | Port | Repo |
|---|---|---|---|
| SOAR | Autonomous SOC — alert ingest → EMBED dedup → triage agent → incident/action ledger → HBR approvals → MCP examiner portal | 3001 | apps/soar |
| AML | Transaction-monitoring + SAR-drafting — FedNow/ACH/SWIFT ingest → behavioral detection → 5-jurisdiction SAR drafting → HBR file-with-regulator → MCP examiner portal | 3003 | apps/aml |
Both share the same engine (one synapcores/community container) and
the same auth/RBAC/UI primitives.
┌──────────────────────────────┐
│ SynapCores Engine (CE) │
│ vectors · SQL · graph · IM │
│ :28080 │
└──────────────┬───────────────┘
│
┌──────────────────┼──────────────────┐
│ │
┌──────▼───────┐ ┌───────▼──────┐
│ SOAR app │ │ AML app │
│ :3001 │ │ :3003 │
└──────────────┘ └──────────────┘
└─ @synapcores/app-framework ─┘
(auth · RBAC · UI · agent ·
tenants · audit · MCP)
Requires Docker 24+ and ~4 GB free RAM for the SynapCores engine.
git clone https://github.com/SynapCores/synapcores-apps
cd synapcores-apps
cp .env.example .env
# Edit .env: set AIDB_JWT_SECRET, AUTH_SECRET (both 32 random bytes).
# Leave SYNAPCORES_ADMIN_API_KEY blank for first boot.
# 1. Boot just the engine first
docker compose up -d synapcores
# 2. Grab the engine admin password
docker compose logs synapcores | grep "password:"
# Log into the engine console at http://localhost:28080,
# mint an admin API token, paste into .env as SYNAPCORES_ADMIN_API_KEY.
# 3. Boot the apps
docker compose up -d
# Open whichever app you want:
open http://localhost:3001/register # SOAR
open http://localhost:3003/register # AMLThe first user registered becomes the owner of the first workspace in that app.
SIEM/EDR webhook ─→ EMBED dedup ─→ Tier-1 triage agent ─→ Incident
↓ ↓
/actions ledger ─→ adapter fires
↓
HBR? ─→ /approvals queue
After register:
- Mint a connector token at
/settings/connectors. Point your SIEM at the webhook URL (Splunk HEC, Sentinel Logic App, CrowdStrike workflow, Okta event hook). - Alerts appear at
/alerts. Click Run Tier-1 triage to dispatch the agent. - Triage routes to
/incidents(true positive), closes it (false positive), or queues for human review. - Wire integrations at
/settings/integrations(Slack, ServiceNow, Okta, CrowdStrike, Cloudflare). - HBR actions (isolate, disable, revoke, block) route to
/approvalsfor human go/no-go before they fire. - For SOC 2 / FFIEC examiners, mint a scoped MCP token at
/settings/mcp-tokens. Hand them/api/v1/mcp+ the bearer — they query directly from Claude / Cursor.
Apps-side deep-dive: apps/soar/docs/ARCHITECTURE.md,
apps/soar/docs/DESIGN_PARTNER.md.
FedNow/ACH/SWIFT/banking webhook ─→ behavioral detector
↓
structuring · velocity · xb-cash · CTR · round-#
↓
/cases → sar-drafter
↓
/sars (review → approved → file)
↓
HBR? ─→ /approvals queue
After register:
- Mint a connector token at
/settings/connectors. Pick FedNow (ISO 20022 pacs.008), ACH (NACHA), SWIFT (MT103 + pacs.008), or generic banking webhook. - Transactions flow into
/transactions. The behavioral detector inline-flags structuring (3+ sub-CTR in 24h), velocity (>$1M/24h), cross-border cash, CTR threshold, and round-number. - SAR-candidates land on
/cases. Pick a jurisdiction, click Draft SAR — thesar-drafteragent (or deterministic FinCEN/NCA/AUSTRAC/FINTRAC/goAML template) produces a regulator- grade narrative with statute references. - Review / approve at
/sars/[id]. File with regulator is HBR — routes through/approvals. - Wire integrations at
/settings/integrations(ComplyAdvantage sanctions, FinCEN BSA E-Filing, core-banking account holds, Slack). - For FFIEC / OCC / NYDFS / FCA examiners, mint a scoped MCP token — they query case/transaction/SAR/screening data directly from Claude.
Apps-side deep-dive: apps/aml/docs/ARCHITECTURE.md,
apps/aml/docs/DESIGN_PARTNER.md.
synapcores-apps/
├── packages/
│ └── app-framework/ @synapcores/app-framework
│ ├── auth/ Auth.js v5 + tenants + invitations +
│ │ mailer + api-keys + mcp-tokens
│ ├── db/ SynapCores SDK + bootstrap
│ ├── agent/ AGENT_RUN client
│ ├── rbac/ role + permission primitives
│ ├── ui/ shadcn-style components + DataTable
│ ├── layout/ DashboardLayout + Sidebar + TopBar
│ └── pages/ Settings / Profile / Workspace / Team /
│ Audit / ApiKeys / McpTokens / Accept-invite
│
└── apps/
├── soar/ @synapcores/soar
│ └── (see apps/soar/README.md + docs/ARCHITECTURE.md)
│
└── aml/ @synapcores/aml
└── (see apps/aml/README.md + docs/ARCHITECTURE.md)
Data flow (same in both apps):
- The engine holds everything persistent (users, tenants, app data, audit, integrations, MCP tokens).
- The apps are stateless: server-rendered Next.js + server
actions.
.next/cache is the only meaningful app-side state. - Each app lives in its own tenants; users with memberships in both can switch apps without re-auth.
- Next.js 15 (App Router, server actions)
- TypeScript (strict)
- Tailwind CSS + shadcn/ui
- Auth.js v5 (credentials + magic-link)
- bcryptjs (password + API key + connector + MCP-token hashing)
- zod (validation)
- @synapcores/app-framework (auth + RBAC + shared UI + agent)
- SynapCores Community Edition v1.7.0.1-ce (data tier)
packages/app-framework— Apache-2.0apps/soar— Apache-2.0 (open core)apps/aml— Apache-2.0 (open core)- Enterprise tier (managed cloud + certified playbook library + SOC 2 Type II auditor portal + dedicated support) — request pricing at https://synapcores.com.
Issues + PRs welcome. The framework
(packages/app-framework) is designed for reuse across vertical apps —
SOAR + AML are the first two; Compliance + Claims + Legal are next.
Design-partner alpha. Not yet GA. Both end-to-end loops run on the
same engine. Production deployments need an LLM wired (see
*_TRIAGE_MODE=auto) and the relevant adapters configured.