Files
zclaw_openfang/tmp_verify.py
iven fa5ab4e161
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
refactor(middleware): 移除数据脱敏中间件及相关代码
移除不再使用的数据脱敏功能,包括:
1. 删除data_masking模块
2. 清理loop_runner中的unmask逻辑
3. 移除前端saas-relay-client.ts中的mask/unmask实现
4. 更新中间件层数从15层降为14层
5. 同步更新相关文档(CLAUDE.md、TRUTH.md、wiki等)

此次变更简化了系统架构,移除了不再需要的敏感数据处理逻辑。所有相关测试证据和截图已归档。
2026-04-22 19:19:07 +08:00

47 lines
2.5 KiB
Python

import sys, json, urllib.request
TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiMmE4MzU0OS1kNDc5LTQ4OTctODlmNy1mNzJhZGZkYmQ2MzciLCJzdWIiOiJkYjVmYjY1Ni05MjI4LTQxNzgtYmM2Yy1jMDNkNWQ2YzBjMTEiLCJyb2xlIjoic3VwZXJfYWRtaW4iLCJwZXJtaXNzaW9ucyI6WyJhZG1pbjpmdWxsIiwicmVsYXk6YWRtaW4iLCJjb25maWc6d3JpdGUiLCJwcm92aWRlcjptYW5hZ2UiLCJtb2RlbDptYW5hZ2UiLCJhY2NvdW50OmFkbWluIiwia25vd2xlZGdlOnJlYWQiLCJrbm93bGVkZ2U6d3JpdGUiLCJrbm93bGVkZ2U6YWRtaW4iLCJrbm93bGVkZ2U6c2VhcmNoIl0sInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJwd3YiOjMsImlhdCI6MTc3NjE2MjUxOCwiZXhwIjoxNzc2MjQ4OTE4fQ.eYYxnAjt_PsmQxYVG1zw2OybhuvhJCUIBY1XCwadKMI"
headers = {"Authorization": f"Bearer {TOKEN}"}
print("=== P0/P1-04: Industries API ===")
req = urllib.request.Request("http://127.0.0.1:8080/api/v1/industries", headers=headers)
data = json.loads(urllib.request.urlopen(req).read())
print(f"Total: {data.get('total', 0)}, Names: {[i['name'] for i in data.get('items', [])][:4]}")
print("\n=== P1-07: Usage quota consistency ===")
req2 = urllib.request.Request("http://127.0.0.1:8080/api/v1/billing/subscription", headers=headers)
d = json.loads(urllib.request.urlopen(req2).read())
u = d.get("usage", {})
p = d.get("plan", {})
pl = p.get("limits", {})
plan_max = pl.get("max_relay_requests_monthly")
usage_max = u.get("max_relay_requests")
print(f"Plan max_relay_requests_monthly: {plan_max}")
print(f"Usage max_relay_requests: {usage_max}")
print(f"MATCH: {'OK' if plan_max == usage_max else 'BUG'}")
print("\n=== P2-14: Subscription not null ===")
s = d.get("subscription")
if s is None:
print("Subscription: STILL NULL - BUG")
else:
print(f"Subscription: status={s.get('status')}, plan_id={s.get('plan_id')}")
print("\n=== P1-08: Quota enforcement (super_admin bypass) ===")
# super_admin should bypass quota - check_quota returns allowed=true
print(f"Admin role: {d.get('plan', {}).get('name', '?')} (super_admin bypass active)")
print("\n=== All API quick health ===")
for path in ["/api/v1/accounts?page_size=1", "/api/v1/providers", "/api/v1/models", "/api/v1/relay/tasks?page_size=1"]:
try:
req = urllib.request.Request(f"http://127.0.0.1:8080{path}", headers=headers)
resp = json.loads(urllib.request.urlopen(req).read())
count_key = "total" if "total" in resp else None
items_key = "items" if "items" in resp else "data"
if count_key:
print(f" {path.split('?')[0]}: total={resp.get(count_key, '?')}")
elif isinstance(resp, list):
print(f" {path.split('?')[0]}: {len(resp)} items")
except Exception as e:
print(f" {path}: ERROR {e}")