Make WordPress Core

Changes between Version 9 and Version 10 of Ticket #51092


Ignore:
Timestamp:
08/26/2020 04:10:51 PM (3 years ago)
Author:
carike
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #51092 – Description

    v9 v10  
    2020This ticket proposes a JSON schema. Future tickets will deal with the validation and the display respectively.
    2121In its current form, the JSON schema does not set any fields as "required".
    22 As URLs are not one of the six data types accepted by JSON, these types have been set as "string"s. However, in the ticket to follow this one, the validation of the schema should include appropriate validation of the URLs.
     22As URLs are not one of the six data types accepted by JSON, these types have been set as "string"s. The format has been set to "uri-reference" to allow for relative URLs.
     23In the ticket to follow this one, the validation of the schema should include appropriate validation of the URLs in PHP.
    2324Further tickets should include ones to update WP-CLI and WordPress.org to make the strings translatable. Thanks to Swissspidy for the comment below!
    2425
     
    4344            },
    4445            "version": {
     46               "description": "Please supply which version of disclosures.json this represents for the individual component.",
     47               "type": "string"
     48            },
     49            "since": {
    4550               "description": "Please supply the plugin or theme's version number, or the Core version, if the component is a Core component, which introduced the current version of this disclosures.json file, i.e. this should represent the since value.",
    4651               "type": "string"
     
    5156         "type": "object",
    5257         "properties": {
    53             "component": {
     58            "code": {
    5459               "description": "Please provide a URL to the license that applies to this component (plugin, theme, or Core component)'s use.",
    5560               "type": "string"
     
    7681      },
    7782      "external": {
    78          "description": "Please enter a comma-separated list of URLs containing the links to the Privacy Policies of the sites to which the calls to external networks are being made.",
     83         "description": "A comma-separated list of URLs containing the links to the Privacy Policies of the sites to which the calls to external networks are being made.",
    7984         "type": "object",
    8085         "properties": {
    8186            "PHP": {
     87               "description": "A comma-separated list of URLs of links to the respective Privacy Policies of the sites to which the external network calls are being made in PHP.",
    8288               "type": "array",
    8389               "items": {
     
    8894            },
    8995            "JavaScript": {
     96               "description": "A comma-separated list of URLs of links to the respective Privacy Policies of the sites to which the external network calls are being made in JavaScript.",
    9097               "type": "array",
    9198               "items": {
     
    96103            },
    97104            "CSS": {
     105               "description": "A comma-separated list of URLs of links to the respective Privacy Policies of the sites to which the external network calls are being made in CSS.",
    98106               "type": "array",
    99107               "items": {
     
    107115      "terms": {
    108116         "type": "object"
    109          "description": "Please provide details about third party Terms and Conditions, if applicable."
     117         "description": "A comma-separated list to third party Terms and Conditions, if applicable.",
    110118         "properties": {
    111119            "SaaS": {
    112                "description": "Please provide a comma-separated list of URLs to the Terms of Service of any instances of Software as a Service.",
     120               "description": "A comma-separated list of URLs to the Terms of Service of any instances of Software as a Service.",
    113121               "type": "array",
    114122               "items": {
     
    119127            },
    120128            "externalAPIs": {
    121                "description": "Please provide a comma-separated list of URLs to the Terms of Service of any external API being used.",
     129               "description": "A comma-separated list of URLs to the Terms of Service of any external API being used.",
    122130               "type": "array",
    123131               "items": {
     
    128136            },
    129137            "remoteAssets": {
    130                "description": "Please provide a comma-separated list of URLs to the Terms of Service that applies to the use of each remote asset. This relates to the use of CDNs for images, fonts, etc.",
    131                "type": "array",
    132                "items": {
    133                   "type": "string",
    134                   "format": "uri-reference"
    135                },
    136                "uniqueItems": true
    137             },
    138             "requiresRegistration": {
     138               "description": "A comma-separated list of URLs to the Terms of Service that applies to the use of each remote asset. This relates to the use of CDNs for images, fonts, etc.",
     139               "type": "array",
     140               "items": {
     141                  "type": "string",
     142                  "format": "uri-reference"
     143               },
     144               "uniqueItems": true
     145            },
     146            "registration": {
    139147               "description": "Please provide a comma-separated list of URLs to the Terms of Service that apply to any accounts that need to be registered in order to be able to make use of this component's code.",
    140148               "type": "array",
     
    149157      "openWeb": {
    150158         "type": "object",
    151          "description": "Please provide details about mechanisms that allow others to obtain information from the site without browsing the website's front end.",
    152          "properties": {
    153             "APIEndpoints": {
    154                "description": "Please provide a comma-separated list of URLs for any internal API endpoints that are created by the code using example.com as the domain.",
     159         "description": "Details about mechanisms that allow others to obtain information from the site without browsing the website's front end.",
     160         "properties": {
     161            "apiEndpoints": {
     162               "description": "A comma-separated list of URLs for any internal API endpoints that are created by the code.",
    155163               "type": "array",
    156164               "items": {
     
    161169            },
    162170            "feeds": {
    163                "description": "Please provide a comma-separated list of URLs for any internal feeds that are created by the code, using example.com as the domain.",
    164                "type": "array",
    165                "items": {
    166                   "type": "string",
    167                   "format": "uri-reference"
    168                },
    169                "uniqueItems": true
    170             }
    171          }
    172       },
    173       "clientSideStorage": {
     171               "description": "A comma-separated list of URLs for any internal feeds that are created by the code.",
     172               "type": "array",
     173               "items": {
     174                  "type": "string",
     175                  "format": "uri-reference"
     176               },
     177               "uniqueItems": true
     178            }
     179         }
     180      },
     181      "clientSide": {
    174182         "type": "object",
    175183         "properties": {
    176184            "setsCookiesPHP": {
    177                "description": "Please provide the names of any cookies that have been set using PHP.",
     185               "description": "The names of any cookies that have been set using PHP.",
    178186               "type": "array",
    179187               "items": {
     
    183191            },
    184192            "setsCookiesJavaScript": {
    185                "description": "Please provide the names of any cookies that have been set using JavaScript.",
     193               "description": "The names of any cookies that have been set using JavaScript.",
    186194               "type": "array",
    187195               "items": {
     
    191199            },
    192200            "usesLocalStorage": {
    193                "description": "Please indicate whether the code makes use of local storage.",
     201               "description": "Whether or not the code makes use of local storage.",
    194202               "type": "boolean"
    195203            }
     
    200208         "properties": {
    201209            "writesToDB": {
    202                "description": "Please indicate TRUE / FALSE to whether the code writes any data to the database.",
    203                "type": "boolean"
     210               "description": "Whether or not the code writes to the database.",
     211               "type": "object",
     212               "properties": {
     213                  "auto": {
     214                     "description": "Whether or not the code writes to the database in relation to information that is not explicitly input by a user.",
     215                     "type": "boolean"
     216                  },
     217                  "manual": {
     218                     "description": "Whether or not the code writes to the database that is not explicitly input by a user.",
     219                     "type": "boolean"
     220                  }
     221               }
    204222            },
    205223            "CPT": {
     
    238256         "type": "object",
    239257         "properties": {
    240             "writesToTxt": {
    241                "type": "boolean"
    242             },
    243             "altersFileStructure": {
    244                "type": "boolean"
    245             }
    246          }
    247       },
    248       "PPI": {
     258            "writesToFiles": {
     259               "description": "A comma-separated list of file types the code writes to (e.g. .txt).",
     260               "type": "array",
     261               "items": {
     262                  "type": "string",
     263               }
     264            },
     265            "fileStructure": {
     266               "description": "Whether or not the code makes changes to the website's file structure.",
     267               "type": "object",
     268               "properties": {
     269                  "auto": {
     270                     "description": "Whether or not the code makes changes, or is capable of making changes, to the website's file structure that are not explicitly initiated by a user. This does not include files that are added directly from the repository, or in the original .zip file.",
     271                     "type": "boolean"
     272                  },
     273                  "manual": {
     274                     "description": "Whether or not the code makes changes, or is capable of making changes, to the website's file structure that are explicitly initiated by the user. This does not include files that are added directly from the repository, or in the original .zip file.",
     275                  }
     276               }
     277            }
     278         }
     279      },
     280      "ppi": {
    249281         "description": "Please indicate TRUE / FALSE as to whether the code stores any Protected Personal Information.",
    250282         "type": "boolean"
     
    255287         "properties": {
    256288            "ppiExport": {
    257                "description": "Do you as a developer consider the code to be compatible with the PPI Export Tool in WordPress?",
     289               "description": "Does the developer, in good faith, consider the code to be compatible with the PPI Export Tool in WordPress?",
    258290               "type": "boolean"
    259291            },
    260292            "ppiErasure": {
    261                "description": "Do you as a developer consider the code to be compatible with the PPI Erasure Tool in WordPress?",
     293               "description": "Does the developer, in good faith, consider the code to be compatible with the PPI Erasure Tool in WordPress?",
    262294               "type": "boolean"
    263295            },
    264296            "consentAPI": {
    265                "description": "Do you as a developer consider the code to be compatible with the WordPress Consent API?",
     297               "description": "Does the developer, in good faith, consider the code to be compatible with the WordPress Consent API?",
    266298               "type": "boolean"
    267299            },
    268300            "disclosuresTab": {
    269                "description": "Do you as a developer consider the code to be compatible with the Disclosure Tab?",
     301               "description": "Do the developer, in good faith, consider the code to be compatible with the Disclosure Tab?",
    270302               "type": "boolean"
    271303            },
    272304            "permissionsTab": {
    273                "description": "Do you as a developer consider the code to be compatible with the Permissions Tab?",
     305               "description": "Do the developer, in good faith, consider the code to be compatible with the Permissions Tab?",
    274306               "type": "boolean"
    275307            }
     
    278310      "monetization": {
    279311         "type": "object",
    280          "description": "Please provide details regarding monetization practices.",
     312         "description": "This section provides details regarding monetization practices.",
    281313         "properties": {
    282314            "upsells": {
    283315               "description": "Does this code promote a paid version, or extensions, or other products or services from the same author(s)?",
     316               "type": "boolean"
     317            },
     318            "donations": {
     319               "description": "Does this code contain any request, or information in order to, donate to the plugin or its developer(s)?",
    284320               "type": "boolean"
    285321            },