iaamraagul/TrustSphere

GitHub: iaamraagul/TrustSphere

TrustSphere是一款全栈验证智能仪表板,用于身份审查、威胁审计和基于角色的访问控制。

Stars: 0 | Forks: 0

# TrustSphere TrustSphere 是一个全栈验证智能仪表板,用于身份审查、欺诈监控、审计可见性和基于角色的用户治理。它被构建为一个投资级安全运营产品,具有磨光的 Angular 界面、Express/MongoDB API、JWT 认证、仅管理员用户管理、分页审计数据以及通过 Socket.IO 的可选实时同步。 产品的目标很简单:为团队提供一个专注的命令界面,以验证、监控和保护信任信号,而不会让操作员淹没在企业 UI 的噪音中。 ## 截图

TrustSphere login screen

TrustSphere dashboard screen TrustSphere admin user management screen
TrustSphere AI monitor screen TrustSphere register screen
## 目录 - [亮点](#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设计, 企业级产品, 入门指南, 基于角色的访问控制, 基于角色的访问控制模型, 威胁审计, 安全运营, 实时同步, 审计数据, 性能优化, 性能注意事项, 扫描框架, 故障排除, 暗黑/亮色主题, 核心功能, 检测绕过, 环境变量, 用户管理, 系统架构, 脚本, 自动化攻击, 项目结构, 验证清单