04 草稿与发布
结构发布后,各分支在「草稿」页签填写/修改值。修改走 草稿 → 保存 → 校验 → 发布(不可变版本) 闭环。
4.1 草稿页

草稿页按已发布结构全量展示配置项:
| 元素 | 说明 |
|---|---|
| 普通配置项 | 输入框 / 下拉直接编辑(类型化控件),右侧 ⤵ 图标可从其他分支取值填充(见下) |
| 引用共享项 | 下拉选择本分支引用的共享项 + 物化值展示(见 03 §3.3) |
| secret 项 | 密码框,留空不修改;已加密显示占位 |
| 未保存 / 草稿未发布徽章 | 实时提示当前界面有多少未保存修改、多少已保存未发布 |
| 活动版本标记 | 无草稿值时输入框显示已发布版本的值(发布后草稿清空也不会是空框) |
从其他分支取值填充:非共享引用项输入框右侧的 ⤵ 图标,点击弹出「有值分支」列表 (当前分支排除;草稿值优先展示,已发布值并列显示,选项内显示该配置项在该分支的值), 点击某行即把该分支该配置项的值填入当前输入框——无需反复切换分支复制粘贴:
- 支持 string / int / float / bool / json / array / secret 全部类型,按类型填入对应控件;
- secret 项:列表显示「已加密」,仅已发布值可填充——点击后经审计通道(审计日志记
config_reveal)取明文写入草稿,明文不在界面展示,保存后生效;草稿中的 secret 明文不可回读,故草稿行置灰不可填充; - 数据为会话内缓存,分支重载自动失效;浮层内可点「刷新」强制重拉,Esc / 点击外部关闭。
4.2 保存草稿
点「保存草稿」:
- 有值的输入框 → upsert 到草稿
- 原草稿有值、输入框被清空 → 删除该草稿值
- 引用共享项:下拉选择/解除即保存对应绑定(不写本地值)
- secret 留空 = 不修改(保留原密文)
- 携带乐观锁
draft_rev:若草稿已被他人修改,返回 409 并提示「已加载最新版本」
4.3 发布版本
点「发布版本」→ 输入备注 → 发布:
- 发布前执行完整性校验:required 项必须有值、类型匹配、引用共享项已选择等
- 校验失败默认
block(拒绝发布,列出错误);--publish-policy warn可改为仅警告 - 发布生成不可变版本(版本号单调递增),并广播变更事件(订阅的 SDK 实时收到)
- 发布后草稿清空,草稿页显示刚发布版本的值(活动版本基线)
发布前可点「查看配置」预览将发布的文档(YAML / JSON / TOML / ENV 格式,勾选明文显示可解密 secret 并记录审计):

4.4 版本历史与回滚
「版本历史」页签列出该分支全部版本:

- 每行:版本号
vN、类型徽章(增量 / 完整;回滚产生的版本带「回滚 ← vN」徽章,灰度产生的带「灰度」徽章)、备注、结构版本svN、操作人、时间 - 回滚:点行尾「回滚」基于旧版本内容创建新版本(历史不可变,回滚也是新版本)
4.5 多分支协作提示
- 结构变化(新增/删除配置项)会同时推进所有分支的版本
- 分支间「值提升」见 02 §2.4
- 不同分支互不影响,同一分支多人编辑时靠草稿修订号乐观锁防冲突
下一步
- 05 灰度发布:按标签 / IP / 百分比灰度上线
Defing 配置中心 · 使用教程(截图来自测试实例 http://172.16.48.71:18384)