| |
| ########################################################################### |
| # This file contains the source of truth for the set of EncodingConfigs |
| # that are registered in version 0.1 of Cobalt. |
| # |
| # This file is maintained by hand. To add a new EncodingConfig or change |
| # the definition of an EncodingConfig, manually edit this file and |
| # commit the change to the Cobalt repo. |
| # |
| # The format of this file is the textual representation of the |
| # RegisteredEncodings Protocol Buffer message, which is defined in |
| # encodings.proto |
| ########################################################################## |
| |
| |
| ######################### |
| # Customer 1 (Fuchsia) |
| ######################## |
| |
| ########################### Project 100: Ledger ############################### |
| |
| ##################################################################### |
| # EncodingConfig(1, 100, 1) |
| # |
| # DEPRECATED: Please use EncodingConfig (1, 100, 2) instead. |
| # |
| # Name: Basic RAPPOR for Rare Event Occurrences |
| # Description: A Configuration of Basic RAPPOR with no privacy, with string |
| # category names, and with one category for each rare event. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 100 |
| id: 1 |
| basic_rappor { |
| prob_0_becomes_1: 0.0 |
| prob_1_stays_1: 1.0 |
| string_categories: { |
| category: "Ledger-startup" |
| category: "Commits-received-out-of-order" |
| category: "Commits-merged" |
| category: "Merged-commits-merged" |
| category: "Commits-received-out-of-order-not-recovered" |
| } |
| } |
| } |
| |
| ##################################################################### |
| # EncodingConfig(1, 100, 2) |
| # Name: Basic RAPPOR for Rare Event Occurrences |
| # Description: A Configuration of Basic RAPPOR with no privacy, with 128 |
| # indexed categories. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 100 |
| id: 2 |
| basic_rappor { |
| prob_0_becomes_1: 0.0 |
| prob_1_stays_1: 1.0 |
| indexed_categories: { |
| num_categories: 128 |
| } |
| } |
| } |
| |
| ##################### Project 101: Module Usage Tracking ###################### |
| |
| ##################################################################### |
| # EncodingConfig(1, 101, 1) |
| # Name: Forculus with minimal privacy |
| # Description: We are using Forculus to collect arbitrary strings. We don't |
| # need privacy at this time so we use a threshold of 2 and |
| # an aggregation epoch of a month. This means that a string |
| # will be decoded as long as it as sent by at least two differnt |
| # devices in any given calendar month. At the time of this writing |
| # we have not yet implemented persistent device identity so |
| # every re-start of the Cobalt Client process on a Fuchsia |
| # system counts as a new device. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 101 |
| id: 1 |
| forculus { |
| threshold: 2 |
| epoch_type: MONTH |
| } |
| } |
| |
| ######################### Project 102: System Metrics ########################## |
| |
| ##################################################################### |
| # EncodingConfig(1, 102, 1) |
| # Name: NoOp encoding |
| # Description: Observations are sent unencoded. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 102 |
| id: 1 |
| no_op_encoding { |
| } |
| } |
| |
| |
| ################################################################################ |
| # *** NOTICE: Below this line are testing-only projects. *** |
| # |
| # These project must all use project IDs less than 100. |
| ################################################################################ |
| |
| ## Project 1: End-to-End test |
| |
| #### EncodingConfig(1, 1, 1) |
| element { |
| customer_id: 1 |
| project_id: 1 |
| id: 1 |
| forculus { |
| threshold: 20 |
| epoch_type: DAY |
| } |
| } |
| |
| #### EncodingConfig(1, 1, 2) |
| element { |
| customer_id: 1 |
| project_id: 1 |
| id: 2 |
| basic_rappor { |
| prob_0_becomes_1: 0.1 |
| prob_1_stays_1: 0.9 |
| int_range_categories: { |
| first: 0 |
| last: 23 |
| } |
| } |
| } |
| |
| #### EncodingConfig(1, 1, 3) |
| element { |
| customer_id: 1 |
| project_id: 1 |
| id: 3 |
| basic_rappor { |
| prob_0_becomes_1: 0.01 |
| prob_1_stays_1: 0.99 |
| string_categories: { |
| category: "apple" |
| category: "banana" |
| category: "cantaloupe" |
| } |
| } |
| } |
| |
| #### EncodingConfig(1, 1, 4) |
| element { |
| customer_id: 1 |
| project_id: 1 |
| id: 4 |
| basic_rappor { |
| prob_0_becomes_1: 0.2 |
| prob_1_stays_1: 0.8 |
| int_range_categories: { |
| first: 0 |
| last: 10 |
| } |
| } |
| } |
| |
| #### EncodingConfig(1, 1, 5) |
| element { |
| customer_id: 1 |
| project_id: 1 |
| id: 5 |
| basic_rappor { |
| prob_0_becomes_1: 0.0 |
| prob_1_stays_1: 1.0 |
| indexed_categories: { |
| num_categories: 100 |
| } |
| } |
| } |
| |
| # Encoding (1, 1, 6) is the No-Op encoding. |
| element { |
| customer_id: 1 |
| project_id: 1 |
| id: 6 |
| no_op_encoding { |
| } |
| } |
| |
| ## Project 2: Fuchsia Test App |
| |
| ##################################################################### |
| # EncodingConfig(1, 2, 1) |
| # Name: Basic RAPPOR for Daily Rare Event Counts |
| # Description: A Configuration of Basic RAPPOR with no privacy, with string |
| # category names, and with one category for each rare event. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 2 |
| id: 1 |
| basic_rappor { |
| prob_0_becomes_1: 0.0 |
| prob_1_stays_1: 1.0 |
| string_categories: { |
| category: "Ledger-startup" |
| category: "Commits-received-out-of-order" |
| category: "Commits-merged" |
| category: "Merged-commits-merged" |
| } |
| } |
| } |
| |
| ##################################################################### |
| # EncodingConfig(1, 2, 2) |
| # Name: Forculus with minimal privacy |
| # Description: We are using Forculus to collect arbitrary strings. We don't |
| # need privacy at this time so we use a threshold of 2 and |
| # an aggregation epoch of a month. This means that a string |
| # will be decoded as long as it as sent by at least two differnt |
| # devices in any given calendar month. At the time of this writing |
| # we have not yet implemented persistent device identity so |
| # every re-start of the Cobalt Client process on a Fuchsia |
| # system counts as a new device. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 2 |
| id: 2 |
| forculus { |
| threshold: 2 |
| epoch_type: MONTH |
| } |
| } |
| |
| ##################################################################### |
| # EncodingConfig(1, 2, 3) |
| # Name: Basic RAPPOR for Rare Event Occurrences |
| # Description: A Configuration of Basic RAPPOR with no privacy, with 128 |
| # indexed categories. |
| ###################################################################### |
| element { |
| customer_id: 1 |
| project_id: 2 |
| id: 3 |
| basic_rappor { |
| prob_0_becomes_1: 0.0 |
| prob_1_stays_1: 1.0 |
| indexed_categories: { |
| num_categories: 128 |
| } |
| } |
| } |