收紧编辑器内部处理元数据边界
普通用户与公开响应统一移除生成 provider、内部处理模型和抠图审计字段。 普通生成请求移除 segModel,由后端固定抠图策略并清理客户端伪造的保留字段。 手动去背景继承可信源模型,角色动作与去背景失败统一使用稳定用户文案。 后台原始审计继续保留真实 provider 与抠图模型,并补齐 Owner、Public、Admin 和紧凑结果测试。 同步更新前端响应契约、外部 OpenAPI、后端架构文档和项目决策记录。
This commit is contained in:
@@ -2293,12 +2293,6 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"provider": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"taskId": {
|
||||
"type": [
|
||||
"string",
|
||||
@@ -2476,12 +2470,6 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"provider": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"taskId": {
|
||||
"type": [
|
||||
"string",
|
||||
@@ -2852,7 +2840,6 @@
|
||||
"sourceType",
|
||||
"prompt",
|
||||
"model",
|
||||
"provider",
|
||||
"taskId"
|
||||
],
|
||||
"properties": {
|
||||
@@ -2895,9 +2882,6 @@
|
||||
"model": {
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"type": "string"
|
||||
},
|
||||
"taskId": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -3231,7 +3215,6 @@
|
||||
"spritesheetHeight",
|
||||
"prompt",
|
||||
"model",
|
||||
"provider",
|
||||
"taskId",
|
||||
"priceMudPoints"
|
||||
],
|
||||
@@ -3277,9 +3260,6 @@
|
||||
"model": {
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"type": "string"
|
||||
},
|
||||
"taskId": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -3718,7 +3698,6 @@
|
||||
"sourceType",
|
||||
"prompt",
|
||||
"model",
|
||||
"provider",
|
||||
"taskId",
|
||||
"durationSeconds",
|
||||
"resolution",
|
||||
@@ -3767,9 +3746,6 @@
|
||||
"model": {
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"type": "string"
|
||||
},
|
||||
"taskId": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -3955,7 +3931,6 @@
|
||||
"sourceType",
|
||||
"prompt",
|
||||
"model",
|
||||
"provider",
|
||||
"taskId",
|
||||
"priceMudPoints",
|
||||
"audioKind"
|
||||
@@ -4003,9 +3978,6 @@
|
||||
"model": {
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"type": "string"
|
||||
},
|
||||
"taskId": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -26,6 +26,17 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-31 修正抠图内部元数据的普通用户读取边界
|
||||
|
||||
- 背景:2026-07-30 的记录误把素材 owner 与后台审计并列为原始抠图执行信息的读取方。owner 是普通用户,前端不展示字段不能阻止其从项目资源、素材库、精选提交 / 点赞回包、画布布局或任务完成响应的网络 payload 读取 BgFilter、阿里云、本地键色、具体分割模型或背景色。
|
||||
- 决策:本条取代 2026-07-30 决策中“素材 owner、精选提交响应仍可读取原始值”的表述。普通用户(包括素材 owner)和匿名公开读取必须共同过滤素材顶层 `provider`、内部处理 `model`,以及 `generationInputs` 顶层 `screenColorHex`、`mattingProvider`、`mattingModel`;正常用户可见生成 `model` 和其他合法功能性顶层字段(例如 `characterAnimation`)保持不变。User/Owner mapper 先完成该清理,public mapper 在其基础上叠加公开字段规则;后台管理与服务端审计继续使用 raw mapper 和持久化原值。历史数据不迁移,统一在读取边界清理。
|
||||
- 入站与持久化:客户端提交的 `generationInputs` 不得伪造上述内部键,服务端在实际处理完成后才写入可信值。手动去背景的正式素材 `model` 必须继承经服务端验证的正常源生图模型;若来源或祖先链不存在正常模型则为 `null`,不得写入 `BgFilter complex` 等内部处理模型。内部抠图 provider / model 可继续持久化供后台审计,普通用户完成响应和用户可见错误文本均不得暴露它们;手动去背景与角色动作透明化失败在 Owner HTTP / 任务状态边界统一替换为稳定业务文案,原始错误只留在任务记录、tracing 和后台审计。
|
||||
- 影响范围:项目资源、素材库、精选提交 / 点赞、图片 / 图标 / 视频 / 音频 / 角色动画生成完成、Agent 紧凑结果和识别出的画布资源 / 图层快照的 User/Public mapper;手动去背景持久化和完成响应;External Editor API 创建素材 / 资源时的保留键入站清理;相应 API / OpenAPI 契约、前端搜索 / 详情 / ZIP 过滤测试与后台 raw 审计测试。不修改 SpacetimeDB schema、迁移或 bindings。
|
||||
- 验证方式:Owner 和匿名响应覆盖无 `provider`、无内部 `model`、无三个内部 `generationInputs` 键,且正常 `model` 与 `characterAnimation` 仍保留;Admin raw payload 保持完整。覆盖历史 `BgFilter complex`、三类入站伪造键、手动去背景源模型回溯和用户错误文本过滤;运行 api-server 定向测试、前端定向测试、`cargo check -p api-server --manifest-path server-rs/Cargo.toml`、`npm run typecheck`、`npm run check:encoding` 与 `git diff --check`。
|
||||
- 关联文档:`docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md`、`docs/technical/【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md`。
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-30 图片画布搜索不得索引内部模型和 Provider
|
||||
|
||||
- 背景:素材和图层详情虽已把内部处理模型显示为 `-`,搜索仍索引原始 `model` 与 `provider`,导致 `BgFilter complex`、`segment-common-image`、`BgFilter` 或 `Aliyun Matting` 等隐藏信息可被查询命中,并出现“命中但无可见匹配字段”的异常体验。
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user