Skip to content

Filters & Dynamic Bindings

Shield360 makes dashboards interactive by letting you add filters and dynamically bind their values to ClickHouse queries. This enables you to create reusable dashboards that respond to user inputs like time range, environment, region, and more.

Filters are interactive controls (e.g. date ranges) placed at the top of a dashboard. You can bind these filters to your widgets so their values get passed into SQL queries in real time.

Shield360 uses mustache-style bindings to inject filter values into your queries.

{{variable_name}}

At runtime, Shield360 replaces each binding with the user-provided filter value.

  • {{filter.timeLimit.start}} and {{filter.timeLimit.end}} - for date range filters
SELECT
toStartOfHour(event_time) AS time,
count() AS value
FROM user_events
WHERE event_time BETWEEN {{filter.timeLimit.start}} AND {{filter.timeLimit.end}}
GROUP BY time
ORDER BY time

In this example:

  • {{filter.timeLimit.start}} & {{filter.timeLimit.end}} are bound to a date range filter
  • Date Range{{filter.timeLimit.start}}, {{filter.timeLimit.end}}
  • (Coming soon): Dynamic filters etc
  • Always use meaningful keys like team_id, env, or region
  • Use coalesce({{param}}, 'default') to provide fallback values in ClickHouse
  • Test your queries in the SQL editor with example values for clarity
  • Avoid hardcoded constraints - use bindings to keep dashboards flexible