mirror of
https://github.com/status-im/consul.git
synced 2025-02-10 12:46:32 +00:00
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.
131 lines
4.6 KiB
Plaintext
131 lines
4.6 KiB
Plaintext
<% wrap_layout :inner do %>
|
|
<% content_for :sidebar do %>
|
|
<ul class="nav docs-sidenav">
|
|
<li<%= sidebar_current("api-introduction") %>>
|
|
<a href="/api/index.html">API Introduction</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-features") %>>
|
|
<a href="/api/features/consistency.html">API Features</a>
|
|
<ul class="nav">
|
|
<li<%= sidebar_current("api-consistency-modes") %>>
|
|
<a href="/api/features/consistency.html">Consistency Modes</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-blocking-queries") %>>
|
|
<a href="/api/features/blocking.html">Blocking Queries</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-filtering") %>>
|
|
<a href="/api/features/filtering.html">Filtering</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-agent-caching") %>>
|
|
<a href="/api/features/caching.html">Agent Caching</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<hr>
|
|
|
|
<li<%= sidebar_current("api-acl") %>>
|
|
<a href="/api/acl/acl.html">ACLs</a>
|
|
<ul class="nav">
|
|
<li<%= sidebar_current("api-acl-tokens") %>>
|
|
<a href="/api/acl/tokens.html">Tokens</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-acl-tokens-legacy") %>>
|
|
<a href="/api/acl/legacy.html">Legacy Tokens</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-acl-policies") %>>
|
|
<a href="/api/acl/policies.html">Policies</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li<%= sidebar_current("api-agent") %>>
|
|
<a href="/api/agent.html">Agent</a>
|
|
<ul class="nav">
|
|
<li<%= sidebar_current("api-agent-check") %>>
|
|
<a href="/api/agent/check.html">Checks</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-agent-service") %>>
|
|
<a href="/api/agent/service.html">Services</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-agent-connect") %>>
|
|
<a href="/api/agent/connect.html">Connect</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li<%= sidebar_current("api-catalog") %>>
|
|
<a href="/api/catalog.html">Catalog</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-connect") %>>
|
|
<a href="/api/connect.html">Connect</a>
|
|
<ul class="nav">
|
|
<li<%= sidebar_current("api-connect-ca") %>>
|
|
<a href="/api/connect/ca.html">Certificate Authority (CA)</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-connect-intentions") %>>
|
|
<a href="/api/connect/intentions.html">Intentions</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li<%= sidebar_current("api-coordinate") %>>
|
|
<a href="/api/coordinate.html">Coordinates</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-event") %>>
|
|
<a href="/api/event.html">Events</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-health") %>>
|
|
<a href="/api/health.html">Health</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-kv-store") %>>
|
|
<a href="/api/kv.html">KV Store</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-operator") %>>
|
|
<a href="/api/operator.html">Operator</a>
|
|
<ul class="nav">
|
|
<li<%= sidebar_current("api-operator-area") %>>
|
|
<a href="/api/operator/area.html">Area</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-operator-autopilot") %>>
|
|
<a href="/api/operator/autopilot.html">Autopilot</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-operator-keyring") %>>
|
|
<a href="/api/operator/keyring.html">Keyring</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-operator-license") %>>
|
|
<a href="/api/operator/license.html">License</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-operator-raft") %>>
|
|
<a href="/api/operator/raft.html">Raft</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-operator-segment") %>>
|
|
<a href="/api/operator/segment.html">Segment</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li<%= sidebar_current("api-query") %>>
|
|
<a href="/api/query.html">Prepared Queries</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-session") %>>
|
|
<a href="/api/session.html">Sessions</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-snapshot") %>>
|
|
<a href="/api/snapshot.html">Snapshots</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-status") %>>
|
|
<a href="/api/status.html">Status</a>
|
|
</li>
|
|
<li<%= sidebar_current("api-txn") %>>
|
|
<a href="/api/txn.html">Transactions</a>
|
|
</li>
|
|
|
|
<hr>
|
|
|
|
<li<%= sidebar_current("api-libraries-and-sdks") %>>
|
|
<a href="/api/libraries-and-sdks.html">Libraries & SDKs</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<% end %>
|
|
|
|
<%= yield %>
|
|
<% end %>
|