ccfos / ccfos/nightingale

feat: Add Plivo as an SMS and voice alert-notification provider

Open
#3,271 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.