assets-ai/README.md

74 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# IT 设备资产管理系统
基于 Next.js + SQLite 的 IT 设备资产管理系统CMDB域名为 `assets.tlyq.ai`,管理 GPU 服务器、存储服务器等 120+ 台设备的硬件信息,通过 REST API 对外提供服务。
## 技术栈
| 分类 | 技术 |
|------|------|
| 框架 | Next.js 15 + TypeScript |
| UI | React 19 + Tailwind CSS v4 + lucide-react |
| 数据库 | SQLitebetter-sqlite3WAL 模式) |
| 认证 | JWTcookie 方式)+ 自定义 session + API Key |
## 功能
- 设备 CRUD创建、编辑、删除、搜索、列筛选、高级查询
- 设备状态管理(腾讯使用 / 图灵使用 / 闲置 / 备用 / 维修中 / 已下线)
- 设备详情(含完整硬件信息、历史工单卡片)
- 批量编辑(多选设备批量修改类型、位置、状态等)
- Excel 导入/导出(模板下载、多选导出、全量导出权限控制)
- 工单历史联动(调用 issue-ai API 获取同 IP 历史工单)
- API Key 管理(支持服务间调用认证,细粒度权限控制)
- 用户/角色权限管理12 个细粒度权限,支持自定义角色)
- 审计日志
## 设备字段
| 分类 | 字段 |
|------|------|
| 设备标识 | node_name、serial_number、device_type、device_purpose、status |
| 位置信息 | room、rack_position |
| 网络 | business_ip、hdm_ip、NIC×3型号/类型/速率/数量) |
| 硬件规格 | manufacturer、device_model、warranty_date |
| CPU/内存 | cpu_model、cpu_generation、cpu_cores、cpu_threads、memory_total 等 |
| GPU | gpu_model、gpu_power、gpu_count |
| 存储 | sys_disk、data_disk1/2型号/规格/容量/类型/协议、raid_model、raid_spec |
| 电源 | psu1/2_model、psu1/2_power、psu_total_power |
完整 schema 含 68 列硬件字段,详见 `src/lib/db-schema.ts`
## API 路由
| 方法 | 路径 | 说明 |
|------|------|------|
| GET/POST | `/api/assets` | 设备列表(分页/搜索/列筛选/排序)/ 创建设备 |
| GET/PUT/DELETE | `/api/assets/[id]` | 单个设备操作 |
| POST | `/api/assets/batch` | 批量修改设备 |
| POST | `/api/assets/import` | Excel 导入 |
| GET | `/api/assets/export` | Excel 导出 |
| GET | `/api/assets/field-values` | 获取字段可选值(列筛选下拉) |
| GET | `/api/stats` | 统计概览(按状态/类型/厂商/机房) |
| GET/POST | `/api/api-keys` | API Key 列表 / 创建(仅显示一次) |
| DELETE | `/api/api-keys/[id]` | 删除 Key |
| GET/POST | `/api/users` | 用户列表 / 创建 |
| GET/PUT/DELETE | `/api/users/[id]` | 单个用户操作 |
| GET/POST | `/api/roles` | 角色列表 / 创建 |
| PUT/DELETE | `/api/roles/[id]` | 更新角色权限 / 删除角色 |
| POST | `/api/auth/login` | 登录 |
| POST | `/api/auth/logout` | 登出 |
| GET | `/api/auth/me` | 当前用户信息及权限 |
……
## 与 issue.tlyq.ai 联动
assets-ai 向 issue-ai 提供设备信息issue-ai 在工单管理中根据 IP 自动关联设备并展示详情卡片。同时 assets-ai 设备详情页调用 issue-ai API 展示同 IP 历史工单。
```
issue-ai ──→ GET /api/assets?search=IP (获取设备信息)
assets-ai ──→ GET /api/tickets/by-asset?ip=X (获取历史工单)
```
认证方式:双向 API Key`Authorization: Bearer ak_xxx`)。