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.

PropertyDescription
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.

EventDescription and properties
caller_hierarchyFired when the caller hierarchy panel is refreshed
debug_session_pausedFired when a Bash debug session stopped at a breakpoint.
debug_session_resumedFired when a Bash debug session was resumed.
debug_session_startedFired when a new debug session was started
Properties
file_ext (example: “sh”)
File extension of the debugged file
config_type (example: “LegacyShRunConfiguration”)
Type of the executed run configuration
interpreter_type (example: “automatic”)
The selected default interpreter type
remote_target (example: “false”)
Boolean value to tell if executed on a remote run target
debug_session_stoppedFired when a Bash debug session terminated, either successfully or with an error.
intentionFired when an intention of BashSupport Pro was applied in a file
Properties
intention_name (example: “ConvertToQuotedString”)
The ID of the applied intention
new_file_actionFired when a new shell script file has been created using BashSupport Pro's new file action
Properties
template (example: “BashSupport Pro Bash”)
Name of the file template
file_ext (example: “bash”)
The file extension of the new file
newProjectFired when a new shell project was created using the new project wizard
Properties
newProject.module
Boolean value indicating if a new project or a new module is created by the wizard
open_fileFired when a shell script file is opened
Properties
file_type (example: “bash”)
The file type of the new file
plugin_loadFired when the BashSupport Pro plugin is dynamically loaded, e.g. when a user installed it for the first time
plugin_startingFired when the IDE is starting and the BashSupport Pro plugin is initialized
Properties
plugin.id (example: “pro.bashsupport”)
The ID of the BashSupport Pro plugin
plugin.release_date (example: “20221004”)
Release date of the BashSupport Pro plugin
plugin.version (example: “300”)
Release version of the BashSupport Pro plugin
quickfixFired when a quickfix of BashSupport Pro was applied in a file
Properties
quickfix_name (example: “CreateShellcheckSourceDirective”)
The ID of the applied quickfix
refactoring_move_left_rightFired when the refactoring "Move element left or right" was used
refactoring_move_up_downFired when the refactoring "Move statement up or down" was used
run_config_startedFired when a run configuration is executed
Properties
file_ext (example: “sh”)
File extension of the debugged file
type (example: “window”)
Type of the execution target: window or terminal
config_type (example: “LegacyShRunConfiguration”)
Type of the executed run configuration
interpreter_type (example: “automatic”)
The selected default interpreter type
charset (example: “UTF-8”)
The charset used to parse the output
remote_target (example: “false”)
Boolean value to tell if executed on a remote run target
setup_wizardFired when the setup wizard of BashSupport Pro was opened
structure_viewFired when the structure view panel is shown
test_batsFired when a bats-core run configuration is executed
Properties
name_filter (example: “false”)
Boolean value to tell if the run configuration is filtering tests by name
recursive (example: “true”)
Boolean value to tell if the run configuration is recursively searching for tests
parallel (example: “1”)
Integer value to tell how many tests are executed in parallel
path_mapper (example: “Automatic”)
The path mapping used for this run configuration
trial_end_notificationFired when a notification was shown, which informs trial users that the trial expires soon.
uninstalledFired when the BashSupport Pro plugin was uninstalled
unlicensed_actionFired 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.

