# 运营中心（Ops Center）

> **负责人**: FFOA 开发团队
> **状态**: 📋 Planning
> **最后更新**: 2026-04-30

---

## ✅ 机器读取区（必填）

### 通用字段

| 字段 | 内容 |
|------|------|
| 模块 | 运营中心（Ops Center） |
| 文档类型 | Module-README |
| 目标 | 面向内部 IT / 运营的统一治理工作台，沉淀跨系统巡检、清理、审计类工具；首期场景为 Microsoft 365 / Entra ID 休眠账号识别 |
| 关键入口 | `frontend/src/app/(modules)/ops-center/` / `backend/src/modules/ops-center/` / `backend/prisma/schema/platform_ops_center.prisma` |
| API Base | `/api/v1/ops-center` |
| 关联文档 | `01-prd.md` / `06-data-model.md` / `07-api.md` / `05-ui-interaction-spec.md` |

### 文档导航（状态）

| 文档 | 状态 | 何时读取 | 最后更新 |
|------|------|---------|---------|
| [产品需求文档](./01-prd.md) | ✅ | 需求/范围/角色权限确认时 | 2026-04-30 |
| [UI 交互规范](./05-ui-interaction-spec.md) | ✅ | 前端开发与 E2E 编写时 | 2026-04-30 |
| [数据模型](./06-data-model.md) | ✅ | schema 变更或后端实现前 | 2026-04-30 |
| [API 文档](./07-api.md) | ✅ | 前后端联调或契约校验时 | 2026-04-30 |
| [架构设计](./03-architecture.md) | ❌ | - | - |
| [状态机](./04-state-machine.md) | ❌（v1 无） | - | - |
| [错误码](./08-error-codes.md) | ❌ | - | - |
| [测试场景](./09-test-scenarios.md) | ❌ | - | - |
| [E2E 测试规范](./10-e2e-test-spec.md) | ❌ | - | - |
| [变更日志](./99-changelog.md) | ❌ | - | - |

---

## 🧭 人类阅读区

### 模块概述

运营中心（`ops-center`）是面向 **IT / 内部运营** 的统一治理工作台。和 `it-operations`（侧重云费用 / 资产 / 财务治理）的差异：

- **`it-operations`**：偏成本与资产视角，关心"花了多少钱、买了什么"。
- **`ops-center`**：偏巡检与清理视角，关心"哪些账号 / 资源 / 数据该被处理"。

首期单一子能力：**M365 休眠账号**——基于 Microsoft Graph 的 `signInActivity` 与服务活动报告，识别长时间未登录的 Microsoft 365 / Entra ID 账户，给 IT 一个可排序、可筛选、可导出的列表。

### 代码与数据位置

- **前端**: `frontend/src/app/(modules)/ops-center/`
- **后端**: `backend/src/modules/ops-center/`
- **Prisma schema**: `backend/prisma/schema/ops-center.prisma`

### 当前子能力

- `m365-dormant` — M365 休眠账号识别（首期，v1）
- 后续候选：闲置共享盘 / 长期未撤回外部访问 / 离职账号清单 等

### 子能力之间的 schema 约定

每个子能力**独立命名表前缀**（如 `m365_*`、`offboarding_*`、`shared_drive_*`），不强求抽象统一的 `OpsCenterSyncBatch` / `OpsCenterEntity`。理由：

- 不同子能力的"实体"和"同步语义"差别很大（账号 vs 文件 vs 权限），抽象出来共享列会非常稀疏。
- 直方图 / 时间线 / 趋势这些通用模式可以以代码工具函数复用，不需要 schema 层面统一。
- 如果未来三个以上子能力出现完全相同的批次结构，再考虑 v2 抽象——避免过早抽象。

### v1 主要接口

- `GET /ops-center/m365-dormant/users` — 当前态用户列表（基于 `M365User`）
- `GET /ops-center/m365-dormant/users/:userId/timeline` — 单用户活动变更时间线（基于 change 事件流）
- `POST /ops-center/m365-dormant/sync` — 手动触发一次 Graph 全量同步
- `GET /ops-center/m365-dormant/sync/latest` — 最近一次同步状态（含直方图）
- `GET /ops-center/m365-dormant/sync/history` — 历史批次（含直方图，前端按选定阈值实时算趋势）

### 权限

- 仅"IT 管理员"角色可见菜单与调用接口（具体权限点见 `01-prd.md`）。
