-
Notifications
You must be signed in to change notification settings - Fork 694
Anonymized Telemetry
Since Frappe Books is a Desktop app, there is no way for us to know whether anyone is using it.
The only indicator we have is the installer download count from Github's APIs. This is not very useful as someone could just download and delete the installer and the counter would increment.
Because of this, and to increase motivation in developing Frappe Books, we have decided to add anonymized telemetry.
Let's break it down:
- Telemetry is the collection and transmission of data. In this case, data regarding how Frappe Books is used is sent to our server.
- Anonymized means that no personal details are added to this data, i.e. by looking at it there is no way for us to know who you are or where exactly you are.
It is logged on the following events:
- App is started or stopped.
- Data is created, deleted, imported or exported.
For more details, you can check the code.
Data is essentially what action was performed and when it was performed. Here is the actual structure of the logged data.
interface Telemetry {
deviceId: string; // Unique id for each device
instanceId: string; // Unique id for each instance i.e. database file
timestamp: string; // When was the log made
country: string; // Country set during Setup
language: string; // Selected language.
platform: string; // "Mac" or "Linux" or "Windows"
openCount: number; // How many times the app has been opened
version: string; // The app's version. Eg: "v0.3.2.-beta.0"
verb: string; // What the event was. Eg: "created", "navigated"
noun: string; // On what the event was performed. Eg: "Payment"
more?: Record<string, unknown>; // Contextual information. Eg: navigation routes
}
The deviceId
and instanceId
are completely anonymized, we don't collect your
name or company name or some other personal information.
Since more
is ambiguous, you can:
- Take our word that it doesn't contain personal information.
- Check the code for assurance. The term to search for is
telemetry.log
, the third parameter ismore
.
Here's a reference to the full telemetry/types.ts
file.
And here's the telemetry source code.
Example of a single, actual telemetry log.
{
"country": "in",
"language": "English",
"deviceId": "39lkjj-zij9djjn",
"instanceId": "hsiogz-l3k6ma0x",
"version": "0.5.0-beta.0",
"openCount": 35,
"timestamp": "1653648899858",
"verb": "started",
"noun": "telemetry"
}
If you have any additional questions, you can either ask on our Telegram Group or raise an issue.