feat(operability): add privacy-safe People HTTP telemetry - #90
feat(operability): add privacy-safe People HTTP telemetry#90seonghobae wants to merge 11 commits into
Conversation
📝 WalkthroughWalkthroughPeople API에 저카디널리티 HTTP 텔레메트리 미들웨어를 추가했다. 메서드와 라우트를 제한하고, 요청 처리 시간·상태·오류 유형을 기록한다. 예외와 내보내기 실패를 요청 처리와 분리한다. 관련 요구사항과 회귀 테스트를 추가했다. ChangesPeople API 운영 텔레메트리
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🔵 Low · up to The new telemetry boundary can currently reject a People request if its injected clock fails, despite telemetry being intended as best effort. This is a bounded availability risk requiring owner awareness or a small follow-up; the reported checks otherwise pass. Sequence Diagram(s)sequenceDiagram
participant ASGIClient
participant PeopleHttpTelemetryMiddleware
participant DownstreamASGIApp
participant PeopleMetricSink
ASGIClient->>PeopleHttpTelemetryMiddleware: HTTP 요청 전송
PeopleHttpTelemetryMiddleware->>DownstreamASGIApp: 정규화된 요청 전달
DownstreamASGIApp-->>PeopleHttpTelemetryMiddleware: 응답 상태 또는 예외 반환
PeopleHttpTelemetryMiddleware->>PeopleMetricSink: 요청 측정값 기록
PeopleHttpTelemetryMiddleware-->>ASGIClient: 원래 응답 또는 예외 전달
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent Please review the current unchanged head against protected |
Preserve the People API telemetry delta while adopting protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. Keep #161 repository-owned workflow consolidation intact; no retired package-local quality workflow is reintroduced.
People API operational telemetry
This PR adds an adapter-neutral, privacy-safe People HTTP request-duration measurement boundary. It emits only a bounded method, application-owned route template or
None, status, duration, and bounded error type; telemetry failures never change HR request behavior.Current authority — 2026-09-06
Exact head is
563a9c8e5485bc84444bca992902c2d74bad0471on current protecteddevelop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. The branch advanced by an ordinary two-parent, non-force successor using the exact conflict-free GitHub merge tree for predecessor3d3fd3c57b76855c8e394eb7067af30c3063c13dplus protected #161. The resulting workflow inventory keeps only canonicalfoundation-ci.ymland path-scopedrecovery-rehearsal-quality.yml; no retired package-local workflow was resurrected.The valid telemetry delta remains unchanged: bounded application-owned route templates, no raw URL labels, value-minimized failure logging, best-effort telemetry that cannot become HR request authority, and explicit omission of exporter/dashboard/SLO claims. All currently visible review threads are resolved. Formal reviews remain COMMENTED-only; no qualifying independent approval exists.
Historical predecessor evidence remains causal only and does not transfer to this successor.
Exact-head acceptance
Current PR-triggered exact-head runs are terminal:
34023751062— SUCCESS. Exact checkout, explicitubuntu-24.04runner contract, foundation/provenance validation, reviewed toolchain, owned unit/service contracts, isolated PostgreSQL contracts, and read-only checkout proof all passed.34023751109— SUCCESS.34023751123— SUCCESS.34023751107— FAILURE at the central verdict handoff, not an Orgmetra source/SARIF finding. Language detection succeeded. Both Python job101468106306and Actions job101468106331successfully executedRequest current-head CodeQL scan dispatch, then failed only atRelease runner or enforce current-head CodeQL verdict.No leaf fallback, synthetic verdict, or no-op retrigger is introduced for the central CodeQL control-plane failure. Foundation/Security/SAST GREEN does not authorize a Ready transition while the required CodeQL verdict and qualifying independent review are absent.
This PR also does not claim the follow-on #257 buyer path: actual middleware wiring, exporter/collector isolation, cancellation/connection-cleanup E2E, and measured p95 <= 20 ms remain separate acceptance work.
Keep the PR Draft. Do not self-approve, use routine administrator bypass, transfer predecessor evidence, weaken a gate, or change the privacy/cardinality boundary to make telemetry easier to ship.