Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

[Tracking] ADR-0034: 运行时编辑统一到 studio 的草稿/发布模型 #1516

Closed

Description

@os-zhuang

总览 issue。决策文档:docs/adr/0034-unified-runtime-metadata-persistence.md。

目标:运行时(ObjectView/ReportView/DashboardView)的编辑统一复用 studio 的 per-item 草稿 → 发布 → 版本 模型(经 /meta),退役 sys_view/sys_report/sys_dashboard。保存=暂存草稿(用户看不到、编辑者实时预览),显式发布才生效。


✅ 已开发并合并(sandbox 内可验证的部分)

PR 内容
#1496 运行时视图编辑 UI 统一到 studio ViewVariantInspector
#1503 视图 inspector 标签 i18n(en/zh)
#1504 报表编辑 UI 统一到 studio ReportDefaultInspector
#1505 仪表盘编辑 UI 统一到 studio inspectors
#1508 报表/仪表盘编辑器补 admin 门控(修复无门控共享编辑)
#1509 PageView「在 studio 编辑」深链按钮
#1513 持久化 seam(persistRuntimeMetadata/publishRuntimeMetadata)+ report/dashboard 接线;flag VITE_RUNTIME_EDIT_VIA_META 默认关=现有 sys_* 行为零变化
#1514 ObjectView 视图更新路径接入 seam(flag-off 走真实的 dataSource.updateViewConfig)

现状:三个运行时编辑器的主要保存路径都经过 seam;flag 默认关 → 行为与改造前逐字节一致;flag 开 → 走 metadataClient.save(type,name,body,{mode:'draft'}) + publish。已有单测覆盖 flag 开/关两条路径。

关键约束:本仓库 CI/沙箱无运行后端,所以 flag-on 的「保存→草稿→发布→读回」真实链路至今未经端到端验证。


🔍 需验证(必须在有后端的真实环境做 —— 见 #1518)

设 VITE_RUNTIME_EDIT_VIA_META=true 后验证:

  1. 保存=草稿:运行时编辑 view/report/dashboard → 保存 → 后端生成 per-item 草稿(PUT /meta/:type/:name?mode=draft),其他用户看不到。
  2. 发布:对该 item 发布(暂借 studio 现有"发布"UI)→ 生效 + 记版本。
  3. 读回 / 续编:发布后运行时读到新值;GET /meta/:type/:name?state=draft 能读回草稿继续编辑。
  4. 回退:flag 设回 false → 完全回到 sys_* 行为。
  5. 权限(仅管理员)、即时性、多租户归属、读路径(运行时读已发布有效值)。

⚠️ 在验证通过前,不要翻默认值、不要删 sys_*、不要做数据迁移。


🛠 后续开发任务(子 issue)

每个子 issue 内都写明了「✅ 已开发 / 🔍 待验证 / 🛠 后续开发」三块。

建议顺序:#1515 +#1517(可并行,flag 默认关、安全)→ #1518(真实环境验证、翻默认)→ #1519(迁移退役)→ #1520(v2,按需)。

Activity

  1. xuyushun441-sys commented on Jun 6, 2026

    @xuyushun441-sys
    Contributor

    进度更新 — #1515 + #1517 完成并真实环境验证(PR #1533)

    ✅ #1515(草稿/发布 UI chrome)+ ✅ #1517(视图创建接入 seam)已开发、单测、并在有后端的真实环境(app-showcase :3000)端到端验证。flag 仍默认关。

    真实环境已验证(flag ON)— 提前覆盖了 #1518 验证清单的大部分

    #1518 验证项 结果
    1. 保存=草稿(PUT /meta/:type/:name?mode=draft,他人不可见) ✅
    2. 发布(per-item)→ 生效 + 记版本 ✅ history op=publish
    3. 读回 / 续编(GET ?state=draft) ✅ 打开面板自动 seed 草稿
    4. 回退 flag=false → 回到 sys_* 行为 ✅ flag-off 零 chrome
    5. 权限(admin 门控) ✅

    外加修了一个会阻断 flag-on 落库的既有问题:useMetadataClient 用空 baseUrl,在 SPA/后端分离环境下 /meta 写入 404(studio 编辑同样受影响)——改为读 VITE_SERVER_URL,已并入 PR #1533。

    仍需在 #1518 正式收尾

    • 把 flag 改为可配置 / 翻默认(本 PR 不翻)。
    • 多租户归属、即时性、并发发布冲突等在目标部署形态下复测。

    顺序

    PR #1533 合并 → #1518(翻默认)→ #1519(迁移退役)→ #1520(按需)。

  2. xuyushun441-sys commented on Jun 6, 2026

    @xuyushun441-sys
    Contributor

    进度更新 — sys_* 退役完成(PR #1534 已合并)

    ADR-0034 前端部分全部落地并合入 main:

    唯一剩余(独立 framework-repo 任务)

    删除后端物理表的 object schema + 自动 CRUD 端点(sys_view/sys_report/sys_dashboard)。前端已不再引用它们,这些表现在是 dead,可在 framework 仓库独立删除。

    范围外

  3. xuyushun441-sys commented on Jun 6, 2026

    @xuyushun441-sys
    Contributor

    ADR-0034 完成,关闭总览

    前端主体全部开发、验证(真实 showcase 后端)、合并到 main:

    "后端删表"核查 → 无需操作

    核查 framework 仓库与 showcase DB:sys_view/sys_report/sys_dashboard 的 object schema 与物理表均不存在(只有不相关的 sys_view_definition/sys_report_schedule)。这些 legacy 表在当前后端从未实现,真实持久化一直是 metadata 覆盖层。无 schema/endpoint 可删——该尾巴已满足。

    范围外(独立跟踪)

    总览目标达成,关闭。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions