ionic-team / ionic-cli

The Ionic command-line interface
MIT License
2k stars 655 forks source link

Telemetry is on by default **with no warning** #4900

Open reviewher opened 2 years ago

reviewher commented 2 years ago

Description:

Ionic collects telemetry by default, does not warn users, does not mention it on first run, and hides the config in a way that cannot be discovered simply with a ionic help (this used to work in ionic v3 when telemetry was a top-level command.

Steps to Reproduce:

1) remove local ionic settings:

rm -rf ~/.ionic/

2) in a new window, just run the help:

npx @ionic/cli help

3) observe that ~/.ionic/config.json was created with "telemetry": true and scan the terminal output

Output:

package.json:

{
  "version": "6.20.1",
  "telemetry": true,
  "npmClient": "npm",
  "tokens.telemetry": "...UUID..."
}

Local screen output makes no mention of the telemetry setting:

   _             _
  (_) ___  _ __ (_) ___
  | |/ _ \| '_ \| |/ __|
  | | (_) | | | | | (__
  |_|\___/|_| |_|_|\___| CLI 6.20.1

  Usage:

    $ ionic <command> [<args>] [--help] [--verbose] [--quiet] [--no-interactive] [--no-color] [--confirm] [options]

  Global Commands:

    completion ...................... (experimental) Enables tab-completion for
                                      Ionic CLI commands.
    config <subcommand> ............. Manage CLI and project config values
                                      (subcommands: get, set, unset)
    deploy <subcommand> ............. (paid) Appflow Deploy functionality
                                      (subcommands: manifest)
    docs ............................ Open the Ionic documentation website
    info ............................ Print project, system, and environment
                                      information
    init ............................ (beta) Initialize existing projects with
                                      Ionic
    login ........................... Log in to Ionic
    logout .......................... Log out of Ionic
    signup .......................... Create an Ionic account
    ssh <subcommand> ................ Commands for configuring SSH keys
                                      (subcommands: add, delete, generate, list,
                                      setup, use)
    start ........................... Create a new project

  Project Commands:

    You are not in a project directory.

NOTE: THERE IS NO TELEMETRY WARNING ON FIRST RUN WITH ANY COMMAND

If you wipe the config and start a new project without the wizard, you can search the output and notice that it never once mentions the telemetry.

idevwebs commented 1 year ago

Where's the response on this?

That is absolutely shady and a sure way to erode trust.

Going to troubleshoot the serve command, I saw this in the output:

... ... ... ionic:lib:serve } +0ms ionic:lib:telemetry Sending telemetry for command: 'ionic serve' [ ionic:lib:telemetry '--external', ionic:lib:telemetry '--verbose', ionic:lib:telemetry '--interactive', ionic:lib:telemetry '--color', ionic:lib:telemetry '--host=yourprivatedomainhere.tld' ionic:lib:telemetry ] +0ms ionic:lib:hooks Looking for ionic:serve:before npm script. +0ms ... ... ...

This is bs guys.

For those who do not appreciate this, try this:

ionic config set -g telemetry false