Mobile/Fennec/Android/Switchboard/Admin

From MozillaWiki
< Mobile‎ | Fennec‎ | Android‎ | Switchboard
Jump to: navigation, search

Switchboard entries are added through the Kinto Web Administration tool. Only authorized members of the Fennec Team can manipulate the experiments.

  1. Login via the Kinto admin page (VPN connection is required)
  2. Authentication method: LDAP
  3. Username: jdoe@mozilla.com. This is your full LDAP email address.
  4. Password: your_ldap_password

All experiments are first created in the fennec-staging bucket, are later moved to the fennec-preview bucket for testing and review, and then deployed to the final fennec bucket.

Both fennec-preview and fennec buckets are read-only for all admins.

Experiments

Staging

  1. Click on fennec-staging bucket :: experiments
  2. Click on "Create" (or edit/delete icons if you need to change an existing record)
  3. Enter in the appropriate fields. Example below (see the current list1 for more examples)
    • You'll generally want to enter the Name, buckets.min and buckets.max.
    • The Description field can be set to explain what the experiments is about.
    • The Matching rules can be set to define which people are part of the experiment.
    • The Region field can be set to filter people by IP address.
  4. When done, click on Create Record. This saves the block in the staging bucket.
  5. If you don't need to make more changes to the list, click on Request review back in the main bucket view. The block should be moved to the fennec-preview bucket.
  6. Notify your reviewer/QA that the block is ready for testing.

1 Data for the experiments can be found in the public JSON endpoint.

Testing

To test a staged block:

  1. You can have a look at the preview collection in the preview public JSON endpoint.

JSON Example

{

    "last_modified": 1497356981967,
    "buckets": {
        "min": "0",
        "max": "50"
    },
    "match": {
        "lang": "eng",
        "country": "USA",
        "regions": [
            "US",
            "TW",
            "DE"
        ]
    },
    "description": "Enable Leanplum SDK - Bug 1351571",
    "id": "12f8f0dc-6401-402e-9e7d-3aec52576b87",
    "schema": 1497356742877,
    "name": "leanplum-start"

}

The schema of the available fields is defined below:

{
  "required": [
    "name",
    "match",
    "buckets"
  ],
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "title": "Name"
    },
    "match": {
      "type": "object",
      "title": "Matching",
      "properties": {
        "version": {
          "title": "Android App Version",
          "type": "string",
          "description": "A regexp on the Android app version number (e.g. 47.0a1', 46.0)"
        },
        "device": {
          "type": "string",
          "description": "Android device name"
        },
        "lang": {
          "type": "string",
          "description": "Language, pulled from the default locale (e.g. eng)"
        },
        "manufacturer": {
          "type": "string",
          "description": "Android device manufacturer"
        },
        "country": {
          "type": "string",
          "description": "Country, pulled from the default locale (e.g. USA)"
        },
        "userAgent": {
          "type": "string",
          "description": "Browser User-Agent regexp. i.e: Firefox/46.0"
        },
        "appId": {
          "title": "Android App ID",
          "type": "string",
          "description": "^org.mozilla.fennec|org.mozilla.firefox_beta|org.mozilla.firefox$"
        },
        "regions": {
          "uniqueItems": true,
          "type": "array",
          "default": [],
          "description": "Compared with GeoIP lookup.",
          "items": {
            "minLength": 0,
            "title": "Regions",
            "type": "string",
            "default": "",
            "description": "Similar to a GeoIP lookup"
          },
          "title": "Regions"
        }
      }
    },
    "description": {
      "type": "string",
      "title": "Description"
    },
    "buckets": {
      "required": [
        "min",
        "max"
      ],
      "type": "object",
      "title": "Buckets",
      "properties": {
        "max": {
          "minLength": 1,
          "type": "string",
          "pattern": "^0|100|[1-9][0-9]?$"
        },
        "min": {
          "minLength": 1,
          "type": "string",
          "pattern": "^0|100|[1-9][0-9]?$"
        }
      }
    }
  }
}

See https://github.com/mozilla-services/switchboard-experiments-kinto/blob/master/kinto-bootstrap/config.json

Deploying

  1. Click on staging bucket :: addons
  2. The staged blocks should be shown with an option to Approve.
  3. Approve :)