Introduction

IPM 0.14.0 introduces configurable diagnostic levels. When enabled, the CLI sends telemetry about the current session to the IPMHub API. This information is used for troubleshooting, support, and analytics.

Diagnostics are disabled by default (none). No data is sent unless you opt in.

Diagnostics Levels

Three levels are available:

Level Description
none No session data is sent. This is the default.
minimal Sends basic information about the CLI run.
full Sends detailed contextual information about the run environment.

Minimal

The minimal level sends the following at the start and end of each CLI session:

  • CLI version
  • Command executed
  • Culture / locale
  • Exit code
  • OS platform, version, and architecture
  • .NET runtime specs

Full

The full level sends everything in minimal, plus:

  • CI environment details — detected automatically if the CLI is run from Azure DevOps, GitHub Actions, GitLab CI, Jenkins, or TeamCity
  • Git working copy information — if the current directory is inside a Git repository
  • Custom metadata — up to 10 key/value pairs provided via IPM_META_{NAME} environment variables (e.g. IPM_META_ENVIRONMENT=production)
  • CLI log — included if the exit code is not 0
  • Stack trace — included if an unhandled exception occurred

Configuration

Using the --diagnostics Parameter

Pass --diagnostics to any command:

ipm sync --diagnostics full
ipm add -p mycompany/my-module --diagnostics minimal

Using the Environment Variable

Set IPMHUBCLI_DIAGNOSTICS to none, minimal, or full:

Linux/macOS:

export IPMHUBCLI_DIAGNOSTICS=full
ipm sync

Windows:

set IPMHUBCLI_DIAGNOSTICS=full
ipm sync

Priority

The effective diagnostics level is determined in this order (highest wins):

  1. --diagnostics parameter
  2. IPMHUBCLI_DIAGNOSTICS environment variable
  3. Diagnostics level configured on the client secret (when using non-interactive authentication)
  4. Default: none

Custom Metadata Fields

When using full diagnostics, you can attach up to 10 custom metadata fields to your session by setting environment variables named IPM_META_{NAME}:

Linux/macOS:

export IPM_META_ENVIRONMENT=production
export IPM_META_TEAM=platform
ipm sync --diagnostics full

Windows:

set IPM_META_ENVIRONMENT=production
set IPM_META_TEAM=platform
ipm sync --diagnostics full

This is useful when running the CLI in multiple environments or pipelines and you want to distinguish sessions in the IPMHub portal.

Client Secrets and Diagnostics

When authenticating with a client secret, the diagnostics level configured on the client secret in the IPMHub portal is used by default. You can still override this with the --diagnostics parameter or IPMHUBCLI_DIAGNOSTICS environment variable.

This allows organizations to enforce a minimum diagnostics level for automated pipelines through the client secret configuration, while still allowing per-run overrides.