feat(GODT-2712): Feed config_status with user action while pending.

This commit is contained in:
Romain LE JEUNE
2023-06-29 17:04:54 +02:00
committed by Romain Le Jeune
parent 1f79e3b0a7
commit 238929c3ec
19 changed files with 1136 additions and 109 deletions

View File

@ -4803,8 +4803,8 @@ var file_bridge_proto_rawDesc = []byte{
0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x4c, 0x53,
0x5f, 0x43, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52,
0x4f, 0x52, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x4c, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f,
0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0x89,
0x1f, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x43, 0x68, 0x65,
0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xe2,
0x20, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x43, 0x68, 0x65,
0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
@ -5044,19 +5044,33 @@ var file_bridge_proto_rawDesc = []byte{
0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70,
0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
0x42, 0x75, 0x67, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69,
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x4d,
0x61, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67,
0x65, 0x2f, 0x76, 0x33, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x72,
0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x11, 0x41, 0x75,
0x74, 0x6f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x12,
0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x10, 0x4b, 0x42, 0x41, 0x72, 0x74, 0x69, 0x63,
0x6c, 0x65, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
0x3f, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x72,
0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01,
0x12, 0x41, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72,
0x65, 0x61, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
0x70, 0x74, 0x79, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x6e, 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
@ -5266,67 +5280,73 @@ var file_bridge_proto_depIdxs = []int32{
71, // 112: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue
71, // 113: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue
18, // 114: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest
19, // 115: grpc.Bridge.RunEventStream:input_type -> grpc.EventStreamRequest
72, // 116: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty
71, // 117: grpc.Bridge.CheckTokens:output_type -> google.protobuf.StringValue
72, // 118: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty
8, // 119: grpc.Bridge.GuiReady:output_type -> grpc.GuiReadyResponse
72, // 120: grpc.Bridge.Quit:output_type -> google.protobuf.Empty
72, // 121: grpc.Bridge.Restart:output_type -> google.protobuf.Empty
73, // 122: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue
72, // 123: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty
73, // 124: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue
72, // 125: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty
73, // 126: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue
72, // 127: grpc.Bridge.SetIsAllMailVisible:output_type -> google.protobuf.Empty
73, // 128: grpc.Bridge.IsAllMailVisible:output_type -> google.protobuf.BoolValue
72, // 129: grpc.Bridge.SetIsTelemetryDisabled:output_type -> google.protobuf.Empty
73, // 130: grpc.Bridge.IsTelemetryDisabled:output_type -> google.protobuf.BoolValue
71, // 131: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue
72, // 132: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty
71, // 133: grpc.Bridge.Version:output_type -> google.protobuf.StringValue
71, // 134: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue
71, // 135: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue
71, // 136: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue
71, // 137: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue
71, // 138: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue
72, // 139: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty
71, // 140: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue
71, // 141: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue
72, // 142: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty
72, // 143: grpc.Bridge.ExportTLSCertificates:output_type -> google.protobuf.Empty
72, // 144: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty
72, // 145: grpc.Bridge.SetMainExecutable:output_type -> google.protobuf.Empty
72, // 146: grpc.Bridge.Login:output_type -> google.protobuf.Empty
72, // 147: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty
72, // 148: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty
72, // 149: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty
72, // 150: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty
72, // 151: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty
72, // 152: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty
73, // 153: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue
71, // 154: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue
72, // 155: grpc.Bridge.SetDiskCachePath:output_type -> google.protobuf.Empty
72, // 156: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty
73, // 157: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue
12, // 158: grpc.Bridge.MailServerSettings:output_type -> grpc.ImapSmtpSettings
72, // 159: grpc.Bridge.SetMailServerSettings:output_type -> google.protobuf.Empty
71, // 160: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue
73, // 161: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue
13, // 162: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse
72, // 163: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty
71, // 164: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue
17, // 165: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse
14, // 166: grpc.Bridge.GetUser:output_type -> grpc.User
72, // 167: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty
72, // 168: grpc.Bridge.SendBadEventUserFeedback:output_type -> google.protobuf.Empty
72, // 169: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty
72, // 170: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty
72, // 171: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty
20, // 172: grpc.Bridge.RunEventStream:output_type -> grpc.StreamEvent
72, // 173: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty
117, // [117:174] is the sub-list for method output_type
60, // [60:117] is the sub-list for method input_type
72, // 115: grpc.Bridge.ReportBugClicked:input_type -> google.protobuf.Empty
71, // 116: grpc.Bridge.AutoconfigClicked:input_type -> google.protobuf.StringValue
71, // 117: grpc.Bridge.KBArticleClicked:input_type -> google.protobuf.StringValue
19, // 118: grpc.Bridge.RunEventStream:input_type -> grpc.EventStreamRequest
72, // 119: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty
71, // 120: grpc.Bridge.CheckTokens:output_type -> google.protobuf.StringValue
72, // 121: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty
8, // 122: grpc.Bridge.GuiReady:output_type -> grpc.GuiReadyResponse
72, // 123: grpc.Bridge.Quit:output_type -> google.protobuf.Empty
72, // 124: grpc.Bridge.Restart:output_type -> google.protobuf.Empty
73, // 125: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue
72, // 126: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty
73, // 127: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue
72, // 128: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty
73, // 129: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue
72, // 130: grpc.Bridge.SetIsAllMailVisible:output_type -> google.protobuf.Empty
73, // 131: grpc.Bridge.IsAllMailVisible:output_type -> google.protobuf.BoolValue
72, // 132: grpc.Bridge.SetIsTelemetryDisabled:output_type -> google.protobuf.Empty
73, // 133: grpc.Bridge.IsTelemetryDisabled:output_type -> google.protobuf.BoolValue
71, // 134: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue
72, // 135: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty
71, // 136: grpc.Bridge.Version:output_type -> google.protobuf.StringValue
71, // 137: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue
71, // 138: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue
71, // 139: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue
71, // 140: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue
71, // 141: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue
72, // 142: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty
71, // 143: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue
71, // 144: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue
72, // 145: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty
72, // 146: grpc.Bridge.ExportTLSCertificates:output_type -> google.protobuf.Empty
72, // 147: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty
72, // 148: grpc.Bridge.SetMainExecutable:output_type -> google.protobuf.Empty
72, // 149: grpc.Bridge.Login:output_type -> google.protobuf.Empty
72, // 150: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty
72, // 151: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty
72, // 152: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty
72, // 153: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty
72, // 154: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty
72, // 155: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty
73, // 156: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue
71, // 157: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue
72, // 158: grpc.Bridge.SetDiskCachePath:output_type -> google.protobuf.Empty
72, // 159: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty
73, // 160: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue
12, // 161: grpc.Bridge.MailServerSettings:output_type -> grpc.ImapSmtpSettings
72, // 162: grpc.Bridge.SetMailServerSettings:output_type -> google.protobuf.Empty
71, // 163: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue
73, // 164: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue
13, // 165: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse
72, // 166: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty
71, // 167: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue
17, // 168: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse
14, // 169: grpc.Bridge.GetUser:output_type -> grpc.User
72, // 170: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty
72, // 171: grpc.Bridge.SendBadEventUserFeedback:output_type -> google.protobuf.Empty
72, // 172: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty
72, // 173: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty
72, // 174: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty
72, // 175: grpc.Bridge.ReportBugClicked:output_type -> google.protobuf.Empty
72, // 176: grpc.Bridge.AutoconfigClicked:output_type -> google.protobuf.Empty
72, // 177: grpc.Bridge.KBArticleClicked:output_type -> google.protobuf.Empty
20, // 178: grpc.Bridge.RunEventStream:output_type -> grpc.StreamEvent
72, // 179: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty
120, // [120:180] is the sub-list for method output_type
60, // [60:120] is the sub-list for method input_type
60, // [60:60] is the sub-list for extension type_name
60, // [60:60] is the sub-list for extension extendee
0, // [0:60] is the sub-list for field type_name

View File

@ -98,6 +98,11 @@ service Bridge {
rpc RemoveUser(google.protobuf.StringValue) returns (google.protobuf.Empty);
rpc ConfigureUserAppleMail(ConfigureAppleMailRequest) returns (google.protobuf.Empty);
// Telemetry
rpc ReportBugClicked(google.protobuf.Empty) returns (google.protobuf.Empty);
rpc AutoconfigClicked(google.protobuf.StringValue) returns (google.protobuf.Empty);
rpc KBArticleClicked(google.protobuf.StringValue) returns (google.protobuf.Empty);
// Server -> Client event stream
rpc RunEventStream(EventStreamRequest) returns (stream StreamEvent); // Keep streaming until StopEventStream is called.
rpc StopEventStream(google.protobuf.Empty) returns (google.protobuf.Empty);

View File

@ -86,6 +86,10 @@ type BridgeClient interface {
LogoutUser(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error)
RemoveUser(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error)
ConfigureUserAppleMail(ctx context.Context, in *ConfigureAppleMailRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Telemetry
ReportBugClicked(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
AutoconfigClicked(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error)
KBArticleClicked(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Server -> Client event stream
RunEventStream(ctx context.Context, in *EventStreamRequest, opts ...grpc.CallOption) (Bridge_RunEventStreamClient, error)
StopEventStream(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
@ -594,6 +598,33 @@ func (c *bridgeClient) ConfigureUserAppleMail(ctx context.Context, in *Configure
return out, nil
}
func (c *bridgeClient) ReportBugClicked(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/grpc.Bridge/ReportBugClicked", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *bridgeClient) AutoconfigClicked(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/grpc.Bridge/AutoconfigClicked", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *bridgeClient) KBArticleClicked(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/grpc.Bridge/KBArticleClicked", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *bridgeClient) RunEventStream(ctx context.Context, in *EventStreamRequest, opts ...grpc.CallOption) (Bridge_RunEventStreamClient, error) {
stream, err := c.cc.NewStream(ctx, &Bridge_ServiceDesc.Streams[0], "/grpc.Bridge/RunEventStream", opts...)
if err != nil {
@ -701,6 +732,10 @@ type BridgeServer interface {
LogoutUser(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error)
RemoveUser(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error)
ConfigureUserAppleMail(context.Context, *ConfigureAppleMailRequest) (*emptypb.Empty, error)
// Telemetry
ReportBugClicked(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
AutoconfigClicked(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error)
KBArticleClicked(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error)
// Server -> Client event stream
RunEventStream(*EventStreamRequest, Bridge_RunEventStreamServer) error
StopEventStream(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
@ -876,6 +911,15 @@ func (UnimplementedBridgeServer) RemoveUser(context.Context, *wrapperspb.StringV
func (UnimplementedBridgeServer) ConfigureUserAppleMail(context.Context, *ConfigureAppleMailRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method ConfigureUserAppleMail not implemented")
}
func (UnimplementedBridgeServer) ReportBugClicked(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method ReportBugClicked not implemented")
}
func (UnimplementedBridgeServer) AutoconfigClicked(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method AutoconfigClicked not implemented")
}
func (UnimplementedBridgeServer) KBArticleClicked(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method KBArticleClicked not implemented")
}
func (UnimplementedBridgeServer) RunEventStream(*EventStreamRequest, Bridge_RunEventStreamServer) error {
return status.Errorf(codes.Unimplemented, "method RunEventStream not implemented")
}
@ -1885,6 +1929,60 @@ func _Bridge_ConfigureUserAppleMail_Handler(srv interface{}, ctx context.Context
return interceptor(ctx, in, info, handler)
}
func _Bridge_ReportBugClicked_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(emptypb.Empty)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(BridgeServer).ReportBugClicked(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/grpc.Bridge/ReportBugClicked",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(BridgeServer).ReportBugClicked(ctx, req.(*emptypb.Empty))
}
return interceptor(ctx, in, info, handler)
}
func _Bridge_AutoconfigClicked_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(wrapperspb.StringValue)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(BridgeServer).AutoconfigClicked(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/grpc.Bridge/AutoconfigClicked",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(BridgeServer).AutoconfigClicked(ctx, req.(*wrapperspb.StringValue))
}
return interceptor(ctx, in, info, handler)
}
func _Bridge_KBArticleClicked_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(wrapperspb.StringValue)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(BridgeServer).KBArticleClicked(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/grpc.Bridge/KBArticleClicked",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(BridgeServer).KBArticleClicked(ctx, req.(*wrapperspb.StringValue))
}
return interceptor(ctx, in, info, handler)
}
func _Bridge_RunEventStream_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(EventStreamRequest)
if err := stream.RecvMsg(m); err != nil {
@ -2151,6 +2249,18 @@ var Bridge_ServiceDesc = grpc.ServiceDesc{
MethodName: "ConfigureUserAppleMail",
Handler: _Bridge_ConfigureUserAppleMail_Handler,
},
{
MethodName: "ReportBugClicked",
Handler: _Bridge_ReportBugClicked_Handler,
},
{
MethodName: "AutoconfigClicked",
Handler: _Bridge_AutoconfigClicked_Handler,
},
{
MethodName: "KBArticleClicked",
Handler: _Bridge_KBArticleClicked_Handler,
},
{
MethodName: "StopEventStream",
Handler: _Bridge_StopEventStream_Handler,

View File

@ -0,0 +1,40 @@
// Copyright (c) 2023 Proton AG
//
// This file is part of Proton Mail Bridge.
//
// Proton Mail Bridge is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Proton Mail Bridge is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Proton Mail Bridge. If not, see <https://www.gnu.org/licenses/>.
package grpc
import (
"context"
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/wrapperspb"
)
func (s *Service) ReportBugClicked(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
s.bridge.ReportBugClicked()
return &emptypb.Empty{}, nil
}
func (s *Service) AutoconfigClicked(_ context.Context, client *wrapperspb.StringValue) (*emptypb.Empty, error) {
s.bridge.AutoconfigUsed(client.Value)
return &emptypb.Empty{}, nil
}
func (s *Service) KBArticleClicked(_ context.Context, article *wrapperspb.StringValue) (*emptypb.Empty, error) {
s.bridge.KBArticleOpened(article.Value)
return &emptypb.Empty{}, nil
}