EventDescription and properties
actionFired when an action of BashSupport Pro is executed
Properties
action.id (example: “bashpro.setupWizardAction”)
Action ID
completionFired when a code completion contributor was invoked, e.g. to fill-in built-in commands.
completionFired when a command was sent to shell debugger backend, e.g. bashdb.
formatterFired when a shell script is formatted.
Properties
file.size (example: “2048”)
File size of a file processed by BashSupport Pro
process.exitCode (example: “1”)
Exit code of a process launched by BashSupport Pro
goToDefinitionFired when 'Go to closest definition' was called for a shell script reference.
indexFired when a shell script index is created, for example when a project is opened.
indexQueryFired when a shell script index is queried, for example when resolving a variable reference.
inspectionFired when an inspection of BashSupport Pro is executed, either for a single file or in batch mode.
inspectionActionFired for logic executed as part of a BashSupport Pro inspection
light_parserFired when a shell script file is parsed.
Properties
file.size (example: “2048”)
File size of a file processed by BashSupport Pro
parserFired when a shell script file is parsed.
Properties
file.size (example: “2048”)
File size of a file processed by BashSupport Pro
psiIndexWalkFired when an index of BashSupport Pro is traversed, for example when resolving a variable reference.
psiTreeWalkFired when the syntax tree of a shell script file is iterated, for example when resolving a variable reference
quickDocFired when quick documentation of BashSupport Pro is requested
referenceFired when a reference to a shell script definition is resolved, for example a variable or function reference.
shellcheckWraps the execution of the ShellCheck annotator
shellcheck.annotateAnnotation phase of the ShellCheck annotator
shellcheck.applyapply phase of the ShellCheck annotator
shellcheck.collectExecutionParamsInfo collection phase of the ShellCheck annotator
shellcheck.collectInfoInfo collection phase of the ShellCheck annotator
shellcheck.executeProcess execution phase of the ShellCheck annotator
shellcheck.parseJSONparseJSON phase of the ShellCheck annotator
shelldbIOFired when an internal debugger step was executed.
stubQueryFired 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.

EventDescription and properties
action.idID of a BashSupport action
batsCore.name_filterBoolean value indicating if a bats-core run configuration has a name filter set
batsCore.parallelThe number of parallel bats-core tests
batsCore.path_mapperThe path mapper used for bats-core
batsCore.recursiveBoolean value indicating if a bats-core run configuration is recursive
errorReport.attachment.dataUser-defined attachment name sent with a BashSupport error report
errorReport.attachment.nameUser-defined attachment name sent with a BashSupport error report
errorReport.emailUser-defined email sent with a BashSupport error report
errorReport.last_actionLast executed action before an exception of BashSupport Pro occurred
errorReport.notesUser-defined notes sent with a BashSupport error report
file.extensionFile extension of a file processed by BashSupport Pro
file.shellTypeShell type of a file processed by BashSupport Pro
file.sizeFile size of a file processed by BashSupport Pro
file.typeFile type name of a file processed by BashSupport Pro
fileTemplate.nameShell script template name to create a new file
ide.buildBuild of the IDE
ide.langActive language pack of the IDE
ide.majorMajor version of the IDE
ide.typeProduct code identifier of the IDE
index.resultSizeNumber of items for a file index
intention.nameName of the BashSupport Pro intention
jdk.vendorJDK vendor used to run the IDE
jdk.vendorJDK vendor used to run the IDE
newProject.moduleBoolean flag indicating if a new project or new module is created
plugin.idID of the installed BashSupport Pro plugin
plugin.licensedBoolean value indicating if the plugin is licensed
plugin.release_dateRelease date of the installed BashSupport Pro plugin
plugin.shell_installedFlag if the JetBrains Shell plugin is installed at the same time as BashSupport Pro
plugin.trialBoolean value indicating if the plugin is using a trial license
plugin.trial_daysRemaining trial days if a trial license is used
plugin.versionRelease version of the installed BashSupport Pro plugin
process.exitCodeExit code of a process launched by BashSupport Pro
process.timeoutBoolean flag indicating if a processed launched by BashSupport Pro times out
quickDoc.resultBoolean flag indicating if quick documentation provided a result
quickFix.nameName of the BashSupport Pro quickfix
runConfig.charsetOutput charset of the run configuration
runConfig.interpreter_typeInterpreter type of the run configuration
runConfig.output_typeOutput target of the run configuration
runConfig.remoteBoolean value indicating if a remote run target was used
runConfig.typeType of the run configuration
shellcheck.resultsNumber of results returned by ShellCheck
© 2020–2024 Joachim Ansorg
Imprint
Privacy Policy
Legal