Files
GitJournal/lib/analytics/analytics.proto
Vishesh Handa e61346cdf3 Analytics: Use unsigned ints
Also change type to 64 bit wherever needed.

The cpuFreq value seems to be too high, discarding it for now.
2021-08-12 00:12:02 +02:00

185 lines
3.7 KiB
Protocol Buffer

syntax = "proto3";
package gitjournal;
option go_package = "github.com/gitjournal/analytics_backend";
service AnalyticsService {
rpc SendData(AnalyticsMessage) returns (AnalyticsReply) {}
}
message AnalyticsReply {}
message AnalyticsMessage {
string appId = 1;
repeated Event events = 2;
DeviceInfo deviceInfo = 3;
PackageInfo packageInfo = 4;
}
// message Any {
// oneof value {
// string stringValue = 1;
// int64 intValue = 2;
// double doubleValue = 3;
// bool boolValue = 4;
// }
// }
message Event {
string name = 1;
uint64 date = 2; // unix timestamp
map<string, string> params = 3;
string userId = 4;
string pseudoId = 5;
map<string, string> userProperties = 6;
string sessionID = 7;
uint64 userFirstTouchTimestamp = 8;
}
message DeviceInfo {
Platform platform = 1;
oneof deviceInfo {
AndroidDeviceInfo androidDeviceInfo = 11;
IosDeviceInfo iosDeviceInfo = 12;
LinuxDeviceInfo linuxDeviceInfo = 13;
MacOSDeviceInfo macOSDeviceInfo = 14;
WindowsDeviceInfo windowsDeviceInfo = 15;
WebBrowserInfo webBrowserInfo = 16;
}
}
message PackageInfo {
string appName = 1;
string packageName = 2;
string version = 3;
string buildNumber = 4;
string buildSignature = 5;
}
enum Platform {
android = 0;
ios = 1;
linux = 2;
macos = 3;
windows = 4;
web = 5;
}
message AndroidBuildVersion {
string baseOS = 1;
string codename = 2;
string incremental = 3;
uint32 previewSdkInt = 4;
string release = 5;
uint32 sdkInt = 6;
string securityPatch = 7;
}
message AndroidDeviceInfo {
AndroidBuildVersion version = 1;
string board = 2;
string bootloader = 3;
string brand = 4;
string device = 5;
string display = 6;
string fingerprint = 7;
string hardware = 8;
string host = 9;
string id = 10;
string manufacturer = 11;
string model = 12;
string product = 13;
repeated string supported32BitAbis = 14;
repeated string supported64BitAbis = 15;
repeated string supportedAbis = 16;
string tags = 17;
string type = 18;
bool isPhysicalDevice = 19;
string androidId = 20;
repeated string systemFeatures = 21;
}
message IosUtsname {
string sysname = 1;
string nodename = 2;
string release = 3;
string version = 4;
string machine = 5;
}
message IosDeviceInfo {
string name = 1;
string systemName = 2;
string systemVersion = 3;
string model = 4;
string localizedModel = 5;
string identifierForVendor = 6;
bool isPhysicalDevice = 7;
IosUtsname utsname = 8;
}
message LinuxDeviceInfo {
string name = 1;
string version = 2;
string id = 3;
repeated string idLike = 4;
string versionCodename = 5;
string versionId = 6;
string prettyName = 7;
string buildId = 8;
string variant = 9;
string variantId = 10;
string machineId = 11;
}
message MacOSDeviceInfo {
string computerName = 1;
string hostName = 2;
string arch = 3;
string model = 4;
string kernelVersion = 5;
string osRelease = 6;
uint32 activeCPUs = 7;
uint64 memorySize = 8;
uint64 cpuFrequency = 9;
}
message WindowsDeviceInfo {
string computerName = 1;
uint32 numberOfCores = 2;
uint32 systemMemoryInMegabytes = 3;
}
enum BrowserName {
unknown = 0;
firefox = 1;
samsungInternet = 2;
opera = 3;
msie = 4;
edge = 5;
chrome = 6;
safari = 7;
}
message WebBrowserInfo {
BrowserName browserName = 1;
string appCodeName = 2;
string appName = 3;
string appVersion = 4;
uint64 deviceMemory = 5;
string language = 6;
repeated string languages = 7;
string platform = 8;
string product = 9;
string productSub = 10;
string userAgent = 11;
string vendor = 12;
string vendorSub = 13;
uint32 hardwareConcurrency = 14;
uint32 maxTouchPoints = 15;
}