Skip to content

Instantly share code, notes, and snippets.

@WenInCode
Last active May 19, 2023 19:45
Show Gist options
  • Save WenInCode/8550cc236003db2f8c53074c578a420b to your computer and use it in GitHub Desktop.
Save WenInCode/8550cc236003db2f8c53074c578a420b to your computer and use it in GitHub Desktop.
Catalogue of service endpoints and usages

I've made an effort to document what API endpoints we are using where and for what. The example responses here are just mock data, so I would also recommend referencing the documentation which I will link to and the endpoints themselves. Originally I was going to go tab by tab; however, a few of the endpoints are used across tabs. I indicated that in the usuage on the endpoints. If you have any questions feel free to comment here or reach out to me.

All /v1/**internal**/... endpoints don't have public documentation, as far as I can tell.

It also seems like service instances make use of these endpoints instead of their being service instance specific endpoints. I'll be happy to dig into that further should it be helpful.

Services list page

GET services list item

GET /v1/internal/ui/services

Example response:

Response
[
{
  "Name":"service-0",
  "Tags":[
    "interface"
  ],
  "ConnectedWithProxy":false,
  "ConnectedWithGateway":true,
  "GatewayConfig":{
    
  },
  "InstanceCount":2411,
  "ExternalSources":[
    "kubernetes"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":1,
  "ChecksWarning":0,
  "ChecksCritical":5
},
{
  "Name":"service-0-proxy",
  "Tags":[
    "program",
    "panel",
    "pixel",
    "panel"
  ],
  "ConnectedWithProxy":true,
  "ConnectedWithGateway":true,
  "GatewayConfig":{
    "AssociatedServiceCount":2261
  },
  "Kind":"connect-proxy",
  "InstanceCount":4,
  "ExternalSources":[
    "vault"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":2,
  "ChecksWarning":2,
  "ChecksCritical":2
},
{
  "Name":"service-2-mesh-gateway",
  "Tags":[
    "interface",
    "array",
    "feed",
    "matrix",
    "circuit",
    "array",
    "bus"
  ],
  "ConnectedWithProxy":true,
  "ConnectedWithGateway":true,
  "GatewayConfig":{
    "AssociatedServiceCount":3707
  },
  "Kind":"mesh-gateway",
  "InstanceCount":6,
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":2,
  "ChecksWarning":1,
  "ChecksCritical":2
},
{
  "Name":"service-3-ingress-gateway",
  "Tags":[
    "microchip",
    "application",
    "capacitor",
    "matrix"
  ],
  "ConnectedWithProxy":false,
  "ConnectedWithGateway":false,
  "GatewayConfig":{
    "AssociatedServiceCount":2843
  },
  "Kind":"ingress-gateway",
  "InstanceCount":4,
  "ExternalSources":[
    "lambda"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":1,
  "ChecksWarning":10,
  "ChecksCritical":1
},
{
  "Name":"service-4-terminating-gateway",
  "Tags":[
    "alarm",
    "panel",
    "driver",
    "transmitter",
    "card"
  ],
  "ConnectedWithProxy":false,
  "ConnectedWithGateway":false,
  "GatewayConfig":{
    "AssociatedServiceCount":2460
  },
  "Kind":"terminating-gateway",
  "InstanceCount":9,
  "ExternalSources":[
    ""
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":1,
  "ChecksWarning":6,
  "ChecksCritical":1
},
{
  "Name":"service-5-api-gateway",
  "Tags":[
    "interface"
  ],
  "ConnectedWithProxy":false,
  "ConnectedWithGateway":false,
  "GatewayConfig":{
    "AssociatedServiceCount":1434
  },
  "Kind":"api-gateway",
  "InstanceCount":6,
  "ExternalSources":[
    "lambda"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":3,
  "ChecksWarning":0,
  "ChecksCritical":1
},
{
  "Name":"service-6-mesh-gateway",
  "Tags":[
    "feed",
    "port",
    "capacitor",
    "monitor",
    "application",
    "hard drive"
  ],
  "ConnectedWithProxy":false,
  "ConnectedWithGateway":false,
  "GatewayConfig":{
    
  },
  "Kind":"mesh-gateway",
  "InstanceCount":35,
  "ExternalSources":[
    "nomad"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":2,
  "ChecksWarning":10,
  "ChecksCritical":0
},
{
  "Name":"service-7",
  "Tags":[
    "bus",
    "bus",
    "sensor",
    "alarm"
  ],
  "ConnectedWithProxy":false,
  "ConnectedWithGateway":true,
  "GatewayConfig":{
    "AssociatedServiceCount":3623
  },
  "InstanceCount":1795,
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":5,
  "ChecksWarning":5,
  "ChecksCritical":1
},
{
  "Name":"service-7-proxy",
  "Tags":[
    "interface",
    "microchip",
    "system",
    "pixel",
    "matrix",
    "interface"
  ],
  "ConnectedWithProxy":true,
  "ConnectedWithGateway":false,
  "GatewayConfig":{
    
  },
  "Kind":"connect-proxy",
  "InstanceCount":3770,
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "ChecksPassing":6,
  "ChecksWarning":3,
  "ChecksCritical":0
}
]

Usage

Everything in the service list items depends on only this endpoint

Service show pages

Service health checks

GET /v1/health/service/:service

Example Response
[
{
  "Node":{
    "ID":"7037e928-d9e8-3b58-4712-6f5ded209002",
    "Node":"node-0",
    "Address":"59.41.1.130",
    "Datacenter":"dc1",
    "TaggedAddresses":{
      "lan":"59.41.1.130",
      "wan":"59.41.1.130"
    },
    "Meta":{
      "service-0-network-segment":"",
      "synthetic-node":false
    },
    "PeerName":"billing",
    "CreateIndex":5,
    "ModifyIndex":6
  },
  "Service":{
    "ID":"service-0-with-id",
    "PeerName":"billing",
    "Service":"service-0",
    "Namespace":"default",
    "Partition":"default",
    "Tags":[
      "pixel",
      "hard drive",
      "circuit",
      "firewall",
      "port",
      "monitor",
      "firewall",
      "firewall",
      "capacitor",
      "firewall"
    ],
    "Weights":{
      "Passing":1,
      "Warning":1
    },
    "Meta":{
      "consul-dashboard-url":"https://betty.name/?id={{Service}}",
      "external-source":""
    },
    "Address":"",
    "SocketPath":"/dolorem/explicabo/consequatur/veniamweb_enabled_disintermediate_directives.prc",
    "Connect":{
      
    },
    "Proxy":{
      "Expose":{
        
      },
      "MeshGateway":{
        
      },
      "Mode":"",
      "TransparentProxy":""
    },
    "ProxyDestination":"",
    "EnableTagOverride":false,
    "CreateIndex":5,
    "ModifyIndex":5
  },
  "Checks":[
    {
      "Node":"node-0",
      "CheckID":"monitorHealth",
      "Name":"matrix Status",
      "Type":"ttl",
      "Status":"critical",
      "Notes":"In voluptatibus et a impedit rem architecto. Necessitatibus consequuntur architecto voluptas blanditiis eum doloribus et. Qui sit quam consequatur et amet molestiae eos. Ea aut consequatur nobis at sequi maxime et. Debitis qui ea provident hic ut similique at est.",
      "Output":"1f4c:2752:d737:821d:11e3:604a:ac1f:4e2d http://Eulalia_Cole18:EzhRw56W9dCZb8o@sandra.com Opera/9.55 (Windows NT 6.2; U; CE Presto/2.9.167 Version/10.00)",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"sensorHealth",
      "Name":"alarm Status",
      "Type":"http",
      "Status":"critical",
      "Notes":"Eaque quos saepe nemo qui quasi labore accusantium et perspiciatis. Eveniet est voluptatibus et qui qui. Exercitationem aut consequatur molestias quas reprehenderit voluptatem eveniet suscipit. Id eligendi repudiandae deleniti vitae laudantium est alias.",
      "Output":"4d7e:2931:2eb6:052a:dfe6:2329:d05b:65a7 https://Melissa93:Nlc_3nxtCkCpPXo@lavinia.biz Mozilla/5.0 (Windows NT 6.3; WOW64; rv:10.7) Gecko/20100101 Firefox/10.7.2",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"applicationHealth",
      "Name":"matrix Status",
      "Type":"alias",
      "Status":"critical",
      "Notes":"Doloremque et commodi qui sint numquam pariatur. Non dolor asperiores unde magnam non. Molestiae voluptatem exercitationem doloremque sit. Inventore praesentium rem minima dolorem. Dicta inventore explicabo minus id eum ratione iusto.",
      "Output":"d426:8d3b:8975:9a9a:c46f:bf69:c506:c9e0 https://Shanny76:snaSpeARV27MeBD@ibrahim.com Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"capacitorHealth",
      "Name":"array Status",
      "Type":"alias",
      "Status":"passing",
      "Notes":"Iure dolorem eum minima itaque aspernatur tempore rerum ex dicta. Dolor natus fuga voluptas veritatis optio ducimus consectetur. Occaecati accusantium qui explicabo voluptas qui.",
      "Output":"36cb:e61c:512a:7527:4841:160a:060e:5c94 https://Cordia.Cronin:tPtHsvbf1K_Ttdu@kaci.com Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5.3; rv:10.2) Gecko/20100101 Firefox/10.2.1",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"alarmHealth",
      "Name":"matrix Status",
      "Type":"docker",
      "Status":"passing",
      "Notes":"Qui numquam occaecati. Asperiores quae animi sunt et molestiae. Et asperiores nobis repudiandae ab voluptatem sit dolor. Reprehenderit dicta sunt nihil fugiat provident et officia quia voluptate.",
      "Output":"a8c8:a85e:8550:2afa:8e0f:a4e1:6544:490a https://Wilber.Hartmann93:hQYMAFwyWHO6PKe@bart.info Mozilla/5.0 (Windows NT 5.0; WOW64; rv:10.9) Gecko/20100101 Firefox/10.9.8",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"programHealth",
      "Name":"bus Status",
      "Type":"ttl",
      "Status":"passing",
      "Notes":"Nam error culpa quos. Eius tempore eos totam ab maxime sunt. Voluptas modi optio. Similique voluptate ducimus deserunt expedita. Quasi totam et unde perspiciatis culpa. Voluptatem maiores quaerat.",
      "Output":"11d5:8278:61d7:fa52:a272:3aa5:7e1d:2773 https://Zita5:y7eANEOrYktKT3s@heidi.info Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6.6; rv:9.2) Gecko/20100101 Firefox/9.2.3",
      "ServiceID":"",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"circuitHealth",
      "Name":"hard drive Status",
      "Type":"alias",
      "Status":"passing",
      "Notes":"Rerum tenetur quia. Ea non consectetur consequuntur aut suscipit. Aperiam minima eaque animi incidunt qui voluptatem facere occaecati. Dignissimos impedit nobis ea eius dolore non sed ea ut.",
      "Output":"a091:30dd:9911:0647:50d3:107a:2944:9b07 https://Ebba.Yundt:jjeoCrd9d5nxGUx@jordane.org Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_1)  AppleWebKit/535.1.2 (KHTML, like Gecko) Chrome/20.0.809.0 Safari/535.1.2",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"alarmHealth",
      "Name":"firewall Status",
      "Type":"grpc",
      "Status":"passing",
      "Notes":"Qui fuga molestiae ipsam minima. Corporis aut praesentium dolorem consequatur enim illo ipsa. Et veritatis nesciunt harum dignissimos minima vitae optio iusto. Adipisci soluta voluptatem inventore architecto totam eaque voluptatem quam.",
      "Output":"32fc:93b1:94ac:b07c:c572:8131:ee41:602a http://Lonny_Nitzsche5:vxmLhSXJw71Rxa_@jaycee.info Mozilla/5.0 (Windows; U; Windows NT 6.0) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/22.0.891.0 Safari/533.0.1",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"sensorHealth",
      "Name":"alarm Status",
      "Type":"script",
      "Status":"passing",
      "Notes":"Et qui nisi harum libero laboriosam eius magni asperiores. Voluptatibus quae rerum. Rerum ut similique. Consequuntur itaque est perferendis in quidem.",
      "Output":"bc25:4ced:661c:331f:ef98:e66d:0d6d:6985 http://Dorthy.Hilll26:hy9TURsup7eYyMS@araceli.info Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_9_3)  AppleWebKit/534.0.1 (KHTML, like Gecko) Chrome/13.0.887.0 Safari/534.0.1",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    },
    {
      "Node":"node-0",
      "CheckID":"pixelHealth",
      "Name":"card Status",
      "Type":"alias",
      "Status":"passing",
      "Notes":"Voluptatem odio voluptates quia. Sit delectus ut aut esse aperiam. Esse quam excepturi quaerat quaerat perferendis aspernatur sequi inventore quos. Consectetur quas impedit possimus qui beatae voluptas velit omnis.",
      "Output":"70ac:f78f:bc6e:8b4e:4641:024b:3ef4:370a https://Caroline_Lynch:Jpc4AmvqxfGfJMT@ned.com Mozilla/5.0 (Windows NT 6.0; rv:5.2) Gecko/20100101 Firefox/5.2.4",
      "ServiceID":"service-0",
      "ServiceName":"",
      "ServiceTags":[
        "Tag"
      ],
      "Definition":{
        
      },
      "CreateIndex":5,
      "ModifyIndex":5
    }
  ]
}
]

Usage

  • Requested on the top-level service show page to get information about the service instances.

Documentation

https://developer.hashicorp.com/consul/api-docs/health#list-checks-for-service

List Nodes for Mesh-capable Services

GET /v1/catalog/connect/:service

Example response
[
{
  "ID":"3208ed98-e84b-488f-8391-99d104fe5744",
  "Node":"node-0",
  "Address":"239.42.168.2",
  "Datacenter":"dc1",
  "TaggedAddresses":{
    "lan":"250.189.250.129",
    "wan":"136.147.251.128"
  },
  "NodeMeta":{
    "consul-network-segment":""
  },
  "ServiceConnect":{
    
  },
  "ServiceKind":"connect-proxy",
  "ServiceID":"service-0-with-id-proxy",
  "ServiceName":"service-0-proxy",
  "ServiceTags":[
    "Tag",
    "Another Tag"
  ],
  "ServiceAddress":"245.181.120.18",
  "ServiceMeta":{
    
  },
  "ServicePort":21180,
  "ServiceEnableTagOverride":false,
  "ServiceProxy":{
    "Config":{
      "protocol":"http"
    },
    "Expose":{
      "Checks":true,
      "Paths":[
        {
          "Path":"/consequuntur/architecto/voluptas/blanditiis/eummonitor.emma",
          "Protocol":"http2",
          "LocalPathPort":278,
          "ListenerPort":4423
        },
        {
          "Path":"/molestiae",
          "Protocol":"grpc",
          "LocalPathPort":26434,
          "ListenerPort":7178
        },
        {
          "Path":"/nobis/at",
          "Protocol":"grpc",
          "LocalPathPort":16049,
          "ListenerPort":50828
        }
      ]
    },
    "Mode":"transparent",
    "TransparentProxy":{
      
    },
    "DestinationServiceName":"service-0",
    "DestinationServiceID":"service-0-with-id",
    "LocalServiceSocketMode":"0600",
    "LocalServiceSocketPath":"/provident/hic/utchecking_account_engineer_digital.twds"
  },
  "ServiceSocketPath":"",
  "ServiceProxyDestination":"service-0",
  "ServiceWeights":{
    "Passing":1,
    "Warning":1
  },
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "ID":"52d73782-1d11-4e36-84aa-c1f4e2d752ff",
  "Node":"node-1",
  "Address":"48.4.98.240",
  "Datacenter":"dc1",
  "TaggedAddresses":{
    "lan":"192.30.25.134",
    "wan":"231.55.22.9"
  },
  "NodeMeta":{
    "consul-network-segment":""
  },
  "ServiceConnect":{
    
  },
  "ServiceKind":"connect-proxy",
  "ServiceID":"service-0-with-id-proxy",
  "ServiceName":"service-0-proxy",
  "ServiceTags":[
    "Tag",
    "Another Tag"
  ],
  "ServiceAddress":"171.58.146.85",
  "ServiceMeta":{
    
  },
  "ServicePort":21165,
  "ServiceEnableTagOverride":false,
  "ServiceProxy":{
    "Config":{
      "protocol":"http"
    },
    "Expose":{
      "Checks":true,
      "Paths":[
        {
          "Path":"/quo/eaethiopian_birr.mpe",
          "Protocol":"grpc",
          "LocalPathPort":56831,
          "ListenerPort":6098
        },
        {
          "Path":"/voluptates/dolores/nam",
          "Protocol":"grpc",
          "LocalPathPort":2463,
          "ListenerPort":32331
        },
        {
          "Path":"/nemo/qui/quasi/labore/accusantiumturnpike_personal_loan_account.xsm",
          "Protocol":"http2",
          "LocalPathPort":53796,
          "ListenerPort":50066
        }
      ]
    },
    "Mode":"",
    "TransparentProxy":{
      
    },
    "DestinationServiceName":"service-0",
    "DestinationServiceID":"service-0-with-id",
    "LocalServiceSocketMode":"0600",
    "LocalServiceSocketPath":"/molestias/quas/reprehenderit/voluptatem/eveniet"
  },
  "ServiceSocketPath":"",
  "ServiceProxyDestination":"service-0",
  "ServiceWeights":{
    "Passing":1,
    "Warning":1
  },
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "ID":"abbe717b-04d7-4e29-b12e-b6052adfe623",
  "Node":"node-2",
  "Address":"42.153.210.12",
  "Datacenter":"dc1",
  "TaggedAddresses":{
    "lan":"89.181.111.89",
    "wan":"166.114.136.181"
  },
  "NodeMeta":{
    "consul-network-segment":""
  },
  "ServiceConnect":{
    
  },
  "ServiceKind":"connect-proxy",
  "ServiceID":"service-0-with-id-proxy",
  "ServiceName":"service-0-proxy",
  "ServiceTags":[
    "Tag",
    "Another Tag"
  ],
  "ServiceAddress":"63.25.238.121",
  "ServiceMeta":{
    
  },
  "ServicePort":21203,
  "ServiceEnableTagOverride":false,
  "ServiceProxy":{
    "Config":{
      "protocol":"http"
    },
    "Expose":{
      "Checks":true,
      "Paths":[
        {
          "Path":"/expedita/consectetur/et/velpci_cross_platform.xpm",
          "Protocol":"http",
          "LocalPathPort":33072,
          "ListenerPort":38066
        },
        {
          "Path":"/animi/enim/cumque/ut/possimuspayment_anguilla_regional.tfi",
          "Protocol":"http2",
          "LocalPathPort":14099,
          "ListenerPort":55586
        },
        {
          "Path":"/non/dolor/asperioresgabon.xltx",
          "Protocol":"http",
          "LocalPathPort":19378,
          "ListenerPort":1939
        }
      ]
    },
    "Mode":"",
    "TransparentProxy":{
      
    },
    "DestinationServiceName":"service-0",
    "DestinationServiceID":"service-0-with-id",
    "LocalServiceSocketMode":"0600",
    "LocalServiceSocketPath":"/praesentium"
  },
  "ServiceSocketPath":"",
  "ServiceProxyDestination":"service-0",
  "ServiceWeights":{
    "Passing":1,
    "Warning":1
  },
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "ID":"42b101b9-d27d-4426-8d3b-89759a9ac46f",
  "Node":"node-3",
  "Address":"187.242.107.148",
  "Datacenter":"dc1",
  "TaggedAddresses":{
    "lan":"194.91.2.96",
    "wan":"207.150.232.6"
  },
  "NodeMeta":{
    "consul-network-segment":""
  },
  "ServiceConnect":{
    
  },
  "ServiceKind":"connect-proxy",
  "ServiceID":"service-0-with-id-proxy",
  "ServiceName":"service-0-proxy",
  "ServiceTags":[
    "Tag",
    "Another Tag"
  ],
  "ServiceAddress":"242.225.165.24",
  "ServiceMeta":{
    
  },
  "ServicePort":21196,
  "ServiceEnableTagOverride":false,
  "ServiceProxy":{
    "Config":{
      "protocol":"http"
    },
    "Expose":{
      "Checks":true,
      "Paths":[
        {
          "Path":"/etinteractive_calculating_incredible.mvb",
          "Protocol":"http2",
          "LocalPathPort":6380,
          "ListenerPort":37074
        },
        {
          "Path":"/labore",
          "Protocol":"http2",
          "LocalPathPort":1694,
          "ListenerPort":47035
        },
        {
          "Path":"/autem/odio",
          "Protocol":"http2",
          "LocalPathPort":26162,
          "ListenerPort":60868
        }
      ]
    },
    "Mode":"direct",
    "TransparentProxy":{
      
    },
    "DestinationServiceName":"service-0",
    "DestinationServiceID":"service-0-with-id",
    "LocalServiceAddress":"61.239.99.43",
    "LocalServicePort":25198
  },
  "ServiceSocketPath":"",
  "ServiceProxyDestination":"service-0",
  "ServiceWeights":{
    "Passing":1,
    "Warning":1
  },
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "ID":"4f1aa51b-c895-41b7-b680-91d936cbe61c",
  "Node":"node-4",
  "Address":"80.16.44.165",
  "Datacenter":"dc1",
  "TaggedAddresses":{
    "lan":"120.80.45.112",
    "wan":"69.141.71.23"
  },
  "NodeMeta":{
    "consul-network-segment":""
  },
  "ServiceConnect":{
    
  },
  "ServiceKind":"connect-proxy",
  "ServiceID":"service-0-with-id-proxy",
  "ServiceName":"service-0-proxy",
  "ServiceTags":[
    "Tag",
    "Another Tag"
  ],
  "ServiceAddress":"18.98.8.162",
  "ServiceMeta":{
    
  },
  "ServicePort":21009,
  "ServiceEnableTagOverride":false,
  "ServiceProxy":{
    "Config":{
      "protocol":"http"
    },
    "Expose":{
      "Checks":true,
      "Paths":[
        {
          "Path":"/consequatur/eveniet",
          "Protocol":"grpc",
          "LocalPathPort":36940,
          "ListenerPort":17283
        },
        {
          "Path":"/quia/nesciunt/deleniti/esseai_personal_loan_account.kpr",
          "Protocol":"http",
          "LocalPathPort":5867,
          "ListenerPort":56714
        },
        {
          "Path":"/eveniettable_payment_tanzania.grv",
          "Protocol":"grpc",
          "LocalPathPort":3474,
          "ListenerPort":6936
        }
      ]
    },
    "Mode":"transparent",
    "TransparentProxy":{
      
    },
    "DestinationServiceName":"service-0",
    "DestinationServiceID":"service-0-with-id",
    "LocalServiceAddress":"40.32.119.165",
    "LocalServicePort":63583
  },
  "ServiceSocketPath":"",
  "ServiceProxyDestination":"service-0",
  "ServiceWeights":{
    "Passing":1,
    "Warning":1
  },
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "ID":"a509387f-099e-4eae-bae0-052e611bd879",
  "Node":"node-5",
  "Address":"45.104.162.134",
  "Datacenter":"dc1",
  "TaggedAddresses":{
    "lan":"205.141.175.135",
    "wan":"82.226.137.80"
  },
  "NodeMeta":{
    "consul-network-segment":""
  },
  "ServiceConnect":{
    
  },
  "ServiceKind":"connect-proxy",
  "ServiceID":"service-0-with-id-proxy",
  "ServiceName":"service-0-proxy",
  "ServiceTags":[
    "Tag",
    "Another Tag"
  ],
  "ServiceAddress":"83.3.43.173",
  "ServiceMeta":{
    
  },
  "ServicePort":21241,
  "ServiceEnableTagOverride":false,
  "ServiceProxy":{
    "Config":{
      "protocol":"http"
    },
    "Expose":{
      "Checks":true,
      "Paths":[
        {
          "Path":"/unde/eveniet/quae/sapientedirect.sldm",
          "Protocol":"http2",
          "LocalPathPort":16523,
          "ListenerPort":17408
        },
        {
          "Path":"/error/sitdirector_uae_dirham_mobility.ufd",
          "Protocol":"http2",
          "LocalPathPort":2147,
          "ListenerPort":30742
        },
        {
          "Path":"/suscipit",
          "Protocol":"http2",
          "LocalPathPort":25651,
          "ListenerPort":59413
        }
      ]
    },
    "Mode":"transparent",
    "TransparentProxy":{
      
    },
    "DestinationServiceName":"service-0",
    "DestinationServiceID":"service-0-with-id",
    "LocalServiceAddress":"107.124.58.71",
    "LocalServicePort":32461
  },
  "ServiceSocketPath":"",
  "ServiceProxyDestination":"service-0",
  "ServiceWeights":{
    "Passing":1,
    "Warning":1
  },
  "CreateIndex":11,
  "ModifyIndex":11
}
]

Usage

  • Requested from the top-level service show page if the service is not a connect-proxy or a mesh-gateway. The proxy instance health checks are included in the service instance health checks (see this commit for more information).
  • the proxy count is also used as one of the conditions for if we should show the topology tab.
  • We seem to requests `GET /v1/health/{service-name}-proxy after doing this request to get proxy instances. I think it has to do with this code but I am having a time confirming that. This is more-so a note for myself.

Documentation

https://developer.hashicorp.com/consul/api-docs/health#list-checks-for-service

Read compiled discovery chain

GET /discovery-chain/:service

Example Response
{
"Chain":{
  "ServiceName":"service-0",
  "Namespace":"default",
  "Partition":"default",
  "Datacenter":"dc1",
  "Protocol":"http",
  "StartNode":"router:service-0",
  "Nodes":{
    "router:service-0":{
      "Type":"router",
      "Name":"service-0",
      "Routes":[
        {
          "NextNode":"resolver:v3.program.default.default.dc1",
          "Definition":{
            "Match":{
              "HTTP":{
                "PathExact":"/dolorum/dolorem/explicabo",
                "QueryParam":[
                  {
                    "Name":"circuit",
                    "Exact":true
                  },
                  {
                    "Name":"sensor",
                    "Exact":true
                  }
                ]
              }
            },
            "Destination":{
              "Service":"resolver:v3.program.default.default.dc1",
              "PrefixRewrite":"/"
            }
          }
        },
        {
          "NextNode":"resolver:v2.pixel.default.default.dc1",
          "Definition":{
            "Match":{
              "HTTP":{
                "":"",
                "QueryParam":[
                  {
                    "Name":"monitor",
                    "Regex":"[abc]"
                  },
                  {
                    "Name":"firewall",
                    "Prefix":"abc"
                  }
                ],
                "Methods":[
                  "GET",
                  "POST",
                  "OPTIONS",
                  "HEAD"
                ]
              }
            },
            "Destination":{
              "Service":"resolver:v2.pixel.default.default.dc1",
              "PrefixRewrite":"/"
            }
          }
        },
        {
          "NextNode":"resolver:hard-drive.default.default.dc1",
          "Definition":{
            "Match":{
              "HTTP":{
                "":"",
                "Header":[
                  {
                    "Name":"X-Driver",
                    "Present":true
                  },
                  {
                    "Name":"X-Protocol",
                    "Regex":"[abc]"
                  }
                ],
                "Methods":[
                  "OPTIONS",
                  "DELETE",
                  "POST",
                  "PATCH"
                ]
              }
            },
            "Destination":{
              "Service":"resolver:hard-drive.default.default.dc1",
              "PrefixRewrite":"/"
            }
          }
        },
        {
          "NextNode":"resolver:v1.bus.default.default.dc1",
          "Definition":{
            "Match":{
              "HTTP":{
                "":"",
                "Header":[
                  {
                    "Name":"X-Pixel",
                    "Regex":"[abc]"
                  },
                  {
                    "Name":"X-Port",
                    "Invert":true,
                    "Present":true
                  }
                ]
              }
            },
            "Destination":{
              "Service":"resolver:v1.bus.default.default.dc1",
              "PrefixRewrite":"/"
            }
          }
        },
        {
          "NextNode":"resolver:v2.firewall.default.default.dc1",
          "Definition":{
            "Match":{
              "HTTP":{
                "PathExact":"/voluptatumlicensed.prf",
                "QueryParam":[
                  {
                    "Name":"microchip",
                    "Prefix":"abc"
                  },
                  {
                    "Name":"protocol",
                    "Exact":true
                  }
                ],
                "Methods":[
                  "POST",
                  "OPTIONS",
                  "PATCH"
                ]
              }
            },
            "Destination":{
              "Service":"resolver:v2.firewall.default.default.dc1",
              "PrefixRewrite":"/"
            }
          }
        },
        {
          "NextNode":"resolver:firewall.default.default.dc1",
          "Definition":{
            "Match":{
              "HTTP":{
                "PathExact":"/facere/sed/aut/cupiditate/et",
                "Methods":[
                  "OPTIONS",
                  "HEAD",
                  "POST",
                  "PATCH"
                ]
              }
            },
            "Destination":{
              "Service":"resolver:firewall.default.default.dc1",
              "PrefixRewrite":"/"
            }
          }
        }
      ]
    },
    "resolver:program.default.default.dc1":{
      "Type":"resolver",
      "Name":"program.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "program.default.default.fail-1-dc1",
            "program.default.default.fail-2-dc1"
          ]
        },
        "Target":"program.default.default.dc1"
      }
    },
    "resolver:v1.program.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.program.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v1.program.default.default.fail-1-dc1",
            "v1.program.default.default.fail-2-dc1"
          ]
        },
        "Target":"v1.program.default.default.dc1"
      }
    },
    "resolver:v2.program.default.default.dc1":{
      "Type":"resolver",
      "Name":"v2.program.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v2.program.default.default.fail-1-dc1",
            "v2.program.default.default.fail-2-dc1"
          ]
        },
        "Target":"v2.program.default.default.dc1"
      }
    },
    "resolver:v3.program.default.default.dc1":{
      "Type":"resolver",
      "Name":"v3.program.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v3.program.default.default.fail-1-dc1",
            "v3.program.default.default.fail-2-dc1"
          ]
        },
        "Target":"v3.program.default.default.dc1"
      }
    },
    "resolver:panel.default.default.dc1":{
      "Type":"resolver",
      "Name":"panel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"panel.default.default.dc1"
      }
    },
    "resolver:v1.panel.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.panel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v1.panel.default.default.dc1"
      }
    },
    "resolver:v2.panel.default.default.dc1":{
      "Type":"resolver",
      "Name":"v2.panel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v2.panel.default.default.dc1"
      }
    },
    "resolver:v3.panel.default.default.dc1":{
      "Type":"resolver",
      "Name":"v3.panel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v3.panel.default.default.dc1"
      }
    },
    "resolver:driver.default.default.dc1":{
      "Type":"resolver",
      "Name":"driver.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"driver.default.default.dc1"
      }
    },
    "resolver:v1.driver.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.driver.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v1.driver.default.default.dc1"
      }
    },
    "resolver:v2.driver.default.default.dc1":{
      "Type":"resolver",
      "Name":"v2.driver.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v2.driver.default.default.dc1"
      }
    },
    "resolver:firewall.default.default.dc1":{
      "Type":"resolver",
      "Name":"firewall.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "firewall.default.default.fail-1-dc1",
            "firewall.default.default.fail-2-dc1",
            "firewall.default.default.fail-3-dc1"
          ]
        },
        "Target":"firewall.default.default.dc1"
      }
    },
    "resolver:v1.firewall.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.firewall.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v1.firewall.default.default.fail-1-dc1",
            "v1.firewall.default.default.fail-2-dc1",
            "v1.firewall.default.default.fail-3-dc1"
          ]
        },
        "Target":"v1.firewall.default.default.dc1"
      }
    },
    "resolver:v2.firewall.default.default.dc1":{
      "Type":"resolver",
      "Name":"v2.firewall.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v2.firewall.default.default.fail-1-dc1",
            "v2.firewall.default.default.fail-2-dc1",
            "v2.firewall.default.default.fail-3-dc1"
          ]
        },
        "Target":"v2.firewall.default.default.dc1"
      }
    },
    "resolver:circuit.default.default.dc1":{
      "Type":"resolver",
      "Name":"circuit.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"circuit.default.default.dc1"
      }
    },
    "resolver:v1.circuit.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.circuit.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v1.circuit.default.default.dc1"
      }
    },
    "resolver:bus.default.default.dc1":{
      "Type":"resolver",
      "Name":"bus.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "bus.default.default.fail-1-dc1"
          ]
        },
        "Target":"bus.default.default.dc1"
      }
    },
    "resolver:v1.bus.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.bus.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v1.bus.default.default.fail-1-dc1"
          ]
        },
        "Target":"v1.bus.default.default.dc1"
      }
    },
    "resolver:pixel.default.default.dc1":{
      "Type":"resolver",
      "Name":"pixel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"pixel.default.default.dc1"
      }
    },
    "resolver:v1.pixel.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.pixel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v1.pixel.default.default.dc1"
      }
    },
    "resolver:v2.pixel.default.default.dc1":{
      "Type":"resolver",
      "Name":"v2.pixel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v2.pixel.default.default.dc1"
      }
    },
    "resolver:v3.pixel.default.default.dc1":{
      "Type":"resolver",
      "Name":"v3.pixel.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"v3.pixel.default.default.dc1"
      }
    },
    "resolver:hard-drive.default.default.dc1":{
      "Type":"resolver",
      "Name":"hard-drive.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "hard-drive.default.default.fail-1-dc1",
            "hard-drive.default.default.fail-2-dc1",
            "hard-drive.default.default.fail-3-dc1"
          ]
        },
        "Target":"hard-drive.default.default.dc1"
      }
    },
    "resolver:v1.hard-drive.default.default.dc1":{
      "Type":"resolver",
      "Name":"v1.hard-drive.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v1.hard-drive.default.default.fail-1-dc1",
            "v1.hard-drive.default.default.fail-2-dc1",
            "v1.hard-drive.default.default.fail-3-dc1"
          ]
        },
        "Target":"v1.hard-drive.default.default.dc1"
      }
    },
    "resolver:v2.hard-drive.default.default.dc1":{
      "Type":"resolver",
      "Name":"v2.hard-drive.default.default.dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Failover":{
          "Targets":[
            "v2.hard-drive.default.default.fail-1-dc1",
            "v2.hard-drive.default.default.fail-2-dc1",
            "v2.hard-drive.default.default.fail-3-dc1"
          ]
        },
        "Target":"v2.hard-drive.default.default.dc1"
      }
    },
    "resolver:program.default.default.redirect-dc1":{
      "Type":"resolver",
      "Name":"program.default.default.redirect-dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"program.default.default.redirect-dc1"
      }
    },
    "resolver:panel.default.default.redirect-dc1":{
      "Type":"resolver",
      "Name":"panel.default.default.redirect-dc1",
      "Resolver":{
        "ConnectTimeout":"5s",
        "Target":"panel.default.default.redirect-dc1"
      }
    },
    "splitter:service-0-circuit.default.default":{
      "Type":"splitter",
      "Name":"service-0-circuit.default.default",
      "Splits":[
        {
          "Weight":100,
          "NextNode":"resolver:circuit.default.default.dc1"
        }
      ]
    },
    "splitter:service-0-port.default.default":{
      "Type":"splitter",
      "Name":"service-0-port.default.default",
      "Splits":[
        {
          "Weight":100,
          "NextNode":"resolver:v1.pixel.default.default.dc1"
        }
      ]
    },
    "splitter:service-0-firewall.default.default":{
      "Type":"splitter",
      "Name":"service-0-firewall.default.default",
      "Splits":[
        {
          "Weight":100,
          "NextNode":"resolver:circuit.default.default.dc1"
        }
      ]
    },
    "splitter:service-0-capacitor.default.default":{
      "Type":"splitter",
      "Name":"service-0-capacitor.default.default",
      "Splits":[
        {
          "Weight":100,
          "NextNode":"resolver:circuit.default.default.dc1"
        }
      ]
    }
  },
  "Targets":{
    "program.default.default.dc1":{
      "ID":"program.default.default.dc1",
      "Service":"program",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
      "Name":"program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
    },
    "v1.program.default.default.dc1":{
      "ID":"v1.program.default.default.dc1",
      "Service":"program",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
      "Name":"v1.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
    },
    "v2.program.default.default.dc1":{
      "ID":"v2.program.default.default.dc1",
      "Service":"program",
      "ServiceSubset":"v2",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v2"
      },
      "SNI":"v2.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
      "Name":"v2.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
    },
    "v3.program.default.default.dc1":{
      "ID":"v3.program.default.default.dc1",
      "Service":"program",
      "ServiceSubset":"v3",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v3"
      },
      "SNI":"v3.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul",
      "Name":"v3.program.default.default.dc1.internal.e47130a8-7e9f-476d-841c-8865e5abbe71.consul"
    },
    "panel.default.default.dc1":{
      "ID":"panel.default.default.dc1",
      "Service":"panel",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
      "Name":"panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
    },
    "v1.panel.default.default.dc1":{
      "ID":"v1.panel.default.default.dc1",
      "Service":"panel",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
      "Name":"v1.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
    },
    "v2.panel.default.default.dc1":{
      "ID":"v2.panel.default.default.dc1",
      "Service":"panel",
      "ServiceSubset":"v2",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v2"
      },
      "SNI":"v2.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
      "Name":"v2.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
    },
    "v3.panel.default.default.dc1":{
      "ID":"v3.panel.default.default.dc1",
      "Service":"panel",
      "ServiceSubset":"v3",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v3"
      },
      "SNI":"v3.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul",
      "Name":"v3.panel.default.default.dc1.internal.7b04d7e2-9312-4eb6-852a-dfe62329d05b.consul"
    },
    "driver.default.default.dc1":{
      "ID":"driver.default.default.dc1",
      "Service":"driver",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul",
      "Name":"driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul"
    },
    "v1.driver.default.default.dc1":{
      "ID":"v1.driver.default.default.dc1",
      "Service":"driver",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul",
      "Name":"v1.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul"
    },
    "v2.driver.default.default.dc1":{
      "ID":"v2.driver.default.default.dc1",
      "Service":"driver",
      "ServiceSubset":"v2",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v2"
      },
      "SNI":"v2.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul",
      "Name":"v2.driver.default.default.dc1.internal.65a78b31-e7cb-4a39-9e9e-5c5d089d94b5.consul"
    },
    "firewall.default.default.dc1":{
      "ID":"firewall.default.default.dc1",
      "Service":"firewall",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul",
      "Name":"firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul"
    },
    "v1.firewall.default.default.dc1":{
      "ID":"v1.firewall.default.default.dc1",
      "Service":"firewall",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul",
      "Name":"v1.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul"
    },
    "v2.firewall.default.default.dc1":{
      "ID":"v2.firewall.default.default.dc1",
      "Service":"firewall",
      "ServiceSubset":"v2",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v2"
      },
      "SNI":"v2.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul",
      "Name":"v2.firewall.default.default.dc1.internal.cffa880e-5283-4d78-8f84-846040250774.consul"
    },
    "circuit.default.default.dc1":{
      "ID":"circuit.default.default.dc1",
      "Service":"circuit",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul",
      "Name":"circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul"
    },
    "v1.circuit.default.default.dc1":{
      "ID":"v1.circuit.default.default.dc1",
      "Service":"circuit",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul",
      "Name":"v1.circuit.default.default.dc1.internal.2b101b9d-27d4-4268-93b8-9759a9ac46fb.consul"
    },
    "bus.default.default.dc1":{
      "ID":"bus.default.default.dc1",
      "Service":"bus",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul",
      "Name":"bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul"
    },
    "v1.bus.default.default.dc1":{
      "ID":"v1.bus.default.default.dc1",
      "Service":"bus",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul",
      "Name":"v1.bus.default.default.dc1.internal.f69c506c-9e0f-4ea1-80dd-a48db15a8192.consul"
    },
    "pixel.default.default.dc1":{
      "ID":"pixel.default.default.dc1",
      "Service":"pixel",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
      "Name":"pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
    },
    "v1.pixel.default.default.dc1":{
      "ID":"v1.pixel.default.default.dc1",
      "Service":"pixel",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
      "Name":"v1.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
    },
    "v2.pixel.default.default.dc1":{
      "ID":"v2.pixel.default.default.dc1",
      "Service":"pixel",
      "ServiceSubset":"v2",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v2"
      },
      "SNI":"v2.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
      "Name":"v2.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
    },
    "v3.pixel.default.default.dc1":{
      "ID":"v3.pixel.default.default.dc1",
      "Service":"pixel",
      "ServiceSubset":"v3",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v3"
      },
      "SNI":"v3.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul",
      "Name":"v3.pixel.default.default.dc1.internal.37a0b557-186e-45e3-a626-4f1aa51bc895.consul"
    },
    "hard-drive.default.default.dc1":{
      "ID":"hard-drive.default.default.dc1",
      "Service":"hard-drive",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul",
      "Name":"hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul"
    },
    "v1.hard-drive.default.default.dc1":{
      "ID":"v1.hard-drive.default.default.dc1",
      "Service":"hard-drive",
      "ServiceSubset":"v1",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v1"
      },
      "SNI":"v1.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul",
      "Name":"v1.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul"
    },
    "v2.hard-drive.default.default.dc1":{
      "ID":"v2.hard-drive.default.default.dc1",
      "Service":"hard-drive",
      "ServiceSubset":"v2",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "Subset":{
        "Filter":"Service.Meta.value == v2"
      },
      "SNI":"v2.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul",
      "Name":"v2.hard-drive.default.default.dc1.internal.1b736809-1d93-46cb-a61c-512a75274841.consul"
    },
    "program.default.default.redirect-dc1":{
      "ID":"program.default.default.redirect-dc1",
      "Service":"program",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"program.default.default.redirect-dc1.internal.160a060e-5c94-4a32-b6e8-d69f511d0ebb.consul",
      "Name":"program.default.default.redirect-dc1.internal.160a060e-5c94-4a32-b6e8-d69f511d0ebb.consul"
    },
    "panel.default.default.redirect-dc1":{
      "ID":"panel.default.default.redirect-dc1",
      "Service":"panel",
      "Namespace":"default",
      "Partition":"default",
      "Datacenter":"dc1",
      "MeshGateway":{
        
      },
      "SNI":"panel.default.default.redirect-dc1.internal.27aa8e4b-01e8-4227-afa5-09387f099eea.consul",
      "Name":"panel.default.default.redirect-dc1.internal.27aa8e4b-01e8-4227-afa5-09387f099eea.consul"
    }
  }
}
}

Usage

A note from the code

{{! currently we use the discovery chain endpoint to understand whether }}
{{! connect is enabled/disabled. We get a 500 error when its disabled }}
{{! and use this to set MeshEnabled on the Datacenter }}
{{! if once chain is set, i.e. we've checked this dc we remove the DataSource }}
{{! which will mark it for closure, which possibly could be reopened if }}
{{! the user clicks the routing/disco-chain tab}}
  • Requested once at the top-level service show page if it's a connect-proxy or a mesh-gateway. The request is used to set the MeshEnabled attribute on the datacenter. It may be re-requested on the routing tab.
  • This is also requested as a blocking query on the routing tab. The Chain that is returned in the response is what is used to display information on that tab.

Documentation

https://developer.hashicorp.com/consul/api-docs/discovery-chain#read-compiled-discovery-chain

Service upstreams tab

This tab is nested under the general service show-page and shows if the service is an ingress-gateway and not a peer.

Get ingress gateway service nodes

GET /v1/internal/ui/gateway-services-nodes/:service

Example Response
[
{
  "Name":"service-0",
  "Namespace":"program-ns-0",
  "Tags":[
    "driver"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":0,
  "ChecksPassing":5,
  "ChecksWarning":5,
  "ChecksCritical":5,
  "ExternalSources":[
    "aws"
  ],
  "GatewayConfig":{
    "Addresses":[
      "tyler.name:13988",
      "betty.name:40560",
      "*.augusta.com:18477",
      "*.tatyana.info:30255"
    ]
  }
},
{
  "Name":"service-1",
  "Namespace":"default",
  "Tags":[
    "card",
    "capacitor",
    "panel"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":66,
  "ChecksPassing":8,
  "ChecksWarning":5,
  "ChecksCritical":3,
  "ExternalSources":[
    ""
  ],
  "GatewayConfig":{
    "Addresses":[
      "anya.net:58194",
      "aracely.org:29926",
      "*.yvette.com:48261",
      "aiden.info:278",
      "christop.org:8971"
    ]
  }
},
{
  "Name":"service-2",
  "Namespace":"feed-ns-2",
  "Tags":[
    "bandwidth",
    "array",
    "feed",
    "bus"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":15,
  "ChecksPassing":2,
  "ChecksWarning":3,
  "ChecksCritical":2,
  "ExternalSources":[
    "kubernetes"
  ],
  "GatewayConfig":{
    "Addresses":[
      "audie.org:16676",
      "christa.info:23886",
      "rosamond.info:12629",
      "julian.biz:5398",
      "*.axel.com:59576",
      "hillard.com:19524"
    ]
  }
},
{
  "Name":"service-3",
  "Namespace":"alarm-ns-3",
  "Tags":[
    "application",
    "protocol",
    "matrix",
    "port",
    "circuit",
    "panel",
    "transmitter"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":45,
  "ChecksPassing":1,
  "ChecksWarning":2,
  "ChecksCritical":0,
  "ExternalSources":[
    "consul-api-gateway"
  ],
  "GatewayConfig":{
    "Addresses":[
      "susana.biz:5805"
    ]
  }
},
{
  "Name":"service-4",
  "Namespace":"driver-ns-4",
  "Tags":[
    "program",
    "hard drive",
    "card",
    "alarm",
    "port",
    "monitor",
    "array"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":61,
  "ChecksPassing":2,
  "ChecksWarning":9,
  "ChecksCritical":0,
  "ExternalSources":[
    "terraform"
  ],
  "GatewayConfig":{
    "Addresses":[
      "taurean.com:32331",
      "*.eloisa.info:4634",
      "alena.name:35618",
      "stefan.name:64427",
      "gonzalo.net:50066"
    ]
  }
},
{
  "Name":"service-5",
  "Namespace":"card-ns-5",
  "Tags":[
    "transmitter"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":51,
  "ChecksPassing":2,
  "ChecksWarning":3,
  "ChecksCritical":5,
  "ExternalSources":[
    "terraform"
  ],
  "GatewayConfig":{
    "Addresses":[
      "maryam.com:17056"
    ]
  }
},
{
  "Name":"service-6",
  "Namespace":"bus-ns-6",
  "Tags":[
    "circuit",
    "panel",
    "hard drive",
    "program",
    "bandwidth"
  ],
  "Nodes":[
    "node-0",
    "node-1",
    "node-2",
    "node-3",
    "node-4",
    "node-5",
    "node-6",
    "node-7",
    "node-8",
    "node-9",
    "node-10",
    "node-11",
    "node-12",
    "node-13",
    "node-14",
    "node-15",
    "node-16",
    "node-17",
    "node-18",
    "node-19",
    "node-20",
    "node-21",
    "node-22",
    "node-23",
    "node-24",
    "node-25",
    "node-26",
    "node-27",
    "node-28",
    "node-29",
    "node-30",
    "node-31",
    "node-32",
    "node-33",
    "node-34",
    "node-35",
    "node-36",
    "node-37",
    "node-38",
    "node-39",
    "node-40",
    "node-41",
    "node-42",
    "node-43",
    "node-44",
    "node-45",
    "node-46",
    "node-47",
    "node-48",
    "node-49",
    "node-50",
    "node-51",
    "node-52",
    "node-53",
    "node-54",
    "node-55",
    "node-56",
    "node-57",
    "node-58",
    "node-59",
    "node-60",
    "node-61",
    "node-62",
    "node-63",
    "node-64",
    "node-65",
    "node-66",
    "node-67",
    "node-68",
    "node-69",
    "node-70",
    "node-71",
    "node-72",
    "node-73",
    "node-74",
    "node-75",
    "node-76",
    "node-77",
    "node-78",
    "node-79",
    "node-80",
    "node-81",
    "node-82",
    "node-83",
    "node-84",
    "node-85",
    "node-86",
    "node-87",
    "node-88",
    "node-89",
    "node-90",
    "node-91",
    "node-92",
    "node-93",
    "node-94",
    "node-95",
    "node-96",
    "node-97",
    "node-98",
    "node-99"
  ],
  "InstanceCount":12,
  "ChecksPassing":4,
  "ChecksWarning":0,
  "ChecksCritical":1,
  "ExternalSources":[
    ""
  ],
  "GatewayConfig":{
    "Addresses":[
      "clinton.com:39243",
      "*.alyson.info:46378",
      "fanny.name:29415"
    ]
  }
}
]

Usage

  • Requested on the 'Upstreams' tab on services show page to show the list of upstream instances.

Documentation

This is an internal endpoint so there is no public documentation

Topology Tab

This tab is nested under the general service show-page and shows if the datacenter is MeshEnabled, and the service is not a connect-proxy, ingress-gateway, or terminating-gateway, and there is more than one proxy or the service is not an ingress-gateway or not a peer.

(and dc.MeshEnabled item.IsMeshOrigin (or (gt proxies.length 0) (eq item.Service.Kind 'ingress-gateway')) (not item.Service.PeerName))

NOTE: not in initial scope

Get service topology

GET /v1/internal/ui/service-topology/:service

Example response
{
"Protocol":"tcp",
"FilteredByACLs":false,
"TransparentProxy":true,
"Upstreams":[
  {
    "Name":"service-55",
    "Datacenter":"dc1",
    "Namespace":"default",
    "Partition":"default",
    "ChecksPassing":1,
    "ChecksWarning":0,
    "ChecksCritical":7,
    "Source":"routing-config",
    "PeerName":"application",
    "TransparentProxy":false,
    "Intention":{
      "Allowed":true,
      "HasPermissions":false,
      "ExternalSource":"kubernetes",
      "HasExact":true,
      "DefaultAllow":true
    }
  },
  {
    "Kind":"",
    "Name":"service-83",
    "Datacenter":"dc1",
    "Namespace":"protocol-ns-1",
    "Partition":"feed-partition",
    "ChecksPassing":3,
    "ChecksWarning":7,
    "ChecksCritical":0,
    "Source":"wildcard-intention",
    "TransparentProxy":true,
    "Intention":{
      "Allowed":false,
      "HasPermissions":false,
      "ExternalSource":"",
      "HasExact":false,
      "DefaultAllow":true
    }
  },
  {
    "Kind":"ingress-gateway",
    "Name":"service-51",
    "Datacenter":"dc1",
    "Namespace":"port-ns-2",
    "Partition":"bandwidth-partition",
    "ChecksPassing":2,
    "ChecksWarning":0,
    "ChecksCritical":2,
    "Source":"routing-config",
    "TransparentProxy":false,
    "Intention":{
      "Allowed":false,
      "HasPermissions":false,
      "ExternalSource":"kubernetes",
      "HasExact":false,
      "DefaultAllow":false
    }
  }
],
"Downstreams":[
  {
    "Kind":"ingress-gateway",
    "Name":"service-22",
    "Datacenter":"dc1",
    "Namespace":"default",
    "Partition":"default",
    "ChecksPassing":1,
    "ChecksWarning":0,
    "ChecksCritical":0,
    "Source":"default-allow",
    "TransparentProxy":true,
    "Intention":{
      "Allowed":false,
      "HasPermissions":true,
      "ExternalSource":"",
      "HasExact":true,
      "DefaultAllow":true
    }
  },
  {
    "Name":"service-83",
    "Datacenter":"dc1",
    "Namespace":"protocol-ns-1",
    "Partition":"bus-partition",
    "ChecksPassing":2,
    "ChecksWarning":0,
    "ChecksCritical":4,
    "Source":"specific-intention",
    "TransparentProxy":false,
    "Intention":{
      "Allowed":false,
      "HasPermissions":false,
      "ExternalSource":"kubernetes",
      "HasExact":true,
      "DefaultAllow":true
    }
  },
  {
    "Kind":"",
    "Name":"service-91",
    "Datacenter":"dc1",
    "Namespace":"microchip-ns-2",
    "Partition":"array-partition",
    "ChecksPassing":7,
    "ChecksWarning":1,
    "ChecksCritical":3,
    "Source":"specific-intention",
    "TransparentProxy":true,
    "Intention":{
      "Allowed":true,
      "HasPermissions":false,
      "ExternalSource":"kubernetes",
      "HasExact":true,
      "DefaultAllow":true
    }
  },
  {
    "Name":"service-8",
    "Datacenter":"dc1",
    "Namespace":"matrix-ns-3",
    "Partition":"sensor-partition",
    "ChecksPassing":5,
    "ChecksWarning":0,
    "ChecksCritical":0,
    "Source":"proxy-registration",
    "TransparentProxy":true,
    "Intention":{
      "Allowed":true,
      "HasPermissions":false,
      "ExternalSource":"kubernetes",
      "HasExact":false,
      "DefaultAllow":true
    }
  },
  {
    "Kind":"ingress-gateway",
    "Name":"service-76",
    "Datacenter":"dc1",
    "Namespace":"pixel-ns-4",
    "Partition":"interface-partition",
    "ChecksPassing":4,
    "ChecksWarning":0,
    "ChecksCritical":0,
    "Source":"wildcard-intention",
    "TransparentProxy":true,
    "Intention":{
      "Allowed":true,
      "HasPermissions":false,
      "ExternalSource":"kubernetes",
      "HasExact":true,
      "DefaultAllow":true
    }
  }
]
}

Usage

  • Used for displaying all the information on the topology tab

Documentation

This endpoint is not included in the public facing HTTP API documentation

Find intentions for service

GET /v1/connect/intentions

Example response
[
{
  "Description":"Consequatur excepturi ut et.",
  "SourcePeer":"",
  "SourceName":"hard drive-0",
  "DestinationName":"circuit",
  "SourceNS":"default",
  "DestinationNS":"default",
  "SourcePartition":"default",
  "DestinationPartition":"default",
  "SourceType":"externaluri",
  "Permissions":[
    {
      "Action":"deny",
      "HTTP":{
        "PathPrefix":"/provident/earum/occaecati",
        "Methods":[
          "HEAD",
          "OPTIONS"
        ],
        "Header":[
          {
            "Name":"X-Capacitor",
            "Suffix":"xyz"
          },
          {
            "Name":"X-Driver",
            "Invert":true,
            "Suffix":"xyz"
          },
          {
            "Name":"X-Matrix",
            "Invert":true,
            "Prefix":"abc"
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathRegex":"(w+)s(w+)",
        "Methods":[
          "HEAD",
          "GET",
          "PUT",
          "PATCH"
        ],
        "Header":[
          {
            "Name":"X-Monitor",
            "Prefix":"abc"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathExact":"/molestiae",
        "Methods":[
          "OPTIONS",
          "DELETE",
          "POST",
          "PATCH"
        ],
        "Header":[
          {
            "Name":"X-Capacitor",
            "Prefix":"abc"
          },
          {
            "Name":"X-Bus",
            "Invert":true,
            "Present":true
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "Methods":[
          "DELETE",
          "POST"
        ],
        "Header":[
          {
            "Name":"X-Bandwidth",
            "Invert":true,
            "Present":true
          },
          {
            "Name":"X-System",
            "Exact":"abc"
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathRegex":"(w+)s(w+)",
        "Header":[
          {
            "Name":"X-Matrix",
            "Regex":"[abc]"
          },
          {
            "Name":"X-Panel",
            "Invert":true,
            "Prefix":"abc"
          },
          {
            "Name":"X-Array",
            "Regex":"[abc]"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "Header":[
          {
            "Name":"X-Interface",
            "Invert":true,
            "Suffix":"xyz"
          },
          {
            "Name":"X-Bandwidth",
            "Prefix":"abc"
          }
        ]
      }
    }
  ],
  "Precedence":1,
  "Meta":{
    "external-source":"kubernetes"
  },
  "CreatedAt":"2018-05-21T16:41:27.977155457Z",
  "UpdatedAt":"2018-05-21T16:41:27.977157724Z",
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "Description":"Libero incidunt sunt.",
  "SourcePeer":"billing",
  "SourceName":"alarm-1",
  "DestinationName":"port",
  "SourceNS":"default",
  "DestinationNS":"default",
  "SourcePartition":"default",
  "DestinationPartition":"default",
  "SourceType":"externaluri",
  "Permissions":[
    {
      "Action":"deny",
      "HTTP":{
        "PathPrefix":"/nobis/doloresdd_cambridgeshire_borders.ngdat",
        "Methods":[
          "POST",
          "PUT",
          "GET",
          "PATCH"
        ],
        "Header":[
          {
            "Name":"X-Matrix",
            "Exact":"abc"
          },
          {
            "Name":"X-Transmitter",
            "Invert":true,
            "Exact":"abc"
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathExact":"/quas/reprehenderit/voluptatempayment_european_unit_of_account_17(e.u.a._17).sdw",
        "Header":[
          {
            "Name":"X-Sensor",
            "Invert":true,
            "Present":true
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathPrefix":"/ut/neque/error",
        "Header":[
          {
            "Name":"X-Panel",
            "Invert":true,
            "Suffix":"xyz"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathPrefix":"/sequi/etregional_concrete_soap.sid",
        "Header":[
          {
            "Name":"X-Array",
            "Invert":true,
            "Prefix":"abc"
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathPrefix":"/provident/impedit/magnam",
        "Methods":[
          "GET",
          "POST",
          "PUT",
          "HEAD",
          "DELETE"
        ],
        "Header":[
          {
            "Name":"X-Transmitter",
            "Prefix":"abc"
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathRegex":"(w+)s(w+)",
        "Header":[
          {
            "Name":"X-Feed",
            "Suffix":"xyz"
          },
          {
            "Name":"X-Matrix",
            "Invert":true,
            "Suffix":"xyz"
          },
          {
            "Name":"X-Hard-Drive",
            "Invert":true,
            "Present":true
          }
        ]
      }
    }
  ],
  "Precedence":2,
  "Meta":{
    "external-source":"kubernetes"
  },
  "CreatedAt":"2018-05-21T16:41:27.977155457Z",
  "UpdatedAt":"2018-05-21T16:41:27.977157724Z",
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "Description":"Numquam pariatur ducimus non dolor asperiores unde.",
  "SourcePeer":"billing",
  "SourceName":"firewall-2",
  "DestinationName":"card",
  "SourceNS":"default",
  "DestinationNS":"default",
  "SourcePartition":"default",
  "DestinationPartition":"default",
  "SourceType":"consul",
  "Permissions":[
    {
      "Action":"allow",
      "HTTP":{
        "PathExact":"/sit",
        "Header":[
          {
            "Name":"X-Sensor",
            "Exact":"abc"
          },
          {
            "Name":"X-Panel",
            "Invert":true,
            "Present":true
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathExact":"/id/eum/ratione/iustoshirt.bdoc",
        "Methods":[
          "GET",
          "HEAD",
          "DELETE",
          "PUT",
          "OPTIONS"
        ],
        "Header":[
          {
            "Name":"X-Matrix",
            "Invert":true,
            "Regex":"[abc]"
          }
        ]
      }
    },
    {
      "Action":"deny",
      "HTTP":{
        "PathPrefix":"/ea/aut/vel/velautomotive_thx_licensed.mp4s",
        "Methods":[
          "DELETE",
          "POST",
          "HEAD"
        ],
        "Header":[
          {
            "Name":"X-Program",
            "Suffix":"xyz"
          },
          {
            "Name":"X-Driver",
            "Invert":true,
            "Exact":"abc"
          },
          {
            "Name":"X-Array",
            "Present":true
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathRegex":"(w+)s(w+)",
        "Header":[
          {
            "Name":"X-Circuit",
            "Regex":"[abc]"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathPrefix":"/minima/itaque",
        "Methods":[
          "HEAD",
          "GET"
        ],
        "Header":[
          {
            "Name":"X-Firewall",
            "Prefix":"abc"
          },
          {
            "Name":"X-Bandwidth",
            "Invert":true,
            "Prefix":"abc"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathExact":"/maxime/repudiandae/vel/veritatisrustic_metal_shoes.kon",
        "Header":[
          {
            "Name":"X-System",
            "Prefix":"abc"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathPrefix":"/eum",
        "Methods":[
          "POST",
          "HEAD"
        ],
        "Header":[
          {
            "Name":"X-Circuit",
            "Invert":true,
            "Regex":"[abc]"
          }
        ]
      }
    }
  ],
  "Precedence":3,
  "Meta":{
    "external-source":""
  },
  "CreatedAt":"2018-05-21T16:41:27.977155457Z",
  "UpdatedAt":"2018-05-21T16:41:27.977157724Z",
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "ID":"511d0ebb-27aa-48e4-b01e-8227afa50938",
  "Action":"allow",
  "Description":"Quae animi sunt et molestiae harum et asperiores nobis repudiandae.",
  "SourcePeer":"billing",
  "SourceName":"driver-3",
  "DestinationName":"card",
  "SourceNS":"default",
  "DestinationNS":"default",
  "SourcePartition":"default",
  "DestinationPartition":"default",
  "SourceType":"consul",
  "Precedence":4,
  "Meta":{
    "external-source":"kubernetes"
  },
  "CreatedAt":"2018-05-21T16:41:27.977155457Z",
  "UpdatedAt":"2018-05-21T16:41:27.977157724Z",
  "CreateIndex":11,
  "ModifyIndex":11
},
{
  "Description":"Nihil fugiat provident.",
  "SourcePeer":"billing",
  "SourceName":"pixel-4",
  "DestinationName":"microchip",
  "SourceNS":"default",
  "DestinationNS":"default",
  "SourcePartition":"default",
  "DestinationPartition":"default",
  "SourceType":"consul",
  "Permissions":[
    {
      "Action":"deny",
      "HTTP":{
        "PathRegex":"(w+)s(w+)",
        "Methods":[
          "PUT",
          "DELETE",
          "OPTIONS",
          "PATCH"
        ],
        "Header":[
          {
            "Name":"X-Circuit",
            "Regex":"[abc]"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "PathRegex":"(w+)s(w+)",
        "Header":[
          {
            "Name":"X-Interface",
            "Exact":"abc"
          },
          {
            "Name":"X-Port",
            "Prefix":"abc"
          },
          {
            "Name":"X-Driver",
            "Invert":true,
            "Suffix":"xyz"
          }
        ]
      }
    },
    {
      "Action":"allow",
      "HTTP":{
        "Methods":[
          "PATCH"
        ],
        "Header":[
          {
            "Name":"X-Capacitor",
            "Invert":true,
            "Prefix":"abc"
          },
          {
            "Name":"X-Sensor",
            "Exact":"abc"
          },
          {
            "Name":"X-Sensor",
            "Invert":true,
            "Suffix":"xyz"
          }
        ]
      }
    }
  ],
  "Precedence":5,
  "CreatedAt":"2018-05-21T16:41:27.977155457Z",
  "UpdatedAt":"2018-05-21T16:41:27.977157724Z",
  "CreateIndex":11,
  "ModifyIndex":11
}
]

Usage

  • Used for grabbing existing intention information as part of the process of creating intentions, which you can create via the topology UI.
  • Also used for listing intentions on the intentions tab

Documentation

https://developer.hashicorp.com/consul/api-docs/connect/intentions#list-intentions

Upsert intention

PUT /v1/connect/intentions/exact

Usage

  • Used on the topology tab for creating and updating existing intentions
  • Used on edit and create for intentions on the intentions create form that is accessibile from the intentions tab.

Documentation

https://developer.hashicorp.com/consul/api-docs/connect/intentions#upsert-intention-by-name

Intentions tab

Delete intention

DELETE /v1/connect/intentions/exact

Usage

  • Used for deleting intentions from the intentions tab or via the edit form accessible through the intentions tab.

Documentation

Upsert intention

PUT /v1/connect/intentions/exact

Usage

  • Used on the topology tab for creating and updating existing intentions
  • Used on edit and create for intentions on the intentions create form that is accessibile from the intentions tab.

Documentation

https://developer.hashicorp.com/consul/api-docs/connect/intentions#upsert-intention-by-name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment