Proxy
Each proxy
is the sum total of all configurations that will be sent to each greymatter.io Proxy. This includes the listeners
, domains
, routes
, shared_rules
, and clusters
. Each proxy
object may be mapped to 0 or more physical instances; each of which will share the exact same configurations.
Features
- Configure active filters
- Directly set listeners
Example Object
{
"proxy_key": "catalog-proxy",
"zone_key": "default-zone",
"name": "catalog",
"domain_keys": [
"catalog"
],
"listener_keys": [
"catalog-listener"
],
"listeners": null,
"active_proxy_filters": [
"gm.metrics",
"gm.observables",
"envoy.rbac"
],
"proxy_filters": {
"gm_impersonation": {},
"gm_observables": {
"emitFullResponse": true,
"useKafka": true,
"topic": "catalog",
"eventTopic": "observables",
"kafkaServerConnection": "kafka-default.fabric.svc:9092"
},
"gm_oauth": {},
"gm_inheaders": {},
"gm_listauth": {},
"gm_metrics": {
"metrics_port": 8081,
"metrics_host": "0.0.0.0",
"metrics_dashboard_uri_path": "/metrics",
"metrics_prometheus_uri_path": "/prometheus",
"prometheus_system_metrics_interval_seconds": 15,
"metrics_ring_buffer_size": 4096,
"metrics_key_function": "depth"
},
"envoy_rbac": {
"rules": {
"action": 0,
"policies": {
"1": {
"permissions": [
{
"any": true
}
],
"principals": [
{
"header": {
"name": "User_DN",
"exact_match": "CN=local.user,OU=Engineering,O=Decipher Technology Studios,=Alexandria,=Virginia,C=US"
}
}
]
},
"2": {
"permissions": [
{
"header": {
"name": ":method",
"exact_match": "GET"
}
}
],
"principals": [
{
"any": true
}
]
}
}
}
}
}
}