consul/vendor/github.com
Matt Keeler afa1cc98d1
Implement data filtering of some endpoints (#5579)
Fixes: #4222 

# Data Filtering

This PR will implement filtering for the following endpoints:

## Supported HTTP Endpoints

- `/agent/checks`
- `/agent/services`
- `/catalog/nodes`
- `/catalog/service/:service`
- `/catalog/connect/:service`
- `/catalog/node/:node`
- `/health/node/:node`
- `/health/checks/:service`
- `/health/service/:service`
- `/health/connect/:service`
- `/health/state/:state`
- `/internal/ui/nodes`
- `/internal/ui/services`

More can be added going forward and any endpoint which is used to list some data is a good candidate.

## Usage

When using the HTTP API a `filter` query parameter can be used to pass a filter expression to Consul. Filter Expressions take the general form of:

```
<selector> == <value>
<selector> != <value>
<value> in <selector>
<value> not in <selector>
<selector> contains <value>
<selector> not contains <value>
<selector> is empty
<selector> is not empty
not <other expression>
<expression 1> and <expression 2>
<expression 1> or <expression 2>
```

Normal boolean logic and precedence is supported. All of the actual filtering and evaluation logic is coming from the [go-bexpr](https://github.com/hashicorp/go-bexpr) library

## Other changes

Adding the `Internal.ServiceDump` RPC endpoint. This will allow the UI to filter services better.
2019-04-16 12:00:15 -04:00
..
Azure Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
DataDog/datadog-go Updates DataDog/datadog-go. 2016-08-09 16:27:20 -07:00
Jeffail/gabs Vendor the vault api 2018-06-25 12:26:10 -07:00
Microsoft/go-winio Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
NYTimes/gziphandler Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
SAP/go-hdb Vendor the vault api 2018-06-25 12:26:10 -07:00
SermoDigital/jose Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
StackExchange/wmi Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
armon Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
asaskevich/govalidator Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
aws/aws-sdk-go Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
beorn7/perks Added dependency github.com/prometheus/client_golang/prometheus/promhttp 2018-04-06 08:54:37 +02:00
bgentry/speakeasy Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
boltdb/bolt Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
circonus-labs Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
coredns/coredns Add github.com/coredns/coredns/plugin/pkg/dnsutil files 2018-05-21 22:25:16 +02:00
davecgh/go-spew Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
denisenkom/go-mssqldb Vendor the vault api 2018-06-25 12:26:10 -07:00
denverdino/aliyungo Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
dgrijalva/jwt-go Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
digitalocean/godo Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
docker/go-connections Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
elazarl/go-bindata-assetfs Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
envoyproxy/go-control-plane Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
fatih Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
ghodss/yaml Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
go-ini/ini Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
go-ole/go-ole Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
go-sql-driver/mysql Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
gocql/gocql Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
gogo Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
golang Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
google Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
googleapis/gnostic Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
gophercloud/gophercloud Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
gregjones/httpcache Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
hailocab/go-hostpool Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
hashicorp Implement data filtering of some endpoints (#5579) 2019-04-16 12:00:15 -04:00
imdario/mergo Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
jefferai/jsonx Vendor the vault api 2018-06-25 12:26:10 -07:00
jmespath/go-jmespath Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
joyent/triton-go Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
json-iterator/go Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
keybase/go-crypto Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
kr/text replace old fork of text package (#4501) 2018-08-14 12:23:18 -07:00
lib/pq Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
lyft/protoc-gen-validate xDS Server Implementation (#4731) 2018-10-10 16:55:34 +01:00
mattn Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
matttproud/golang_protobuf_extensions Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
miekg/dns Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
mitchellh Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
modern-go Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
nicolai86/scaleway-sdk Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
oklog/run Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
packethost/packngo Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
pascaldekloe/goe Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
patrickmn/go-cache Vendor the vault api 2018-06-25 12:26:10 -07:00
peterbourgon/diskv Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
pkg/errors Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
pmezard/go-difflib agent/consul/fsm: begin using testify/assert 2018-03-06 09:48:15 -08:00
posener/complete Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
prometheus Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
renier/xmlrpc Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
ryanuber Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
sean-/seed Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
shirou Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
sirupsen/logrus Pull go-discover to fix Sirupsen/logrus (#5598) 2019-04-03 20:07:00 +01:00
softlayer/softlayer-go Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
spf13/pflag Update vendoring from go mod. (#5566) 2019-03-26 17:50:42 -04:00
stretchr Implement data filtering of some endpoints (#5579) 2019-04-16 12:00:15 -04:00
vmware/govmomi Pull go-discover to fix Sirupsen/logrus (#5598) 2019-04-03 20:07:00 +01:00