V10.515 收緊 Webcrumbs host data 授權
All checks were successful
CD Pipeline / deploy (push) Successful in 1m6s
All checks were successful
CD Pipeline / deploy (push) Successful in 1m6s
This commit is contained in:
@@ -32,7 +32,13 @@ def test_external_tool_bridge_pages_are_diagnostic_not_blank():
|
||||
css = (ROOT / "web/static/css/page-external-tools.css").read_text(encoding="utf-8")
|
||||
|
||||
assert "build_external_tool_payload" in route_source
|
||||
assert "def build_external_tool_payload(kind)" in service_source
|
||||
assert "def _has_sensitive_webcrumbs_access()" in route_source
|
||||
assert "hmac.compare_digest(provided, internal_key)" in route_source
|
||||
assert "include_host_data=_has_sensitive_webcrumbs_access()" in route_source
|
||||
assert "def build_external_tool_payload(kind, include_host_data: bool = True)" in service_source
|
||||
assert "include_host_data: bool = True" in service_source
|
||||
assert "def build_webcrumbs_auth_required_seed_data()" in service_source
|
||||
assert "auth_required" in service_source
|
||||
assert 'parsed.path.rstrip("/") == bridge_path.rstrip("/")' in service_source
|
||||
assert "def _is_blocked_external_url(configured_url)" in service_source
|
||||
assert "external-tool-checks" in template
|
||||
@@ -41,6 +47,8 @@ def test_external_tool_bridge_pages_are_diagnostic_not_blank():
|
||||
assert "def webcrumbs_status()" in route_source
|
||||
assert "@system_public_bp.route('/api/webcrumbs/marketplace-host-data')" in route_source
|
||||
assert "def webcrumbs_marketplace_host_data_api()" in route_source
|
||||
assert "if not _has_sensitive_webcrumbs_access()" in route_source
|
||||
assert "'error': 'auth_required'" in route_source
|
||||
assert "build_webcrumbs_seed_data(limit=limit)" in route_source
|
||||
assert "'allowed_match_contract': 'exact/total_price/price_alert_exact'" in route_source
|
||||
assert "def webcrumbs_asset_proxy(asset_path)" in route_source
|
||||
|
||||
@@ -81,3 +81,15 @@ def test_webcrumbs_seed_data_fallback_does_not_expose_demo_values(monkeypatch):
|
||||
assert payload["aiCandidate"]["release_status"] == "blocked"
|
||||
assert "fallback demo" in payload["aiCandidate"]["thesis"]
|
||||
assert "TAIEX" not in str(payload)
|
||||
|
||||
|
||||
def test_webcrumbs_auth_required_seed_data_is_non_sensitive():
|
||||
from services.external_tool_payload_service import build_webcrumbs_auth_required_seed_data
|
||||
|
||||
payload = build_webcrumbs_auth_required_seed_data()
|
||||
|
||||
assert payload["marketSnapshot"][0]["freshness_status"] == "auth_required"
|
||||
assert payload["aiCandidate"]["release_status"] == "blocked"
|
||||
assert payload["metadata"]["source"] == "auth_required"
|
||||
assert "MOMO NT$" not in str(payload)
|
||||
assert "PChome NT$" not in str(payload)
|
||||
|
||||
Reference in New Issue
Block a user