goauthentik / goauthentik/authentik
Add Plivo as an SMS provider for the SMS authenticator stage
- 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
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