feat(proxy): T-P1 鉴权+账本(原子预扣/热路径缓存/令牌桶/管理鉴权原语)
- ledger.py:students/keys CRUD + 日限额 check_and_count(跨日重置,注入时钟)+ 流水分页;计费两阶段拆分至 billing.py(BillingMixin,评审聚焦): try_hold 锁内读现状->日上限判定->余额原子防线->holding 流水(request_id 幂等)、 settle 按真实值回补(预扣-实际)差额、void 全额退款(上游失败) - auth.py:issue_key(sk-campus- 前缀,明文只返回一次,库存 sha256+前缀)、 authenticate 校验链(形态/注销/停用/日额/rpm,热路径 LRU TTL30s D-P10)、 RateLimiter(令牌桶 rpm + per-key 并发信号量,D-P9 单进程)、 verify_admin(hmac.compare_digest;未配置仅 loopback) - 测试 +17:签发/错key/注销/停用/403/rpm 429/日额 429/并发槽/admin 策略 + 预扣-结算-回补一致/双向差额/余额不足/日上限/幂等/跨日重置/void/并发10路不超扣 - 全量 339 passed
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
"""账本共享小工具。"""
|
||||
from __future__ import annotations
|
||||
|
||||
import time
|
||||
|
||||
YUAN_TO_MILLI = 1000
|
||||
|
||||
|
||||
def _today(now: float) -> str:
|
||||
"""本地日期字符串(日限额/日消费重置键;可注入假时钟)。"""
|
||||
return time.strftime("%Y-%m-%d", time.localtime(now))
|
||||
Reference in New Issue
Block a user