Type: array

Each item of this array must be:

Type: object

Type: stringFormat: uri

Used to locate the assets for a specific widget type. Use this if the location of the JS, CSS, images, etc. is different from the location of this document.


Examples:

"https://s3.amazonaws.com/acmeinc.widgets.prod"
"https://static.mateuaguilo.com"

Type: string

The widget type identifier across all systems. This ID should be unique per registry.

Must be at most 255 characters long


Examples:

"boilerplate"
"foo-bar"

Type: string

The semantic version string for the widget. This is mainly used for change detection.

Must match regular expression: ^v[0-9]+\.[0-9]+\.[0-9]+$
Examples:

"v0.2.1"
"v3.0.1"

Type: array of string

The list of files necessary to embed a widget into an HTML page. If you are building a widget type CMS integration, this should be your main integration point. A widget should be completely functional after including these files and then executing the render function.

Each item of this array must be:

Type: string

File path relative to "directoryUrl" to embed on the page for this widget. If no "directoryUrl" is present then consider these files to be relative to the location of this document.


Examples:

"js/main.js"
"assets/media.jpeg"
"1/FA/99/BF3305.chunk.js"

Type: string

This is used in editorial tools to provide a friendlier alternative to "shortcode". This property should be unique per registry to avoid confusion, but it is not mandatory.

Must be at most 255 characters long


Examples:

"Boilerplate"
"Foo is the Bar"

Type: stringFormat: date-time

The original date when this was created.


Example:

"2021-04-28T14:15:03.750Z"

Type: stringFormat: date-time

The last time this entry was modified.


Example:

"2021-04-28T14:15:03.750Z"

Type: object

Used by widget developers to create reusable widget types. Allows JS widget developers to specify input data that the widget needs.

Some examples for this could include:

  • Content for a CTA button.
  • A radio button to select dark mode,
  • a checklist to only display certain products on the widget.
  • A text field to specify an API endpoint.
  • etc.

This uses the JSON Schema format for each one of the fields, then each CMS integration will transform that into a form that editors will use for data input. Data provided by editors will then be serialized and rendered as "data-[name-of-field]" attributes in the wrapper div for the widget.

Type: object or boolean Default: true

Type: stringFormat: uri-reference

Type: stringFormat: uri

Type: stringFormat: uri-reference

Type: boolean Default: false

Type: boolean Default: false

Type: array

Each item of this array must be:

Type: number

Value must be strictly greater than 0

Type: integer

Value must be greater or equal to 0

Type: stringFormat: regex

Type: object or boolean Default: true
Same definition as fields

Default: true

Type: object or boolean Default: true
Same definition as fields
Type: array

Must contain a minimum of 1 items

Each item of this array must be:

Type: object or boolean Default: true
Same definition as fields

Type: boolean Default: false

Type: object or boolean Default: true
Same definition as fields

Type: array of string Default: []

All items must be unique

Each item of this array must be:

Each additional property must conform to the following schema

Type: object or boolean Default: true
Same definition as fields

Type: object Default: {}

Each additional property must conform to the following schema

Type: object or boolean Default: true
Same definition as fields

Type: object Default: {}

Each additional property must conform to the following schema

Type: object or boolean Default: true
Same definition as fields

Type: object Default: {}

Each additional property must conform to the following schema

Type: object or boolean Default: true
Same definition as fields

Type: object

Type: object or boolean Default: true
Same definition as fields

Type: array

Must contain a minimum of 1 items

All items must be unique

Each item of this array must be:


Type: enum (of string)

Must be one of:

  • "array"
  • "boolean"
  • "integer"
  • "null"
  • "number"
  • "object"
  • "string"
Type: array

Must contain a minimum of 1 items

All items must be unique

Each item of this array must be:

Type: object or boolean Default: true
Same definition as fields

Type: object or boolean Default: true
Same definition as fields

Type: object or boolean Default: true
Same definition as fields

Type: object or boolean Default: true
Same definition as fields

Type: enum (of string)

Denotes the status of the widget and its readiness for production.

Must be one of:

  • "stable"
  • "beta"
  • "wip"
  • "deprecated"

Type: string

Documentation or help for this widget. This is provided by the developer and it may be surfaced to editors in the CMS editorial forms. This field can contain HTML.


Example:

"The G2 Crowd widget pulls the data from the G2 API to display interactive information on the product specified."

Type: stringFormat: uri

A URL with more information about the widget. This is typically a link to the widget type repository or demo page. This page should contain information about the license of the software for the widget.


Examples:

"https://github.com/MyOrg/js-widget-types-monorepo"
"https://codeberg.org/MyOrg/js-widget-types-monorepo"

Additional Properties of any type are allowed.

Type: object