feat(server): 业务事件契约——白名单+6事件与枚举校验
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import re
|
||||
|
||||
EVENT_NAMES = {"page_view", "page_stay", "sdk_loaded", "session_resume"}
|
||||
BIZ_EVENT_NAMES = {"contact_click", "form_start", "form_error", "form_submit",
|
||||
"form_submit_result", "product_view"} # 阶段B业务事件(spec §1)
|
||||
EVENT_NAMES = {"page_view", "page_stay", "sdk_loaded", "session_resume"} | BIZ_EVENT_NAMES
|
||||
SCHEMA_VERSION = 2 # 批级信缺省 = v1(旧SDK)
|
||||
MAX_EVENTS_PER_BATCH = 50
|
||||
MAX_PROP_KEYS = 32
|
||||
@@ -25,6 +27,13 @@ EVENT_PROP_WHITELIST = { # spec §9.1:未知字段拒绝。免费文
|
||||
"page_stay": {"active_ms", "path", "active_from", "active_to", "flush_reason", "measurement_version"},
|
||||
"sdk_loaded": {"sdk_version", "build_id", "schema_version", "config_version"},
|
||||
"session_resume": {"prev_session_id", "reason"},
|
||||
# 业务事件属性键白名单(spec §2)——值级枚举/格式校验在 validation._biz_props_ok
|
||||
"contact_click": {"channel"},
|
||||
"form_start": {"form_id"},
|
||||
"form_submit": {"form_id", "submission_id"},
|
||||
"form_error": {"form_id", "submission_id", "error_code", "field_count"},
|
||||
"form_submit_result": {"form_id", "submission_id", "result_code"},
|
||||
"product_view": {"product_id", "inferred", "rule_version"},
|
||||
}
|
||||
MAX_PROP_DEPTH = 2
|
||||
MAX_PROP_JSON_BYTES = 4096
|
||||
|
||||
Reference in New Issue
Block a user