| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2009 Google Inc. All Rights Reserved. |
| 2 // Author: morgwai@google.com (Morgwai Kotarbinski) |
| 3 // |
| 4 // Messages containing configuration of Feedback Service |
| 5 // that control classification and processing of submitted feedbacks. |
| 6 |
| 7 syntax = "proto2"; |
| 8 |
| 9 package userfeedback; |
| 10 |
| 11 // Product for which feedback can be sent: GMail, Writely etc. |
| 12 message Product { |
| 13 required int32 id = 1; |
| 14 |
| 15 required string name = 2; |
| 16 |
| 17 repeated string owner = 3; |
| 18 }; |
| 19 |
| 20 // Contains information needed to check whether particular |
| 21 // feedback type applies to the page user is browsing and forward |
| 22 // it's execution to a specific handler. It also carries information |
| 23 // about the creator. |
| 24 // TODO(morgwai): design new structure of Type with fields relevant |
| 25 // for android, web, selenium grouped into submessages. |
| 26 message FeedbackTypeData { |
| 27 // index of feedback type as found in database |
| 28 required int32 id = 1; |
| 29 |
| 30 // Specifies whether this feedback type is currently enabled and |
| 31 // feedback of this type can be submitted. |
| 32 required bool enabled = 2; |
| 33 |
| 34 // Problem name of this feedback type on Google Feedback pages. |
| 35 required string problem_name = 3; |
| 36 |
| 37 // Name of the product to which this feedback type belongs. |
| 38 optional string product_name = 4; |
| 39 |
| 40 // Tag 5 is used by some legacy data that is already in production db. |
| 41 |
| 42 // matcher to execute against page |
| 43 required MatcherData matcher = 6; |
| 44 |
| 45 // Comma separated list of email addresses to which email notification |
| 46 // is sent upon each new feedback of this type. |
| 47 // No email is sent if this field is set to an empty string. |
| 48 required string notification_email = 7; |
| 49 |
| 50 // Do not use tag 8, 9, 10. They were used by a legacy field. |
| 51 |
| 52 // Encapsulates different kind of feedback type. |
| 53 enum Kind { |
| 54 // Product feedback type. |
| 55 PRODUCT = 1; |
| 56 // Special feedback type (e.g. fixit). |
| 57 SPECIAL = 2; |
| 58 } |
| 59 |
| 60 // Kind of feedback type. |
| 61 optional Kind kind = 11 [default=PRODUCT]; |
| 62 |
| 63 // Prefix to be added to summary of notification email sent for feedback of th
is |
| 64 // type. |
| 65 optional string summary_prefix = 12; |
| 66 |
| 67 // String template with which "Additional Info" field in extension |
| 68 // should be initially filled. |
| 69 optional string template = 13; |
| 70 |
| 71 // ID of the product this feedback type belongs to. |
| 72 optional int32 product_id = 14; |
| 73 |
| 74 // Tag that is used for marking feedback types that require non-ordinary handl
ing. |
| 75 // E.g: This field is equal: |
| 76 // "unclassified" for Unclassified feedback, |
| 77 // "android" for android feedback |
| 78 // "selenium" for selenium feedback |
| 79 optional string tag = 15; |
| 80 |
| 81 // Problem description visible in feedback extension. |
| 82 optional string problem_description = 16; |
| 83 |
| 84 // Visibilities of feedback type. |
| 85 enum Visibility { |
| 86 // feedback type visible in external extension only |
| 87 EXTERNAL = 1; |
| 88 // feedback type visible in internal extension only |
| 89 INTERNAL = 2; |
| 90 } |
| 91 |
| 92 // Specifies the visibility of this feedback type. |
| 93 optional Visibility visibility = 17 [default=INTERNAL]; |
| 94 |
| 95 // tag 18 was used by removed field |
| 96 |
| 97 // Specifies Buganizer fields |
| 98 // TODO(kaczmarek): enable once we migrated to new protos. |
| 99 // optional BuganizerSettings buganizer_settings = 19; |
| 100 |
| 101 // Channel via which notification about feedback should be send |
| 102 enum NotifyChannel { |
| 103 // Send email notification. |
| 104 EMAIL = 1; |
| 105 // File a bug in buganizer. |
| 106 BUGANIZER = 2; |
| 107 // File a bug in issue tracker. |
| 108 ISSUE_TRACKER = 3; |
| 109 } |
| 110 |
| 111 // Specifies channel via which notification about feedback of this type should
be sent. |
| 112 optional NotifyChannel notify_channel = 20 [default=EMAIL]; |
| 113 |
| 114 // Granularity of notifications. |
| 115 enum NotificationGranularity { |
| 116 // Send notification per each feedback. |
| 117 FEEDBACK = 1; |
| 118 // Send notification per clustered group of similar feedbacks. |
| 119 CLUSTER = 2; |
| 120 } |
| 121 |
| 122 // Specifies granularity of notifications send for feedbacks of this type. |
| 123 optional NotificationGranularity notification_granularity = 21 [default=FEEDBA
CK]; |
| 124 |
| 125 // Threshold for number of feedbacks in a cluster at which notification is sen
t. |
| 126 optional int32 clustering_threshold = 22 [default=5]; |
| 127 }; |
| 128 |
| 129 // Used to detect content relevant to particular type of feedback. |
| 130 message MatcherData { |
| 131 // XPATH expression to match against page. |
| 132 required string content_matcher = 1; |
| 133 |
| 134 // Regexp matching page URL. |
| 135 required string url_matcher = 2; |
| 136 |
| 137 // Approval by feedback admins |
| 138 optional bool url_matcher_approved = 3 [default=true]; |
| 139 }; |
| OLD | NEW |