Skip to content

feat: make telemetry opt-out with a one-time notice#40

Merged
mgar merged 4 commits into
telemetry-proxyfrom
miguel/feat/acna-4599-opt-out
Jun 9, 2026
Merged

feat: make telemetry opt-out with a one-time notice#40
mgar merged 4 commits into
telemetry-proxyfrom
miguel/feat/acna-4599-opt-out

Conversation

@mgar

@mgar mgar commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Description

  • Switches the Adobe I/O CLI telemetry from opt-in to opt-out.
  • Minor fixes: trackEvent debug line now interpolates its values for readability.

Related Issue

Motivation and Context

Telemetry was effectively opt-in (a blocking first-run prompt), which under-collects usage data and is inconsistent with how it's described. Moving to opt-out (on by default, with a clear notice and easy
opt-out) is supported by the Adobe Developer Terms of Use §3.3 ("Developer Usage Data") and the General Terms §2.2(D) opt-out framework; our data is anonymous and opt-out remains available.

How Has This Been Tested?

  • Automated: jest --ci — 96 tests passing, 100% coverage; eslint clean.
  • Manual (installed the branch into aio-cli, Node 22):
    • aio telemetry --reset → next command shows the notice once (no prompt), then doesn't reprint.
    • aio telemetry → reports on by default.
    • aio telemetry off / --no-telemetry / AIO_TELEMETRY_DISABLED=true → telemetry suppressed (willSend=false).
    • Verified events post to the proxy (pointed at stage via AIO_TELEMETRY_POST_URL to avoid prod during testing).

Screenshots (if appropriate):

image

First-run notice (no prompt):

@adobe/aio-cli collects anonymous usage data to help us improve our products. Telemetry is on by default; read what we collect and how it is used here:
      https://developer.adobe.com/app-builder/docs/guides/telemetry/
To opt out, run `aio telemetry off` (or set AIO_TELEMETRY_DISABLED=true).

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • I have signed the Adobe Open Source CLA.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

mgar added 3 commits June 8, 2026 10:29
…A-4597)

Repoint DEFAULT_TELEMETRY_POST_URL from the stage namespace
(53444-aioclitelemetryproxy-stage) to production (53444-aioclitelemetryproxy),
now that the prod proxy is deployed and verified. Override via
aioTelemetry.postUrl or AIO_TELEMETRY_POST_URL is unchanged.
@mgar mgar requested a review from purplecabbage June 8, 2026 21:12
github-actions[bot]
github-actions Bot previously approved these changes Jun 8, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 PR Reviewer

This diff replaces the opt-in prompt (using inquirer) with a non-blocking opt-out notice, removes the inquirer dependency, updates the default telemetry URL from stage to production, and fixes the isEnabled() logic. The changes are well-structured, tests are updated to match, and the README is consistent. One minor issue: the notice() function is synchronous but is called with return removed in init.js — that's intentional and fine. No significant problems found.

LGTM! This PR looks good to merge.


💡 How to re-trigger

Comment /review or /pr-reviewer on this PR

Comment thread src/telemetry-lib.js Outdated
return `${productName} collects anonymous usage data to help us improve our products. ` +
'Telemetry is on by default; read what we collect and how it is used here:\n' +
` ${privacyPolicyLink || defaultPrivacyPolicyLink}\n` +
`To opt out, run \`${binName} telemetry off\` (or set AIO_TELEMETRY_DISABLED=true).`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this might encourage too many people to opt out ...
What if we just said,

@adobe/aio-cli collects anonymous usage data to help us improve our products.
Telemetry is on by default; read what we collect and how it is used here: <link>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with that. I changed the notice on e1f0b38.

Drop the explicit 'To opt out, run ...' line from the telemetry notice
(per @purplecabbage on PR #40) so it does not over-nudge opt-out; the
privacy link already covers how to opt out. Removes the now-unused
binName argument from getNoticeMessage/notice.
@github-actions github-actions Bot dismissed their stale review June 8, 2026 21:59

Superseded by new review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 PR Reviewer

The diff cleanly replaces the opt-in prompt flow (inquirer) with a non-blocking opt-out notice, removes the inquirer dependency, updates the default telemetry URL from staging to production, and fixes the isEnabled() check to correctly treat any non-true value as enabled. The changes are well-scoped, tests are updated accordingly, and the logic is straightforward. One minor issue: the notice() function is synchronous but trackEvent() is async — the returned promise is silently dropped, which is intentional per the fire-and-forget design but could mask unexpected errors in the notice path.

LGTM! This PR looks good to merge.


💡 How to re-trigger

Comment /review or /pr-reviewer on this PR

@mgar mgar requested a review from pru55e11 June 8, 2026 22:02
@mgar mgar merged commit 718b851 into telemetry-proxy Jun 9, 2026
4 checks passed
@mgar mgar deleted the miguel/feat/acna-4599-opt-out branch June 9, 2026 16:47
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.

2 participants