1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// 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];
};
|