feat(ECR-024): OpsCMS Banner 只读并 Closed

运营横幅目录(ops_banners + admin /cms),锁定 024–040 全队列。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-08 03:05:55 +08:00
co-authored by Cursor
parent ac1aec857d
commit 32ac559385
30 changed files with 808 additions and 3 deletions
+41
View File
@@ -0,0 +1,41 @@
# Feature Spec: OpsCMS · BannerOps · ECR-024
> Status: `Active`Loop continuous · **ECR-024 Closed**
> Parent: WAVE0-FROZEN · Predecessor: ECR-023 Closed
> Capability: `OpsCMS` · BC: `Ops_CMS_NoUGC`
> 授权:`docs/WAVE0/LOOP_AUTHORIZATION.md`
## Non-goals
Banner 写发布 · FeedSlot · ScheduledPublication · UGC · 真支付
## L2 Domain
| 概念 | 语义 |
|------|------|
| `Banner` | code 唯一;placement ∈ {home,explore,ask}active/system;本切片只读 |
## L3 API
| Method | Path | 权限 | 语义 |
|--------|------|------|------|
| GET | `/admin/cms/banners` | `admin.cms.read` | 只读 |
| GET | `/admin/cms/banners/{id}` | `admin.cms.read` | 只读 |
## Migration
`000025`:表 + 种子(若有) + 授予 admin.cms.read
## L4 AC
| ID | Then |
|----|------|
| AC-F-01 | list 含种子或空列表合法 |
| AC-F-02 | 已知 id get 200 |
| AC-F-03 | 未知 id → 404 |
| AC-S-01 | 无 Admin → 401 |
| AC-S-02 | 无权限 → 403 |
| AC-P-01 | list &lt; 500ms |
| AC-O-01 | N/A 只读 |
contract_diff: `docs/CONTRACT_DIFF/ECR-024.yaml`