feat: add deny-only support access enforcement point
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 2m16s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 6m57s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 4m44s
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 2m16s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 6m57s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 4m44s
This commit is contained in:
@@ -1062,3 +1062,12 @@ P0 阻断项包括:durable grant/revocation 与跨节点一致性缺失、检
|
||||
- 本地运行库升级到 `20260809_0044` 前已备份为 `.runtime/db-backups/contract-api-before-0044-20260809-2100.sqlite3`。升级后 Contract API `8110` 重启健康,schema-check 显示 actual/head 均为 `20260809_0044`。
|
||||
|
||||
本阶段只关闭了 durable state 和可信时间的部分缺口,仍未关闭请求检查与资源读取的 TOCTOU、强认证/会话绑定、撤销跨节点传播 SLA、逐请求不可变审计、统一 deny-by-default enforcement point 和隐私/法律门禁。因此第 33 节 No-Go 结论不变,真实 support access 与身份执行器继续关闭。
|
||||
|
||||
## 35. deny-only enforcement point 与锁内资源锚点检查点(已验收,2026-08-09)
|
||||
|
||||
本阶段把第 33 节的“统一 deny-by-default enforcement point”收敛为内部验证契约,仍不提供任何 API 或真实授权能力。请求只能使用固定的 `contract.read`、`contract.comment`、`review.read`、`audit.read`、`template.read` 动作,由服务端动作表推导 scope 和资源类型;决策模型固定为 `enforcement_status=denied`、`access_granted=false`、`executor_enabled=false`。
|
||||
|
||||
- support access repository 新增单事务 `evaluate_validation_under_lock`。固定顺序为 policy、operation、approval set、账号/工作空间/成员/归属、撤销记录和资源锚点;锁全部取得后刷新 ORM 状态,并用 PostgreSQL `clock_timestamp()`(SQLite 使用锁后重新查询的 `CURRENT_TIMESTAMP`)重新检查审批、过期、撤销、主体、scope、revision 和资源租户归属。
|
||||
- 当前可锁定资源只有合同和审查任务;审计动作锁定合同锚点;模板尚无稳定的租户/版本资源行,因此固定返回 `support_access_resource_not_lockable`。任何缺失、漂移、锁超时、策略损坏或依赖错误均 fail closed,且不返回资源内容、token、session 或 grant。
|
||||
- 事务要求无 `new/dirty/deleted` 状态变化,policy/revocation/operation/approval/identity/event/outbox 快照保持不变。真实 support access、身份执行器、共享会话、impersonation 与破坏性身份写接口继续关闭,No-Go 不变。
|
||||
- 验收证据:enforcement 与 support access 持久化专项 `5/5`,计划/特权身份/投递/反滥用组合 `59/59`,真实 PostgreSQL 隔离专项 `3/3`,Python compileall、`git diff --check` 和危险路由扫描通过;随机 schema 残留为 `0`。
|
||||
|
||||
@@ -58,3 +58,9 @@
|
||||
`20260809_0044` 已完成不可变 validation policy/revocation 持久化、数据库可信时间、并发幂等和数据库硬关闭,关闭了第 2 节第 1 项的 durable state 基础缺口,并部分关闭第 3 项可信时间缺口。SQLite 专项、迁移和真实 PostgreSQL 隔离并发均通过,运行时仍无 support access 路由且 `access_enabled=false` 由数据库约束。
|
||||
|
||||
发布结论仍为 **No-Go**。尚未关闭的 P0 包括:授权检查与资源读取 TOCTOU、统一 deny-by-default enforcement point、强认证与会话/设备绑定、撤销跨节点传播 SLA 与 kill switch、逐请求不可变审计/告警,以及隐私与法律门禁。真实 support access、身份执行器和共享会话不得启用。
|
||||
|
||||
## 7. 锁内 deny-only enforcement 复核(2026-08-09)
|
||||
|
||||
新增的内部 enforcement contract 只允许固定资源动作,并在 policy、审批/主体、撤销记录和可锁定资源锚点全部取得行锁后刷新状态。即使 `policy_satisfied=true`,决策仍固定 `enforcement_status=denied`、`access_granted=false`、`executor_enabled=false`;模板等缺乏稳定资源锚点的动作直接拒绝。该实现未增加路由、transport、凭据、session 或 impersonation。
|
||||
|
||||
本阶段已完成验证,但不能宣称完整 check-use TOCTOU 已关闭;真实资源读取尚未接入同一事务,强认证/MFA、设备/会话绑定、撤销传播 SLA、逐请求审计/告警及隐私/法律门禁仍未完成。发布结论继续为 **No-Go**。
|
||||
|
||||
@@ -723,3 +723,12 @@ P0 后续 backlog:建立 durable grant/revocation 与跨节点一致性;绑
|
||||
5. **P0-SUPPORT-LEDGER-5 验收(完成)**:SQLite support access `19/19`、组合 `44/44`、迁移 `2/2`、真实 PostgreSQL隔离并发 `1/1`、compileall 和 diff-check 通过;本地运行库备份后升级到 `0044` 并重启健康。
|
||||
|
||||
明确非目标:没有 API、Web、token/session、impersonation、transport、真实 grant/revoke 或身份执行入口。No-Go 继续生效;下一 P0 应优先设计统一 deny-by-default enforcement point 和同一请求内的 TOCTOU 闭合,同时保留强认证、撤销传播、逐请求审计及隐私/法律门禁。
|
||||
|
||||
### 9.44 第二十五阶段:deny-only enforcement point 与锁内资源复核(进行中,2026-08-09)
|
||||
|
||||
1. **P0-ENFORCEMENT-1 固定动作契约(完成)**:动作只能来自闭合集合,由服务端映射到 scope/resource;未知动作不能构造请求。
|
||||
2. **P0-ENFORCEMENT-2 锁内复核(完成)**:内部 repository 在同一事务中按固定顺序锁 policy、operation、审批主体、support principal、撤销记录和合同/审查资源锚点,锁后刷新并重新使用可信数据库时间检查。
|
||||
3. **P0-ENFORCEMENT-3 deny-only 状态机(完成)**:决策只允许 `denied`,即使策略材料满足也只返回 `support_access_enforcement_disabled`;模板等暂不可锁定资源固定拒绝。
|
||||
4. **P0-ENFORCEMENT-4 回归门禁(完成)**:enforcement 与 support access 持久化专项 `5/5`,计划/特权身份/投递/反滥用组合 `59/59`,真实 PostgreSQL 隔离专项 `3/3`,compileall、diff-check、危险路由扫描通过,随机 schema 残留 `0`。
|
||||
|
||||
明确非目标:不增加 enforcement/support-access/execute/grant/revoke API,不读取或返回合同内容,不创建 token/session,不启用身份执行器。
|
||||
|
||||
Reference in New Issue
Block a user