Repository navigation
Redact authentication material from application telemetry - #69
Conversation
PR reader API performanceResult: INCONCLUSIVE 5 inconclusive · 3 within threshold. Zero request failures across all six runs. Base Three independent runs per revision, each on a fresh GitHub-hosted ARM64 runner. 16 users, 60 seconds/run, 1,000 synthetic articles, cache off, five PgBouncer slots. Latency comparisonAll latency values are in milliseconds; lower is better. Values are medians of three runs.
Additional latency and throughput metricsEach cell shows base → PR. Latencies are in milliseconds.
Individual runs
How to interpret this reportRegressed / Improved: a p95 regression needs >20% and >20 ms increase in the medians and at least two head samples versus the base median. Improvements use the inverse threshold. Within threshold means the change did not meet both thresholds. Inconclusive: a within-revision p95 range >35% of its median and >20 ms is too noisy for a confident latency verdict. Inconclusive latency comparisons are non-blocking: the check passes without claiming an improvement. Confirmed regressions and test/report errors fail the PR gate. Throughput is descriptive: paced users do not measure maximum capacity. This uncached public API test does not establish production health, browser performance or worker capacity. Separate runners can differ in hardware or host load; repetitions and noise checks reduce but cannot eliminate that uncertainty. Full HTML/CSV reports and logs · attempt 1 |
|



What changes and why?
The production audit found 107 log records containing OAuth callback
codeparameters across the reader, administration UI, and authentication APIs over seven days. Request logging and browser diagnostics now replace authentication values with[REDACTED]while retaining concrete routes, ordinary query values, request IDs, trace IDs, and error context.The policy covers Python text/JSON and stored job logs, Node request logs, Faro payloads before transport, and both telemetry receivers. It handles callback codes/state, credential fields, URL user information, Bearer/Basic authorization, encoded or repeated parameters, fragments, and nested callback URLs. Original requests and callback inputs are preserved.
Validation
npm run reader:test:paritypasses for the production website build and built Chrome/Edge extensions, including sign-in, CSRF-protected actions, and sign-out across tabs.packages/telemetry/fixtures, so frontend type checking can also load them inside the Docker build context. The AMD64 production web builder passes (docker build --target builder -f apps/web/Dockerfile .).Rollout notes
Restart or deploy the affected services to apply the policy to new records. Existing retained logs are unchanged. No authentication contract or database schema changes are required. OpenSSF workflow/badge work is in a separate PR.
Merge queue validation
Updated the branch against current
master(409f4a52) with merge commit0fd24e5c; no conflicts. Authentication-redaction regressions passed locally: 142 Python tests and 24 reader/telemetry tests. Full hosted CI,CI required, CodeQL and Sonar passed on this updated commit. Web/Chrome/Edge browser journeys and all ARM64 image build/scan/smoke checks passed. Sonar MCP confirms 95.1% new-code coverage, 0.0% new-code duplication, and zero new bugs, vulnerabilities or code smells. The separate GitHub-managed AI review remains quota-blocked; it is independent of these passing checks.This PR is first in the non-draft queue. The documented dependency order remains #71 → #72 → #79: merge #71, retarget #72 to master and merge its worker-lock fix before updating #79. Draft #59 is excluded. Auto-merge is disabled.
Ready for review