Skip to content
On this page

Contributing Items

This repository lists all officially supported marketplace items listed on the Netzo Marketplace and used by the Netzo.

We review all marketplace items before they are published. This means that it may take some time before we can review your item.

To submit a marketplace item for review:

  1. Fork this repository
  2. Select and copy any other item as a starting template
  3. Develop the item by modifying the copied files accordingly
  4. Add the URL of the item.json file to items.json
  5. Create a pull request

Feel free to contribute marketplace item requests. We continuously select popular item requests (based on upvotes and other factors) to implement them and make them available in the marketplace as core items. The source code for relevant items (those with main field in its item.json file) can be stored directly at the item's directory, feel free to contribute the item implementation as well. After a quick review they would also appear in the marketplace as community items.

item.json

To be valid, item.json file must validate against the item.schema.json JSON Schema. You can use a tool like JSON Schema Validator for quickly testing your item.json files.

Note that fields at the root level will be merged (to the first level) with those under the item field when forking items from the Marketplace. In this way, the fields under the item field may override the default values at the root level.

The following table summarizes the fields in a item.json file.

PropertyTypeRequiredDescription
uidstringtrueunique ID (kebab-case) prefixed by the item type (e.g. service- or project-)
_type'service' | 'project'truetype of marketplace item
versionstringtruecurrent version of marketplace item in semantic version
statusalpha | beta | stable | requested | deprecatedtruecurrent development status of marketplace item.
categorycore | community | enterprisetruecategory of marketplace item.
namestringtruehuman-friendly display name for the item
descriptionstringtruebrief description of marketplace item
labelsstring[]falserelevant keywords (tags) (kebab-case)
authorsstring[]falseemails of item authors or owners (e.g. [email protected])
licensestringfalselicensing information (e.g. MIT)
displayDisplaytruerelevant details for rendering the item in the UI
linksLink[]falselink relations to related web resources
schemaSchemafalseJSON schema of object describing placeholder variables to prompt user with a configuration form when forking item from the marketplace
item*ServiceItem | ProjectItemtrueAdditional properties specific to each item based on the value of the _type field.

* Values for common fields like name, description, labels and display can be specified only once at the root. Any field specified under item will override its default value at the root. Refer to existing marketplace items for examples of this.

Display

PropertyTypeRequiredDescription
imageUrlstringtrueURL to the item's display image (used as logo)
PropertyTypeRequiredDescription
relstringfalselink relation (see possible values here)
namestringfalsehuman-friendly display name
hrefstringtrueURL to the link resource in the internet

Form

PropertyTypeRequiredDescription
modelstringfalselink relation (see possible values here)
schemastringfalsehuman-friendly display name
optionsstringtrueURL to the link resource in the internet

ServiceItem

PropertyTypeRequiredDescription
name*stringfalsehuman-friendly display name for the item
description*stringfalsebrief description of marketplace item
labels*string[]falserelevant keywords (tags) (kebab-case)
display*Displayfalserelevant details for rendering the item in the UI
client*objecttrue(client) configuration for the Service
requests*object[]falsepre-configured requests for using, testing and/or debuging the Service

ProjectItem

PropertyTypeRequiredDescription
name*stringfalsehuman-friendly display name for the item
description*stringfalsebrief description of marketplace item
labels*string[]falserelevant keywords (tags) (kebab-case)
display*Displayfalserelevant details for rendering the item in the UI
filesobject[]truereferences to source code files for the Project
requestsobject[]falsepre-configured requests for using, testing and/or debuging the Project
optionsobjecttrue(options) configuration for the Service

Example item.json

Here's a reduced example of item.json file. You can also always have a look at other items for further reference.

json
{
  "uid": "service-http-netzo",
  "type": "service",
  "version": "1.0.0",
  "status": "stable",
  "category": "core",
  "name": "Netzo",
  "description": "Service for the Netzo API",
  "labels": [
    "infrastructure",
    "integrations",
    "admin"
  ],
  "authors": [
    "[email protected]",
    "[email protected]"
  ],
  "license": "MIT",
  "display": {
    "imageUrl": "https://raw.githubusercontent.com/netzoio/netzo/main/marketplace/services/service-http-netzo/icon.webp"
  },
  "links": [
    {
      "rel": "author",
      "href": "https://netzo.io",
      "title": "Netzo"
    },
    {
      "rel": "repository",
      "href": "https://github.com/netzoio/netzo/tree/main/marketplace/services/service-http-netzo"
    },
    {
      "rel": "readme",
      "href": "https://raw.githubusercontent.com/netzoio/netzo/main/marketplace/services/service-http-netzo/README.md"
    },
    {
      "rel": "license",
      "href": "https://raw.githubusercontent.com/netzoio/netzo/main/LICENSE"
    }
  ],
  "schema": {
    "type": "object",
    "properties": {
      "apiKey": {
        "type": "string",
        "title": "API Key"
      }
    }
  },
  "item": {
    "_type": "service",
    "client": {
      "baseURL": "https://api.netzo.io",
      "headers": {
        "Content-Type": "application/json"
      },
      "authorization": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "value": "{{apiKey}}"
      }
    },
    "requests": []
  }
}
Contributing Items has loaded