From 86ec0fe253d62f999c10c1b437b3c4374399ba14 Mon Sep 17 00:00:00 2001 From: wurenzhi Date: Wed, 18 Mar 2026 12:37:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor(audit):=20=E7=BB=9F=E4=B8=80=E5=AE=A1?= =?UTF-8?q?=E8=AE=A1=E6=97=A5=E5=BF=97=E5=AD=97=E6=AE=B5=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E5=B9=B6=E5=A2=9E=E5=BC=BA=E6=97=A5=E5=BF=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 标准化审计日志字段命名,将tenant_id等改为camelCase格式 添加userId、module等新字段以增强审计追踪能力 修改metadata字段为对象类型以提高可读性 --- .github/README.md | 34 ------------------ .../services/SovereignCreditPoolService.ts | 14 +++++--- .../services/SovereigntyIdentityService.ts | 36 +++++++++++-------- 3 files changed, 31 insertions(+), 53 deletions(-) delete mode 100644 .github/README.md diff --git a/.github/README.md b/.github/README.md deleted file mode 100644 index f7f52dc..0000000 --- a/.github/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# GitHub 配置 - -## 📋 项目简介 - -本目录包含 GitHub 相关的配置文件,主要用于 CI/CD 工作流。 - -## 🚀 核心功能 - -### 1. CI/CD 工作流 -- **文件**: `workflows/ci-cd.yml` -- **功能**: 自动化构建、测试和部署 -- **触发条件**: 代码提交到 main 分支 - -## 📁 项目结构 - -``` -.github/ -├── workflows/ # 工作流配置 -│ └── ci-cd.yml # CI/CD 配置 -└── README.md # 项目说明 -``` - -## 🔧 工作流配置 - -### CI/CD 流程 -1. **安装依赖**: 安装项目依赖 -2. **代码检查**: 运行 ESLint 和 TypeScript 类型检查 -3. **运行测试**: 执行单元测试和集成测试 -4. **构建项目**: 构建前端和后端项目 -5. **部署**: 部署到生产环境 - -## 🤝 贡献 - -欢迎贡献 GitHub 配置和提出建议!请先阅读项目文档,然后提交 Pull Request。 diff --git a/server/src/services/SovereignCreditPoolService.ts b/server/src/services/SovereignCreditPoolService.ts index 48c3839..1ba30fe 100644 --- a/server/src/services/SovereignCreditPoolService.ts +++ b/server/src/services/SovereignCreditPoolService.ts @@ -76,12 +76,16 @@ export class SovereignCreditPoolService { }); await AuditService.log({ - tenant_id: tenantId, + tenantId: tenantId, + userId: 'SYSTEM', + module: 'CREDIT_POOL', action: 'SOV_CREDIT_LIMIT_REFRESHED', - target_type: 'FINANCE_CREDIT', - target_id: tenantId, - trace_id: traceId, - new_data: JSON.stringify({ newLimit, newMultiplier }), + resourceType: 'FINANCE_CREDIT', + resourceId: tenantId, + traceId: traceId, + afterSnapshot: JSON.stringify({ newLimit, newMultiplier }), + result: 'success', + source: 'node', metadata: { score: reputation.aggregated_market_score } }); } diff --git a/server/src/services/SovereigntyIdentityService.ts b/server/src/services/SovereigntyIdentityService.ts index ce499ed..227d5e4 100644 --- a/server/src/services/SovereigntyIdentityService.ts +++ b/server/src/services/SovereigntyIdentityService.ts @@ -1,7 +1,7 @@ import db from '../config/database'; import { AuditService } from './AuditService'; import { AIService } from './AIService'; -import { crypto } from 'crypto'; +import * as crypto from 'crypto'; /** * [BIZ_SOV_01] 跨平台贸易主权证书体系 (Sovereignty Identity) @@ -35,13 +35,17 @@ export class SovereigntyIdentityService { // 审计记录 await AuditService.log({ - tenant_id: tenantId, + tenantId: tenantId, + userId: 'SYSTEM', + module: 'SOVEREIGNTY', action: 'SOVEREIGNTY_IDENTITY_CREATED', - target_type: 'TENANT_IDENTITY', - target_id: tenantId, - trace_id: traceId, - new_data: JSON.stringify({ did, publicKey }), - metadata: JSON.stringify({ version: 'V27.0 Initial' }) + resourceType: 'TENANT_IDENTITY', + resourceId: tenantId, + traceId: traceId, + afterSnapshot: JSON.stringify({ did, publicKey }), + result: 'success', + source: 'node', + metadata: { version: 'V27.0 Initial' } }); }); @@ -57,7 +61,7 @@ export class SovereigntyIdentityService { const scores = await Promise.all(platforms.map(p => AIService.getPlatformReputation(tenantId, p))); // 2. 计算加权综合评分 - const averageScore = scores.reduce((a, b) => a + b, 0) / scores.length; + const averageScore = scores.reduce((a: number, b: number) => a + b, 0) / scores.length; await db('cf_sovereignty_identity') .where({ tenant_id: tenantId }) @@ -67,13 +71,17 @@ export class SovereigntyIdentityService { }); await AuditService.log({ - tenant_id: tenantId, + tenantId: tenantId, + userId: 'SYSTEM', + module: 'SOVEREIGNTY', action: 'REPUTATION_SYNCED', - target_type: 'TENANT_IDENTITY', - target_id: tenantId, - trace_id: traceId, - new_data: JSON.stringify({ averageScore }), - metadata: JSON.stringify({ platforms }) + resourceType: 'TENANT_IDENTITY', + resourceId: tenantId, + traceId: traceId, + afterSnapshot: JSON.stringify({ averageScore }), + result: 'success', + source: 'node', + metadata: { platforms } }); }