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": "software-catalog-proxy-resources.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"description": "The resources of Software 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": {
"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": "Software 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": "my-service.default.svc.cluster.local:8080"
}
}
}
]
}
{
"services": {
"external-proxy": {
"name": "external-proxy",
"type": "external",
"url": "https://example.com"
}
}
}