Privacy of BashSupport Pro
BashSupport Pro never sends metrics without your consent.
A notification or dialog is displayed at startup to ask for your consent. If you don’t opt-in to metrics, then nothing will be sent.
Metric data is a small piece of information to tell what’s happening and which features are used or unused. Data is sent in the form of events. An event is sent when something happens, e.g. when the Bash debugger was started.
- Where is the data sent?
- The data is sent to a self–hosted installation of OpenTelemetry Collector. The data is never shared with anyone else. The endpoint is https://metrics.j-a.dev, in case that you’re keeping a whitelist.
- What is not sent?
- No personal information is sent.
- This means that data like your hostname, your login name, or your own name are never sent.
- Your actions are not tracked. No unique IDs to identify you are sent.
- What is sent?
- Data is sent in the form of events. Each event has a name and a set of properties (name and value). The events are sent to learn what’s happening on a global scale, but not to track actions of individual users.
Error Reporting
Exception reports are also sent to the Sentry application above. Only the information which you entered into the dialog is sent. Please note, that the common properties shown above are also sent with the error report.
Transmitted Data
The following section shows exactly what’s sent. This list displays the data, which is used by the latest public release of BashSupport Pro.
I’m not aware of any other company offering such a list. Personally I strongly dislike tracking. I need some data to make sure BashSupport Pro is developing into the right direction — therefore I’m tracking software, not people. I try to be very open about what’s going on under the hood.
Common Properties
These are the properties which are sent with every event.
Property | Description |
---|---|
datetime Example: 2020-01-30T21:33:14.000000Z | Timestamp when the event is send to the server. |
environment Example: eap | A string to tell if the plugin is a development or stable version |
host.arch Example: amd64 | The CPU architecture. |
os.name Example: Windows | The name of the operating system you're using. |
os.version Example: 10.15.1 | The version of the operating system you're using. |
User Events
These are the events and properties which are sent when a user interacts with BashSupport Pro.
The common properties are sent with each event, but are not show again here. You can expand the “Properties” sections to see the properties of a specific event.
Event | Description and properties |
---|---|
caller_hierarchy | Fired when the caller hierarchy panel is refreshed |
debug_session_paused | Fired when a Bash debug session stopped at a breakpoint. |
debug_session_resumed | Fired when a Bash debug session was resumed. |
debug_session_started | Fired when a new debug session was startedProperties
|
debug_session_stopped | Fired when a Bash debug session terminated, either successfully or with an error. |
intention | Fired when an intention of BashSupport Pro was applied in a fileProperties
|
new_file_action | Fired when a new shell script file has been created using BashSupport Pro's new file actionProperties
|
newProject | Fired when a new shell project was created using the new project wizardProperties
|
open_file | Fired when a shell script file is openedProperties
|
plugin_load | Fired when the BashSupport Pro plugin is dynamically loaded, e.g. when a user installed it for the first time |
plugin_starting | Fired when the IDE is starting and the BashSupport Pro plugin is initializedProperties
|
quickfix | Fired when a quickfix of BashSupport Pro was applied in a fileProperties
|
refactoring_move_left_right | Fired when the refactoring "Move element left or right" was used |
refactoring_move_up_down | Fired when the refactoring "Move statement up or down" was used |
run_config_started | Fired when a run configuration is executedProperties
|
setup_wizard | Fired when the setup wizard of BashSupport Pro was opened |
structure_view | Fired when the structure view panel is shown |
test_bats | Fired when a bats-core run configuration is executedProperties
|
trial_end_notification | Fired when a notification was shown, which informs trial users that the trial expires soon. |
uninstalled | Fired when the BashSupport Pro plugin was uninstalled |
unlicensed_action | Fired when a feature is executed, but no valid license was found. A stack trace is included in the event data. |
Performance Events
These are the events and properties which are sent to track the performance of BashSupport Pro. The events names which are shown below are mostly prefixes. The real events usually add a suffix to specify the context, e.g. the shell script language.
Performance events are can be nested to help analyze slow parts of the software. For example, a user event can wrap several performance events.
The common properties are sent with each event, but are not show again here. You can expand the “Properties” sections to see the properties of a specific event.
Event | Description and properties |
---|---|
action | Fired when an action of BashSupport Pro is executedProperties
|
completion | Fired when a code completion contributor was invoked, e.g. to fill-in built-in commands. |
completion | Fired when a command was sent to shell debugger backend, e.g. bashdb. |
formatter | Fired when a shell script is formatted.Properties
|
goToDefinition | Fired when 'Go to closest definition' was called for a shell script reference. |
index | Fired when a shell script index is created, for example when a project is opened. |
indexQuery | Fired when a shell script index is queried, for example when resolving a variable reference. |
inspection | Fired when an inspection of BashSupport Pro is executed, either for a single file or in batch mode. |
inspectionAction | Fired for logic executed as part of a BashSupport Pro inspection |
light_parser | Fired when a shell script file is parsed.Properties
|
parser | Fired when a shell script file is parsed.Properties
|
psiIndexWalk | Fired when an index of BashSupport Pro is traversed, for example when resolving a variable reference. |
psiTreeWalk | Fired when the syntax tree of a shell script file is iterated, for example when resolving a variable reference |
quickDoc | Fired when quick documentation of BashSupport Pro is requested |
reference | Fired when a reference to a shell script definition is resolved, for example a variable or function reference. |
shellcheck | Wraps the execution of the ShellCheck annotator |
shellcheck.annotate | Annotation phase of the ShellCheck annotator |
shellcheck.apply | apply phase of the ShellCheck annotator |
shellcheck.collectExecutionParams | Info collection phase of the ShellCheck annotator |
shellcheck.collectInfo | Info collection phase of the ShellCheck annotator |
shellcheck.execute | Process execution phase of the ShellCheck annotator |
shellcheck.parseJSON | parseJSON phase of the ShellCheck annotator |
shelldbIO | Fired when an internal debugger step was executed. |
stubQuery | Fired when a so-called stub index of a shell script file is queried, for example when locating a function definition. |
Attributes
Attributes are named key-value pairs sent with user events or performance events. This list partially duplicates the parameters listed for the events above. These attributes may be defined for events even if they’re not shown in the table of the particular event.
Event | Description and properties |
---|---|
action.id | ID of a BashSupport action |
batsCore.name_filter | Boolean value indicating if a bats-core run configuration has a name filter set |
batsCore.parallel | The number of parallel bats-core tests |
batsCore.path_mapper | The path mapper used for bats-core |
batsCore.recursive | Boolean value indicating if a bats-core run configuration is recursive |
errorReport.attachment.data | User-defined attachment name sent with a BashSupport error report |
errorReport.attachment.name | User-defined attachment name sent with a BashSupport error report |
errorReport.email | User-defined email sent with a BashSupport error report |
errorReport.last_action | Last executed action before an exception of BashSupport Pro occurred |
errorReport.notes | User-defined notes sent with a BashSupport error report |
file.extension | File extension of a file processed by BashSupport Pro |
file.shellType | Shell type of a file processed by BashSupport Pro |
file.size | File size of a file processed by BashSupport Pro |
file.type | File type name of a file processed by BashSupport Pro |
fileTemplate.name | Shell script template name to create a new file |
ide.build | Build of the IDE |
ide.lang | Active language pack of the IDE |
ide.major | Major version of the IDE |
ide.type | Product code identifier of the IDE |
index.resultSize | Number of items for a file index |
intention.name | Name of the BashSupport Pro intention |
jdk.vendor | JDK vendor used to run the IDE |
jdk.vendor | JDK vendor used to run the IDE |
newProject.module | Boolean flag indicating if a new project or new module is created |
plugin.id | ID of the installed BashSupport Pro plugin |
plugin.licensed | Boolean value indicating if the plugin is licensed |
plugin.release_date | Release date of the installed BashSupport Pro plugin |
plugin.shell_installed | Flag if the JetBrains Shell plugin is installed at the same time as BashSupport Pro |
plugin.trial | Boolean value indicating if the plugin is using a trial license |
plugin.trial_days | Remaining trial days if a trial license is used |
plugin.version | Release version of the installed BashSupport Pro plugin |
process.exitCode | Exit code of a process launched by BashSupport Pro |
process.timeout | Boolean flag indicating if a processed launched by BashSupport Pro times out |
quickDoc.result | Boolean flag indicating if quick documentation provided a result |
quickFix.name | Name of the BashSupport Pro quickfix |
runConfig.charset | Output charset of the run configuration |
runConfig.interpreter_type | Interpreter type of the run configuration |
runConfig.output_type | Output target of the run configuration |
runConfig.remote | Boolean value indicating if a remote run target was used |
runConfig.type | Type of the run configuration |
shellcheck.results | Number of results returned by ShellCheck |