fix(telemetry): drop profile field [skip-runtime-e2e]#170
Merged
saurabhjain1592 merged 2 commits intomainfrom May 8, 2026
Merged
fix(telemetry): drop profile field [skip-runtime-e2e]#170saurabhjain1592 merged 2 commits intomainfrom
saurabhjain1592 merged 2 commits intomainfrom
Conversation
The v1 telemetry schema added a `profile` payload field sourced from
`AXONFLOW_PROFILE`. That env var was already in use for governance
enforcement (allowlist `dev|default|strict|compliance`, ADR-036), and
the v1 telemetry validator only accepted `dev|prod|unknown` — so any
customer setting `AXONFLOW_PROFILE=strict` or `=compliance` for
governance had their telemetry pings rejected with HTTP 400.
Drop the field entirely. The `deployment_mode` dimension already
carries the topology signal `profile` was meant to add, and
`AXONFLOW_PROFILE` reverts to its single governance-only purpose.
- Remove env-var read + payload field + doc comment in TelemetryReporter.
- Tests: assert `profile` is ABSENT on the wire (stronger than the
previous `equals("unknown")` assertions; actively guards against the
field re-appearing).
- Bump pom.xml + the two example poms to 8.0.1.
- CHANGELOG entry under [8.0.1].
Refs: #2033
Signed-off-by: Saurabh Jain <saurabhjain1592@gmail.com>
Signed-off-by: Saurabh Jain <saurabhjain1592@gmail.com>
saurabhjain1592
added a commit
that referenced
this pull request
May 8, 2026
The profile field added in #2013 / SDK PR #161 was removed in PR #170 before any v8.0.0 tag shipped. Customer-facing CHANGELOG should reflect what users experience, not internal flaps. Net effect of this scrub: - Delete the [8.0.1] section entirely. - Scrub `profile` mentions from the [8.0.0] section. - Revert version bump 8.0.1 → 8.0.0 in pom.xml + 2 example poms. Code state unchanged — main has the post-#170 telemetry surface (no profile field, no env-var read). Signed-off-by: Saurabh Jain <saurabhjain1592@gmail.com>
saurabhjain1592
added a commit
that referenced
this pull request
May 8, 2026
The profile field added in #2013 / SDK PR #161 was removed in PR #170 before any v8.0.0 tag shipped. Customer-facing CHANGELOG should reflect what users experience, not internal flaps. Net effect of this scrub: - Delete the [8.0.1] section entirely. - Scrub `profile` mentions from the [8.0.0] section. - Revert version bump 8.0.1 → 8.0.0 in pom.xml + 2 example poms. Code state unchanged — main has the post-#170 telemetry surface (no profile field, no env-var read). Signed-off-by: Saurabh Jain <saurabhjain1592@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The v1 telemetry schema (#169 / commit
f27c26b6) added aprofilepayload field sourced from
AXONFLOW_PROFILE. That env var was alreadyin use across the platform for governance enforcement (allowlist
dev|default|strict|compliance, see ADR-036 /platform/agent/profile.go).Meanwhile the v1 telemetry validator only accepts
dev|prod|unknown.The collision matrix:
AXONFLOW_PROFILE=devstrictcomplianceproductionAny customer setting
AXONFLOW_PROFILE=strictor=complianceforgovernance enforcement would silently have their telemetry pings rejected
with HTTP 400 from the checkpoint validator.
This patch drops the
profilefield from the telemetry payload entirely.The
deployment_modedimension (self_hosted | community_saas | unknown)already carries the topology signal
profilewas meant to add, andAXONFLOW_PROFILEreverts to its single governance-only purpose.Per #2033 brief, this is the Java leg of a 10-PR coordinated train (server
Changes
src/main/java/com/getaxonflow/sdk/telemetry/TelemetryReporter.java—remove
System.getenv("AXONFLOW_PROFILE")read, theprofilepayloadfield, and the doc comment block describing the field.
src/test/java/com/getaxonflow/sdk/telemetry/TelemetryReporterTest.java—convert the two
assertThat(get("profile")).asText().isEqualTo("unknown")assertions to
assertThat(has("profile")).isFalse(). Stronger thandropping the assertions: actively guards against the field re-appearing.
pom.xml— version 8.0.0 → 8.0.1.examples/explain-decision/pom.xml,examples/list-decisions/pom.xml—SDK dep version 8.0.0 → 8.0.1 to keep examples on the latest.
(
examples/basicandexamples/wcp-retry-idempotencywere already onolder versions and were left alone.)
CHANGELOG.md—[8.0.1]entry under Removed.Self-review audit
Hunk-by-hunk read of
git diffcomplete (5-question protocol perfeedback_self_review_is_mandatory_every_pr.md).Post-removal grep confirms removal is total:
The two remaining
profilehits are the absent-field guard assertions —intentional, the whole point of this PR.
No other Java telemetry callsites reference
Profile/profile(verifiedacross
src/mainandsrc/test). TheDeploymentModeandEndpointTypenested classes are untouched — those are different concepts (topology /
reachability), not the env-var-collided telemetry profile field.
Test plan
mvn test— 1236 tests, 0 failures, 0 errors, BUILD SUCCESSstaging-checkpoint.getaxonflow.comoncethe server-side leg of the train ships and is deployed to staging
(per #2033 train coordination).
Refs #2033
Skip-runtime-e2e justification
This PR is part of the #2033 coordinated train across 1 server + 9 client repos. Per the session-2033 brief, runtime proof is deferred to the post-server-merge staging-checkpoint deploy:
axonflow-enterprise#2035(server) merges +gh workflow run deploy-checkpoint.yml -f environment=stagingdeploys the new code tostaging-checkpoint.getaxonflow.com.profile) and (b) the resulting DDB row has noprofileattribute.runtime-e2e/profile_field_removal/EVIDENCE/<utc-ts>/post-deploy.Adding a same-PR
runtime-e2e/test here would either:lint-no-mocks-in-runtime-e2e.sh), orThe post-deploy proof against staging-checkpoint is the only meaningful runtime test for this train.