Proxy
Proxies are specific configurations used to invoke APIs that are not part of the current project but may be exposed by an external provider or another project. Proxies can be instantiated from the dedicated section of the Console Design area.
To create or edit a proxy, you need to provide a manifest, whose resources
property should adhere to the following JSON schema.
tip
The JSON schemas of the proxy resources and of the full proxy manifest are available on GitHub.
- Schema Viewer
- Raw JSON Schema
- Example
Loading ....
{
"$id": "catalog-proxy-resources.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"description": "Resources of Catalog items of type proxy",
"properties": {
"services": {
"maxProperties": 1,
"minProperties": 1,
"patternProperties": {
"^[a-z]([-a-z0-9]*[a-z0-9])?$": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"defaultHeaders": {
"items": {
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"type": "object"
},
"type": "array"
},
"description": {
"type": "string"
},
"name": {
"minLength": 1,
"pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
"type": "string"
},
"type": {
"const": "external"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"name",
"type",
"url"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"host": {
"type": "string",
"pattern": "^([-a-z0-9]+)\\.([-_{}a-z0-9A-Z]+)\\.svc\\.cluster\\.local(:([1-9]\\d{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$"
},
"name": {
"minLength": 1,
"pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
"type": "string"
},
"type": {
"const": "cross-projects"
}
},
"required": [
"name",
"type",
"host"
],
"type": "object"
}
]
}
},
"additionalProperties": false,
"type": "object"
}
},
"required": [
"services"
],
"title": "Catalog proxy resources",
"type": "object",
"examples": [
{
"services": {
"external-proxy": {
"name": "external-proxy",
"type": "external",
"url": "https://example.com"
}
}
},
{
"services": {
"cross-project-proxy": {
"name": "cross-project-proxy",
"type": "cross-projects",
"host": "project-a-host:80"
}
}
}
]
}
{
"services": {
"external-proxy": {
"name": "external-proxy",
"type": "external",
"url": "https://example.com"
}
}
}