goauthentik / goauthentik/authentik

Add Plivo as an SMS provider for the SMS authenticator stage

Open
#24,943 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
25.6k
Forks
2k
Avg merge
1d 1h
Merged PRs (30d)
644

Description

### Is your feature request related to a problem?

The SMS authenticator stage has no native option for Plivo. Plivo is an SMS and voice provider commonly used for OTP delivery. A user who wants to use Plivo today has to fall back to the generic HTTP provider and also configure a custom property mapping to remap the payload into Plivo's field names, because the generic field names do not match. That workaround is easy to get wrong and is not discoverable from the provider dropdown.

### Describe the solution you'd like

Add Plivo as a provider option in the SMS authenticator stage so it can be selected from the dropdown and works out of the box. It fits the existing stage cleanly. It reuses the current fields, with the Auth ID in the account field, the Auth Token in the auth field, and the sender number in the from number field, so no new model fields are needed. Sending is a single POST to the Plivo Messages API with basic auth, so it does not add a new dependency, and it supports the same optional property mapping the other providers use for customizing the message.

I already have this implemented and passing the stage's test suite, with a new provider send test alongside the existing ones, an admin form option, a migration for the new choice, and a short docs section. I am happy to open the PR once this looks right to you.

### Describe alternatives that you've considered

Using the generic HTTP provider with a custom property mapping to remap the payload into Plivo's field names. This works, but it makes every operator set up the mapping by hand, which is error prone and less discoverable than a named provider.

### Additional context

The change is additive and does not modify the existing providers. It follows the same structure as the current provider implementations in the stage.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing SMS authenticator provider implementations and running the stage's test suite. Review the provider send tests, admin form option, migration, and documentation described in the issue. Done means Plivo is selectable, sends through the Plivo Messages API using the existing fields and optional property mapping, and the related tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
authentication
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
40/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.