Skip to content

feat(node): 公开状态页 Markdown/HTML 备注 - #34

Merged
CarlJia merged 2 commits into
mainfrom
feat/node-public-remark
Sep 24, 2026
Merged

CarlJia merged 2 commits into
mainfrom
feat/node-public-remark

Conversation

@CarlJia

@CarlJia CarlJia commented Sep 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • 给每个节点新增独立的 public_remark 字段(面向公开状态页,与仅管理员可见的 remark 分离)
  • 后端用 pulldown-cmark 把管理员写的 Markdown/HTML 源文本渲染为 public_remark_html,随公开节点帧下发;原始源仅在管理员帧可见
  • 刻意不做净化:公开备注按受信任的管理员内容处理(不引入 ammonia/html5ever,避免增大二进制);仅新增 pulldown-cmark 一个轻量依赖
  • 数据库迁移 v7→v8 新增 public_remark TEXT NOT NULL DEFAULT ''(与 v7 同理不挂 v6 删列闸门)
  • 公开备注长度上限 16 KiB(读取路径逐节点渲染,封顶存储与每帧渲染成本)
  • web-admin 节点编辑弹窗新增「公开备注」文本域

主题侧渲染在配套 PR:CarlJia/monitor-theme-gymin#feat/node-public-remark(消费本 PR 的帧契约,需本 PR 先合入)。

Test plan

  • cargo test(236 通过,含公开/管理员帧隔离、Markdown+内联 HTML 渲染、长度上限、迁移一致性)
  • cargo fmt --check / cargo clippy 干净
  • cargo tree 确认未引入 ammonia/html5ever
  • web-admin tsc + vite build + oxlint 干净
  • 合入后手动核对:退出登录访问公开页,节点列表与详情渲染出公开备注

安全说明

公开备注为受信任管理员撰写、未经净化即渲染到公开页(存储型 XSS 面在管理员账号被盗时才成立)。可选的防御纵深(给主题静态托管加 CSP)见计划 Open Questions,非本 PR 范围。

Post-Deploy Monitoring & Validation

无额外运行时监控需求:功能为附加字段,迁移纯附加、可重复执行;回滚只需还原本 PR。关注点仅为公开页渲染是否符合预期,可人工核对。

🤖 Generated with Claude Code

- node 新增独立列 public_remark(迁移 v8,与 v7 同理不挂 v6 删列闸门)
- 用 pulldown-cmark 渲染源文本为 HTML(裸 HTML 透传,受信任管理员内容,
  不引入 ammonia/html5ever 以免增大二进制)
- node_view 公开帧下发渲染后的 public_remark_html;原文仅管理员帧可见,
  私有 remark 仍不公开
- web-admin 节点编辑弹窗新增“公开备注”文本域
公开备注在读取路径按节点逐条渲染(每约 2s 一帧),无上限的源文本会被无限
重复解析。在 create_node/update_node 写入边界拒绝超限输入,并给后台文本域加
maxLength,封顶存储与每帧渲染成本。(code review ADV-005/ADV-002)
@CarlJia
CarlJia merged commit c0bc821 into main Sep 24, 2026
3 checks passed
CarlJia added a commit that referenced this pull request Sep 24, 2026
公开备注功能(PR #34)为新增特性,按语义化版本升次版本号。tag 由发布流程
在合入 main 后据此打出(release.yml 校验 tag 与 Cargo.toml 版本一致)。
@CarlJia CarlJia mentioned this pull request Sep 24, 2026
1 task done
github-actions Bot pushed a commit to lkdd20/monitor that referenced this pull request Sep 24, 2026
公开备注功能(PR CarlJia#34)为新增特性,按语义化版本升次版本号。tag 由发布流程
在合入 main 后据此打出(release.yml 校验 tag 与 Cargo.toml 版本一致)。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant