Changes between Version 12 and Version 14 of Ticket #51092
- Timestamp:
- 08/27/2020 09:15:13 AM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #51092 – Description
v12 v14 18 18 As all items are not strictly privacy related, the file will be called disclosures.json instead. 19 19 20 This ticket proposes a JSON schema. Future tickets will deal with the validation and the display respectively.21 20 In its current form, the JSON schema does not set any fields as "required". 22 21 As 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. 22 23 **Scope:** 24 25 This ticket proposes a JSON schema. Future tickets will deal with the validation and the display respectively. 23 26 In the ticket to follow this one, the validation of the schema should include appropriate validation of the URLs in PHP. 24 27 Further tickets should include ones to update WP-CLI and WordPress.org to make the strings translatable. Thanks to Swissspidy for the comment below! … … 32 35 "type": "object", 33 36 "properties": { 34 "details": { 37 "info": { 38 "description": "This section provides information to help identify the code.", 35 39 "type": "object", 36 40 "properties": { 37 41 "component": { 38 "description": " Please enter one of the following values: plugin, theme, or the specific Core component",42 "description": "One of the following values: plugin, theme, or the specific Core component (e.g. avatar).", 39 43 "type": "string" 40 44 }, 41 45 "slug": { 42 "description": " Please supply the slug, if the code relates to a plugin or a theme.",46 "description": "The slug, if the code relates to a plugin or a theme.", 43 47 "type": "string" 44 48 }, 45 49 "version": { 46 "description": " Please supply which version of disclosures.json this represents for the individual component.",50 "description": "Which version of disclosures.json this represents for the individual component.", 47 51 "type": "string" 48 52 }, 49 53 "since": { 50 "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.",54 "description": "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.", 51 55 "type": "string" 52 56 } … … 58 62 <?php 59 63 "licenses": { 64 "description": "This section contains more information about licensing." 60 65 "type": "object", 61 66 "properties": { … … 66 71 }, 67 72 "localAssets": { 68 "description": "A comma-separated list of URLs to the license that applies to the use of each asset that has been included locally. This includesthe license of any bundled libraries, as well as the licenses of any images, fonts, etc.",73 "description": "A comma-separated list of URLs to the license that applies to the use of each asset that has been included locally. This should include the license of any bundled libraries, as well as the licenses of any images, fonts, etc.", 69 74 "type": "array", 70 75 "items": { … … 75 80 }, 76 81 "remoteAssets": { 77 "description": "A comma-separated list of URLs to the license that applies to the use of each asset that is accessed remotely. This includesthe licenses of any external libraries, as well as the licenses of any images, fonts, etc.",82 "description": "A comma-separated list of URLs to the licenses that applies to the use of each asset that is accessed remotely. This should the licenses of any external libraries, as well as the licenses of any images, fonts, etc.", 78 83 "type": "array", 79 84 "items": { … … 90 95 <?php 91 96 "external": { 92 "description": " A comma-separated list of URLs linking to the Privacy Policies of the sites to which the calls to external networks are being made.",97 "description": "This section provides more information relating to the Privacy Policies of the external network sites being called.", 93 98 "type": "object", 94 99 "properties": { … … 127 132 <?php 128 133 "terms": { 134 "description": "This section contains more information about third party terms and conditions that may apply to use of the software.", 129 135 "type": "object" 130 "description": "A comma-separated list of URLs linking to third party Terms and Conditions, if applicable.",131 136 "properties": { 132 137 "SaaS": { … … 158 163 }, 159 164 "registration": { 160 "description": " Please provide acomma-separated list of URLs linking 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.",165 "description": "A comma-separated list of URLs linking 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.", 161 166 "type": "array", 162 167 "items": { … … 173 178 <?php 174 179 "openWeb": { 175 "type": "object",176 180 "description": "Details about mechanisms that allow others to obtain information from the site without browsing the website's front end.", 181 "type": "object", 177 182 "properties": { 178 183 "apiEndpoints": { … … 230 235 <?php 231 236 "communication": { 237 "description": "This section provides more information about how the software communicates with external parties.", 232 238 "type": "object", 233 239 "properties": { … … 252 258 <?php 253 259 "database": { 260 "description": "This section contains information about how the software interacts with the site's database (MySQL or MariaDB).", 254 261 "type": "object", 255 262 "properties": { … … 269 276 }, 270 277 "CPT": { 278 "description": "Whether the component creates any Custom Post Types.", 271 279 "type": "object", 272 "description": "Please indicate whether the component creates any Custom Post Types.",273 280 "properties": { 274 281 "auto": { 275 "description": " Please indicate the number of Custom Post Types that are automatically created by the code without user intervention.",282 "description": "The number of Custom Post Types that are automatically created by the code without user intervention.", 276 283 "type": "integer", 277 284 "minimum": 0 278 285 }, 279 286 "manual": { 280 "description": " Please indicate whetherthe code allows for users to generate Custom Post Types.",287 "description": "Whether or not the code allows for users to generate Custom Post Types.", 281 288 "type": "boolean" 282 289 } … … 284 291 }, 285 292 "customTables": { 286 "description": " Please indicate whetherthe code creates any custom tables in the database.",293 "description": "Whether or not the code creates any custom tables in the database.", 287 294 "type": "object", 288 295 "properties": { 289 296 "auto": { 290 "description": " Please indicate the number of custom tables that are automatically created by the code without user intervention.",297 "description": "The number of custom tables that are automatically created by the code without user intervention.", 291 298 "type": "integer", 292 299 "minimum": 0 293 300 }, 294 301 "manual": { 295 "description": " Please indicate whetherthe code allows the user to create any custom tables.",302 "description": "Whether or not the code allows the user to create any custom tables.", 296 303 "type": "boolean" 297 304 } … … 305 312 <?php 306 313 "otherStorage": { 314 "description": "Provides more information about where information may be stored, other than the database.", 307 315 "type": "object", 308 316 "properties": { … … 319 327 "properties": { 320 328 "auto": { 321 "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 doesnot include files that are added directly from the repository, or in the original .zip file.",329 "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 should not include files that are added directly from the repository, or in the original .zip file.", 322 330 "type": "boolean" 323 331 }, 324 332 "manual": { 325 "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 doesnot include files that are added directly from the repository, or in the original .zip file.",333 "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 should not include files that are added directly from the repository, or in the original .zip file.", 326 334 } 327 335 } … … 334 342 <?php 335 343 "automation": { 336 "description": "Provides some information with regards to action taken by the code without user input.",344 "description": "Provides more information with regards to action taken by the code without user input.", 337 345 "type": "object", 338 346 "properties": { … … 352 360 }, 353 361 "compatibility": { 354 " type": "object",355 " description": "Indicates the component's compatibility with Privacy Tools.",362 "description": "Indicates whether or not the code is compatible with Privacy Tools.", 363 "type": "object", 356 364 "properties": { 357 365 "ppiExport": { … … 383 391 "monetization": { 384 392 "type": "object", 385 "description": "This section provides details regarding monetization practices.",393 "description": "This section provides more information about monetization practices. It is included to help facilitate transparency and fair business dealings. Please note that disclosure here does not relieve a developer from any specific obligations that they may have under applicable statutes.", 386 394 "properties": { 387 395 "upsells": { 388 "description": "Does this code promote a paid version, or extensions, or other products or services from the same author(s)?", 389 "type": "boolean" 396 "description": "More information about upselling in the code.", 397 "type": "array", 398 "items": [ 399 { 400 "description": "Does this code promote a paid version, or extensions, or other products or services from the same author(s)?", 401 "type": "boolean" 402 } 403 ], 404 "additionalItems: { 405 "description": "A comma-separate list of URLs linking to the Terms of Service that apply to any paid version, or extension, or other products or services from the same author(s).", 406 "type": "string" 407 } 390 408 }, 391 409 "donations": { 392 "description": "Does this code contain any request, or information in order to, donate to the plugin or its developer(s)?", 393 "type": "boolean" 410 "description": "More information about donations that are facilitated by the code.", 411 "type": "array", 412 "items": [ 413 { 414 "description": "Does this code contain any request, or information in order to, donate to the plugin or its developer(s)?", 415 "type": "boolean" 416 } 417 ], 418 "additionalItems": { 419 "description": "A comma-separated list of URLs linking to the Terms of Service that apply to the platform being used to facilitate donations.", 420 "type": "string" 421 } 394 422 }, 395 423 "backLinks": { 396 "description": "Does this code contain or generate, or ask the site owner / admin for permission to generate, backlinks?", 397 "type": "boolean" 424 "description": "More information about the code requesting credit.", 425 "type": "array", 426 "items": [ 427 { 428 "description": "Does this code contain or generate, or ask the site owner / admin for permission to generate, backlinks?", 429 "type": "boolean" 430 } 431 ], 432 "additionalItems": { 433 "type": "string" 434 } 398 435 }, 399 436 "affiliates": { 400 "description": "Does this code contain, or generate affiliate links - i.e. links from which the author may receive conditional compensation, whether in money, or in kind?", 401 "type": "boolean" 437 "description": "More information about affiliate networks that are promoted by the code.", 438 "type": "array", 439 "items": [ 440 { 441 "description": "Does this code contain, or generate affiliate links - i.e. links from which the author may receive conditional compensation, whether in money, or in kind?", 442 "type": "boolean" 443 } 444 ], 445 "additionalItems": { 446 "description": "A comma-separated list of URLs linking to the Terms of Service that apply to affiliate networks being promoted by the code.", 447 "type": "string" 448 } 402 449 }, 403 450 "advertising": { 404 "description": "Does the code contain, or generate promotions or recommendations for any products or services not directly under the control of the author(s), for which the author(s) receive any compensation, whether in money, or in kind?", 405 "type": "boolean" 451 "description": "More information about advertising that is facilitated by the code.", 452 "type": "array", 453 "items": [ 454 { 455 "description": "Does the code contain, or generate promotions or recommendations for any products or services not directly under the control of the author(s), for which the author(s) receive any compensation, whether in money, or in kind?", 456 "type": "boolean 457 } 458 ], 459 "additionalItems": { 460 "description": "A comma-separated list of URLs linking to the Terms of Service that apply to any products or services that are being advertised by the code.", 461 "type": "string" 462 } 406 463 } 407 464 } … … 410 467 } 411 468 }}} 469 470 Thanks to Apedog for suggesting improved phrasing for the "external" property's description.