Skip to content

release(v6.2.0): telemetry endpoint_type field#138

Merged
saurabhjain1592 merged 3 commits intomainfrom
release/v6.2.0
Apr 8, 2026
Merged

release(v6.2.0): telemetry endpoint_type field#138
saurabhjain1592 merged 3 commits intomainfrom
release/v6.2.0

Conversation

@saurabhjain1592
Copy link
Copy Markdown
Member

Summary

Ships Python SDK v6.2.0 (dated 2026-04-09) with the new telemetry endpoint_type field from issue #1525 (tracked in axonflow-enterprise).

Changes

  • endpoint_type classifier in axonflow/telemetry.py: classifies the configured endpoint into localhost / private_network / remote / unknown on the SDK side. The raw URL is never sent or hashed.
  • 11 unit tests covering every classification path including IPv4/IPv6 localhost, RFC1918 private ranges, link-local, *.internal / *.local / *.lan / *.intranet hostnames, remote public hostnames, malformed URLs, case insensitivity, and an explicit test that the payload contains no URL-shaped strings.
  • Version bump axonflow/_version.py 6.1.0 → 6.2.0
  • Version bump pyproject.toml 6.0.0 → 6.2.0 (was a stale mismatch — both should track together)
  • CHANGELOG entry

Non-goals (explicit)

  • Does not send the raw URL or any hash of it
  • Does not override deployment_mode based on URL
  • Does not auto-suppress telemetry for localhost (that was the April 6 regression — see memory)

Test plan

  • pytest tests/test_telemetry_endpoint_type.py passes (11/11)
  • E2E against live checkpoint staging endpoint (runs after merge)
  • Verify checkpoint dashboard shows the new endpoint_type dimension after lambda update

Related

  • axonflow-enterprise#1547 ships the checkpoint lambda changes + TTL bump (90 → 180 days)
  • TS / Go / Java SDKs ship their own endpoint_type classifier PRs in parallel

#1525 — Add endpoint_type field to checkpoint telemetry

- New _classify_endpoint() helper in axonflow/telemetry.py classifies the
  configured URL into one of: localhost, private_network, remote, unknown.
  The raw URL is never sent or hashed — only the classification.
- _build_payload() now threads endpoint_type through; _do_ping() calls
  the classifier using the agent endpoint from the client config.
- 11 new unit tests cover localhost (hostname, IPv4, IPv6, 0.0.0.0,
  *.localhost), private network (RFC1918 v4, link-local, *.local,
  *.internal, *.lan, *.intranet), remote (public IPv4, public hostnames),
  malformed URLs (unknown), and case-insensitivity.
- The payload test explicitly asserts no URL-shaped strings leak into
  the serialized payload.

Version bumps:
- axonflow/_version.py: 6.1.0 → 6.2.0
- pyproject.toml: 6.0.0 → 6.2.0 (was a stale version-mismatch bug)
- Extract _LOCALHOST_HOSTS frozenset to scope the S104 'bind to all
  interfaces' lint suppression to the tuple literal (0.0.0.0 is a
  valid localhost indicator in a client-endpoint context)
- Split try/else to satisfy TRY300 (return statement should be in
  else block, not after try)
- Sort imports in test file (I001)
- Keep PLR0911 too-many-returns ignore as noqa comment (splitting the
  classifier further would hurt readability without benefit)
@saurabhjain1592 saurabhjain1592 merged commit cfe00b3 into main Apr 8, 2026
12 checks passed
@saurabhjain1592 saurabhjain1592 deleted the release/v6.2.0 branch April 10, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant