Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This is a specification of personal privacy preferences, based on ""Privacy Needs and Preferences List"  Google doc.  It defines the names and values and blocks thereof of various aspects that a user may or may not want to keep private.  The assumption is that these name/value pairs will be created, transmitted, and stored as a JSON data structure, and gives examples of how to create an actual such data structure.

privacyPreferences

The container for all of the user's privacy preferences. In JSON:

    "privacyPreferences" : { ... }

An empty privacyPreferences data structure implies using the default settings for all of the user's privacy preferences.

privacyPreferences.thirdPartyTracking

Defines a set of Boolean preferences with respect to third parties tracking a user's behaviour. The default setting is to prohibit all tracking by third parties.

  • doNotTrack:
    • value:  true or false, defaults to true
    • user prefers that third parties not track.
  • alerts
    • value:  true or false
    • ???
  • allowTemporarily:
    • value:  true or false
    • temporarily allow third party tracking until the user leaves the page (or the site?  If the latter, then the value could be "page" vs. "site").

Example:

    "privacyPreferences": {
"thirdPartyTracking": {
"doNotTrack": true,
"alerts": true,
"allowTemporarily": true // ?? issue: overrules doNotTrack?
}
}

privacyPreferences.thirdPartyScripts

Defines preferences for restricting third party scripts on a web page. There is no default setting in this case, since the setting is relative to a page or site.  Since there can be numerous sites and pages that these settings apply to, the thirdPartyScripts preference is an array of restrictions one a per site or per page.  Each site or pages is defined by a URI.

  • site or page:
    • value: URI of the site or the page
  • allow:
    • one of "true", "false", or "temporarily". (issue:  "always", "never", "temporarily" ??)

Example:

    "privacyPreferences": {
"thirdPartyScripts": [{
"site": "www.somewhere.com",
"allow": "temporarily"
},{
"page": "www.elsewhere.com/login",
"allow": true
  },{
"site": "www.nefarious.org",
"allow": false
 }]
}

privacyPreferences.locationTracking

                 

JSON Schema (Old)

Based on "Privacy Needs and Preferences List" Google doc.

"privacyPreferences": {
"control": {
"thirdPartyTracking": {
"block": true, // "on/off" ?
"alert": true, // "on/off" ?
"allowTempoararily": true; // overrules "block": false
},
"thirdPartyScripts": {
"allowThisSiteTemporarily": true,
"allowThisSite": "siteURL", // "allowThisSite" overrules "allowThisSiteTemporarily"
"allowThisPageTemporarily": "siteURL",
"allowThisPage": "pageURL", // "allowThisPage" overrules "allowThisSiteTemporarily"
},
},
    "locationTracking": {
"noTracking": true, // overrules "trustedServices"
"asNeededOnly": true // overrules ?
"trustedService": [], // whitelist
},
"contactsSharing": {
"noSharing": true,
"askMeFirst": true,
"trustedServices": []
},
"clear": {
"browserHistory": "hourly" | "daily" | "weekly" | "monthly", // inclusive or?
"downloads": "hourly" | "daily" | "weekly" | "monthly",
"passwords": "hourly" | "daily" | "weeklay" | "monthly",
"formAutofill: "hourly" | "daily" | "weekly" | "monthly"
},
"forgetMy": {
"creditCard": "neverStore" | "immediately",
"mailingAddress": "neverStore" | "immediately",
"emailAddress": "neverStore" | "immediately"
},
"advertising": {
"blockTargeted": [],
"blockAll": true
},
"cookies": {
"creation": {
"neverAllow": true, // overrides all other prefs below ?
"allowFromOriginalSource": true,
"trustedServices": [],
"askMeFirst": true,
},
"sharing": {
"neverAllow": true, // overrides all other prefs below ?
"trustedServices": [],
"askMeFirst": true,
"combo": "?" // ?? what is this ?
},
"cookieExpiration": "endOfSeesion" | "leaveSite" | "removeAllDaily" | "removeAllWeekly",
"individualCookies": [{
"aCookie": "cookieID",
"expiration": "endOfSeesion" | "leaveSite" | "removeAllDaily" | "removeAllWeekly",
"shareWith": []
}],
},
"dataControl: {
"viewAll": true,
"removeAll": true,
"knowHowUsed": true, // ?? what does false mean?
"expirationDetails": // ?? free string here, or enumerated type?
},
"privacyPolicies": [], // ??
"disassociation": [], // ??
"autoPresets": [], // ??
...
}

to allows a users to control the privacy of their personal information.  These are documented in a Google document.