fix(webhooks): filtered JSON drill links on health tile and home KPIs #25

Merged
KofTwentyTwo merged 1 commits from fix/webhooks-health-count-url into develop 2026-10-16 15:20:04 +00:00
KofTwentyTwo commented 2026-10-16 14:08:14 +00:00 (Migrated from github.com)

Summary

  • webhooksHealth countURL now uses the common form /app/health_check?filter=<url-encoded JSON QQueryFilter> (new support/FilterLinks), not base64. Verified in qqq-frontend-next v1.0.0-RC.35 (src/lib/utils/filter-utils.ts deserializeFilter): it accepts a JSON string (starts with {) or base64, so the old link did open the filter; this aligns it with every other qbit.
  • The audit's wider point holds for webhooksHome: all four KPI links went to the unfiltered Deliveries table. They now carry filters: Delivered (24 h), Failed attempts (24 h, attempts table, outcome not succeeded/rate-limited/in-flight), Dead letters, Waiting to send. Latency stays unlinked.

Rubric item moved

A3 (drill-through correctness) on Webhooks (webhooks): 1 -> 1 on its own (no point change; tiles still lack comparison and as-of). It removes a correctness defect, and counts the tiles now open the records they count.

Audit row fixed

Webhooks A3 / W0-14: "Webhooks countURL filter form".

Tests

WebhooksHealthWidgetTest decodes the URL and asserts the filter is component EQUALS webhooks; new WebhooksHomeTest.kpiDrillLinksAreFilteredJson decodes the KPI links. ./mvnw verify passes locally.

Screenshots

None: no layout change; link targets only. Full-page shots happen when kof22 pins the release.

Release

A qbit-webhooks release is needed (next RC); kof22 (Website-Backend) must bump its qbit-webhooks pin to it. No QQQ change.

🤖 Generated with Claude Code

## Summary - `webhooksHealth` `countURL` now uses the common form `/app/health_check?filter=<url-encoded JSON QQueryFilter>` (new `support/FilterLinks`), not base64. Verified in qqq-frontend-next v1.0.0-RC.35 (`src/lib/utils/filter-utils.ts` `deserializeFilter`): it accepts a JSON string (starts with `{`) or base64, so the old link did open the filter; this aligns it with every other qbit. - The audit's wider point holds for `webhooksHome`: all four KPI links went to the unfiltered Deliveries table. They now carry filters: Delivered (24 h), Failed attempts (24 h, attempts table, outcome not succeeded/rate-limited/in-flight), Dead letters, Waiting to send. Latency stays unlinked. ## Rubric item moved A3 (drill-through correctness) on Webhooks (`webhooks`): 1 -> 1 on its own (no point change; tiles still lack comparison and as-of). It removes a correctness defect, and counts the tiles now open the records they count. ## Audit row fixed Webhooks A3 / W0-14: "Webhooks `countURL` filter form". ## Tests `WebhooksHealthWidgetTest` decodes the URL and asserts the filter is `component EQUALS webhooks`; new `WebhooksHomeTest.kpiDrillLinksAreFilteredJson` decodes the KPI links. `./mvnw verify` passes locally. ## Screenshots None: no layout change; link targets only. Full-page shots happen when kof22 pins the release. ## Release A qbit-webhooks release is needed (next RC); kof22 (Website-Backend) must bump its qbit-webhooks pin to it. No QQQ change. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.