Extension
Extensions are custom pages that enhances Console capabilities by integrating it into the sidebar navigation.
To create or edit an extension, you need to provide a manifest, whose resources
property should adhere to the following JSON schema.
tip
The JSON schemas of the extension resources and of the full extension manifest are available on GitHub.
- Schema Viewer
- Raw JSON Schema
- Example
Catalog extension resources
type : object
contexts (string,...)[] required
extensionType string required
name string required
permissions (string,...)[]
roleIds (string,...)[]
Resources of Catalog items of type extension
allOf
- any
- any
type : any
Always valid
Conditional subschemas
type : any
Always valid
Conditional subschemas
{
"$id": "catalog-extension-resources.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"allOf": [
{
"if": {
"properties": {
"extensionType": {
"enum": [
"iframe",
"external-link"
],
"type": "string"
}
}
},
"then": {
"properties": {
"entry": {
"type": "string"
},
"routes": {
"items": {
"properties": {
"destinationPath": {
"type": "string"
},
"icon": {
"properties": {
"name": {
"type": "string"
}
},
"type": "object"
},
"id": {
"type": "string"
},
"labelIntl": {
"properties": {
"en": {
"type": "string"
},
"it": {
"type": "string"
}
},
"type": "object"
},
"locationId": {
"type": "string"
},
"matchExactMountPath": {
"type": "boolean"
},
"order": {
"type": "number"
},
"parentId": {
"type": "string"
},
"renderType": {
"enum": [
"category"
],
"type": "string"
}
},
"required": [
"id",
"locationId",
"labelIntl"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"entry"
]
}
},
{
"if": {
"properties": {
"extensionType": {
"const": "composer-page"
}
}
},
"then": {
"properties": {
"configuration": {
"type": "string"
}
},
"required": [
"configuration"
]
}
}
],
"description": "Resources of Catalog items of type extension",
"properties": {
"contexts": {
"items": {
"enum": [
"console",
"project",
"company"
],
"type": "string"
},
"type": "array"
},
"extensionType": {
"enum": [
"iframe",
"external-link",
"composer-page"
],
"type": "string"
},
"name": {
"type": "string"
},
"permissions": {
"items": {
"type": "string"
},
"type": "array"
},
"roleIds": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"extensionType",
"contexts"
],
"title": "Catalog extension resources",
"type": "object",
"examples": [
{
"name": "E-Commerce configurator",
"extensionType": "iframe",
"contexts": [
"company"
],
"entry": "https://e-commerce-configurator.com"
},
{
"name": "E-Commerce dashboard",
"extensionType": "external-link",
"contexts": [
"company"
],
"entry": "https://e-commerce-dashboard.com"
},
{
"name": "E-Commerce CMS",
"extensionType": "composer-page",
"contexts": [
"project"
],
"configuration": "{\"tag\":\"p\",\"content\":\"Hello!\"}"
}
]
}
{
"name": "E-Commerce configurator",
"extensionType": "iframe",
"contexts": [
"company"
],
"entry": "https://e-commerce-configurator.com"
}