1.8 KiB
1.8 KiB
CMP-62 backend restricted schema contract
日期:2026-03-31
负责人:Senior Backend Engineer
Goal
在不引入新持久化层或 migration 的前提下,补齐 shared inspect contract 对 PostgreSQL restricted schema 的可见性与错误语义,避免继续把 restricted schema 误判为 empty / hidden。
Assessment
crates/db-core/crates/db-app当前 shared inspect payload 原本只有 schema 名称,没有权限可见性字段。- PostgreSQL root inspect 之前基于
information_schema.schemata,restricted schema 会被直接省略。 - 显式 schema inspect 之前基于
information_schema.tables,restricted schema 会退化成空列表,和 empty schema 混淆。 - 当前仓库仍没有 app-owned persistence schema;本轮变更只涉及 shared contract、驱动语义和 CLI 可见输出。
Scope
- 为 schema root inspect 增加 item-level
availability/note - PostgreSQL root inspect 改为保留 restricted schema 名称
- PostgreSQL explicit schema inspect 在 restricted scope 上返回 inspect error,而非 empty
- 同步
TUI_BACKEND_CONTRACT.md与USABLE_APP_CLI_CONTRACT_SNAPSHOT.md - 为 shared contract / driver / CLI 文本输出补最小测试
Validation
export CARGO_HOME="$AGENT_HOME/.cargo"
export RUSTUP_HOME="$AGENT_HOME/.rustup"
export PATH="$AGENT_HOME/tools:$CARGO_HOME/bin:/paperclip/.cargo/bin:${PATH}"
unset CARGO_REGISTRIES_CRATES_IO_PROTOCOL
. "$CARGO_HOME/env"
cargo test -p db-core -p db-app -p db-drivers -p dbtool-cli
Result
- shared inspect schema item 现可区分
ready与restricted - PostgreSQL root inspect 不再静默隐藏 restricted schema
- PostgreSQL explicit schema inspect 不再把 restricted schema 误报为 empty
- 当前剩余缺口转为 consumer 侧消费与 live fixture 权限模型验证,不是持久化或 migration blocker