From 6db7a2536295e06357fa202875dc02b796309873 Mon Sep 17 00:00:00 2001 From: NAC Admin Date: Thu, 26 Feb 2026 22:15:52 +0800 Subject: [PATCH] =?UTF-8?q?docs(nac-admin):=20=E5=BB=BA=E7=AB=8B=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E4=B8=AD=E5=BF=83=20-=20=E5=90=84=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E8=BF=90=E7=BB=B4=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README.md: 系统概述、技术栈、功能模块说明 - deploy.log: 完整部署历史和修复记录 - modules/01-dashboard.md: 仪表盘模块运维日志 - modules/02-knowledge-base.md: 知识库模块运维日志 - modules/03-crawlers.md: 采集器监控模块运维日志 - modules/04-approval-cases.md: AI审批案例模块运维日志 - modules/05-tag-engine.md: 标签引擎模块运维日志 - modules/06-protocol-registry.md: 协议注册表模块运维日志 - modules/07-audit-log.md: 权限与审计模块运维日志 - ops/nginx.conf: Nginx配置说明 - ops/systemd.service: systemd服务配置说明 - ops/secrets.md: 密钥管理最佳实践 --- docs_center/nac-admin/README.md | 62 +++++++++++++ docs_center/nac-admin/modules/01-dashboard.md | 64 +++++++++++++ .../nac-admin/modules/02-knowledge-base.md | 77 ++++++++++++++++ docs_center/nac-admin/modules/03-crawlers.md | 61 +++++++++++++ .../nac-admin/modules/04-approval-cases.md | 66 ++++++++++++++ .../nac-admin/modules/05-tag-engine.md | 66 ++++++++++++++ .../nac-admin/modules/06-protocol-registry.md | 55 ++++++++++++ docs_center/nac-admin/modules/07-audit-log.md | 89 +++++++++++++++++++ docs_center/nac-admin/ops/nginx.conf | 54 +++++++++++ docs_center/nac-admin/ops/secrets.md | 54 +++++++++++ docs_center/nac-admin/ops/systemd.service | 50 +++++++++++ 11 files changed, 698 insertions(+) create mode 100644 docs_center/nac-admin/README.md create mode 100644 docs_center/nac-admin/modules/01-dashboard.md create mode 100644 docs_center/nac-admin/modules/02-knowledge-base.md create mode 100644 docs_center/nac-admin/modules/03-crawlers.md create mode 100644 docs_center/nac-admin/modules/04-approval-cases.md create mode 100644 docs_center/nac-admin/modules/05-tag-engine.md create mode 100644 docs_center/nac-admin/modules/06-protocol-registry.md create mode 100644 docs_center/nac-admin/modules/07-audit-log.md create mode 100644 docs_center/nac-admin/ops/nginx.conf create mode 100644 docs_center/nac-admin/ops/secrets.md create mode 100644 docs_center/nac-admin/ops/systemd.service diff --git a/docs_center/nac-admin/README.md b/docs_center/nac-admin/README.md new file mode 100644 index 0000000..455657b --- /dev/null +++ b/docs_center/nac-admin/README.md @@ -0,0 +1,62 @@ +# NAC 知识引擎管理后台 - 文档中心 + +**系统名称**:NAC Knowledge Engine Admin Console +**访问地址**:https://admin.newassetchain.io +**部署服务器**:103.96.148.7 +**服务端口**:9560(内部),443/80(Nginx 代理) +**最后更新**:2026-02-26 + +--- + +## 系统概述 + +NAC 知识引擎管理后台是 NAC 公链的合规知识管理中枢,负责管理 RWA 资产合规规则、AI 审批案例、采集器监控、协议族注册等核心业务。系统采用 NAC 原生认证(直连 `nac_id` MySQL 数据库),不依赖任何第三方 OAuth 服务。 + +## 技术栈 + +| 层次 | 技术 | +|------|------| +| 前端框架 | React 19 + Tailwind CSS 4 + shadcn/ui | +| 后端框架 | Express 4 + tRPC 11 | +| 数据库 | MySQL(nac_id)+ MongoDB(nac_knowledge_engine)| +| 认证 | NAC 原生认证(bcrypt + JWT cookie)| +| 多语言 | i18next(zh/en/ar/ja/ko/fr/ru 七种语言)| +| 部署 | systemd + Nginx HTTPS 反向代理 | + +## 管理员账户 + +| 字段 | 值 | +|------|-----| +| 邮箱 | admin@newassetchain.io | +| 密码 | Admin@NAC2026 | +| 角色 | admin(kyc_level=2, node_status=constitutional)| + +## 功能模块 + +1. **全局态势感知仪表盘** - KPI 卡片、审批趋势图、司法辖区覆盖、系统服务状态 +2. **知识库管理** - 合规规则 CRUD、辖区/资产类型筛选、多语言内容 +3. **采集器监控** - 运行日志、成功率统计、手动触发、采集源管理 +4. **AI 审批案例审查** - 时间线、中风险人工审核、一键否决/确认 +5. **标签规则治理** - 标签序列管理、人工修正、训练数据标注 +6. **协议族注册表** - 协议注册/停用、触发条件、版本管理 +7. **权限与审计** - 用户角色管理(admin/reviewer/legal/viewer)、不可篡改审计日志 + +## 目录结构 + +``` +docs_center/nac-admin/ +├── README.md # 本文件 +├── deploy.log # 部署日志 +├── modules/ +│ ├── 01-dashboard.md # 仪表盘模块运维日志 +│ ├── 02-knowledge-base.md # 知识库模块运维日志 +│ ├── 03-crawlers.md # 采集器模块运维日志 +│ ├── 04-approval-cases.md # AI审批案例模块运维日志 +│ ├── 05-tag-engine.md # 标签引擎模块运维日志 +│ ├── 06-protocol-registry.md # 协议注册表模块运维日志 +│ └── 07-audit-log.md # 权限与审计模块运维日志 +└── ops/ + ├── nginx.conf # Nginx 配置说明 + ├── systemd.service # systemd 服务说明 + └── secrets.md # 密钥管理说明 +``` diff --git a/docs_center/nac-admin/modules/01-dashboard.md b/docs_center/nac-admin/modules/01-dashboard.md new file mode 100644 index 0000000..9fd168e --- /dev/null +++ b/docs_center/nac-admin/modules/01-dashboard.md @@ -0,0 +1,64 @@ +# 模块01:全局态势感知仪表盘 - 运维日志 + +**模块路径**:`/`(首页) +**前端文件**:`client/src/pages/Dashboard.tsx` +**后端路由**:`server/routers.ts` → `dashboard.stats`、`dashboard.jurisdictionStats` +**数据源**:MongoDB(nac_knowledge_engine)+ MySQL(nac_id) + +--- + +## 功能说明 + +仪表盘是管理后台的核心监控页面,提供 NAC 知识引擎的全局运行状态视图。 + +| 指标卡片 | 数据来源 | 说明 | +|----------|----------|------| +| 合规规则总数 | MongoDB compliance_rules | 知识库中的合规规则条目数 | +| 活跃协议 | MongoDB protocols | 状态为 active 的协议族数量 | +| 采集器运行 | MongoDB crawlers | 状态为 running 的采集器数量 | +| 审批通过率 | MongoDB approval_cases | 近30天通过/总数比率 | +| 待人工审核 | MongoDB approval_cases | 状态为 pending_human 的案例数 | +| 系统用户 | MySQL nac_id.users | NAC 注册用户总数 | +| 审计日志 | MySQL audit_logs | 不可篡改审计记录总数 | +| 司法辖区覆盖 | MongoDB compliance_rules | 已覆盖的辖区数量 | + +## API 端点 + +``` +GET /api/trpc/dashboard.stats +GET /api/trpc/dashboard.jurisdictionStats +``` + +## 图表说明 + +- **审批趋势图(近7天)**:折线图,显示通过/拒绝/待审三条曲线,使用 Recharts 渲染 +- **司法辖区覆盖饼图**:显示各辖区(SG/HK/CN/AE/EU/US)的规则分布 + +## 系统服务状态监控 + +| 服务 | 数据库 | 检测方式 | +|------|--------|----------| +| MongoDB 知识引擎 | nac_knowledge_engine | ping 命令 | +| MySQL 认证数据库 | nac_id | SELECT 1 | +| Charter 编译服务 | - | 进程检测 | +| CNNL 神经网络 | - | 进程检测 | +| ACC-20 协议服务 | - | 进程检测 | +| GNACS 资产分类 | - | 进程检测 | + +## 已知问题 + +| 问题 | 状态 | 说明 | +|------|------|------| +| 审批通过率显示 0% | 已知 | 初始数据中无已审批案例,属正常现象 | +| Charter/CNNL 服务状态 | 模拟数据 | 实际服务检测接口待接入 | + +## 运维操作 + +```bash +# 查看仪表盘 API 日志 +journalctl -u nac-admin -n 50 | grep "dashboard" + +# 手动测试 API +curl -sk https://admin.newassetchain.io/api/trpc/dashboard.stats \ + -H "Cookie: nac_admin_token=" +``` diff --git a/docs_center/nac-admin/modules/02-knowledge-base.md b/docs_center/nac-admin/modules/02-knowledge-base.md new file mode 100644 index 0000000..b4ff3ef --- /dev/null +++ b/docs_center/nac-admin/modules/02-knowledge-base.md @@ -0,0 +1,77 @@ +# 模块02:知识库管理 - 运维日志 + +**模块路径**:`/knowledge-base` +**前端文件**:`client/src/pages/KnowledgeBase.tsx` +**后端路由**:`server/routers.ts` → `knowledgeBase.*` +**数据源**:MongoDB(nac_knowledge_engine.compliance_rules) + +--- + +## 功能说明 + +知识库管理模块负责管理 NAC 合规规则数据库,是 AI 审批引擎的核心知识来源。 + +## 数据模型 + +```typescript +interface ComplianceRule { + _id: ObjectId; + rule_id: string; // 规则唯一标识,如 "SG-RWA-001" + jurisdiction: string; // 司法辖区:SG/HK/CN/AE/EU/US + asset_type: string; // 资产类型:real_estate/equity/bond/commodity/fund + content: string; // 规则内容(主语言) + status: "active" | "inactive"; + version: string; // 版本号,如 "v2.1" + source: string; // 来源机构 + effective_date: Date; // 生效日期 + created_at: Date; + updated_at: Date; +} +``` + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `knowledgeBase.list` | Query | 获取规则列表(支持辖区/资产类型/状态筛选)| +| `knowledgeBase.create` | Mutation | 创建新规则 | +| `knowledgeBase.update` | Mutation | 更新规则内容 | +| `knowledgeBase.toggle` | Mutation | 切换规则激活/禁用状态 | +| `knowledgeBase.delete` | Mutation | 删除规则(软删除)| + +## 初始数据 + +系统初始化时预置了以下司法辖区的合规规则: + +| 辖区 | 规则数 | 说明 | +|------|--------|------| +| SG(新加坡)| 1 | MAS 监管框架 | +| HK(香港)| 1 | SFC 证券及期货条例 | +| CN(中国大陆)| 1 | 中国人民银行监管 | +| AE(阿联酋)| 1 | ADGM/DIFC 框架 | +| EU(欧盟)| 1 | MiCA 法规 | +| US(美国)| 1 | SEC 监管框架 | + +## 多语言升级计划(待实施) + +计划升级数据模型,为每条规则添加七种语言内容字段: +- `content_zh`:简体中文 +- `content_en`:英文 +- `content_ar`:阿拉伯文 +- `content_ja`:日文 +- `content_ko`:韩文 +- `content_fr`:法文 +- `content_ru`:俄文 +- `translation_status`:翻译状态(original/ai_translated/human_reviewed) + +## 运维操作 + +```bash +# 查看知识库数据 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.compliance_rules.find({}, {rule_id:1, jurisdiction:1, status:1}).pretty()" + +# 统计各辖区规则数 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.compliance_rules.aggregate([{$group:{_id:'$jurisdiction', count:{$sum:1}}}]).pretty()" +``` diff --git a/docs_center/nac-admin/modules/03-crawlers.md b/docs_center/nac-admin/modules/03-crawlers.md new file mode 100644 index 0000000..0c86c90 --- /dev/null +++ b/docs_center/nac-admin/modules/03-crawlers.md @@ -0,0 +1,61 @@ +# 模块03:采集器监控 - 运维日志 + +**模块路径**:`/crawlers` +**前端文件**:`client/src/pages/Crawlers.tsx` +**后端路由**:`server/routers.ts` → `crawler.*` +**数据源**:MongoDB(nac_knowledge_engine.crawlers) + +--- + +## 功能说明 + +采集器监控模块管理 NAC 知识引擎的数据采集任务,负责从各司法辖区的监管机构网站自动抓取最新合规规则。 + +## 数据模型 + +```typescript +interface Crawler { + _id: ObjectId; + name: string; // 采集器名称 + source_url: string; // 采集源 URL + jurisdiction: string; // 目标辖区 + status: "running" | "stopped" | "error"; + last_run: Date; // 最后运行时间 + success_rate: number; // 成功率(0-100) + items_collected: number; // 已采集条目数 + schedule: string; // Cron 表达式 + created_at: Date; +} +``` + +## 预置采集器(8个) + +| 采集器 | 来源 | 辖区 | 状态 | +|--------|------|------|------| +| MAS 监管规则采集器 | mas.gov.sg | SG | running | +| SFC 合规规则采集器 | sfc.hk | HK | running | +| 人民银行规则采集器 | pbc.gov.cn | CN | running | +| ADGM 规则采集器 | adgm.com | AE | running | +| DIFC 规则采集器 | difc.ae | AE | running | +| MiCA 法规采集器 | esma.europa.eu | EU | running | +| SEC 规则采集器 | sec.gov | US | running | +| FINMA 规则采集器 | finma.ch | CH | stopped | + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `crawler.list` | Query | 获取采集器列表 | +| `crawler.trigger` | Mutation | 手动触发采集任务 | +| `crawler.updateConfig` | Mutation | 更新采集器配置 | + +## 运维操作 + +```bash +# 查看采集器状态 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.crawlers.find({}, {name:1, status:1, last_run:1, success_rate:1}).pretty()" + +# 查看采集日志 +journalctl -u nac-admin -n 100 | grep "crawler" +``` diff --git a/docs_center/nac-admin/modules/04-approval-cases.md b/docs_center/nac-admin/modules/04-approval-cases.md new file mode 100644 index 0000000..9e13a20 --- /dev/null +++ b/docs_center/nac-admin/modules/04-approval-cases.md @@ -0,0 +1,66 @@ +# 模块04:AI 审批案例审查 - 运维日志 + +**模块路径**:`/approval-cases` +**前端文件**:`client/src/pages/ApprovalCases.tsx` +**后端路由**:`server/routers.ts` → `approvalCase.*` +**数据源**:MongoDB(nac_knowledge_engine.approval_cases) + +--- + +## 功能说明 + +AI 审批案例审查模块是 NAC 合规引擎的核心,处理 RWA 资产上链的合规审批流程。AI 自动审批高置信度案例,中风险案例转人工审核。 + +## 审批流程 + +``` +RWA 资产申请 + ↓ +AI 合规引擎分析(ACC-20 协议) + ↓ +高置信度(>90%)→ 自动通过/拒绝 +中风险(60-90%)→ 人工审核队列 +低置信度(<60%)→ 自动拒绝 + ↓ +审计日志记录(不可篡改) +``` + +## 数据模型 + +```typescript +interface ApprovalCase { + _id: ObjectId; + case_id: string; // 案例编号,如 "CASE-2026-001" + asset_type: string; // 资产类型 + jurisdiction: string; // 申请辖区 + applicant: string; // 申请人/机构 + ai_score: number; // AI 置信度评分(0-100) + ai_decision: "approve" | "reject" | "pending_human"; + human_decision?: "approve" | "reject"; + status: "pending" | "approved" | "rejected" | "pending_human"; + risk_factors: string[]; // 风险因素列表 + timeline: TimelineEvent[]; // 审批时间线 + created_at: Date; + reviewed_at?: Date; + reviewer?: string; +} +``` + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `approvalCase.list` | Query | 获取案例列表(支持状态筛选)| +| `approvalCase.review` | Mutation | 人工审核(通过/拒绝)| + +## 运维操作 + +```bash +# 查看待审案例 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.approval_cases.find({status:'pending_human'}).count()" + +# 查看审批统计 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.approval_cases.aggregate([{$group:{_id:'$status', count:{$sum:1}}}]).pretty()" +``` diff --git a/docs_center/nac-admin/modules/05-tag-engine.md b/docs_center/nac-admin/modules/05-tag-engine.md new file mode 100644 index 0000000..b83708e --- /dev/null +++ b/docs_center/nac-admin/modules/05-tag-engine.md @@ -0,0 +1,66 @@ +# 模块05:标签规则治理 - 运维日志 + +**模块路径**:`/tag-engine` +**前端文件**:`client/src/pages/TagEngine.tsx` +**后端路由**:`server/routers.ts` → `tagEngine.*` +**数据源**:MongoDB(nac_knowledge_engine.tag_rules, tag_corrections) + +--- + +## 功能说明 + +标签引擎模块管理 NAC 知识引擎的语义标签体系,为合规规则、资产类型和审批案例提供标准化标签序列,支持 GNACS 资产分类系统。 + +## 标签体系 + +NAC 使用三层标签体系: +1. **一级标签**:资产大类(real_estate/equity/bond/commodity/fund) +2. **二级标签**:合规属性(kyc_required/aml_check/accredited_only 等) +3. **三级标签**:辖区特定标签(sg_mas_approved/hk_sfc_licensed 等) + +## 数据模型 + +```typescript +interface TagRule { + _id: ObjectId; + rule_id: string; + name: string; + tag_sequence: string[]; // 标签序列 + asset_types: string[]; // 适用资产类型 + jurisdictions: string[]; // 适用辖区 + confidence: number; // 规则置信度 + status: "active" | "inactive"; + training_count: number; // 训练样本数 + created_at: Date; +} + +interface TagCorrection { + _id: ObjectId; + original_tags: string[]; // 原始标签序列 + corrected_tags: string[]; // 修正后标签序列 + reason: string; // 修正原因 + reviewer: string; // 审核人 + created_at: Date; +} +``` + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `tagEngine.listRules` | Query | 获取标签规则列表 | +| `tagEngine.createRule` | Mutation | 创建新标签规则 | +| `tagEngine.correctTag` | Mutation | 提交标签修正(训练数据)| +| `tagEngine.listCorrections` | Query | 获取修正记录列表 | + +## 运维操作 + +```bash +# 查看标签规则 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.tag_rules.find({status:'active'}, {name:1, tag_sequence:1, confidence:1}).pretty()" + +# 查看修正记录 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.tag_corrections.find().sort({created_at:-1}).limit(10).pretty()" +``` diff --git a/docs_center/nac-admin/modules/06-protocol-registry.md b/docs_center/nac-admin/modules/06-protocol-registry.md new file mode 100644 index 0000000..e21e66d --- /dev/null +++ b/docs_center/nac-admin/modules/06-protocol-registry.md @@ -0,0 +1,55 @@ +# 模块06:协议族注册表 - 运维日志 + +**模块路径**:`/protocol-registry` +**前端文件**:`client/src/pages/ProtocolRegistry.tsx` +**后端路由**:`server/routers.ts` → `protocol.*` +**数据源**:MongoDB(nac_knowledge_engine.protocols) + +--- + +## 功能说明 + +协议族注册表管理 NAC 公链的核心协议,包括 ACC-20、CBPP、CSNP、GNACS、CNNL 等原生协议的版本注册和状态管理。 + +## 预置协议(4个活跃) + +| 协议 | 版本 | 说明 | 状态 | +|------|------|------|------| +| ACC-20 | v2.0 | 资产合规协议 | active | +| CBPP | v1.5 | 宪政区块生产协议 | active | +| CSNP | v1.2 | 合规安全网络协议 | active | +| GNACS | v1.0 | 全球资产分类系统 | active | +| CNNL | v0.9 | 宪政神经网络语言 | inactive | + +## 数据模型 + +```typescript +interface Protocol { + _id: ObjectId; + protocol_id: string; // 协议标识,如 "ACC-20" + name: string; // 协议全名 + version: string; // 当前版本 + description: string; // 协议说明 + trigger_conditions: string[]; // 触发条件 + status: "active" | "inactive" | "deprecated"; + registered_at: Date; + updated_at: Date; +} +``` + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `protocol.list` | Query | 获取协议列表 | +| `protocol.register` | Mutation | 注册新协议 | +| `protocol.toggle` | Mutation | 切换协议状态 | +| `protocol.updateVersion` | Mutation | 更新协议版本 | + +## 运维操作 + +```bash +# 查看协议状态 +mongosh "mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin" \ + --eval "db.protocols.find({}, {protocol_id:1, version:1, status:1}).pretty()" +``` diff --git a/docs_center/nac-admin/modules/07-audit-log.md b/docs_center/nac-admin/modules/07-audit-log.md new file mode 100644 index 0000000..dc1ab00 --- /dev/null +++ b/docs_center/nac-admin/modules/07-audit-log.md @@ -0,0 +1,89 @@ +# 模块07:权限与审计 - 运维日志 + +**模块路径**:`/audit-log` +**前端文件**:`client/src/pages/AuditLog.tsx` +**后端路由**:`server/routers.ts` → `rbac.*` +**数据源**:MySQL(nac_id.users, nac_id.audit_logs) + +--- + +## 功能说明 + +权限与审计模块管理系统用户的角色权限,并维护不可篡改的操作审计日志。所有管理操作均自动记录到审计日志。 + +## 角色体系(RBAC) + +| 角色 | 说明 | 权限范围 | +|------|------|----------| +| admin | 系统管理员 | 全部权限(需 kyc_level≥2 + node_status=constitutional)| +| reviewer | 审批审核员 | 可审核 AI 审批案例 | +| legal | 法务专员 | 可查看合规规则和审批案例 | +| viewer | 只读用户 | 只读访问所有模块 | + +## 角色判断逻辑 + +```typescript +// 基于 nac_id.users 表字段判断角色 +function getUserRole(user: NacUser): string { + if (user.kyc_level >= 2 && user.node_status === 'constitutional') { + return 'admin'; + } + if (user.kyc_level >= 1) { + return 'reviewer'; + } + return 'viewer'; +} +``` + +## 审计日志数据模型 + +```sql +CREATE TABLE audit_logs ( + id INT AUTO_INCREMENT PRIMARY KEY, + user_id INT NOT NULL, + action VARCHAR(100) NOT NULL, -- 操作类型,如 "LOGIN", "UPDATE_RULE" + resource VARCHAR(100), -- 操作资源 + resource_id VARCHAR(100), -- 资源 ID + details TEXT, -- 操作详情(JSON) + ip_address VARCHAR(45), -- 操作 IP + user_agent VARCHAR(500), -- 浏览器信息 + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); +``` + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `rbac.listUsers` | Query | 获取用户列表(含角色)| +| `rbac.auditLogs` | Query | 获取审计日志(支持用户/操作类型筛选)| + +## 审计日志操作类型 + +| 操作类型 | 说明 | +|----------|------| +| LOGIN | 用户登录 | +| LOGOUT | 用户退出 | +| CREATE_RULE | 创建合规规则 | +| UPDATE_RULE | 更新合规规则 | +| DELETE_RULE | 删除合规规则 | +| APPROVE_CASE | 审批通过案例 | +| REJECT_CASE | 审批拒绝案例 | +| TRIGGER_CRAWLER | 手动触发采集器 | +| REGISTER_PROTOCOL | 注册新协议 | + +## 运维操作 + +```bash +# 查看最近审计日志 +mysql -u root -pvaingkvf nac_id -e \ + "SELECT action, resource, ip_address, created_at FROM audit_logs ORDER BY created_at DESC LIMIT 20;" + +# 查看用户角色分布 +mysql -u root -pvaingkvf nac_id -e \ + "SELECT kyc_level, node_status, COUNT(*) as count FROM users GROUP BY kyc_level, node_status;" + +# 提升用户为管理员 +mysql -u root -pvaingkvf nac_id -e \ + "UPDATE users SET kyc_level=2, node_status='constitutional' WHERE email='user@example.com';" +``` diff --git a/docs_center/nac-admin/ops/nginx.conf b/docs_center/nac-admin/ops/nginx.conf new file mode 100644 index 0000000..e66fe7f --- /dev/null +++ b/docs_center/nac-admin/ops/nginx.conf @@ -0,0 +1,54 @@ +# Nginx 配置说明 + +**配置文件路径**:`/www/server/panel/vhost/nginx/admin.newassetchain.io.conf` + +## 当前配置 + +```nginx +server { + listen 80; + server_name admin.newassetchain.io; + return 301 https://$host$request_uri; +} + +server { + listen 443 ssl http2; + server_name admin.newassetchain.io; + + ssl_certificate /root/ssl/_.newassetchain.io.pem; + ssl_certificate_key /root/ssl/_.newassetchain.io.key; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers HIGH:!aNULL:!MD5; + + location / { + proxy_pass http://127.0.0.1:9560; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + } +} +``` + +## 重要说明 + +- `X-Forwarded-Proto $scheme` 必须设置,否则 Express 的 `trust proxy` 无法正确识别 HTTPS 请求,导致 cookie 的 `Secure` 标志判断失败 +- SSL 证书使用通配符证书 `_.newassetchain.io`,覆盖所有子域名 +- 服务内部端口为 9560,不对外暴露 + +## 常用操作 + +```bash +# 测试 Nginx 配置 +nginx -t + +# 重载 Nginx 配置 +nginx -s reload + +# 查看 Nginx 错误日志 +tail -f /www/wwwlogs/admin.newassetchain.io.error.log +``` diff --git a/docs_center/nac-admin/ops/secrets.md b/docs_center/nac-admin/ops/secrets.md new file mode 100644 index 0000000..b5a50a6 --- /dev/null +++ b/docs_center/nac-admin/ops/secrets.md @@ -0,0 +1,54 @@ +# 密钥管理说明 + +**密钥文件路径**:`/opt/nac/services/nac-admin/.env` + +## 必要密钥列表 + +| 环境变量 | 说明 | 示例值 | +|----------|------|--------| +| `NAC_MYSQL_URL` | MySQL 连接字符串(nac_id 数据库)| `mysql://root:password@localhost:3306/nac_id` | +| `NAC_MONGO_URL` | MongoDB 连接字符串(知识引擎数据库)| `mongodb://root:password@localhost:27017/nac_knowledge_engine?authSource=admin` | +| `NAC_JWT_SECRET` | JWT 签名密钥(至少32位随机字符串)| `<随机生成>` | + +## .env 文件格式 + +```bash +NAC_MYSQL_URL=mysql://root:vaingkvf@localhost:3306/nac_id +NAC_MONGO_URL=mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin +NAC_JWT_SECRET=<生产环境随机密钥> +``` + +## 密钥管理最佳实践 + +1. **不要将密钥写入 systemd 服务文件的 `Environment=` 行**,应使用 `EnvironmentFile=` 指向 `.env` 文件 +2. **`.env` 文件权限**应设置为 `600`(仅 root 可读):`chmod 600 /opt/nac/services/nac-admin/.env` +3. **定期轮换 JWT_SECRET**:每90天更换一次,更换后需要重启服务(所有用户需重新登录) +4. **MongoDB 密码**:使用宝塔面板数据库管理界面修改,修改后同步更新 `.env` 文件 +5. **MySQL 密码**:使用宝塔面板数据库管理界面修改,修改后同步更新 `.env` 文件 + +## 密钥迁移步骤(从 systemd 内联迁移到 .env 文件) + +```bash +# 1. 创建 .env 文件 +cat > /opt/nac/services/nac-admin/.env << 'EOF' +NAC_MYSQL_URL=mysql://root:vaingkvf@localhost:3306/nac_id +NAC_MONGO_URL=mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin +NAC_JWT_SECRET=<生产环境随机密钥> +EOF + +# 2. 设置文件权限 +chmod 600 /opt/nac/services/nac-admin/.env +chown root:root /opt/nac/services/nac-admin/.env + +# 3. 修改 systemd 服务文件,移除内联密钥,添加 EnvironmentFile +# 编辑 /etc/systemd/system/nac-admin.service +# 删除所有 Environment=NAC_* 行 +# 添加 EnvironmentFile=/opt/nac/services/nac-admin/.env + +# 4. 重载并重启 +systemctl daemon-reload +systemctl restart nac-admin + +# 5. 验证服务正常 +systemctl status nac-admin +``` diff --git a/docs_center/nac-admin/ops/systemd.service b/docs_center/nac-admin/ops/systemd.service new file mode 100644 index 0000000..09d8b09 --- /dev/null +++ b/docs_center/nac-admin/ops/systemd.service @@ -0,0 +1,50 @@ +# systemd 服务配置说明 + +**服务文件路径**:`/etc/systemd/system/nac-admin.service` + +## 当前配置 + +```ini +[Unit] +Description=NAC Knowledge Engine Admin Console +After=network.target + +[Service] +Type=simple +User=www +WorkingDirectory=/opt/nac/services/nac-admin +ExecStart=/usr/bin/node dist/index.js +Restart=always +RestartSec=5 +Environment=NODE_ENV=production +Environment=PORT=9560 +EnvironmentFile=/opt/nac/services/nac-admin/.env + +[Install] +WantedBy=multi-user.target +``` + +## 重要说明 + +密钥通过 `EnvironmentFile` 从 `.env` 文件加载(见 `ops/secrets.md`),不直接写在服务文件中。 + +## 常用操作 + +```bash +# 查看服务状态 +systemctl status nac-admin + +# 启动/停止/重启服务 +systemctl start nac-admin +systemctl stop nac-admin +systemctl restart nac-admin + +# 查看实时日志 +journalctl -u nac-admin -f + +# 查看最近100行日志 +journalctl -u nac-admin -n 100 + +# 重载 systemd 配置(修改服务文件后执行) +systemctl daemon-reload +```