[APIView] Namespace Email Notification Story
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 144
Description
Add email/notification support for namespace lifecycle events in the APIView Namespace Approval tab. Architects and SDK teams need to be kept in the loop when namespace status changes or action is needed.
## Background
PR #14632 introduced the Namespace Approval tab to APIView, which allows architects to approve, reject, or track namespace proposals per language. As part of that work, the following notification scenarios were identified and deferred.
## Proposed Notifications
> If a namespace update causes a previous namespace to be set to Withdrawn and a new namespace to be set to Proposed for the same {project, language}, send one combined email (“Namespace Changed”) rather than two separate emails.
### 1. Namespace Withdrawn
- **Trigger:** The namespace proposal for a language is withdrawn
- **Recipients:** The responsible architect(s) for the language(s) affected + subscribers
- **Email content:**
- Withdrawn namespace
- Package name and/or project name
- Affected language
- Withdrawn by (user)
- Withdrawn on (timestamp)
- Link to the APIView **Namespace** tab for the project/review
### 2. Namespace Rejected
- **Trigger:** The namespace proposal for a language is rejected
- **Recipients:** The SDK owners / package authors for the affected package + subscribers
- **Email content:**
- Package name + project name (if available) + affected language.
- Proposed namespace that was rejected.
- Rejected by (user) and rejection timestamp.
- Rejection reason/notes (the text entered in the rejection dialog).
- Link to the APIView **Namespace** tab (and optionally the specific language’s review link) so the team can take action.
### 3. Namespace Approved
- **Trigger:** A namespace proposal is approved for a language
- **Recipients:** The SDK owners / package authors for the affected package + subscribers
- **Email content:**
- Approved namespace
- Package name and/or project name
- Affected language
- Approved by (architect/deputy/admin)
- Approved on (timestamp)
- Link to the APIView **Namespace** tab (and optionally the specific language review)
### 4. New Namespace Proposed
- **Trigger:** A new namespace is proposed for a language in a project.
- **Recipients:** The language architect(s) for the proposed language + subscribers
- **Email content:**
- Package name and proposed namespace.
- Links to the Namespace tab.
- If a previous namespace for the same language/project was **withdrawn**, include the historical namespace data in the email body for context.
### 5. Namespace Review Requested
- **Feature:**
- Add a **Request Review** button on the Namespace tab (visible to SDK owners / package authors), just exclude architects/deputy architects and Admins).
- **Trigger:** User clicks the button to request architect review of a proposed namespace.
- **Recipients:** The language architect(s) for the relevant language + subscribers
- **Email content:**
- Package name
- Proposed namespace (for the relevant language)
- Link to the Namespace tab in APIView
- **Concern**:
- This could become noisy
- Add a pop-up with optional **additional notes** section
- Or after a successful request, disable the button for a specific amount of time and show "Requested" state + timestamp
## Related
- PR: #14632 — Add Namespace Approval Tab to APIView
- Issue: #14427
Contributor guide
Research direction
Start at the APIView Namespace Approval tab and the namespace-approval work described in PR #14632; trace each namespace lifecycle transition and the Request Review entry point. Done means the specified recipients, content, links, combined-change behavior, and request-review interaction are implemented for all listed scenarios.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100