内容
<div align="center">
<h1>康纳里姆</h1>
<p><strong>您公司数据的第三只眼。</strong></p>
<p>一个自我托管、受管辖的网关,让 AI 编程助手(Cursor、Copilot、Claude)触及您真实的数据,而无需暴露任何秘密。</p>
<p>
<a href="https://conarium.dev"><img src="https://img.shields.io/badge/Website-conarium.dev-5a8cff?style=for-the-badge" alt="官网" /></a>
<a href="https://github.com/dogrucanemek-alt/conarium/releases"><img src="https://img.shields.io/github/v/release/dogrucanemek-alt/conarium?style=for-the-badge&color=6fe0e0" alt="发布版本" /></a>
<a href="https://github.com/dogrucanemek-alt/conarium/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-f2d79a?style=for-the-badge" alt="许可证" /></a>
<img src="https://img.shields.io/badge/Status-Early%20Access-ff6f80?style=for-the-badge" alt="早期访问" />
</p>
</div>
<br/>
## 👁️ 问题
将 Cursor 或 Copilot 指向生产数据库,它会读取原始数据流——社会保险号、信用卡、薪水和实时密钥。一个流氓提示可能暴露您最敏感的表格。安全团队根本无法允许这种情况发生。
## 🛡️ 解决方案:康纳里姆
康纳里姆作为一个高性能的 **MCP(模型上下文协议)代理**。它直接位于 AI 助手和您的数据库之间,毫秒级评估策略,以强制执行行限制和屏蔽个人识别信息(PII)。
AI 获取了编写代码所需的上下文,但永远不会看到您的秘密。
### 关键功能
- **行内 PII 屏蔽:** 电子邮件、ID、卡和秘密在响应流中被编辑( `[MASKED]` )在模型看到任何字符之前。
- **允许/拒绝列表:** 白名单 AI 可以访问的内容。您的 `secrets` 和 `financials` 表保持不可见。
- **行上限:** 硬性每查询限制。防止数百万行的无声外泄。
- **不可变审计账本:** 每个访问都记录(谁、什么、何时、行、决策)。SOC2 和 GDPR 就绪,日志中永远不会写入原始 PII。
- **可验证的收据(v0.1):** Ed25519 签名、可独立验证的收据 - 见下文。
- **100% 自托管:** 完全在您的基础设施上运行。您的数据永远不会跨越您的周界。
- **MCP 原生:** 与 **Cursor**、**GitHub Copilot**、**Claude Code** 和 **Windsurf** 开箱即用。
### 可验证的收据
康纳里姆可以发出可移植的 **收据** (Art. 12 / 19 shaped),第三方可以离线验证,只需一个文件 - 无需安装康纳里姆。
**官方声明(不要扩大范围):** 康纳里姆收据证明记录在 **创建后未被修改、删除、重新排序或回填**。它 **不** 证明记录在创建时是正确的。
*(TR)* 康纳里姆收据,记录 **创建后未被修改、删除、重新排序或回填**。它 **不** 证明记录在创建时是正确的。
```bash
# 生成 Ed25519 密钥对(私钥 PEM + .pub.pem + .keyid 侧车)
node -e "import('./dist/keys.js').then(k=>console.log(JSON.stringify(k.writeKeyPairFiles('audit-ed25519','cnr-2026-07'),null,2)))"
export CONARIUM_AUDIT_SIGNING_KEY=./audit-ed25519.pem
# 验证收据链(退出 0 = 完整)
npx conarium-verify ./receipts.jsonl --pubkey ./audit-ed25519.pub.pem
# 可选:检查 OpenTimestamps 侧车(待处理 → 退出 0 + 警告;缺失 → 14)
npx conarium-verify ./receipts.jsonl --pubkey ./audit-ed25519.pub.pem --anchor-check
```
选择加入锚定:`CONARIUM_ANCHOR_SINK=opentimestamps`。使用 `npx conarium-anchor-upgrade ./audit.jsonl.anchors.jsonl` 升级待处理证明。
完整模式、退出代码和已知空白:[`docs/RECEIPT-SPEC.md`](docs/RECEIPT-SPEC.md)。
签名是失败关闭的:设置 `CONARIUM_AUDIT_SIGNING_KEY` 和/或 `CONARIUM_AUDIT_HMAC_KEY`,或显式 `CONARIUM_AUDIT_UNSIGNED=1` 进行一次性设置。
密钥轮换:在 `CONARIUM_AUDIT_TRUST_PUBKEYS` 中保留之前的公钥 PEM(`,` / `;` 分隔)。在第一个签名审计行之后,每个后续行必须携带 `sig`。
---
## 🏗️ 架构(三分法则)
康纳里姆在严格的三方架构上运行,在三个支柱之间平衡权力:
```mermaid
graph LR
A([AI 助手\nCursor / Copilot]) -- "MCP 查询" --> B{网关\n康纳里姆代理};
B -- "拦截和解析" --> C[引擎\n治理和正则表达式];
C -- "执行查询" --> D[(您的数据库\nPostgres)];
D -- "原始数据" --> C;
C -- "屏蔽和上限" --> B;
B -- "净化数据" --> A;
C -. "写入日志" .-> E[账本\n审计数据库];
style A fill:#05070f,stroke:#5a8cff,stroke-width:2px,color:#fff
style B fill:#05070f,stroke:#ff6f80,stroke-width:2px,color:#fff
style C fill:#05070f,stroke:#6fe0e0,stroke-width:2px,color:#fff
style D fill:#05070f,stroke:#f2d79a,stroke-width:2px,color:#fff
style E fill:#05070f,stroke:#838dad,stroke-width:2px,color:#fff
```
1. **网关:** 一个与 LLM 助手流利对话的代理。
2. **引擎:** 毫秒级评估 JSON 策略、正则表达式扫描和行上限。
3. **账本:** 记录每个查询和决策的不可变审计日志。
---
## 🚀 快速入门
康纳里姆今天就可以从源代码运行。 _(一个命令 `npx conarium` CLI 正在 [路线图](#️-roadmap) 上。)_
```bash
# 1. 克隆和安装
git clone https://github.com/dogrucanemek-alt/conarium.git
cd nexus
npm install
# 2. 指向您的数据(并编写策略 - 参见配置)
export CONARIUM_DB_URL="postgresql://user:password@localhost:5432/mydb"
# 3. 运行受管辖的 MCP 网关
npm run dev # 或:npm run build && npm start
```
康纳里姆通过 **stdio** 说 MCP,因此您的 AI 助手将其作为命令启动。将以下内容添加到您的 MCP 客户端配置(例如 Cursor):
```json
{
"mcpServers": {
"conarium": { "command": "node", "args": ["dist/index.js"] }
}
}
```
## ⚙️ 配置(策略即代码)
使用简单的 `conarium.json` 策略文件控制访问:
```json
{
"maxRows": 50,
"allowTables": ["public.customers", "public.orders"],
"denyTables": ["public.secrets", "public.financials"],
"maskColumns": ["email", "ssn", "*.card", "*.api_key"]
}
```
`allowTables` 中未包含的任何内容默认被拒绝;匹配的 `maskColumns` 在数据到达模型之前被编辑为 `[MASKED]`。
## 🗺️ 路线图
康纳里姆是 **早期访问** - 并且对其真实性保持诚实:
**现在发布:** 受管辖的 MCP 网关(stdio)· 行内 PII 屏蔽 · 允许/拒绝 + 行上限 · 不可变审计账本 · Postgres、文档和 OpenAPI 连接器。
**正在开发:** 单命令 `npx conarium` CLI · 主机云控制台 · SSO / RBAC · 合规报告(SOC2 / GDPR 导出)· 语义(基于 LLM 的)屏蔽 · Jira 和 Slack 连接器。
## 📜 许可证
康纳里姆核心在 [MIT 许可证](LICENSE) 下获得许可。企业功能和优先支持将通过 [conarium.dev](https://conarium.dev) 提供。