| // Copyright 2009 Google Inc. All Rights Reserved. |
| // Author: morgwai@google.com (Morgwai Kotarbinski) |
| // |
| // Messages containing configuration of Feedback Service |
| // that control classification and processing of submitted feedbacks. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package userfeedback; |
| |
| // Product for which feedback can be sent: GMail, Writely etc. |
| message Product { |
| required int32 id = 1; |
| |
| required string name = 2; |
| |
| repeated string owner = 3; |
| }; |
| |
| // Contains information needed to check whether particular |
| // feedback type applies to the page user is browsing and forward |
| // it's execution to a specific handler. It also carries information |
| // about the creator. |
| // TODO(morgwai): design new structure of Type with fields relevant |
| // for android, web, selenium grouped into submessages. |
| message FeedbackTypeData { |
| // index of feedback type as found in database |
| required int32 id = 1; |
| |
| // Specifies whether this feedback type is currently enabled and |
| // feedback of this type can be submitted. |
| required bool enabled = 2; |
| |
| // Problem name of this feedback type on Google Feedback pages. |
| required string problem_name = 3; |
| |
| // Name of the product to which this feedback type belongs. |
| optional string product_name = 4; |
| |
| // Tag 5 is used by some legacy data that is already in production db. |
| |
| // matcher to execute against page |
| required MatcherData matcher = 6; |
| |
| // Comma separated list of email addresses to which email notification |
| // is sent upon each new feedback of this type. |
| // No email is sent if this field is set to an empty string. |
| required string notification_email = 7; |
| |
| // Do not use tag 8, 9, 10. They were used by a legacy field. |
| |
| // Encapsulates different kind of feedback type. |
| enum Kind { |
| // Product feedback type. |
| PRODUCT = 1; |
| // Special feedback type (e.g. fixit). |
| SPECIAL = 2; |
| } |
| |
| // Kind of feedback type. |
| optional Kind kind = 11 [default=PRODUCT]; |
| |
| // Prefix to be added to summary of notification email sent for feedback of this |
| // type. |
| optional string summary_prefix = 12; |
| |
| // String template with which "Additional Info" field in extension |
| // should be initially filled. |
| optional string template = 13; |
| |
| // ID of the product this feedback type belongs to. |
| optional int32 product_id = 14; |
| |
| // Tag that is used for marking feedback types that require non-ordinary handling. |
| // E.g: This field is equal: |
| // "unclassified" for Unclassified feedback, |
| // "android" for android feedback |
| // "selenium" for selenium feedback |
| optional string tag = 15; |
| |
| // Problem description visible in feedback extension. |
| optional string problem_description = 16; |
| |
| // Visibilities of feedback type. |
| enum Visibility { |
| // feedback type visible in external extension only |
| EXTERNAL = 1; |
| // feedback type visible in internal extension only |
| INTERNAL = 2; |
| } |
| |
| // Specifies the visibility of this feedback type. |
| optional Visibility visibility = 17 [default=INTERNAL]; |
| |
| // tag 18 was used by removed field |
| |
| // Specifies Buganizer fields |
| // TODO(kaczmarek): enable once we migrated to new protos. |
| // optional BuganizerSettings buganizer_settings = 19; |
| |
| // Channel via which notification about feedback should be send |
| enum NotifyChannel { |
| // Send email notification. |
| EMAIL = 1; |
| // File a bug in buganizer. |
| BUGANIZER = 2; |
| // File a bug in issue tracker. |
| ISSUE_TRACKER = 3; |
| } |
| |
| // Specifies channel via which notification about feedback of this type should be sent. |
| optional NotifyChannel notify_channel = 20 [default=EMAIL]; |
| |
| // Granularity of notifications. |
| enum NotificationGranularity { |
| // Send notification per each feedback. |
| FEEDBACK = 1; |
| // Send notification per clustered group of similar feedbacks. |
| CLUSTER = 2; |
| } |
| |
| // Specifies granularity of notifications send for feedbacks of this type. |
| optional NotificationGranularity notification_granularity = 21 [default=FEEDBACK]; |
| |
| // Threshold for number of feedbacks in a cluster at which notification is sent. |
| optional int32 clustering_threshold = 22 [default=5]; |
| }; |
| |
| // Used to detect content relevant to particular type of feedback. |
| message MatcherData { |
| // XPATH expression to match against page. |
| required string content_matcher = 1; |
| |
| // Regexp matching page URL. |
| required string url_matcher = 2; |
| |
| // Approval by feedback admins |
| optional bool url_matcher_approved = 3 [default=true]; |
| }; |