Feature: Slack Alerts - #81
Merged
Merged
Conversation
… at completed / failed job stages
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a Slack notification system for archive submission and retrieval jobs, allowing alerts to be sent on job completion or failure. This is useful for providing visibility into the status of these background, potentially long-running tasks.
The Slack integration uses CeR's existing Slack app "Keith", a friendly but diseased "ratbot". Messages are sent via an incoming webhook configured on Keith.

Notification screenshot:

Notification system integration
notify_job_resulthelper insrc/service/notifications.pyto send best-effort Slack alerts for archive job completion or failure, with non-production alerts prefixed by the mode name.src/config.pyto supportnotifications_enabledandnotifications_slack_webhook_urlsettings, allowing notifications to be toggled and configured via environment variables.src/api/README.mdand mainREADME.mdto document notification setup and usage. [1] [2]Worker integration
notify_job_resultcalls into bothsubmission_worker.pyandretrieval_worker.pyto send notifications on job success or failure, including relevant context such as IDs, drive name, and failure reasons. [1] [2] [3] [4] [5] [6]Testing
tests/test_chunked_workflow_integration.pyto mock and assert notification payloads, ensuring correct notification behavior for both successful and failed jobs. [1] [2] [3] [4] [5]