Skip to content

feat(inbound-filters): Add an issue action that drafts a custom filter from the event - #126850

Closed
shellmayr wants to merge 1 commit into
masterfrom
shellmayr/feat/add-inbound-filter-from-issue
Closed

shellmayr wants to merge 1 commit into
masterfrom
shellmayr/feat/add-inbound-filter-from-issue

Conversation

@shellmayr

@shellmayr shellmayr commented Oct 8, 2026 •

Copy link
Copy Markdown
Member
  • Adds "Add Inbound Filter" to the More Actions menu on issue details.
  • Opens the custom filter modal with one condition per property the shown event has: exception type, exception message, country, release, IP address. The user removes the rows they do not want.
  • Escapes event text as a Relay glob and folds line breaks into *. Raw exception type and message win over symbolicated ones.
  • Moves the modal, the condition specs, and the save mutation from the settings table into customFilterModal.tsx. The modal now owns POST and PUT and invalidates the list query.
  • Shown only with inbound-filters-v2, inbound-filters-v2-ui, and inbound-filters-in-product-flows. Disabled without project write access.
  • Tracks the click as add_inbound_filter on the issue action analytics event.
  • Lands after feat(inbound-filters): Register the inbound-filters-in-product-flows flag #126851 registers the flag. Rollout for the test orgs is getsentry/sentry-options-automatorref(app-platform): Move feature flagging into decorators #10091.

…r from the event

The issue details More Actions menu gets an Add Inbound Filter item. It opens the custom filter modal with one condition per property the shown event carries (exception type and message, country, release, IP), so the user removes rows instead of typing patterns. Event text is escaped as a Relay glob and raw exception values win over symbolicated ones.

The modal, the condition specs, and the save mutation move out of the settings table into customFilterModal.tsx. The modal now owns POST and PUT and invalidates the list query, so the issue page needs no mutation of its own. The item is gated on inbound-filters-v2, inbound-filters-v2-ui, and the new inbound-filters-in-product-flows flag.
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

📊 Type Coverage Diff

Metric Before After Delta
Coverage 95.69% 95.69% ±0%
Typed 142,394 142,415 🟢 +21
Untyped 6,415 6,416 🔴 +1
🔍 3 new type safety issues introduced

Type assertions (as) (3 new)

File Line Detail
static/app/views/settings/project/projectFilters/customFilterModal.tsx 173 as [ConditionType, ...ConditionType[]] — Object.keys(CONDITIONS) as [ConditionType, ...ConditionType[]]
static/app/views/settings/project/projectFilters/customFilterModal.tsx 174 `as [
FilterDataType,
...FilterDataType[],
]—Object.keys(DATA_TYPES) as [ FilterDataType, ...FilterDataType[], ]`
static/app/views/settings/project/projectFilters/customFilterModal.tsx 437 as string[] — [...new Set(values.map(value => value?.trim()).filter(Boolean))] as string[]

This is informational only and does not block the PR.

@shellmayr shellmayr closed this Oct 8, 2026

This branch was successfully deployed

1 active deployment
Preview — da4421b4 Deployed Oct 8, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant