iaamraagul/TrustSphere
GitHub: iaamraagul/TrustSphere
TrustSphere是一款全栈验证智能仪表板,用于身份审查、威胁审计和基于角色的访问控制。
Stars: 0 | Forks: 0
# TrustSphere
TrustSphere 是一个全栈验证智能仪表板,用于身份审查、欺诈监控、审计可见性和基于角色的用户治理。它被构建为一个投资级安全运营产品,具有磨光的 Angular 界面、Express/MongoDB API、JWT 认证、仅管理员用户管理、分页审计数据以及通过 Socket.IO 的可选实时同步。
产品的目标很简单:为团队提供一个专注的命令界面,以验证、监控和保护信任信号,而不会让操作员淹没在企业 UI 的噪音中。
## 截图
## 目录
- [亮点](#highlights)
- [截图](#screenshots)
- [技术栈](#tech-stack)
- [架构](#architecture)
- [项目结构](#project-structure)
- [核心功能](#core-features)
- [入门](#getting-started)
- [环境变量](#environment-variables)
- [可用脚本](#available-scripts)
- [API 概述](#api-overview)
- [实时同步](#realtime-sync)
- [RBAC 模型](#rbac-model)
- [性能说明](#performance-notes)
- [UI 系统](#ui-system)
- [验证清单](#verification-checklist)
- [故障排除](#troubleshooting)
## 亮点
- 优质的 Angular 仪表板,带有手工制作的深色/浅色主题样式。
- JWT 加密的 API,具有受保护的路由和仅管理员用户治理。
- 手动实时同步切换,只有在用户启用时才启动实时流量。
- 分页的用户和审计日志视图,以加快仪表板加载速度。
- 缓存仪表板指标,以避免重复的数据库压力。
- Socket.IO 通知用于实时操作事件。
- 关键认证和用户管理操作的审计日志。
- MongoDB 索引用于频繁查询的用户、审计和验证集合。
- 响应式认证、仪表板、设置、欺诈、审计和监控屏幕。
## 技术栈
| 层 | 技术 |
| --- | --- |
| 前端 | Angular 21, Angular Router, Reactive Forms |
| 样式 | SCSS, CSS 变量,自定义响应式布局 |
| 图表 | ApexCharts via `ng-apexcharts` |
| 实时 | Socket.IO 客户端/服务器 |
| 后端 | Node.js, Express 5, TypeScript |
| 数据库 | MongoDB with Mongoose |
| 认证 | JWT,bcrypt 密码散列 |
| 工具 | Angular CLI,TypeScript,Prettier |
## 架构
```
flowchart LR
User["Operator / Admin"] --> Frontend["Angular Client"]
Frontend --> Auth["JWT Auth Flow"]
Frontend --> API["Express API"]
Frontend -. manual opt-in .-> Socket["Socket.IO Realtime Engine"]
API --> Mongo["MongoDB"]
API --> Audit["Audit Log Service"]
Socket --> Frontend
Audit --> Mongo
```
前端是一个独立的 Angular 应用程序,具有懒加载的功能路由。后端公开 REST API,使用 JWT 中间件保护私有路由,将用户管理路由限制为管理员,并发出用户、仪表板、审计和通知更新的实时事件。
## 项目结构
```
TrustSphere/
├── .gitignore
├── README.md
├── docs/
│ └── screenshots/
├── backend/
│ ├── .env.example
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ ├── app.ts
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── scripts/
│ ├── services/
│ └── sockets/
└── frontend/
├── package.json
├── angular.json
└── src/
├── app/
│ ├── core/
│ ├── features/
│ ├── layout/
│ └── shared/
├── environments/
├── index.html
├── main.ts
└── styles.scss
```
## 核心功能
### 认证
- 带有反应式验证的登录和注册屏幕。
- 在存储之前使用 bcrypt 对密码进行散列。
- 登录后在客户端保存 JWT 并附加到受保护的 API 调用。
- 注销清除本地认证状态。
### 仪表板
- 总用户数、验证量、待审查和欺诈警报的指标。
- 验证分析图表。
- 由审计日志数据支持的最近活动源。
- API 失败时的加载状态和错误回退。
### 用户
- 仅管理员路由和侧边栏条目。
- 分页的用户列表。
- 搜索支持。
- 创建、编辑、删除和状态切换操作。
- 用户更改的乐观 UI 更新。
### 审计日志
- 受保护的审计日志路由。
- 分页和可搜索的审计日志表。
- 缓存头用于短暂的审计响应。
- 启用实时同步时实时追加行为。
### AI 监控和欺诈引擎
- 操作信号的安全监控表面。
- 可扫描的指标卡和结构化数据表。
- 风险导向的视觉语言用于警报和状态信号。
### 设置
- 外观首选项。
- 亮/暗主题切换。
- 配置文件和通知首选项的占位符设置。
## 入门
### 先决条件
- Node.js 20 或更高版本
- npm
- 本地运行的 MongoDB 或 MongoDB Atlas 连接字符串
### 1. 克隆和安装
```
git clone
cd TrustSphere
cd backend
npm install
cd ../frontend
npm install
```
### 2. 配置后端环境
创建 `backend/.env`:
```
PORT=5000
MONGO_URI=mongodb://127.0.0.1:27017/trustsphere
JWT_SECRET=replace_with_a_long_random_secret
```
永远不要提交真实的生产机密。
### 3. 配置前端 API URL
开发 API URL 在以下位置定义:
```
frontend/src/environments/environment.ts
```
默认:
```
export const environment = {
apiUrl: 'http://localhost:5000/api',
};
```
### 4. 启动后端
```
cd backend
npm run dev
```
API 默认在 `http://localhost:5000` 上运行。
### 5. 启动前端
```
cd frontend
npm start
```
Angular 应用程序默认在 `http://localhost:4200` 上运行。
## 环境变量
| 变量 | 必需 | 描述 |
| --- | --- | --- |
| `PORT` | 否 | 后端服务器端口。默认为 `5000`。 |
| `MONGO_URI` | 是 | MongoDB 连接字符串。 |
| `JWT_SECRET` | 是 | 用于签名和验证 JWT 令牌的密钥。 |
## 可用脚本
### 前端
| 命令 | 描述 |
| --- | --- |
| `npm start` | 启动 Angular 开发服务器。 |
| `npm run build` | 为生产构建前端。 |
| `npm run watch` | 以监视模式运行 Angular 构建。 |
| `npm test` | 运行前端测试。 |
### 后端
| 命令 | 描述 |
| --- | --- |
| `npm run dev` | 使用 `ts-node-dev` 启动 Express API。 |
| `npx tsc --noEmit` | 在不发出文件的情况下对后端进行类型检查。 |
## API 概述
所有私有端点都期望:
```
Authorization: Bearer
```
### 认证
| 方法 | 端点 | 访问 | 描述 |
| --- | --- | --- | --- |
| `POST` | `/api/auth/register` | 公共 | 创建用户帐户。 |
| `POST` | `/api/auth/login` | 公共 | 认证用户并返回 JWT。 |
### 仪表板
| 方法 | 端点 | 访问 | 描述 |
| --- | --- | --- | --- |
| `GET` | `/api/dashboard/metrics` | 认证 | 返回缓存的仪表板指标。 |
| `GET` | `/api/dashboard/analytics` | 认证 | 返回图表就绪的分析数据。 |
| `GET` | `/api/dashboard/activity` | 认证 | 返回最近的活动源。 |
### 用户
| 方法 | 端点 | 访问 | 描述 |
| --- | --- | --- | --- |
| `GET` | `/api/users?page=1&limit=20&search=` | 管理员 | 返回分页的用户。 |
| `POST` | `/api/users` | 管理员 | 创建用户。 |
| `PUT` | `/api/users/:id` | 管理员 | 更新用户。 |
| `DELETE` | `/api/users/:id` | 管理员 | 删除用户。 |
### 审计日志
| 方法 | 端点 | 访问 | 描述 |
| --- | --- | --- | --- |
| `GET` | `/api/audit?page=1&limit=25&search=` | 认证 | 返回分页的审计日志。 |
## 实时同步
登录后默认禁用实时同步。用户必须手动从导航栏启用它。
启用时,前端连接到 Socket.IO 服务器并监听:
| 事件 | 目的 |
| --- | --- |
| `notification` | 操作通知。 |
| `audit:created` | 新创建的审计记录。 |
| `users:changed` | 用户创建/更新/删除刷新信号。 |
| `dashboard:changed` | 仪表板刷新信号。 |
禁用时,客户端删除套接字监听器,断开套接字连接,并避免不必要的后台实时获取。
## RBAC 模型
TrustSphere 使用两个角色:
| 角色 | 权限 |
| --- | --- |
| `USER` | 可以访问仪表板、审计日志、AI 监控、欺诈引擎和设置。 |
| `ADMIN` | 包括用户访问以及完整的用户标签管理。 |
RBAC 在两个地方强制执行:
- 前端路由守卫和侧边栏可见性。
- 后端 `/api/users` 上的 `protect` 和 `requireAdmin` 中间件。
## 性能说明
- 用户和审计日志使用分页以避免将整个集合加载到浏览器中。
- 仪表板指标使用短暂的本地缓存。
- MongoDB 索引存在于常见的排序/搜索字段上:
- `User.createdAt`
- `User.role/status`
- `User.name/email`
- `AuditLog.createdAt`
- `AuditLog.actor/action/target`
- `Verification.status`
- `Verification.riskLevel`
- Angular 路由是懒加载的。
- 实时同步是手动选择以减少不必要的套接字流量。
## UI 系统
界面使用高级安全运营设计语言:
- 深色玄武岩表面,带有柔和的对比边框。
- 通过全局 CSS 变量支持亮/暗主题。
- 使用 Geist 字体家族的高可读性排版。
- 密集但可读的仪表板卡片和表格。
- 微妙的悬停状态、过渡和玻璃状面板。
- 将认证屏幕设计为招聘人员面对的第一印象。
## 验证清单
在推送或部署之前,运行:
```
cd frontend
npm run build
cd ../backend
npx tsc --noEmit
```
手动 QA 清单:
- 注册新用户。
- 以 `USER` 身份登录并确认用户标签页被隐藏和阻止。
- 以 `ADMIN` 身份登录并确认用户管理功能正常。
- 打开仪表板、审计日志、AI 监控、欺诈引擎和设置。
- 从导航栏启用和禁用实时同步。
- 确认通知面板出现在页面内容上方。
- 切换亮/暗模式并刷新浏览器。
## 故障排除
### 前端无法连接到后端
确认后端正在运行,并且 `frontend/src/environments/environment.ts` 指向正确的 API URL。
### 登录返回无效令牌
确保 `JWT_SECRET` 存在于 `backend/.env` 中,并且更改后已重新启动后端。
### MongoDB 连接失败
检查 MongoDB 是否在本地运行或 Atlas URI 是否有效,并且网络访问被允许。
### 实时通知未出现
实时同步默认禁用。在测试套接字事件之前,从导航栏启用它。
### 用户标签页未出现
只有具有 `ADMIN` 角色的帐户才能查看或访问用户管理。
|
|
|
|
标签:Angular, API安全, API概览, Express, Grype, JSON输出, JWT认证, MongoDB, Socket.IO, UI系统, UI设计, 企业级产品, 入门指南, 基于角色的访问控制, 基于角色的访问控制模型, 威胁审计, 安全运营, 实时同步, 审计数据, 性能优化, 性能注意事项, 扫描框架, 故障排除, 暗黑/亮色主题, 核心功能, 检测绕过, 环境变量, 用户管理, 系统架构, 脚本, 自动化攻击, 项目结构, 验证清单