Skip to content

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 06:28
· 94 commits to main since this release
4cd1390

Beacon Python 1.2.1

This patch release publishes matching beacon-otel and beacon-profiling packages. Security remains embedded in beacon-otel, opt-in and disabled by default. The Contrib v0.65b0 / Core v1.44.0 baseline is unchanged.

Fixes

  • Keep Security requests active after local ASGI receive cancellation (#42); resolves #25.
  • Preserve the caller's protobuf backend selection when importing Profiling (#43); resolves #38.
  • Reserve index zero in OTLP Profiles dictionaries (#44); resolves #41.
  • Recover from Profiling export errors and bound local HTTP-export files (#45); resolves #37.
  • Avoid redundant taint nodes for identity-preserving os.fspath calls (#46); resolves #33.
  • Avoid duplicate sampling in asyncio lock context managers (#47); resolves #40.
  • Make SQL whitespace scanning linear (#48); resolves #29.
  • Deduplicate inherited SQL methods and Django debug cursor observations (#49); resolves #30.
  • Stop lock sampling and always restore profiler patches during shutdown (#50); resolves #36.
  • Distinguish current and local-root spans in Profiling samples (#51); resolves #39.
  • Detect SQL quote boundaries crossing fixed and tainted text (#52); resolves #28.
  • Track the actual string objects returned by Starlette Headers (#53); resolves #32.
  • Reserve request-body tracking capacity for parsed fields (#54); resolves #31.
  • Sample short lock operations and cache normalized paths (#55); resolves #35.
  • Bound raw profiling buffers and reuse immutable stack frames (#56); resolves #34.
  • Preserve logging locations and standard-library factory module identity (#57); resolves #23.
  • Cache Security startup eligibility and reduce call overhead (#58); resolves #24.
  • Propagate taint through attribute and subscript augmented assignment (#59); resolves #26.
  • Prioritize attack evidence and coverage diagnostics within bounded export budgets (#60); resolves #27.

Compatibility and Operational Limits

Security supports standard-GIL CPython 3.11–3.14. CPython 3.10 receives package and schema validation; its Security runtime remains unsupported. Profiling package tests run on CPython 3.10–3.14; handled-exception collection requires sys.monitoring on 3.12+. Gunicorn requires preload_app=False.

Collection and delivery use finite budgets. Saturated buffers and unavailable exporters can drop telemetry; delivery remains best effort. Lock profiling now samples before allocating samples or walking stacks, and suppresses its own internal locks. Tune the documented sampling and buffer settings for each workload. Full-sampling lock collection still has measurable overhead.

Attack evidence remains independent of risk classification and does not establish exploit success. Unsupported syntax and absent network/path policy remain unknown. Counters are process-local. A trace ID does not guarantee that a trace was retained.

The validated backend path uses compatible pprof and OTLP HTTP/protobuf traces and logs. OTLP Profiles dictionary and reference checks use a local protocol receiver; this release does not claim a new production DataKit or Collector qualification.

Validation and Upgrade

See the versioned acceptance record. The release candidate combines all 19 fixes and passed 343 local tests before version preparation. The five-version installed-wheel CI and official protected publishing workflow passed. Both public packages passed clean-environment application acceptance.

Install beacon-otel[profiling,requests]==1.2.1, adding the framework extras your application uses. To roll back, install beacon-otel[profiling,requests]==1.2.0 in a clean environment. Previously published versions and tags remain immutable.

Release Evidence

Artifact SHA-256

Artifact SHA-256
beacon_otel-1.2.1-py3-none-any.whl 8efec884079259fb72c82f2a05623e5ccb7f6aad4c1666bdd7cd394cf9152662
beacon_otel-1.2.1.tar.gz eef99b5d0e25de2adc78bf1718d2b0e881dc92cb011d1a1c9e52796ad1fa5935
beacon_profiling-1.2.1-py3-none-any.whl 6c01682e294f28dfe174b63f3b5b719e1bed2dceeaca8ba4eb576e17e618f9c6
beacon_profiling-1.2.1.tar.gz c783135a5b4a00fc50f9908bbe403681e3bc27bce869e4ddbf1d40f486437fdb