feat(mindspace): enforce PostgreSQL user data delivery
This commit is contained in:
@@ -63,6 +63,36 @@ pnpm dev:all
|
||||
| `PLAZA_APP_DIR` | ../memind_plaza | Plaza 专用脚本的源码路径(`pnpm dev:plaza` / `pnpm start:plaza` / `pnpm dev:all`) |
|
||||
| `MEMIND_SESSION_BROKER_ENABLED` | `0`(未设置) | Session Broker 灰度开关;Patch 2+ 本地验证时可设 `1`,见 [H5 Session 架构](./h5-session-architecture-20260706.md) |
|
||||
|
||||
### MindSpace:本地 vs 生产(必须区分)
|
||||
|
||||
`pnpm dev` / `server.mjs` 启动时会读取 `MEMIND_RUNTIME_PROFILE`(见 `scripts/memind-runtime-profile.mjs`):
|
||||
|
||||
| `MEMIND_RUNTIME_PROFILE` | 用途 | MindSpace 实现 |
|
||||
|--------------------------|------|----------------|
|
||||
| `local`(**默认**) | 本机日常开发 | Portal 内置 `MINDSPACE_SERVER_ADAPTER=local` |
|
||||
| `split-service` | 本机验证 103 拆分架构 | `remote` → `http://127.0.0.1:8082` 独立 MindSpace 服务 |
|
||||
| `production` | **仅 103 服务器** | 不覆盖 `.env`,以服务器配置为准 |
|
||||
|
||||
**本地 `.env` 推荐:**
|
||||
|
||||
```bash
|
||||
MEMIND_RUNTIME_PROFILE=local
|
||||
```
|
||||
|
||||
**本机要测 split-service 时:**
|
||||
|
||||
```bash
|
||||
MEMIND_RUNTIME_PROFILE=split-service
|
||||
MINDSPACE_REMOTE_BASE_URL=http://127.0.0.1:8082
|
||||
MINDSPACE_REMOTE_AUTH_TOKEN=local-dev-secret # 必须与 MindSpace LaunchAgent 一致
|
||||
launchctl kickstart -k "gui/$(id -u)/cn.tkmind.mindspace-service"
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
启动后 Portal 日志应出现:`[Portal] Runtime profile: MEMIND_RUNTIME_PROFILE=local, MINDSPACE_SERVER_ADAPTER=local, ...`
|
||||
|
||||
**禁止:** 把 103 生产 `.env`、RDS 连接串、`MINDSPACE_REMOTE_AUTH_TOKEN` 生产值复制进本机 Git 仓库。
|
||||
|
||||
### H5 Session 架构本地全量联调(`0706-bug干净` 分支)
|
||||
|
||||
在 **本机 `.env`**(勿提交 Git)打开下列开关后重启 `pnpm dev`:
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# MindSpace 浏览器存储迁移清单(仅本机)
|
||||
|
||||
更新时间:2026-07-13
|
||||
|
||||
## 当前策略
|
||||
|
||||
- 新建或修改的 Agent 页面禁止使用 `localStorage`、`sessionStorage`、`IndexedDB` 持久化数据。
|
||||
- 新 session 明确绑定当前用户的独立 PostgreSQL schema;持久化数据必须经 `private_data_*` 和 Page Data API。
|
||||
- 历史页面迁移期间继续可访问,不做全局 409 阻断。
|
||||
- 页面迁移并验证完成后,才考虑启用历史页面全局阻断。
|
||||
|
||||
## 待迁移页面
|
||||
|
||||
| 用户 ID | 页面 | 初步类型 | 状态 |
|
||||
|---|---|---|---|
|
||||
| `3f93530b-430d-45ce-a4d9-92be1cd08f26` | `public/appointment.html` | 预约业务数据 | 待迁移 |
|
||||
| `3f93530b-430d-45ce-a4d9-92be1cd08f26` | `public/appointment-admin.html` | 预约管理数据 | 待迁移 |
|
||||
| `417afcc0-f3fc-40b7-b968-1f1cde74b9cf` | `public/family-ledger.html` | 家庭记账数据 | 待迁移 |
|
||||
| `417afcc0-f3fc-40b7-b968-1f1cde74b9cf` | `public/family-ledger-manage.html` | 家庭记账管理 | 待迁移 |
|
||||
| `417afcc0-f3fc-40b7-b968-1f1cde74b9cf` | `public/index.html` | 工作区首页状态 | 待分类 |
|
||||
| `a6fb1e97-2b0f-447b-b138-4561d8e5c53e` | `public/oa-system.html` | OA 业务数据 | 待迁移 |
|
||||
| `a6fb1e97-2b0f-447b-b138-4561d8e5c53e` | `public/decision-comparison.html` | 决策工具状态 | 待分类 |
|
||||
| `1c99b83b-0454-474f-a5d2-129d34506a32` | `public/daily-admin.html` | 日报管理数据 | 待迁移 |
|
||||
| `1c99b83b-0454-474f-a5d2-129d34506a32` | `public/sales-register.html` | 销售登记数据 | 待迁移 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/children-diet-survey.html` | 调查数据 | 待迁移 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/children-diet-survey-admin.html` | 调查管理数据 | 待迁移 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/survey-youth.html` | 调查数据 | 待迁移 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/daily-report-system.html` | 日报业务数据 | 待迁移 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/weather-calendar.html` | 工具偏好或业务数据 | 待分类 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/runner-game.html` | 游戏存档 | 待决定 PG 或取消持久化 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/tetris-game.html` | 游戏存档 | 待决定 PG 或取消持久化 |
|
||||
| `a70ff537-8908-486e-9b6c-042e07cc25db` | `public/bird-key-fly.html` | 游戏存档 | 待决定 PG 或取消持久化 |
|
||||
|
||||
## 单页迁移完成条件
|
||||
|
||||
1. 建表位于页面所有者的独立 PG schema。
|
||||
2. dataset 注册完成,页面 policy 权限符合前台/管理页用途。
|
||||
3. HTML 只通过 Page Data API 访问数据,不包含浏览器持久化 fallback。
|
||||
4. 实际提交、刷新后读取、PG 直接查询三者结果一致。
|
||||
5. 原页面链接继续可用,管理页鉴权和跨用户隔离验证通过。
|
||||
Reference in New Issue
Block a user