From 50370971ecb502e95f2056406fa716e381ea59a5 Mon Sep 17 00:00:00 2001 From: ryan Date: Sat, 29 Aug 2026 18:42:31 +0800 Subject: [PATCH] Revert "autoresearch iter 28: CORDIS gate contracts must not carry table names" This reverts commit 2cb8d9a892564805fd4c79857d251bd3bbf2f5ae. --- backend/core/contracts/auth.go | 5 +++++ scripts/check_cordis_architecture.sh | 14 -------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/backend/core/contracts/auth.go b/backend/core/contracts/auth.go index 456b6770..fd37e277 100644 --- a/backend/core/contracts/auth.go +++ b/backend/core/contracts/auth.go @@ -29,6 +29,11 @@ type UserDTO struct { UpdatedAt time.Time `json:"updated_at"` } +// TableName returns w_users. +func (UserDTO) TableName() string { + return "w_users" +} + // OAuthUserInfoDTO contains user identity claims obtained from an OAuth provider. type OAuthUserInfoDTO struct { ID uint64 `json:"id"` diff --git a/scripts/check_cordis_architecture.sh b/scripts/check_cordis_architecture.sh index 248e3a1f..6d862863 100755 --- a/scripts/check_cordis_architecture.sh +++ b/scripts/check_cordis_architecture.sh @@ -90,20 +90,6 @@ else log_pass "backend/core/contracts/ 纯抽象无侵入" fi -# 2.2 契约层禁止持久化耦合(表名映射 / ORM tag) -# DTO 一旦携带 TableName(),调用方就能用 Table("w_users") 直查他人表, -# 单表所有者原则与 contracts 抽象同时失效。 -# 注意:不禁 gorm import 本身 —— DBService 契约合法返回 gorm 类型。 -CONTRACTS_PERSISTENCE=$(rg -n 'func .*\)?\s*TableName\(\)|\bgorm:"' \ - "${BACKEND_DIR}/core/contracts/" --glob '*.go' -g '!*_test.go' || true) - -if [ -n "${CONTRACTS_PERSISTENCE}" ]; then - log_fail "backend/core/contracts/ 为跨插件纯 DTO,严禁携带表名映射或 ORM tag(持久化归属唯一所有者插件,否则调用方可绕过契约直读他人表):" - echo "${CONTRACTS_PERSISTENCE}" >&2 -else - log_pass "backend/core/contracts/ 无持久化耦合" -fi - # ============================================================================== # 3. 基础包纯洁度 (backend/pkg/ Purity) # ==============================================================================