{ "$comment": "This file was automatically generated, do not modify it by hand. Instead, modify the source Typescript file, and run `pnpm types build:catalog-schemas`.", "$id": "catalog-plugin.manifest.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "Catalog plugin item manifest", "description": "Data model of a Catalog plugin item to apply", "type": "object", "properties": { "categoryId": { "description": "Identifier of the item's category", "type": "string" }, "description": { "description": "Brief description of the item", "type": "string" }, "documentation": { "description": "Documentation of the item", "properties": { "type": { "enum": [ "externalLink", "markdown" ], "type": "string" }, "url": { "type": "string" } }, "required": [ "type", "url" ], "type": "object" }, "imageUrl": { "description": "Url of the image associated with the item", "type": "string" }, "itemId": { "description": "RFC-1035 compliant identifier of the item. It forms a composite PK with tenantId and, if present, version.name", "minLength": 1, "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$", "type": "string" }, "lifecycleStatus": { "description": "Lifecycle status of the item", "enum": [ "coming-soon", "draft", "published", "maintenance", "deprecated", "archived" ], "type": "string" }, "name": { "description": "Human-readable name of the item", "minLength": 1, "type": "string" }, "providerId": { "description": "Identifier of the provider used to retrieve markdown documentation content and external resources, if supported by the item type", "type": "string" }, "publishOnMiaDocumentation": { "description": "Flag stating if the resource documentation should be published on Mia-Platform public documentation", "type": "boolean" }, "releaseDate": { "description": "Creation date of this item's release", "format": "date-time", "type": "string" }, "repositoryUrl": { "description": "URL of the repository containing the source code of the resource created by the item", "type": "string" }, "resources": { "additionalProperties": false, "properties": { "listeners": { "additionalProperties": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "ownedBy": { "additionalProperties": false, "properties": { "componentIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "componentIds" ], "type": "object" }, "port": { "minLength": 1, "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" }, "selectedByDefault": { "type": "boolean" } }, "required": [ "name", "port" ], "type": "object" }, "type": "object" }, "services": { "maxProperties": 1, "minProperties": 1, "patternProperties": { "^[a-z]([-a-z0-9]*[a-z0-9])?$": { "additionalProperties": false, "properties": { "args": { "items": { "type": "string" }, "type": "array" }, "additionalContainers": { "items": { "additionalProperties": false, "properties": { "args": { "items": { "type": "string" }, "type": "array" }, "componentId": { "type": "string" }, "containerPorts": { "items": { "additionalProperties": false, "properties": { "from": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] }, "name": { "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "protocol": { "default": "TCP", "enum": [ "TCP", "UDP" ], "type": "string" }, "to": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] } }, "required": [ "name", "from" ], "type": "object" }, "type": "array" }, "defaultArgs": { "items": { "type": "string" }, "type": "array" }, "defaultEnvironmentVariables": { "items": { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "value": { "description": "The variable default value. It can contain placeholders that will be replaced with the actual values when the service is created", "type": "string" }, "valueType": { "const": "plain" } }, "required": [ "name", "valueType" ], "type": "object" } ] }, "type": "array" }, "defaultProbes": { "description": "The readiness, liveness, and startup paths of the service. By modifying the map of the probes, you can overwrite the default paths applied by the Console", "additionalProperties": false, "properties": { "liveness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "readiness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "startup": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] } }, "type": "object" }, "defaultResources": { "description": "CPU and memory limitations of the service, which can be used to overwrite the default limitations imposed by the Console for these parameters", "additionalProperties": false, "properties": { "cpuLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" } }, "type": "object" }, "memoryLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" } }, "type": "object" } }, "type": "object" }, "description": { "type": "string" }, "dockerImage": { "pattern": "^(?:[a-z0-9.\\-\\/:]+\\/)?([\\w.}{\\-\\/]+)(:[\\w.}{\\-]+)?$", "type": "string" }, "name": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" } }, "required": [ "name", "dockerImage" ], "type": "object" }, "type": "array" }, "componentId": { "type": "string" }, "containerPorts": { "items": { "additionalProperties": false, "properties": { "from": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] }, "name": { "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "protocol": { "default": "TCP", "enum": [ "TCP", "UDP" ], "type": "string" }, "to": { "oneOf": [ { "type": "integer", "minimum": 0, "maximum": 65535 }, { "pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$", "type": "string" } ] } }, "required": [ "name", "from" ], "type": "object" }, "type": "array" }, "defaultAnnotations": { "description": "The service annotations, which can be used to provide additional information about your services for various purposes. Annotations starting with `mia-platform.eu` are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultArgs": { "items": { "type": "string" }, "type": "array" }, "defaultConfigMaps": { "description": "The default ConfigMaps, if any, that will be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "files": { "items": { "properties": { "content": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "type": "array" }, "link": { "properties": { "targetSection": { "type": "string" } }, "type": "object" }, "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "subPaths": { "type": "array", "items": { "type": "string" } }, "usePreserve": { "type": "boolean" }, "viewAsReadOnly": { "type": "boolean" } }, "required": [ "name", "files", "mountPath" ], "type": "object" }, "type": "array" }, "defaultDocumentationPath": { "description": "The APIs documentation path", "pattern": "^$|^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$", "type": "string" }, "defaultEnvironmentVariables": { "description": "The environment variables that will overwrite the default environment variables applied by the Console", "items": { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "value": { "description": "The variable default value. It can contain placeholders that will be replaced with the actual values when the service is created", "type": "string" }, "valueType": { "const": "plain" } }, "required": [ "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "configMapName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "configMapFileName": { "pattern": "^[-._a-zA-Z0-9]+$", "type": "string" }, "valueType": { "const": "configmap" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "secretKey": { "pattern": "^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|[a-zA-Z0-9-_.]*)$", "type": "string" }, "secretName": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" }, "valueType": { "const": "secret" } }, "required": [ "name", "valueType", "secretName", "secretKey" ], "type": "object" }, { "oneOf": [ { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "description": "The field path of the Downward API that contains the value of the variable", "oneOf": [ { "type": "string", "enum": [ "metadata.name", "metadata.namespace", "metadata.uid", "spec.serviceAccountName", "spec.nodeName", "status.hostIP", "status.podIP", "status.podIPs" ] }, { "type": "string", "pattern": "^metadata.annotations\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" }, { "type": "string", "pattern": "^metadata.labels\\['([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)'\\]$" } ] }, "valueType": { "const": "downwardAPI" } }, "required": [ "fieldPath", "name", "valueType" ], "type": "object" }, { "additionalProperties": false, "properties": { "name": { "description": "The variable name (generally, a key written in UPPER_SNAKE_CASE)", "minLength": 1, "type": "string" }, "description": { "description": "A brief description of the variable", "type": "string" }, "managedBy": { "description": "A string that represents the Console section that manages the variable. It only works used in combination with the `readOnly` property set to `true`", "type": "string", "enum": [ "fast-data" ] }, "readOnly": { "description": "A boolean that represents if you can change the value of the variable through the Console", "type": "boolean" }, "fieldPath": { "type": "string", "enum": [ "resource.limits.cpu", "resource.requests.cpu", "resource.limits.memory", "resource.requests.memory", "resource.limits.ephemeral-storage", "resource.requests.ephemeral-storage" ] }, "valueType": { "const": "downwardAPI" }, "containerName": { "description": "The name of the container where the field is located", "type": "string" } }, "required": [ "fieldPath", "name", "valueType", "containerName" ], "type": "object" } ] } ] }, "type": "array" }, "defaultLabels": { "description": "The service labels, which can be used to categorize, group, and select your service. Labels starting with \"mia-platform.eu\" are reserved", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "name": { "pattern": "^([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,253}[\\/])?([a-zA-Z0-9][a-zA-Z0-9\\.\\-]{0,63}[a-zA-Z0-9]?)$", "type": "string" }, "readOnly": { "type": "boolean" }, "value": { "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "type": "array" }, "defaultLogParser": { "enum": [ "mia-plain", "mia-json", "mia-nginx" ], "type": "string" }, "defaultMonitoring": { "additionalProperties": false, "properties": { "endpoints": { "items": { "additionalProperties": false, "properties": { "interval": { "type": "string", "pattern": "^(\\d)+[s]$" }, "path": { "type": "string", "pattern": "^\\/(([\\w-])\\/?)*$" }, "port": { "type": "string" } }, "required": [ "interval", "path", "port" ], "type": "object" }, "type": "array" } }, "type": "object" }, "defaultProbes": { "description": "The readiness, liveness, and startup paths of the service. By modifying the map of the probes, you can overwrite the default paths applied by the Console", "additionalProperties": false, "properties": { "liveness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "readiness": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] }, "startup": { "oneOf": [ { "additionalProperties": false, "properties": { "cmd": { "items": { "type": "string" }, "type": "array" }, "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "cmd" ], "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "type": "object" }, { "additionalProperties": false, "properties": { "failureThreshold": { "type": "number" }, "initialDelaySeconds": { "type": "number" }, "path": { "pattern": "^\\/(([\\w\\-:.\\{\\}])\\/?)*$|^$", "type": "string" }, "periodSeconds": { "type": "number" }, "port": { "type": "string" }, "successThreshold": { "type": "number" }, "timeoutSeconds": { "type": "number" } }, "required": [ "path" ], "type": "object" } ] } }, "type": "object" }, "defaultResources": { "description": "CPU and memory limitations of the service, which can be used to overwrite the default limitations imposed by the Console for these parameters", "additionalProperties": false, "properties": { "cpuLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))m$)|^$", "type": "string" } }, "type": "object" }, "memoryLimits": { "additionalProperties": false, "properties": { "max": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" }, "min": { "pattern": "(^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|(\\d+))Mi$)|^$", "type": "string" } }, "type": "object" } }, "type": "object" }, "defaultSecrets": { "description": "The default secrets, if any, to be mounted inside the container of the microservice", "items": { "additionalProperties": false, "properties": { "mountPath": { "pattern": "^[a-zA-Z0-9-/_\\s.|\\\\!\"£$%&()=?^\"{}[\\]*+@]+$", "type": "string" }, "name": { "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "type": "string" } }, "required": [ "name", "mountPath" ], "type": "object" }, "type": "array" }, "defaultTerminationGracePeriodSeconds": { "type": "number" }, "description": { "type": "string" }, "dockerImage": { "pattern": "^(?:[a-z0-9.\\-\\/:]+\\/)?([\\w.}{\\-\\/]+)(:[\\w.}{\\-]+)?$", "type": "string" }, "execPreStop": { "type": "array", "items": { "type": "string" } }, "links": { "description": "Custom links to other Console pages", "items": { "properties": { "enableIf": { "description": "The name of a feature toggle to be used to optionally display the link", "type": "string" }, "hidePrefix": { "description": "Flag stating if the `label` should not be prefixed by a \"View\" copy", "type": "boolean" }, "label": { "description": "The label to be shown in the link button. It does not support internationalization. Unless property `hidePrefix` is set to `false`, the label will be shown right next to a \"View\" copy", "type": "string" }, "targetSection": { "description": "The name of the registered microfrontend where the link should land", "examples": [ "flow-manager" ], "type": "string" } }, "type": "object" }, "type": "array" }, "mapEnvVarToMountPath": { "type": "object", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "file", "folder" ] }, "envName": { "type": "string" } }, "additionalProperties": false, "required": [ "type", "envName" ] } }, "name": { "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "type": { "const": "plugin" } }, "required": [ "name", "type", "dockerImage" ], "type": "object" } }, "additionalProperties": false, "type": "object" } }, "required": [ "services" ], "type": "object", "examples": [ { "services": { "e-commerce-service": { "type": "plugin", "name": "e-commerce-service", "description": "Backend for an E-Commerce", "tags": [ "e-commerce", "backend" ], "links": [ { "label": "Configurator", "targetSection": "flow-manager" } ], "componentId": "e-commerce", "dockerImage": "e-commerce-service:1.0.0", "containerPorts": [ { "from": 3000, "to": 80, "name": "http" } ], "defaultAnnotations": [ { "name": "domain", "value": "orders" } ], "defaultLabels": [ { "name": "technologies", "value": "javascript" } ], "defaultDocumentationPath": "/documentation/json", "defaultLogParser": "mia-json", "defaultEnvironmentVariables": [ { "name": "LOG_LEVEL", "valueType": "plain", "value": "info" } ], "defaultConfigMaps": [ { "name": "e-commerce-service-config", "mountPath": "/home/node", "files": [ { "name": "config.json", "content": "{ \"mongodbUrl\": \"{{MONGODB_URL}}\" }" } ] } ], "defaultSecrets": [ { "name": "private-key", "mountPath": "/home/node" } ], "defaultProbes": { "liveness": { "port": "3000", "path": "/healthz" }, "readiness": { "port": "3000", "path": "/healthz" }, "startup": { "port": "3000", "path": "/healthz" } }, "defaultResources": { "memoryLimits": { "max": "250Mi", "min": "150Mi" }, "cpuLimits": { "min": "150m", "max": "200m" } } } } } ] }, "supportedBy": { "description": "Identifier of the company that has produced the item", "type": "string" }, "supportedByImageUrl": { "description": "Url of the image associated with the company that has produced the item", "type": "string" }, "tenantId": { "description": "Identifier of the tenant to which the item belongs. It forms a composite PK with itemId and, if present, version.name", "type": "string" }, "type": { "const": "plugin" }, "version": { "description": "Version of the item following semver", "properties": { "name": { "description": "Semantic version", "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$", "type": "string" }, "releaseNote": { "description": "Markdown release note", "type": "string" }, "security": { "description": "Flag stating if the version addresses any vulnerability", "type": "boolean" } }, "required": [ "name", "releaseNote" ], "type": "object" }, "visibility": { "description": "Visibility of the item", "properties": { "allTenants": { "default": false, "description": "If true, the item will be accessible to all companies", "type": "boolean" }, "public": { "default": false, "description": "If true, the item will be accessible from any user that access the Console, even if not authenticated", "type": "boolean" } }, "type": "object" }, "$schema": { "type": "string" } }, "additionalProperties": false, "required": [ "name", "itemId", "tenantId", "type", "resources", "lifecycleStatus" ] }