Skip to content

Conversation

@leeandher
Copy link
Member

@leeandher leeandher commented Jan 14, 2026

Introduces a new region RPC service (sentry_app_region) for Sentry App
operations that require access to region-specific data.

This PR adds the base service structure and the first method:
get_select_options which allows control silo endpoints to fetch select
options from Sentry Apps.

Stack:

  1. feat(sentry-apps): Add region RPC service with get_select_options #106276 - get_select_options ← You are here
  2. feat(sentry-apps): Add create_issue_link to region RPC service #106277 - create_issue_link
  3. feat(sentry-apps): Add create_external_issue to region RPC service #106278 - create_external_issue
  4. feat(sentry-apps): Add delete_external_issue to region RPC service #106279 - delete_external_issue
  5. feat(sentry-apps): Add service hook projects methods to region RPC service #106281 - get_service_hook_projects
  6. feat(sentry-apps): Add interaction methods to region RPC service #106282 - record_interaction

Introduces SentryAppRegionService for region silo operations. First method
enables fetching select field options from sentry app webhooks.

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Member

@markstory markstory left a comment

Choose a reason for hiding this comment

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

Looks good to me. The method body lines up with the current contents of the endpoint.

@leeandher leeandher merged commit 8511a03 into master Jan 14, 2026
68 checks passed
@leeandher leeandher deleted the leander/sai-region-service-1-get-select-options branch January 14, 2026 20:02
leeandher added a commit that referenced this pull request Jan 14, 2026
Adds the create_issue_link method which allows control silo endpoints
to create issue links for Sentry Apps via RPC. This mirrors the
functionality in installation_external_issue_actions.py POST.

**Stack:**
1. #106276 - get_select_options
2. **#106277** - create_issue_link ← You are here
3. #106278 - create_external_issue
4. #106279 - delete_external_issue
5. #106281 - get_service_hook_projects
6. #106282 - record_interaction

Co-authored-by: Claude <noreply@anthropic.com>
leeandher added a commit that referenced this pull request Jan 14, 2026
…106278)

Adds the create_external_issue method which allows control silo
endpoints
to create external issues for Sentry Apps via RPC. This mirrors the
functionality in installation_external_issues.py POST.

**Stack:**
1. #106276 - get_select_options
2. #106277 - create_issue_link
3. **#106278** - create_external_issue ← You are here
4. #106279 - delete_external_issue
5. #106281 - get_service_hook_projects
6. #106282 - record_interaction

Co-authored-by: Claude <noreply@anthropic.com>
leeandher added a commit that referenced this pull request Jan 14, 2026
…106279)

Adds the delete_external_issue method which allows control silo
endpoints
to delete external issues for Sentry Apps via RPC. This mirrors the
functionality in installation_external_issue_details.py DELETE.

Also adds RpcEmptyResult model for operations that return no data.

**Stack:**
1. #106276 - get_select_options
2. #106277 - create_issue_link
3. #106278 - create_external_issue
4. **#106279** - delete_external_issue ← You are here
5. #106281 - get_service_hook_projects
6. #106282 - record_interaction

Co-authored-by: Claude <noreply@anthropic.com>
leeandher added a commit that referenced this pull request Jan 15, 2026
…rvice (#106281)

Adds service hook projects methods to the region RPC service which
allows
control silo endpoints to manage service hook projects:

- `get_service_hook_projects` - Returns paginated service hook projects
for an installation
- `set_service_hook_projects` - Replaces all service hook projects with
a new set (matches POST endpoint)
- `delete_service_hook_projects` - Deletes all service hook projects for
an installation (matches DELETE endpoint)

All methods support cursor-based pagination via `cursor` and `limit`
parameters.

Also adds:
- `RpcServiceHookProject` model with `id` and `project_id` fields
- `RpcServiceHookProjectsResult` with `service_hook_projects` list and
`next_cursor` for pagination

**Stack:**
1. #106276 - get_select_options
2. #106277 - create_issue_link
3. #106278 - create_external_issue
4. #106279 - delete_external_issue
5. **#106281** - service_hook_projects (get/set/delete) ← You are here
6. #106282 - record_interaction

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

3 participants