elastic / elastic/integrations

[dashboard-data-scope] High-severity unscoped PostgreSQL OTel dashboard controls and undocumented SVR00002 suppression

Open
#18,870 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Handlebars
Stars
333
Forks
647
Avg merge
3d 4h
Merged PRs (30d)
209

Description

## Findings

### 1. PostgreSQL OTel dashboards use global control data views (`metrics-*` / `logs-*`) instead of package-scoped data views

**Impact:** Users with multiple integrations installed get control dropdown values from unrelated integrations, so filtering in PostgreSQL dashboards is polluted by non-PostgreSQL entities.

**Evidence (actual control/query source, not metadata):**

- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-overview.json:16`
- `"dataViewId":"metrics-*"` in `optionsListControl` explicit input
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-connections.json:16`
- `"dataViewId":"metrics-*"`
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-io-health.json:16`
- `"dataViewId":"metrics-*"`
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-locks.json:16`
- `"dataViewId":"metrics-*"`
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-query-performance.json:16`
- `"dataViewId":"metrics-*"`
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-workload.json:16`
- `"dataViewId":"metrics-*"`
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-active-queries.json:16`
- `"dataViewId":"logs-*"`

Related index-pattern refs are also global:
- `postgresql_otel-overview.json:63,68` → `"id": "metrics-*"`
- `postgresql_otel-active-queries.json:63,68` → `"id": "logs-*"`
- Same pattern repeats in the other listed dashboards at line `63` (and `68` where present).

Dashboards have no top-level filter guard:
- `packages/postgresql_otel/kibana/dashboard/postgresql_otel-overview.json:8`
- `"searchSourceJSON": "{\"filter\":[],...}`
- Same `filter: []` pattern appears in the other listed dashboards.

The package already declares scoped dataset(s), confirming the expected scope:
- `packages/postgresql_otel/manifest.yml:20` → `postgresqlreceiver.otel`

### 2. Validation suppression exists without explanation in the same package

- `packages/postgresql_otel/validation.yml:2-3`
- `exclude_checks:`
- `- SVR00002`

There is no explanatory comment/rationale in this file for suppressing `SVR00002`.

## Why this is wrong

`SVR00002` is intended to prevent unscoped dashboard filtering. Here, control panels are explicitly configured with global `metrics-*`/`logs-*` data views, which allows cross-integration field values into dashboard controls.

## Suggested actions

- [ ] Replace control `dataViewId` and index-pattern refs in the listed PostgreSQL OTel dashboards with package-scoped data views (for the `postgresqlreceiver.otel` dataset), not global `metrics-*`/`logs-*`.
- [ ] Remove the `SVR00002` suppression after scoping is fixed, or add an explicit rationale and a linked remediation issue if temporary suppression is required.

## Audit coverage

- Total dashboards scanned: **1282**
- Dashboards with confirmed findings: **7** (all in `postgresql_otel`)

> [!NOTE]
>
> 🔒 Integrity filter blocked 39 items
>
> The following items were blocked because they don't meet the GitHub integrity level.
>
> - elastic/integrations#18866 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18865 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18864 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18863 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18862 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18861 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18860 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18855 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18846 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18841 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18840 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18838 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18837 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18836 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18829 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - elastic/integrations#18826 `list_issues`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
> - ... and 23 more items
>
> To allow these resources, lower `min-integrity` in your GitHub frontmatter:
>
> ```yaml
> tools:
> github:
> min-integrity: approved # merged | approved | unapproved | none
> ```
>
>

---
[What is this?](https://ela.st/github-ai-tools) | [From workflow: Sweeper: Dashboard Data Scope and Filter Integrity](https://github.com/elastic/integrations/actions/runs/25488688281)

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
> - [x] expires on May 14, 2026, 10:12 AM UTC

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.