Context
We want to understand how developers are using shopware-cli. In order to do that we need to collect anonymous data about command usage. As today we have only project.create event which provides us limited information.
Naming convention
<group>.<action> — snake_case, hyphens become underscores. Full wire format: shopware_cli.<group>.<action> (prefix added by Track()).
Call site: go tracking.Track(...) — always async, non-blocking.
Privacy rules
- Never include: extension names, file/directory paths, shop URLs, hostnames, error message text, branch/tag names, flag values that accept arbitrary user input
- Allowed: fixed enums, booleans, integer counts, version strings from a known registry
Events
Global event for every command
Intent: Understand which commands are used most, how long they take, and whether they succeed.
| Tag |
Values |
Product question |
result |
success / cancelled / failure |
Which commands have the highest failure rate? Are users cancelling specific commands more than others? |
duration_ms |
integer |
How long does a command take to complete? |
cli_version |
version string |
Which CLI version was running - allows failure spikes to be correlated with specific releases. |
os |
os string |
E.g. Do certain commands fail more often on specific platforms? |
is_tui |
boolean |
Does user use TUI? |
project.upgrade_check
Intent: Which upgrades are being planned and what is blocking them?
| Tag |
Values |
Product question |
target_version |
version string |
Which future Shopware versions are developers actively checking compatibility for? |
has_blockers |
boolean |
Is upgrade blocked because of incompatible extensions? |
Acceptance criteria
Context
We want to understand how developers are using
shopware-cli. In order to do that we need to collect anonymous data about command usage. As today we have onlyproject.createevent which provides us limited information.Naming convention
<group>.<action>— snake_case, hyphens become underscores. Full wire format:shopware_cli.<group>.<action>(prefix added byTrack()).Call site:
go tracking.Track(...)— always async, non-blocking.Privacy rules
Events
Global event for every command
Intent: Understand which commands are used most, how long they take, and whether they succeed.
resultsuccess/cancelled/failureduration_mscli_versionosis_tuiproject.upgrade_checkIntent: Which upgrades are being planned and what is blocking them?
target_versionhas_blockersAcceptance criteria
go tracking.Track(...)DO_NOT_TRACKopt-out covers all new events