feat: Add Plivo as an SMS and voice alert-notification provider
- Dominant language
- Go
- Stars
- 13.3k
- Forks
- 1.8k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 26
Description
**What would you like to be added**:
Plivo SMS and voice providers under `alert/sender/provider/`, so alerts can be delivered as a Plivo SMS or an outbound Plivo voice call, following the existing per-vendor provider pattern (Tencent, Aliyun).
Two providers: `plivo_sms_provider.go` (`plivo-sms`, `POST …/Message/`) and `plivo_voice_provider.go` (`plivo-voice`, `POST …/Call/`), registered in `init.go` with default templates in `models/message_tpl.go`.
They're config-driven like the existing providers (URL/method/body come from the notify-channel config). The code injects HTTP Basic auth (Auth ID + Auth Token) and treats 2xx as success (Plivo returns 202 for Message, 201 for Call). The scope is outbound only and the credentials are two secrets.
**Why is this needed**:
Nightingale ships built-in SMS/voice providers such as Tencent and Aliyun, but teams outside those regions have no SMS/voice alert channel and fall back to email or a generic webhook.
Plivo is a global CPaaS to send SMS and place calls, so it fills that gap as an alternative provider without introducing new concepts.
Implementation is drafted and I'm ready to open a PR.
Happy to adjust to your conventions.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the existing Tencent and Aliyun providers under alert/sender/provider/ to understand the per-vendor pattern and configuration flow. Then inspect init.go and models/message_tpl.go for provider registration and default templates. Done means adding plivo-sms and plivo-voice with Basic auth, the specified endpoints, and 2xx success handling for SMS and voice delivery.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- observability-sre
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 70/100