Skip to content

ref(np): Resolve MSTeams integrations from one lookup list - #125159

Merged
hobzcalvin merged 2 commits into
masterfrom
gp/msteams_integration_lookups
Sep 24, 2026
Merged

hobzcalvin merged 2 commits into
masterfrom
gp/msteams_integration_lookups

Conversation

@hobzcalvin

@hobzcalvin hobzcalvin commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

The request parser walked a card action id, then a team id, then a tenant id to
find the integration, while the card action webhook handler only looked at the
card action id and can_infer_integration only looked at the first two. Cards
built by the notification platform cannot embed an integration id, since the
renderer has no access to the target it is being sent to, so every caller needs
the full chain.

Express the chain once as an ordered list of integration_service filters and
derive all three callers from it, so a request identified only by its tenant --
an action submitted from a personal chat -- resolves and is dispatched to a
cell rather than falling through to the control silo.

@hobzcalvin
hobzcalvin added this pull request to stack #124985 September 21, 2026 23:30
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Sep 21, 2026
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch from ebbaed4 to 58dee1a Compare September 21, 2026 23:44
@sentry

sentry Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Sentry Snapshot Testing

Name Added Removed Changed Renamed Unchanged Skipped Status
sentry-frontend
sentry-frontend
0 0 0 0 518 0 ✅ Unchanged

⚙️ sentry-frontend Snapshot Settings

Comment thread src/sentry/integrations/msteams/parsing.py Outdated
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch from 58dee1a to 9c9c3aa Compare September 22, 2026 00:04
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch 2 times, most recently from d41a19a to b543940 Compare September 22, 2026 17:58
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch from b543940 to d92b853 Compare September 22, 2026 20:05
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch from d92b853 to d153254 Compare September 22, 2026 20:10
@hobzcalvin
hobzcalvin marked this pull request as ready for review September 22, 2026 20:53
@hobzcalvin
hobzcalvin requested review from a team as code owners September 22, 2026 20:53
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch from d153254 to 83e24bf Compare September 22, 2026 21:02
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch 2 times, most recently from 4e13145 to 61c84bd Compare September 23, 2026 18:01
Base automatically changed from gv/add_msteams_issue_renderer to master September 23, 2026 18:34
@hobzcalvin
hobzcalvin requested a review from a team as a code owner September 23, 2026 18:34
hobzcalvin and others added 2 commits September 23, 2026 11:34
The request parser walked a card action id, then a team id, then a tenant id to
find the integration, while the card action webhook handler only looked at the
card action id and can_infer_integration only looked at the first two. Cards
built by the notification platform cannot embed an integration id, since the
renderer has no access to the target it is being sent to, so every caller needs
the full chain.

Express the chain once as an ordered list of integration_service filters and
derive all three callers from it, so a request identified only by its tenant --
an action submitted from a personal chat -- resolves and is dispatched to a
cell rather than falling through to the control silo.

Co-authored-by: Cursor <cursoragent@cursor.com>
A tenant id identifies a personal install, whose events are served from the
control silo, so it cannot stand in as a cell routing key.

Co-authored-by: Cursor <cursoragent@cursor.com>
@hobzcalvin
hobzcalvin force-pushed the gp/msteams_integration_lookups branch from 61c84bd to 68dacd0 Compare September 23, 2026 18:34

@leeandher leeandher left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this makes sense! i wonder if the provider should be encoding the routing data into the message by modifying the renderable, it's the only stage that has both the rendered output + target so it may be something to consider but im just thinking out loud

@hobzcalvin
hobzcalvin merged commit 634df5f into master Sep 24, 2026
67 checks passed
@hobzcalvin
hobzcalvin deleted the gp/msteams_integration_lookups branch September 24, 2026 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants