pomaster 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -183
- package/catalog/catalog-lock.draft.json +117 -117
- package/catalog/policies/policy.ai.change_plan_first.json +1 -1
- package/catalog/policies/policy.ai.fact_inference_separation.json +1 -1
- package/catalog/policies/policy.ai.read_search_verify_before_write.json +1 -1
- package/catalog/policies/policy.ai.rule_relaxation_approval.json +1 -1
- package/catalog/policies/policy.arch.adr_immutable_history.json +1 -1
- package/catalog/policies/policy.arch.no_convenience_over_boundary.json +1 -1
- package/catalog/policies/policy.arch.prefer_verifiable_option.json +2 -2
- package/catalog/policies/policy.authz.no_gating_proxy_trust.json +1 -1
- package/catalog/policies/policy.authz.permission_scope_expansion_gate.json +1 -1
- package/catalog/policies/policy.authz.server_five_factor_verification.json +1 -1
- package/catalog/policies/policy.be.conc.prefer_db_constraints.json +1 -1
- package/catalog/policies/policy.be.db.expand_migrate_contract.json +1 -1
- package/catalog/policies/policy.be.idem.key_payload_conflict.json +1 -1
- package/catalog/policies/policy.be.model.single_boundary_conversion.json +1 -1
- package/catalog/policies/policy.be.sql.index_for_known_queries.json +1 -1
- package/catalog/policies/policy.be.state.single_rule_source.json +1 -1
- package/catalog/policies/policy.be.txn.short_locks_compensation.json +1 -1
- package/catalog/policies/policy.bound.search_first_entry_only.json +1 -1
- package/catalog/policies/policy.boundary.validate_in_encode_out.json +1 -1
- package/catalog/policies/policy.cache.failure_mode_guards.json +1 -1
- package/catalog/policies/policy.cache.schema_versioning.json +1 -1
- package/catalog/policies/policy.cfg.config_attribute_completeness.json +1 -1
- package/catalog/policies/policy.cfg.key_rename_dual_read.json +1 -1
- package/catalog/policies/policy.cfg.no_secret_dispersal.json +1 -1
- package/catalog/policies/policy.cfg.production_safe_defaults.json +1 -1
- package/catalog/policies/policy.cfg.schema_backed_config.json +1 -1
- package/catalog/policies/policy.chg.no_unrelated_changes.json +1 -1
- package/catalog/policies/policy.contract.no_invented_facts.json +1 -1
- package/catalog/policies/policy.dep.build_path_supply_chain.json +1 -1
- package/catalog/policies/policy.dep.no_untrusted_source_no_lock_bypass.json +1 -1
- package/catalog/policies/policy.dep.time_boxed_urgent_exception.json +1 -1
- package/catalog/policies/policy.deploy.no_dev_env_as_production_fact.json +1 -1
- package/catalog/policies/policy.deploy.operational_capabilities.json +1 -1
- package/catalog/policies/policy.deploy.runtime_fact_record.json +1 -1
- package/catalog/policies/policy.err.failure_five_part_mapping.json +1 -1
- package/catalog/policies/policy.err.no_internal_detail_exposure.json +1 -1
- package/catalog/policies/policy.err.published_code_immutable.json +1 -1
- package/catalog/policies/policy.evid.acceptance_binds_verifiable_evidence.json +1 -1
- package/catalog/policies/policy.evid.no_silent_gate_removal.json +1 -1
- package/catalog/policies/policy.evid.no_unverifiable_pass.json +1 -1
- package/catalog/policies/policy.flag.cleanup_after_full_rollout.json +1 -1
- package/catalog/policies/policy.flag.consistent_off_state.json +1 -1
- package/catalog/policies/policy.flag.kill_switch.json +1 -1
- package/catalog/policies/policy.flag.lifecycle_metadata.json +1 -1
- package/catalog/policies/policy.flag.not_a_permission.json +1 -1
- package/catalog/policies/policy.gate.p0_non_bypassable.json +1 -1
- package/catalog/policies/policy.gate.risk_factors_confirmed.json +1 -1
- package/catalog/policies/policy.guard.no_check_weakening.json +2 -2
- package/catalog/policies/policy.integration.call_definition_minimum.json +1 -1
- package/catalog/policies/policy.integration.fault_containment.json +1 -1
- package/catalog/policies/policy.job.lifecycle_definition.json +1 -1
- package/catalog/policies/policy.job.no_unmanaged_execution.json +1 -1
- package/catalog/policies/policy.job.operational_features.json +1 -1
- package/catalog/policies/policy.obs.actionable_signals.json +1 -1
- package/catalog/policies/policy.obs.alert_with_owner.json +1 -1
- package/catalog/policies/policy.obs.context_field_baseline.json +1 -1
- package/catalog/policies/policy.obs.no_sensitive_or_unbounded_logging.json +1 -1
- package/catalog/policies/policy.obs.no_sensitive_raw_values.json +1 -1
- package/catalog/policies/policy.obs.signal_change_impact.json +1 -1
- package/catalog/policies/policy.obs.source_map_access_control.json +1 -1
- package/catalog/policies/policy.obs.telemetry_lifecycle_declared.json +1 -1
- package/catalog/policies/policy.obs.trace_correlation.json +1 -1
- package/catalog/policies/policy.perf.budget_change_retest.json +1 -1
- package/catalog/policies/policy.perf.evidence_binding.json +1 -1
- package/catalog/policies/policy.perf.observation_dimensions.json +1 -1
- package/catalog/policies/policy.proc.checklist_change_policy.json +2 -2
- package/catalog/policies/policy.proc.scope_drift_reclassify.json +1 -1
- package/catalog/policies/policy.prv.processing_scope_re_review.json +1 -1
- package/catalog/policies/policy.prv.sensitive_data_six_facts.json +1 -1
- package/catalog/policies/policy.registry.human_fields_validated_decorrelated.json +1 -1
- package/catalog/policies/policy.rel.no_irreversible_unmonitored_full_release.json +1 -1
- package/catalog/policies/policy.rel.observability_before_ship.json +1 -1
- package/catalog/policies/policy.rel.process_change_needs_drill_audit.json +1 -1
- package/catalog/policies/policy.rel.traceable_build.json +1 -1
- package/catalog/policies/policy.role.human_signs_for_ai.json +1 -1
- package/catalog/policies/policy.sec.authn_policy_unified.json +1 -1
- package/catalog/policies/policy.sec.no_client_side_trust.json +4 -1
- package/catalog/policies/policy.sec.no_longterm_security_disable.json +1 -1
- package/catalog/policies/policy.sec.no_script_readable_credentials.json +1 -1
- package/catalog/policies/policy.sec.no_secrets_in_client_surface.json +2 -2
- package/catalog/policies/policy.sec.relaxation_approval.json +1 -1
- package/catalog/policies/policy.sec.security_relaxation_gate.json +4 -1
- package/catalog/policies/policy.sec.trust_boundary_enforcement.json +4 -1
- package/catalog/policies/policy.sec.upload_download_server_recheck.json +1 -1
- package/catalog/policies/policy.sec.url_source_allowlist.json +1 -1
- package/catalog/policies/policy.spec.family_conflict_precedence.json +1 -1
- package/catalog/policies/policy.spec.freeze_before_use.json +1 -1
- package/catalog/policies/policy.spec.primary_source_basis.json +1 -1
- package/catalog/policies/policy.struct.module_entry_dependency_declared.json +1 -1
- package/catalog/policies/policy.struct.no_unexplained_top_level_dir.json +1 -1
- package/catalog/policies/policy.struct.reuse_proven_structure.json +1 -1
- package/catalog/policies/policy.test.control_nondeterminism_keep_diagnosis.json +1 -1
- package/catalog/policies/policy.test.isolation_and_cleanup.json +1 -1
- package/catalog/policies/policy.test.no_synthetic_stability.json +1 -1
- package/catalog/policies/policy.test.pyramid_and_ci_matrix.json +1 -1
- package/catalog/policies/policy.test.removal_justification.json +1 -1
- package/catalog/policies/policy.test.removal_needs_substitute_evidence.json +1 -1
- package/catalog/policies/policy.test.risk_driven_plan.json +1 -1
- package/catalog/policies/policy.test.stable_observable_assertions.json +1 -1
- package/catalog/policies/policy.tool.discoverable_toolchain.json +1 -1
- package/catalog/policies/policy.tool.no_hand_edit_generated_no_ci_drift.json +1 -1
- package/catalog/policies/policy.tool.no_vendored_body_edits.json +1 -1
- package/catalog/policies/policy.tool.upgrade_verify_lock_rollback.json +1 -1
- package/catalog/policies/policy.web.comp.no_trivial_or_god_component.json +1 -1
- package/catalog/policies/policy.web.comp.public_contract_completeness.json +1 -1
- package/catalog/policies/policy.web.copy.action_object_clarity.json +1 -1
- package/catalog/policies/policy.web.copy.enumerable_placement.json +1 -1
- package/catalog/policies/policy.web.copy.error_next_step.json +1 -1
- package/catalog/policies/policy.web.handoff.state_matrix_full.json +1 -1
- package/catalog/policies/policy.web.i18n.copy_key_discipline.json +1 -1
- package/catalog/policies/policy.web.i18n.raw_value_for_compute.json +1 -1
- package/catalog/policies/policy.web.page.region_consistency.json +1 -1
- package/catalog/policies/policy.web.track.attempt_result_correlation.json +1 -1
- package/catalog/policies/policy.web.track.no_synthetic_actions.json +1 -1
- package/catalog/policies/policy.web.track.typed_client_validation.json +1 -1
- package/catalog/policies/policy.wf.no_planned_as_verified.json +1 -1
- package/catalog/policies/policy.wf.task_facts_preconfirm.json +1 -1
- package/dist/bin.js +11233 -7336
- package/legal/THIRD_PARTY_NOTICES.md +461 -35
- package/package.json +1 -1
- package/seeds/aggregation-manifest.json +691 -0
- package/seeds/manifest.json +466 -1043
- package/seeds/specs/hard/stacks/antdesign/antdesign-ui-overlay.md +48 -0
- package/seeds/specs/hard/stacks/antdesign/index.md +20 -0
- package/seeds/specs/hard/stacks/css/css-system-overlay.md +52 -0
- package/seeds/specs/hard/stacks/css/index.md +20 -0
- package/seeds/specs/hard/stacks/geist/geist-design-system-overlay.md +48 -0
- package/seeds/specs/hard/stacks/geist/index.md +20 -0
- package/seeds/specs/hard/stacks/vue3/index.md +20 -0
- package/seeds/specs/hard/stacks/vue3/vue3-framework-overlay.md +71 -0
- package/seeds/specs/hard/themes/ai-generated-code.md +171 -0
- package/seeds/specs/hard/themes/api-contract-and-error-semantics.md +532 -0
- package/seeds/specs/hard/themes/architecture-and-module-boundaries.md +323 -0
- package/seeds/specs/hard/themes/data-and-transactions.md +582 -0
- package/seeds/specs/hard/themes/engineering-toolchain-and-dependencies.md +333 -0
- package/seeds/specs/hard/themes/environment-and-configuration.md +196 -0
- package/seeds/specs/hard/themes/frontend-state-and-client-data.md +342 -0
- package/seeds/specs/hard/themes/index.md +374 -0
- package/seeds/specs/hard/themes/integration-and-async-runtime.md +331 -0
- package/seeds/specs/hard/{frontend/38-internationalization-protocol.md → themes/internationalization-and-copywriting.md} +112 -5
- package/seeds/specs/hard/themes/observability-and-analytics.md +305 -0
- package/seeds/specs/hard/themes/page-composition-and-browser-environment.md +554 -0
- package/seeds/specs/hard/{frontend/31-performance-protocol.md → themes/performance-and-capacity.md} +95 -6
- package/seeds/specs/hard/themes/permission-and-authorization.md +168 -0
- package/seeds/specs/hard/themes/privacy-and-data-lifecycle.md +176 -0
- package/seeds/specs/hard/themes/release-and-feature-flags.md +237 -0
- package/seeds/specs/hard/{frontend/04-security-protocol.md → themes/security.md} +95 -6
- package/seeds/specs/hard/themes/task-governance-and-acceptance.md +554 -0
- package/seeds/specs/hard/themes/testing-and-verification.md +266 -0
- package/seeds/specs/hard/themes/ui-presentation-and-design.md +670 -0
- package/seeds/specs/hard/themes/value-semantics-and-domain-data.md +339 -0
- package/seeds/specs/hard/backend/01-architecture-governance-protocol.md +0 -68
- package/seeds/specs/hard/backend/02-project-structure-governance-protocol.md +0 -68
- package/seeds/specs/hard/backend/03-directory-boundary-protocol.md +0 -68
- package/seeds/specs/hard/backend/04-layering-architecture-protocol.md +0 -68
- package/seeds/specs/hard/backend/05-task-workflow-protocol.md +0 -68
- package/seeds/specs/hard/backend/06-ai-generated-code-protocol.md +0 -68
- package/seeds/specs/hard/backend/07-evidence-acceptance-protocol.md +0 -68
- package/seeds/specs/hard/backend/08-contract-change-protocol.md +0 -68
- package/seeds/specs/hard/backend/09-role-responsibility-protocol.md +0 -68
- package/seeds/specs/hard/backend/10-security-protocol.md +0 -68
- package/seeds/specs/hard/backend/11-environment-configuration-protocol.md +0 -67
- package/seeds/specs/hard/backend/12-api-contract-protocol.md +0 -68
- package/seeds/specs/hard/backend/13-privacy-data-lifecycle-protocol.md +0 -68
- package/seeds/specs/hard/backend/14-business-rules-state-protocol.md +0 -68
- package/seeds/specs/hard/backend/15-data-model-protocol.md +0 -68
- package/seeds/specs/hard/backend/16-error-code-protocol.md +0 -68
- package/seeds/specs/hard/backend/17-permission-authorization-protocol.md +0 -68
- package/seeds/specs/hard/backend/18-database-schema-migration-protocol.md +0 -68
- package/seeds/specs/hard/backend/19-query-index-sql-protocol.md +0 -68
- package/seeds/specs/hard/backend/20-transaction-boundary-protocol.md +0 -68
- package/seeds/specs/hard/backend/21-concurrency-locking-protocol.md +0 -68
- package/seeds/specs/hard/backend/22-idempotency-protocol.md +0 -68
- package/seeds/specs/hard/backend/23-cache-redis-consistency-protocol.md +0 -68
- package/seeds/specs/hard/backend/24-external-integration-resilience-protocol.md +0 -68
- package/seeds/specs/hard/backend/25-async-job-scheduler-protocol.md +0 -68
- package/seeds/specs/hard/backend/26-engineering-tooling-protocol.md +0 -68
- package/seeds/specs/hard/backend/27-dependency-supply-chain-protocol.md +0 -68
- package/seeds/specs/hard/backend/28-testing-protocol.md +0 -68
- package/seeds/specs/hard/backend/29-observability-logging-tracing-protocol.md +0 -68
- package/seeds/specs/hard/backend/30-performance-capacity-protocol.md +0 -68
- package/seeds/specs/hard/backend/31-runtime-deployment-protocol.md +0 -68
- package/seeds/specs/hard/backend/32-release-versioning-rollback-protocol.md +0 -68
- package/seeds/specs/hard/backend/index.md +0 -177
- package/seeds/specs/hard/frontend/01-development-checklist-protocol.md +0 -86
- package/seeds/specs/hard/frontend/02-ai-generated-code-protocol.md +0 -82
- package/seeds/specs/hard/frontend/03-acceptance-gate-protocol.md +0 -86
- package/seeds/specs/hard/frontend/05-environment-configuration-protocol.md +0 -80
- package/seeds/specs/hard/frontend/06-change-governance-protocol.md +0 -90
- package/seeds/specs/hard/frontend/07-frontend-backend-communication-protocol.md +0 -219
- package/seeds/specs/hard/frontend/08-role-responsibility-protocol.md +0 -80
- package/seeds/specs/hard/frontend/09-module-boundary-protocol.md +0 -81
- package/seeds/specs/hard/frontend/10-engineering-tooling-protocol.md +0 -89
- package/seeds/specs/hard/frontend/11-dependency-package-management-protocol.md +0 -87
- package/seeds/specs/hard/frontend/12-business-rules-protocol.md +0 -79
- package/seeds/specs/hard/frontend/13-monetary-precision-protocol.md +0 -81
- package/seeds/specs/hard/frontend/14-data-model-protocol.md +0 -85
- package/seeds/specs/hard/frontend/15-request-api-protocol.md +0 -87
- package/seeds/specs/hard/frontend/16-error-handling-protocol.md +0 -79
- package/seeds/specs/hard/frontend/17-permission-protocol.md +0 -79
- package/seeds/specs/hard/frontend/18-state-management-protocol.md +0 -88
- package/seeds/specs/hard/frontend/19-cache-protocol.md +0 -79
- package/seeds/specs/hard/frontend/20-testing-protocol.md +0 -88
- package/seeds/specs/hard/frontend/21-design-system-protocol.md +0 -79
- package/seeds/specs/hard/frontend/22-theme-protocol.md +0 -79
- package/seeds/specs/hard/frontend/23-accessibility-protocol.md +0 -189
- package/seeds/specs/hard/frontend/24-component-protocol.md +0 -80
- package/seeds/specs/hard/frontend/25-page-structure-protocol.md +0 -79
- package/seeds/specs/hard/frontend/26-style-layout-protocol.md +0 -80
- package/seeds/specs/hard/frontend/27-rendering-state-protocol.md +0 -81
- package/seeds/specs/hard/frontend/28-form-protocol.md +0 -88
- package/seeds/specs/hard/frontend/29-routing-url-protocol.md +0 -79
- package/seeds/specs/hard/frontend/30-data-grid-protocol.md +0 -83
- package/seeds/specs/hard/frontend/32-file-import-export-protocol.md +0 -80
- package/seeds/specs/hard/frontend/33-release-versioning-protocol.md +0 -79
- package/seeds/specs/hard/frontend/34-monitoring-logging-protocol.md +0 -128
- package/seeds/specs/hard/frontend/35-mock-protocol.md +0 -97
- package/seeds/specs/hard/frontend/36-feature-flag-protocol.md +0 -79
- package/seeds/specs/hard/frontend/37-browser-device-compatibility-protocol.md +0 -83
- package/seeds/specs/hard/frontend/39-copywriting-protocol.md +0 -79
- package/seeds/specs/hard/frontend/40-analytics-protocol.md +0 -98
- package/seeds/specs/hard/frontend/41-design-handoff-protocol.md +0 -80
- package/seeds/specs/hard/frontend/42-browser-runtime-lifecycle-protocol.md +0 -86
- package/seeds/specs/hard/frontend/43-time-temporal-protocol.md +0 -86
- package/seeds/specs/hard/frontend/44-privacy-data-lifecycle-protocol.md +0 -87
- package/seeds/specs/hard/frontend/45-browser-storage-protocol.md +0 -87
- package/seeds/specs/hard/frontend/index.md +0 -308
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
seed_source: packages/cli/seeds/aggregation-manifest.json
|
|
3
|
+
seed_source_sha256: 039b637ccffacdfe3ce30d85e193f4b38928fcdfb16efdc4eb255e35e05af91f
|
|
4
|
+
seed_version: B7-THEME
|
|
5
|
+
lane: [frontend, backend]
|
|
6
|
+
status: CURRENT
|
|
7
|
+
authority_scope: mixed_required_and_advisory
|
|
8
|
+
applies_to: [frontend, backend]
|
|
9
|
+
related_evidence_specs: []
|
|
10
|
+
related_tools: []
|
|
11
|
+
legacy_id: theme:observability-and-analytics
|
|
12
|
+
criticality: standard # 聚合注记:取源最高;info 性注记非执行语义
|
|
13
|
+
injection_mode: triggered # 聚合注记:来源同值;info 性注记非执行语义
|
|
14
|
+
stages: [implement, check, release] # 聚合注记:来源 stages 并集;info 性注记非执行语义
|
|
15
|
+
triggers: [observability, logging, tracing] # 聚合注记:来源 triggers 并集;info 性注记非执行语义
|
|
16
|
+
requires: [] # 聚合注记:来源 requires 并集(全空)
|
|
17
|
+
x-aggregation: # 聚合来源(D6):逐源 vendor pin(sha256 与卡 vendor_pin 同值)
|
|
18
|
+
- seed_source: pomaster/components/frontend-hard-spec/assets/universal/34-monitoring-logging-protocol.md
|
|
19
|
+
sha256: 3c37c1c3aa3ade8d43532a1fcc7561e95aef42a19e46b6eb53d864054a2da013
|
|
20
|
+
seed_version: B6B-2
|
|
21
|
+
- seed_source: pomaster/components/frontend-hard-spec/assets/universal/40-analytics-protocol.md
|
|
22
|
+
sha256: f638c8054ba32d44a15f1dd4fa42b637e1f6ad39cd73c6e1d45cd5bfd71b2c56
|
|
23
|
+
seed_version: B6B-2
|
|
24
|
+
- seed_source: pomaster/components/backend-hard-spec/assets/universal/29-observability-logging-tracing-protocol.md
|
|
25
|
+
sha256: e871f5d7d1e9fe68956881877baba94f376a5539753441853f8cfa12939f5ebd
|
|
26
|
+
seed_version: B6C
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# 可观测性与埋点
|
|
30
|
+
|
|
31
|
+
> **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
|
|
32
|
+
|
|
33
|
+
## Scope
|
|
34
|
+
|
|
35
|
+
**源:FE 34 监控与日志协议(pomaster/components/frontend-hard-spec/assets/universal/34-monitoring-logging-protocol.md)**
|
|
36
|
+
|
|
37
|
+
P1。作为前端运行可观测性的主权威,定义结构化日志、技术遥测、错误与白屏、Trace/Span/Breadcrumb、RED 指标、RUM 采集、告警和遥测传输韧性。
|
|
38
|
+
|
|
39
|
+
**源:FE 40 埋点协议(pomaster/components/frontend-hard-spec/assets/universal/40-analytics-protocol.md)**
|
|
40
|
+
|
|
41
|
+
P2。作为业务行为分析的唯一权威,定义用户行为事件、关键业务动作、漏斗、事件 schema、上报时机、去重、同意/授权和分析用途。
|
|
42
|
+
|
|
43
|
+
**源:BE 29 可观测性、日志与追踪协议(pomaster/components/backend-hard-spec/assets/universal/29-observability-logging-tracing-protocol.md)**
|
|
44
|
+
|
|
45
|
+
规范日志、指标、TraceId、审计、告警和事故诊断证据。
|
|
46
|
+
|
|
47
|
+
## Non-Scope
|
|
48
|
+
|
|
49
|
+
**源:FE 34 监控与日志协议**
|
|
50
|
+
|
|
51
|
+
不替代后端审计、基础设施容量监控和具体 APM 厂商选型;业务行为事件、漏斗和分析用途归 `40-analytics-protocol`,LCP/INP/CLS 等性能预算、RUM 统计口径和分位数归 `31-performance-protocol`。不允许监控收集权限外数据。
|
|
52
|
+
|
|
53
|
+
**源:FE 40 埋点协议**
|
|
54
|
+
|
|
55
|
+
不替代错误监控、技术 telemetry、Trace/Span、RUM 运行诊断和后端审计;这些运行可观测性规则归 `34-monitoring-logging-protocol`。LCP/INP/CLS 等性能预算与分位数归 `31-performance-protocol`。不允许收集未批准敏感数据。
|
|
56
|
+
|
|
57
|
+
**源:BE 29 可观测性、日志与追踪协议**
|
|
58
|
+
|
|
59
|
+
不替代错误码、隐私、安全或具体监控平台配置。
|
|
60
|
+
|
|
61
|
+
## Terms
|
|
62
|
+
|
|
63
|
+
**源:FE 34 监控与日志协议**
|
|
64
|
+
|
|
65
|
+
- Error Event:可定位的运行失败记录。
|
|
66
|
+
- Trace:一次端到端请求的因果链,由 trace-id 贯穿。
|
|
67
|
+
- Span:Trace 内的单个操作单元,记录开始/结束时间、父关系和受控元数据。
|
|
68
|
+
- Breadcrumb:错误前的受控操作路径。
|
|
69
|
+
- RED 指标:Rate(请求率)、Errors(错误率)、Duration(耗时)。
|
|
70
|
+
- RUM:Real User Monitoring,采集真实用户设备、网络、性能和交互指标的运行监测方式。
|
|
71
|
+
- Source Map:映射压缩代码到源代码的受控文件。
|
|
72
|
+
|
|
73
|
+
**源:FE 40 埋点协议**
|
|
74
|
+
|
|
75
|
+
- Event Schema:事件名和字段契约。
|
|
76
|
+
- Funnel:按稳定业务阶段关联的一组行为事件,用于分析到达、转化、放弃和结果。
|
|
77
|
+
- OperationId:关联 attempt/result 的操作标识。
|
|
78
|
+
- Deduplication Key:防止重复上报的键。
|
|
79
|
+
- Consent State:当前用户对非必要分析采集的同意、拒绝或撤回状态。
|
|
80
|
+
|
|
81
|
+
**源:BE 29 可观测性、日志与追踪协议**
|
|
82
|
+
|
|
83
|
+
可观测信号包括结构化日志、指标、trace、审计和健康状态。
|
|
84
|
+
|
|
85
|
+
## MUST
|
|
86
|
+
|
|
87
|
+
**源:FE 34 监控与日志协议 · §MUST**
|
|
88
|
+
|
|
89
|
+
- 每个应用、页面和关键 API 面必须声明运行可观测性 Owner,负责日志字段、技术指标、追踪、告警和恢复证据。
|
|
90
|
+
- 采集并分类运行错误、Promise rejection、资源失败、接口错误、白屏和根组件渲染失败;每类必须关联 `16-error-handling-protocol` 定义的 UI 状态与恢复策略。
|
|
91
|
+
- 结构化日志包含时间、级别、稳定 message_id、版本、环境、页面、组件/操作、trace-id、浏览器和安全上下文摘要。
|
|
92
|
+
- 关键 API 调用必须生成或传播 trace-id;请求、响应、错误日志与 breadcrumb 必须保持同一关联标识,Span 必须记录父子关系、耗时、结果和受控元数据。
|
|
93
|
+
- HTTP client 与关键异步任务必须聚合 RED 指标;指标名称、单位、维度和版本必须稳定,完整 URL、DOM 文本、用户输入或其他高基数字段不得作为维度。
|
|
94
|
+
- 启用 RUM 时必须采集真实用户运行信号,并携带页面类别、设备类别、网络类别、应用版本和指标版本;性能预算、统计窗口与分位数引用 `31-performance-protocol`,不得在本协议重复定义阈值。
|
|
95
|
+
- source map 与版本对应且受权限保护。
|
|
96
|
+
- 日志字段脱敏并限制请求/响应摘要。
|
|
97
|
+
- 关键错误率、API 失败率、白屏率和运行退化信号必须有告警阈值、升级策略、负责人、静默窗口和运行手册。
|
|
98
|
+
- 监控事件 schema、版本、采样率、批大小、缓存上限、刷新时机、重试退避、用途、保留期限和删除策略必须明确;页面隐藏、卸载或网络恢复时必须按受控策略尽力刷新待发送遥测。
|
|
99
|
+
- 监控 SDK 初始化失败、遥测序列化失败或发送失败必须 fail-open,不得阻断应用主流程;失败本身必须产生可恢复的安全诊断信号,且缓存必须有容量与过期边界。
|
|
100
|
+
|
|
101
|
+
### 分层运行可观测性责任(按目录层级)
|
|
102
|
+
|
|
103
|
+
运行可观测性是架构期横切能力,层级划分与 `09-module-boundary-protocol` 一致。
|
|
104
|
+
|
|
105
|
+
- **app 层 — 启动与全局运行观测**:初始化日志、指标、追踪和 RUM SDK,注册全局错误处理器与白屏检测,声明全局 trace 传播策略;不得用入口 console 输出替代生产遥测或吞错不上报。
|
|
106
|
+
- **platform 层 — 状态与网络观测**:统一记录全局状态操作的受控 span,在 HTTP client 注入请求/响应拦截、RED 指标与 trace-id;不得记录完整状态对象或让业务请求自定义 trace 头格式。
|
|
107
|
+
- **api 层 — 请求链路观测**:记录请求分类、耗时、错误码、重试次数和 trace 传播;不得记录 token,也不得以完整 URL 或 DOM 文本制造高基数维度。
|
|
108
|
+
- **domain 层 — 计算与转换观测**:记录复杂计算/转换耗时、输入量级、异常分支和异步任务状态;不得把 UI Toast/Alert 当作唯一诊断手段。
|
|
109
|
+
- **feature 层 — 页面运行观测**:声明页面运行状态转换、错误边界、关键 API 技术信号和性能预算对比;业务 page-view/action 漏斗与事件去重归 `40-analytics-protocol`。
|
|
110
|
+
- **shared 层 — 组件与工具观测**:公共组件暴露受控 telemetry hook,工具函数记录异常边界;不得把内部调试日志当正式遥测或硬编码业务分析 schema。
|
|
111
|
+
|
|
112
|
+
**源:FE 40 埋点协议 · §MUST**
|
|
113
|
+
|
|
114
|
+
- 事件使用稳定 key,不使用显示文案。
|
|
115
|
+
- 定义公共字段、业务白名单、触发时机和去重。
|
|
116
|
+
- 每个分析事件必须声明 event_id、schema_version、业务目的、触发条件、字段白名单、隐私分类、Owner、目的地和保留策略;页面或组件不得临时扩展 schema。
|
|
117
|
+
- attempt 与 result 通过 OperationId 关联。
|
|
118
|
+
- 核心用户旅程必须以稳定业务阶段定义漏斗,并明确进入、成功、失败、放弃和不适用口径;漏斗不得依赖显示文案、DOM 或 URL 猜测。
|
|
119
|
+
- 页面重渲染、自动刷新和重试不得误记为用户操作。
|
|
120
|
+
- 敏感字段、搜索原文和业务原值默认不上传。
|
|
121
|
+
- 新事件有 Owner、用途和保留策略。
|
|
122
|
+
- 采集必须遵循适用的同意/授权状态;用户撤回后停止非必要采集,并清理或隔离尚未发送的数据。
|
|
123
|
+
- 事件目的地与 payload 字段必须使用白名单;第三方分析脚本、转发规则和数据出境必须经过安全与隐私评审。
|
|
124
|
+
- page-view、action、attempt/result 等事件必须使用稳定 page_id/action_id/operation_id 关联;技术 trace-id 仅可作为经批准的关联字段,不得把分析事件变成运行日志副本。
|
|
125
|
+
|
|
126
|
+
**源:BE 29 可观测性、日志与追踪协议 · §MUST**
|
|
127
|
+
|
|
128
|
+
- 关键操作必须可关联版本、环境、主体、操作结果与 TraceId。
|
|
129
|
+
|
|
130
|
+
## MUST NOT
|
|
131
|
+
|
|
132
|
+
**源:FE 34 监控与日志协议 · §MUST NOT**
|
|
133
|
+
|
|
134
|
+
- MUST NOT 记录 token、密码、敏感原值或完整文件。
|
|
135
|
+
- MUST NOT 仅用 console 作为生产监控。
|
|
136
|
+
- MUST NOT 捕获后静默吞错。
|
|
137
|
+
- MUST NOT 公开部署 source map。
|
|
138
|
+
- MUST NOT 把用户标识、PII、认证信息或业务原值放入 Trace Context、breadcrumb 或高基数字段。
|
|
139
|
+
- MUST NOT 在没有 trace-id 的情况下发起关键 API 请求。
|
|
140
|
+
- MUST NOT 让页面、组件或请求层各自发明不兼容的日志、指标或追踪字段。
|
|
141
|
+
- MUST NOT 让 SDK 初始化、遥测缓存或发送重试阻塞首屏、用户操作或错误恢复。
|
|
142
|
+
- MUST NOT 把业务行为漏斗、转化口径或分析用途定义在运行诊断 schema 中。
|
|
143
|
+
|
|
144
|
+
**源:FE 40 埋点协议 · §MUST NOT**
|
|
145
|
+
|
|
146
|
+
- MUST NOT 同一行为多次上报或多名称。
|
|
147
|
+
- MUST NOT 页面自行扩展不受控公共字段。
|
|
148
|
+
- MUST NOT 用埋点代替审计。
|
|
149
|
+
- MUST NOT 上报权限外数据。
|
|
150
|
+
- MUST NOT 通过抓取 DOM、可见文本、URL 查询参数或用户输入来临时拼装分析数据。
|
|
151
|
+
- MUST NOT 在同意状态未知或撤回后继续发送非必要分析事件。
|
|
152
|
+
- MUST NOT 用业务分析事件替代错误、白屏、API RED、Trace/Span 或 RUM 技术遥测。
|
|
153
|
+
- MUST NOT 把同一业务漏斗阶段在多个页面或组件中定义为不同语义。
|
|
154
|
+
|
|
155
|
+
**源:BE 29 可观测性、日志与追踪协议 · §MUST NOT**
|
|
156
|
+
|
|
157
|
+
- 不得记录 token、密码、secret、完整敏感 payload 或无界高基数值。
|
|
158
|
+
|
|
159
|
+
## SHOULD
|
|
160
|
+
|
|
161
|
+
**源:FE 34 监控与日志协议 · §SHOULD**
|
|
162
|
+
|
|
163
|
+
- SHOULD 关联用户操作、请求和异步任务 TraceId。
|
|
164
|
+
- SHOULD 控制采样并防止告警风暴。
|
|
165
|
+
- SHOULD 在启用分布式追踪时遵循 W3C Trace Context,并验证跨来源边界的头部传播和信任策略。
|
|
166
|
+
- SHOULD 对告警关联运行手册、最近变更和可回滚版本。
|
|
167
|
+
- SHOULD 对遥测批处理、缓存、退避和丢弃量建立自监控,但不得形成无限递归上报。
|
|
168
|
+
|
|
169
|
+
**源:FE 40 埋点协议 · §SHOULD**
|
|
170
|
+
|
|
171
|
+
- SHOULD 通过 typed analytics client 和 schema 校验。
|
|
172
|
+
- SHOULD 监控事件质量、丢失和重复率。
|
|
173
|
+
- SHOULD 对漏斗的迟到、乱序、重复、跨设备和 consent 变化定义明确处理策略。
|
|
174
|
+
|
|
175
|
+
**源:BE 29 可观测性、日志与追踪协议 · §SHOULD**
|
|
176
|
+
|
|
177
|
+
- 应为关键失败、延迟、容量和依赖建立可行动的指标与告警。
|
|
178
|
+
|
|
179
|
+
## Contract
|
|
180
|
+
|
|
181
|
+
**源:FE 34 监控与日志协议 · §Contract**
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
SignalType, SchemaVersion, AppVersion, Environment, Page, ComponentOrOperation,
|
|
185
|
+
TraceId, SpanId, ParentSpanId, MessageId, ErrorCode, Duration, SafeDimensions,
|
|
186
|
+
SamplingPolicy, Retention, Timestamp, Owner
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
分层运行可观测性责任契约(与 `09-module-boundary-protocol` 层级一致):
|
|
190
|
+
|
|
191
|
+
```text
|
|
192
|
+
Layer, Responsibility, CheckPoint, Forbidden
|
|
193
|
+
app, SDK/全局错误/白屏/trace 策略, 初始化降级 + 全局处理器 + 版本绑定, console 替代遥测 / 吞错
|
|
194
|
+
platform, 状态与网络技术遥测, store span + HTTP RED + trace 注入, 完整状态对象 / 自定义 trace 格式
|
|
195
|
+
api, 请求链路, 分类 + 耗时 + 错误码 + 重试 + trace, token / 高基数 URL 或 DOM
|
|
196
|
+
domain, 计算与异步任务, 耗时 + 数据量级 + 异常分支 + 任务状态, UI 提示作为唯一诊断
|
|
197
|
+
feature, 页面运行状态, 错误边界 + 技术信号 + 性能预算引用, 重复定义业务分析漏斗
|
|
198
|
+
shared, 公共 telemetry hook, 组件/工具异常边界, 调试日志当正式遥测 / 业务 schema 硬编码
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**源:FE 40 埋点协议 · §Contract**
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
EventId, SchemaVersion, Purpose, FunnelId, FunnelStage, PageId, ActionId,
|
|
205
|
+
Trigger, CommonFields, BusinessFields, OperationId, DedupKey, ConsentState,
|
|
206
|
+
PrivacyClass, Destination, Owner, Retention
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**源:BE 29 可观测性、日志与追踪协议 · §Contract**
|
|
210
|
+
|
|
211
|
+
信号设计必须定义 schema、级别、采样、保留、脱敏、Owner 与排障用途。
|
|
212
|
+
|
|
213
|
+
## Checklist
|
|
214
|
+
|
|
215
|
+
**源:FE 34 监控与日志协议 · §Checklist**
|
|
216
|
+
|
|
217
|
+
- [ ] 错误和白屏可定位。
|
|
218
|
+
- [ ] 版本与 source map 对应。
|
|
219
|
+
- [ ] 日志无敏感信息。
|
|
220
|
+
- [ ] 告警和 Owner 明确。
|
|
221
|
+
- [ ] Trace/Span/Breadcrumb 与关键 API、错误和异步任务可关联。
|
|
222
|
+
- [ ] RED 与 RUM 技术信号有稳定名称、单位、维度和指标版本;预算与分位数口径引用 31。
|
|
223
|
+
- [ ] schema、版本、采样、批处理、缓存、重试、保留和删除策略明确。
|
|
224
|
+
- [ ] 遥测故障不影响主流程,Trace Context 不携带敏感数据。
|
|
225
|
+
- [ ] 分层责任已按 app/platform/api/domain/feature/shared 分担并引用 09。
|
|
226
|
+
|
|
227
|
+
**源:FE 40 埋点协议 · §Checklist**
|
|
228
|
+
|
|
229
|
+
- [ ] 名称和字段稳定。
|
|
230
|
+
- [ ] 时机与去重正确。
|
|
231
|
+
- [ ] 漏斗阶段、成功/失败/放弃口径和 OperationId 关联明确。
|
|
232
|
+
- [ ] 隐私边界通过。
|
|
233
|
+
- [ ] Owner 和用途明确。
|
|
234
|
+
- [ ] 同意、撤回、目的地白名单和待发送队列清理已验证。
|
|
235
|
+
- [ ] 业务事件未复制 34 的运行诊断或 31 的性能预算规则。
|
|
236
|
+
|
|
237
|
+
**源:BE 29 可观测性、日志与追踪协议 · §Checklist**
|
|
238
|
+
|
|
239
|
+
- [ ] 成功、失败、重试、降级和恢复均能通过信号关联。
|
|
240
|
+
|
|
241
|
+
## Examples
|
|
242
|
+
|
|
243
|
+
**源:FE 34 监控与日志协议 · §Examples**
|
|
244
|
+
|
|
245
|
+
### 内容示例,可删除
|
|
246
|
+
|
|
247
|
+
系统错误展示 TraceId;HTTP client、错误日志和 breadcrumb 记录同一 TraceId 与版本。遥测按受控批次发送,SDK 故障时主流程继续并记录安全降级信号,不记录输入原值。
|
|
248
|
+
|
|
249
|
+
**源:FE 40 埋点协议 · §Examples**
|
|
250
|
+
|
|
251
|
+
### 内容示例,可删除
|
|
252
|
+
|
|
253
|
+
用户点击导出记录业务 `attempt`,后台任务完成记录 `result`,两者共享 operation id 并进入同一导出漏斗;API 耗时、错误码和 trace 诊断仍由 34 记录。
|
|
254
|
+
|
|
255
|
+
**源:BE 29 可观测性、日志与追踪协议 · §Examples**
|
|
256
|
+
|
|
257
|
+
- 外部调用 trace 记录供应方、结果类和延迟,不记录认证凭据。
|
|
258
|
+
|
|
259
|
+
## Anti-patterns
|
|
260
|
+
|
|
261
|
+
**源:FE 34 监控与日志协议 · §Anti-patterns**
|
|
262
|
+
|
|
263
|
+
生产只打印 console.error,用户截图是唯一定位依据。
|
|
264
|
+
|
|
265
|
+
每个页面自行初始化 SDK、定义 trace 头和日志字段,导致链路无法关联;发送失败时无限重试并阻塞页面卸载。
|
|
266
|
+
|
|
267
|
+
**源:FE 40 埋点协议 · §Anti-patterns**
|
|
268
|
+
|
|
269
|
+
按钮组件和页面都上报点击,导致同一行为计数两次且字段不同。
|
|
270
|
+
|
|
271
|
+
把 JS 错误、API RED 指标和 LCP 阈值塞进分析事件 schema,导致运行诊断、性能预算与业务转化口径互相污染。
|
|
272
|
+
|
|
273
|
+
**源:BE 29 可观测性、日志与追踪协议 · §Anti-patterns**
|
|
274
|
+
|
|
275
|
+
- 只打印自由文本异常,无法按请求、版本或业务操作聚合。
|
|
276
|
+
|
|
277
|
+
## Ownership
|
|
278
|
+
|
|
279
|
+
**源:FE 34 监控与日志协议 · §Ownership**
|
|
280
|
+
|
|
281
|
+
Observability/平台 Owner 维护运行遥测 schema、SDK、trace 传播和告警;模块 Owner 维护安全上下文与恢复映射;性能 Owner 维护 31 的预算与统计口径;数据/产品 Owner 维护 40 的业务分析事件;安全/隐私 Owner 审核字段、采样、保留和删除策略。
|
|
282
|
+
|
|
283
|
+
**源:FE 40 埋点协议 · §Ownership**
|
|
284
|
+
|
|
285
|
+
数据/产品 Owner 定义用途,埋点平台 Owner 维护 schema,安全/隐私 Owner 审核字段。
|
|
286
|
+
|
|
287
|
+
**源:BE 29 可观测性、日志与追踪协议 · §Ownership**
|
|
288
|
+
|
|
289
|
+
服务维护者拥有诊断信号,运行角色维护告警与事故流程。
|
|
290
|
+
|
|
291
|
+
## Change Policy
|
|
292
|
+
|
|
293
|
+
**源:FE 34 监控与日志协议 · §Change Policy**
|
|
294
|
+
|
|
295
|
+
运行遥测 schema、日志字段、技术指标、trace 传播、采样、批处理、缓存、重试、保留、告警和 source map 策略变化必须评审隐私、性能、成本、兼容性和可诊断性;不得把 31/40 的权威规则复制回本协议。
|
|
296
|
+
|
|
297
|
+
**源:FE 40 埋点协议 · §Change Policy**
|
|
298
|
+
|
|
299
|
+
事件改名、字段语义和保留变化必须版本化并通知下游消费者。
|
|
300
|
+
|
|
301
|
+
**源:BE 29 可观测性、日志与追踪协议 · §Change Policy**
|
|
302
|
+
|
|
303
|
+
信号 schema、采样或保留变化必须评估仪表盘、告警和隐私影响。
|
|
304
|
+
|
|
305
|
+
> **语言节**:本主题无语言节挂点(缺席诚实);规则本体即上文通用节。
|