Repository navigation
v1.2.1
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
- Source:
4cd1390a6a5b9c10da54244291cdccdec0b4df81. - Official build and publication.
- Public-package acceptance.
- Temporary publishing variable restored to
false; tag restrictions and reviewer protections retained.
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 |