Application
Applications are bundles of resources that brings together services (i.e., plugins, templates, and examples), endpoints, CRUD collections, and public variables to ease the setup of large-scale artifacts.
To create or edit an application, you need to provide a manifest, whose resources
property should adhere to the following JSON schema.
tip
The JSON schemas of the application resources and of the full application manifest are available on GitHub.
- Schema Viewer
- Raw JSON Schema
- Example
Loading ....
{
"$id": "catalog-application-resources.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"description": "Resources of Catalog items of type application",
"properties": {
"collections": {
"description": "Collections to be created with the application. The key of each collection MUST be equal to the collection `defaultName` property. Collections only work if a Mia-Platform CRUD Service is already in the project or is created through the application itself.",
"patternProperties": {
"(^[\\w-]+$)": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"defaultName": {
"maxLength": 80,
"pattern": "(^[\\w-]+$)",
"type": "string"
},
"description": {
"type": "string"
},
"fields": {
"items": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"encryptionEnabled": {
"type": "boolean"
},
"encryptionSearchable": {
"type": "boolean"
},
"name": {
"pattern": "^[^$\\.]+$",
"type": "string"
},
"nullable": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"schema": {
"additionalProperties": false,
"properties": {
"additionalProperties": {
"type": "boolean"
},
"encryption": {
"properties": {
"enabled": {
"type": "boolean"
},
"searchable": {
"type": "boolean"
}
},
"type": "object"
},
"properties": {
"additionalProperties": true,
"type": "object"
},
"required": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"const": "object"
}
},
"type": "object"
},
"sensitivityDescription": {
"type": "string"
},
"sensitivityValue": {
"maximum": 4,
"minimum": 0,
"type": "number"
},
"type": {
"enum": [
"RawObject",
"Array_RawObject"
],
"type": "string"
}
},
"required": [
"name",
"type",
"required",
"nullable"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"encryptionEnabled": {
"type": "boolean"
},
"encryptionSearchable": {
"type": "boolean"
},
"name": {
"pattern": "^[^$\\.]+$",
"type": "string"
},
"nullable": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"sensitivityDescription": {
"type": "string"
},
"sensitivityValue": {
"maximum": 4,
"minimum": 0,
"type": "number"
},
"type": {
"enum": [
"ObjectId",
"string",
"Date",
"boolean",
"GeoPoint",
"object",
"number",
"Array",
"Array_string",
"Array_number"
],
"type": "string"
}
},
"required": [
"name",
"type",
"required",
"nullable"
],
"type": "object"
}
]
},
"type": "array"
},
"id": {
"type": "string"
},
"indexes": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "normal"
},
"unique": {
"type": "boolean"
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
}
},
"required": [
"name",
"type",
"unique",
"fields"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "geo"
},
"unique": {
"type": "boolean"
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
}
},
"required": [
"name",
"type",
"unique",
"fields"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "hash"
},
"unique": {
"const": false
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
}
},
"required": [
"name",
"type",
"unique",
"fields"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "ttl"
},
"unique": {
"type": "boolean"
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
},
"expireAfterSeconds": {
"type": "number",
"minimum": 1
}
},
"required": [
"name",
"type",
"unique",
"fields",
"expireAfterSeconds"
]
}
]
}
},
"internalEndpoints": {
"items": {
"additionalProperties": false,
"properties": {
"basePath": {
"type": "string"
},
"defaultState": {
"type": "string",
"enum": [
"DRAFT",
"PUBLIC"
]
}
},
"required": [
"basePath"
],
"type": "object"
},
"maxItems": 1,
"minItems": 1,
"type": "array"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"const": "collection"
}
},
"required": [
"type",
"defaultName",
"internalEndpoints"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"defaultName": {
"maxLength": 80,
"pattern": "(^[\\w-]+$)",
"type": "string"
},
"defaultPipeline": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
{
"type": "string"
}
],
"deprecated": true
},
"defaultSource": {
"maxLength": 80,
"pattern": "(^[\\w-]+$)",
"type": "string",
"deprecated": true
},
"description": {
"type": "string"
},
"fields": {
"items": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"encryptionEnabled": {
"type": "boolean"
},
"encryptionSearchable": {
"type": "boolean"
},
"name": {
"pattern": "^[^$\\.]+$",
"type": "string"
},
"nullable": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"schema": {
"additionalProperties": false,
"properties": {
"additionalProperties": {
"type": "boolean"
},
"encryption": {
"properties": {
"enabled": {
"type": "boolean"
},
"searchable": {
"type": "boolean"
}
},
"type": "object"
},
"properties": {
"additionalProperties": true,
"type": "object"
},
"required": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"const": "object"
}
},
"type": "object"
},
"sensitivityDescription": {
"type": "string"
},
"sensitivityValue": {
"maximum": 4,
"minimum": 0,
"type": "number"
},
"type": {
"enum": [
"RawObject",
"Array_RawObject"
],
"type": "string"
}
},
"required": [
"name",
"type",
"required",
"nullable"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"encryptionEnabled": {
"type": "boolean"
},
"encryptionSearchable": {
"type": "boolean"
},
"name": {
"pattern": "^[^$\\.]+$",
"type": "string"
},
"nullable": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"sensitivityDescription": {
"type": "string"
},
"sensitivityValue": {
"maximum": 4,
"minimum": 0,
"type": "number"
},
"type": {
"enum": [
"ObjectId",
"string",
"Date",
"boolean",
"GeoPoint",
"object",
"number",
"Array",
"Array_string",
"Array_number"
],
"type": "string"
}
},
"required": [
"name",
"type",
"required",
"nullable"
],
"type": "object"
}
]
},
"type": "array"
},
"id": {
"type": "string"
},
"indexes": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "normal"
},
"unique": {
"type": "boolean"
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
}
},
"required": [
"name",
"type",
"unique",
"fields"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "geo"
},
"unique": {
"type": "boolean"
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
}
},
"required": [
"name",
"type",
"unique",
"fields"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "hash"
},
"unique": {
"const": false
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
}
},
"required": [
"name",
"type",
"unique",
"fields"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-zA-Z_][\\w-]*$"
},
"type": {
"const": "ttl"
},
"unique": {
"type": "boolean"
},
"description": {
"type": "string"
},
"usePartialFilter": {
"type": "boolean"
},
"partialFilterExpression": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^_?[ \\w-]+(\\.[\\w-]+|(\\.\\$\\*\\*))*$|^(\\$\\*\\*)$"
},
"order": {
"type": "number",
"enum": [
1,
-1
]
}
},
"required": [
"name",
"order"
]
}
},
"expireAfterSeconds": {
"type": "number",
"minimum": 1
}
},
"required": [
"name",
"type",
"unique",
"fields",
"expireAfterSeconds"
]
}
]
}
},
"internalEndpoints": {
"items": {
"additionalProperties": false,
"properties": {
"basePath": {
"type": "string"
},
"defaultState": {
"type": "string",
"enum": [
"DRAFT",
"PUBLIC"
]
}
},
"required": [
"basePath"
],
"type": "object"
},
"maxItems": 1,
"minItems": 1,
"type": "array"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"const": "view"
}
},
"required": [
"type",
"defaultName",
"internalEndpoints"
],
"type": "object"
}
]
}
},
"additionalProperties": false,
"type": "object"
},
"endpoints": {
"description": "Endpoints to be created with the application. The key of each endpoint MUST be equal to the endpoint `defaultBasePath` property. Endpoints only work if a Mia-Platform API Gateway is already in the project or is created through the application itself.",
"patternProperties": {
"^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"acl": {
"type": "string"
},
"allowUnknownRequestContentType": {
"default": false,
"type": "boolean"
},
"allowUnknownResponseContentType": {
"default": false,
"type": "boolean"
},
"backofficeAcl": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "string"
}
},
"required": [
"inherited"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"defaultBasePath": {
"pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$",
"type": "string"
},
"defaultPathRewrite": {
"type": "string"
},
"description": {
"type": "string"
},
"forceMicroserviceGatewayProxy": {
"default": false,
"type": "boolean"
},
"listeners": {
"additionalProperties": {
"type": "boolean"
},
"type": "object"
},
"options": {
"type": "object",
"properties": {
"iframePolicy": {
"type": "string",
"enum": [
"all",
"deny",
"sameorigin"
]
}
}
},
"port": {
"minLength": 1,
"pattern": "^$|^((\\{\\{([A-Z])([A-Z0-9_]*)\\}\\})|([1-9]\\d*|0))$",
"type": "string"
},
"public": {
"type": "boolean"
},
"routes": {
"additionalProperties": false,
"patternProperties": {
"^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$": {
"additionalProperties": false,
"properties": {
"acl": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "string"
}
},
"required": [
"inherited"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"allowUnknownRequestContentType": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"allowUnknownResponseContentType": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"backofficeAcl": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "string"
}
},
"required": [
"inherited"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"catchDecorator": {
"type": "string"
},
"id": {
"pattern": "^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$",
"type": "string"
},
"path": {
"pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$",
"type": "string"
},
"postDecorators": {
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"preDecorators": {
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"public": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"rateLimit": {
"additionalProperties": false,
"properties": {
"inherited": {
"type": "boolean"
}
},
"required": [
"inherited"
],
"type": "object"
},
"schema": {
"type": "object"
},
"secreted": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"showInDocumentation": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"verb": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD"
],
"type": "string"
}
},
"required": [
"id",
"path",
"verb",
"public",
"secreted",
"acl",
"showInDocumentation",
"allowUnknownRequestContentType",
"allowUnknownResponseContentType"
],
"type": "object"
}
},
"type": "object"
},
"secreted": {
"type": "boolean"
},
"service": {
"minLength": 1,
"pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
"type": "string"
},
"showInDocumentation": {
"type": "boolean"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"enum": [
"external",
"custom",
"cross-projects"
],
"type": "string"
},
"useDownstreamProtocol": {
"type": "boolean"
}
},
"required": [
"type",
"defaultBasePath",
"service",
"tags"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"acl": {
"type": "string"
},
"allowUnknownRequestContentType": {
"default": false,
"type": "boolean"
},
"allowUnknownResponseContentType": {
"default": false,
"type": "boolean"
},
"backofficeAcl": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "string"
}
},
"required": [
"inherited"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"collectionId": {
"maxLength": 80,
"pattern": "(^[\\w-]+$)",
"type": "string"
},
"defaultBasePath": {
"pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*)+)$",
"type": "string"
},
"defaultPathRewrite": {
"type": "string"
},
"description": {
"type": "string"
},
"forceMicroserviceGatewayProxy": {
"default": false,
"type": "boolean"
},
"listeners": {
"additionalProperties": {
"type": "boolean"
},
"type": "object"
},
"pathName": {
"type": "string",
"pattern": "^\\/(([\\w\\-:])\\/?)*$"
},
"options": {
"type": "object",
"properties": {
"iframePolicy": {
"type": "string",
"enum": [
"all",
"deny",
"sameorigin"
]
}
}
},
"public": {
"type": "boolean"
},
"routes": {
"additionalProperties": false,
"patternProperties": {
"^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$": {
"additionalProperties": false,
"properties": {
"acl": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "string"
}
},
"required": [
"inherited"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"allowUnknownRequestContentType": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"allowUnknownResponseContentType": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"backofficeAcl": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "string"
}
},
"required": [
"inherited"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"catchDecorator": {
"type": "string"
},
"id": {
"pattern": "^(GET|POST|PUT|PATCH|DELETE|HEAD)(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$",
"type": "string"
},
"path": {
"pattern": "^(\\/$|(\\/([\\w\\-\\.]|(:[a-zA-Z]))[\\w\\-\\.]*\\/?)+)$",
"type": "string"
},
"postDecorators": {
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"preDecorators": {
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"public": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"rateLimit": {
"additionalProperties": false,
"properties": {
"inherited": {
"type": "boolean"
}
},
"required": [
"inherited"
],
"type": "object"
},
"schema": {
"type": "object"
},
"secreted": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"showInDocumentation": {
"default": {
"inherited": true
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": false
},
"value": {
"type": "boolean"
}
},
"required": [
"inherited",
"value"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"inherited": {
"const": true
}
},
"required": [
"inherited"
],
"type": "object"
}
]
},
"verb": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD"
],
"type": "string"
}
},
"required": [
"id",
"path",
"verb",
"public",
"secreted",
"acl",
"showInDocumentation",
"allowUnknownRequestContentType",
"allowUnknownResponseContentType"
],
"type": "object"
}
},
"type": "object"
},
"secreted": {
"type": "boolean"
},
"showInDocumentation": {
"type": "boolean"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"enum": [
"crud",
"view"
],
"type": "string"
}
},
"required": [
"type",
"defaultBasePath",
"collectionId",
"tags"
],
"type": "object"
}
]
}
},
"additionalProperties": false,
"type": "object"
},
"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": {
"description": "Services to be created with the application. The key of each service MUST be equal to the service `name` property",
"patternProperties": {
"^[a-z]([-a-z0-9]*[a-z0-9])?$": {
"oneOf": [
{
"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,
"properties": {
"archiveUrl": {
"format": "uri-reference",
"minLength": 1,
"type": "string"
},
"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"
},
"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"
},
"pipelines": {
"properties": {
"azure-pipelines": {
"properties": {
"branch": {
"type": "string"
},
"path": {
"type": "string"
},
"providerId": {
"type": "string"
}
},
"type": "object"
},
"github-actions": {
"properties": {
"branch": {
"type": "string"
},
"path": {
"type": "string"
},
"providerId": {
"type": "string"
}
},
"type": "object"
},
"gitlab-ci": {
"properties": {
"branch": {
"type": "string"
},
"path": {
"type": "string"
},
"providerId": {
"type": "string"
}
},
"type": "object"
},
"jenkins": {
"properties": {
"gitWebhookOptions": {
"type": "object"
},
"gitlabWebhookOptions": {
"$comment": "Deprecated",
"type": "object"
},
"providerId": {
"type": "string"
},
"xmlTemplate": {
"properties": {
"gitBranch": {
"type": "string"
},
"gitPath": {
"type": "string"
},
"gitProjectId": {
"type": "string"
},
"gitlabBranch": {
"$comment": "Deprecated",
"type": "string"
},
"gitlabPath": {
"$comment": "Deprecated",
"type": "string"
},
"gitlabProjectId": {
"$comment": "Deprecated",
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"webhook": {
"properties": {
"providerId": {
"type": "string"
},
"token": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": {
"const": "example"
}
},
"required": [
"name",
"type",
"archiveUrl"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"archiveUrl": {
"format": "uri-reference",
"minLength": 1,
"type": "string"
},
"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"
},
"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"
},
"pipelines": {
"properties": {
"azure-pipelines": {
"properties": {
"branch": {
"type": "string"
},
"path": {
"type": "string"
},
"providerId": {
"type": "string"
}
},
"type": "object"
},
"github-actions": {
"properties": {
"branch": {
"type": "string"
},
"path": {
"type": "string"
},
"providerId": {
"type": "string"
}
},
"type": "object"
},
"gitlab-ci": {
"properties": {
"branch": {
"type": "string"
},
"path": {
"type": "string"
},
"providerId": {
"type": "string"
}
},
"type": "object"
},
"jenkins": {
"properties": {
"gitWebhookOptions": {
"type": "object"
},
"gitlabWebhookOptions": {
"$comment": "Deprecated",
"type": "object"
},
"providerId": {
"type": "string"
},
"xmlTemplate": {
"properties": {
"gitBranch": {
"type": "string"
},
"gitPath": {
"type": "string"
},
"gitProjectId": {
"type": "string"
},
"gitlabBranch": {
"$comment": "Deprecated",
"type": "string"
},
"gitlabPath": {
"$comment": "Deprecated",
"type": "string"
},
"gitlabProjectId": {
"$comment": "Deprecated",
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"webhook": {
"properties": {
"providerId": {
"type": "string"
},
"token": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": {
"const": "template"
}
},
"required": [
"name",
"type",
"archiveUrl"
],
"type": "object"
}
]
}
},
"additionalProperties": false,
"minProperties": 1,
"type": "object"
},
"unsecretedVariables": {
"additionalProperties": {
"additionalProperties": false,
"properties": {
"noProductionEnv": {
"type": "string"
},
"productionEnv": {
"type": "string"
}
},
"required": [
"productionEnv",
"noProductionEnv"
],
"type": "object"
},
"type": "object"
}
},
"required": [
"services"
],
"title": "Catalog application resources",
"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": "{{LOG_LEVEL}}"
}
],
"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"
}
}
},
"crud-service": {
"type": "plugin",
"name": "crud-service",
"componentId": "crud-service",
"dockerImage": "nexus.mia-platform.eu/core/crud-service:7.2.3"
}
},
"endpoints": {
"/e-commerce": {
"defaultBasePath": "/e-commerce",
"defaultPathRewrite": "/",
"public": true,
"secreted": false,
"service": "e-commerce-service",
"tags": [
"e-commerce"
],
"type": "custom"
}
},
"collections": {
"items": {
"id": "items",
"type": "collection",
"defaultName": "items",
"internalEndpoints": [
{
"basePath": "/items"
}
],
"fields": [
{
"name": "name",
"nullable": false,
"required": true,
"type": "string"
}
]
}
},
"unsecretedVariables": {
"LOG_LEVEL": {
"noProductionEnv": "debug",
"productionEnv": "info"
}
}
}
]
}
{
"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": "{{LOG_LEVEL}}"
}
],
"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"
}
}
},
"crud-service": {
"type": "plugin",
"name": "crud-service",
"componentId": "crud-service",
"dockerImage": "nexus.mia-platform.eu/core/crud-service:7.2.3"
}
},
"endpoints": {
"/e-commerce": {
"defaultBasePath": "/e-commerce",
"defaultPathRewrite": "/",
"public": true,
"secreted": false,
"service": "e-commerce-service",
"tags": [
"e-commerce"
],
"type": "custom"
}
},
"collections": {
"items": {
"id": "items",
"type": "collection",
"defaultName": "items",
"internalEndpoints": [
{
"basePath": "/items"
}
],
"fields": [
{
"name": "name",
"nullable": false,
"required": true,
"type": "string"
}
]
}
},
"unsecretedVariables": {
"LOG_LEVEL": {
"noProductionEnv": "debug",
"productionEnv": "info"
}
}
}