1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Messages containing configuration of Feedback Service
6 // that control classification and processing of submitted feedbacks.
10 option optimize_for = LITE_RUNTIME;
14 // Product for which feedback can be sent: GMail, Writely etc.
16 required int32 id = 1;
18 required string name = 2;
20 repeated string owner = 3;
23 // Contains information needed to check whether particular
24 // feedback type applies to the page user is browsing and forward
25 // it's execution to a specific handler. It also carries information
27 // TODO(morgwai): design new structure of Type with fields relevant
28 // for android, web, selenium grouped into submessages.
29 message FeedbackTypeData {
30 // index of feedback type as found in database
31 required int32 id = 1;
33 // Specifies whether this feedback type is currently enabled and
34 // feedback of this type can be submitted.
35 required bool enabled = 2;
37 // Problem name of this feedback type on Google Feedback pages.
38 required string problem_name = 3;
40 // Name of the product to which this feedback type belongs.
41 optional string product_name = 4;
43 // Tag 5 is used by some legacy data that is already in production db.
45 // matcher to execute against page
46 required MatcherData matcher = 6;
48 // Comma separated list of email addresses to which email notification
49 // is sent upon each new feedback of this type.
50 // No email is sent if this field is set to an empty string.
51 required string notification_email = 7;
53 // Do not use tag 8, 9, 10. They were used by a legacy field.
55 // Encapsulates different kind of feedback type.
57 // Product feedback type.
59 // Special feedback type (e.g. fixit).
63 // Kind of feedback type.
64 optional Kind kind = 11 [default=PRODUCT];
66 // Prefix to be added to summary of notification email sent for feedback of this
68 optional string summary_prefix = 12;
70 // String template with which "Additional Info" field in extension
71 // should be initially filled.
72 optional string template = 13;
74 // ID of the product this feedback type belongs to.
75 optional int32 product_id = 14;
77 // Tag that is used for marking feedback types that require non-ordinary handling.
78 // E.g: This field is equal:
79 // "unclassified" for Unclassified feedback,
80 // "android" for android feedback
81 // "selenium" for selenium feedback
82 optional string tag = 15;
84 // Problem description visible in feedback extension.
85 optional string problem_description = 16;
87 // Visibilities of feedback type.
89 // feedback type visible in external extension only
91 // feedback type visible in internal extension only
95 // Specifies the visibility of this feedback type.
96 optional Visibility visibility = 17 [default=INTERNAL];
98 // tag 18 was used by removed field
100 // Specifies Buganizer fields
101 // TODO(kaczmarek): enable once we migrated to new protos.
102 // optional BuganizerSettings buganizer_settings = 19;
104 // Channel via which notification about feedback should be send
106 // Send email notification.
108 // File a bug in buganizer.
110 // File a bug in issue tracker.
114 // Specifies channel via which notification about feedback of this type should be sent.
115 optional NotifyChannel notify_channel = 20 [default=EMAIL];
117 // Granularity of notifications.
118 enum NotificationGranularity {
119 // Send notification per each feedback.
121 // Send notification per clustered group of similar feedbacks.
125 // Specifies granularity of notifications send for feedbacks of this type.
126 optional NotificationGranularity notification_granularity = 21 [default=FEEDBACK];
128 // Threshold for number of feedbacks in a cluster at which notification is sent.
129 optional int32 clustering_threshold = 22 [default=5];
132 // Used to detect content relevant to particular type of feedback.
133 message MatcherData {
134 // XPATH expression to match against page.
135 required string content_matcher = 1;
137 // Regexp matching page URL.
138 required string url_matcher = 2;
140 // Approval by feedback admins
141 optional bool url_matcher_approved = 3 [default=true];