Skip to content

fix(repositories): filter unqueryable signals from dataSummary - #306

Merged
zer0stars merged 1 commit into
mainfrom
fix/data-summary-unqueryable-signals
Aug 5, 2026
Merged

fix(repositories): filter unqueryable signals from dataSummary#306
zer0stars merged 1 commit into
mainfrom
fix/data-summary-unqueryable-signals

Conversation

@zer0stars

Copy link
Copy Markdown
Member

Problem

dataSummary forwards stored signal names raw from ClickHouse, while availableSignals and signalsSnapshot filter them against the GraphQL schema's queryable set. Stored-but-removed names leak into availableSignals / signalDataSummary — prod example: currentLocationIsRedacted (last written 2024). Agents and API consumers feed those names back into signal queries and get GRAPHQL_VALIDATION_FAILED.

Follow-up to #304 (same 2026-08-03 incident class: API advertising names that fail when queried).

Fix

GetDataSummary applies the same queryableSignals filter before building the summary; numberOfSignals and firstSeen/lastSeen aggregate over queryable signals only.

Tests

TestGetDataSummaryFiltersUnqueryableSignals — RED against the old code with the exact prod leak (currentLocationIsRedacted in the advertised list), GREEN after. Full suite passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_015hwzo7z9hmuqgJ2SHPusac

availableSignals and signalsSnapshot already filter stored signal names
against the GraphQL schema; dataSummary forwarded them raw, advertising
names like currentLocationIsRedacted that fail validation when queried.
Counts and first/last-seen now aggregate over queryable signals only.
@zer0stars
zer0stars merged commit 0bbdad7 into main Aug 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant