F5 — Telefone + SMS via SMSGateway (por diretório) + limite 1/semana #62

Closed
opened 2026-07-27 13:24:32 -03:00 by navigator · 1 comment
Owner

Canal SMS para 2FA e micro-pesquisa em municípios pequenos (onde e-mail é fraco).

SMSGateway por diretório/campanha

  • Cada diretório (e cada campanha) cadastra seu próprio SMSGateway nas configurações: host, api_token, etc. (app Android sms-gate.app / SMSGateway)
  • SmsSender plugável (mesmo padrão do CpfVerifier); SMSGateway como 1ª impl
  • Config cifrada em repouso; nunca em log

Limite de envio

  • 1 SMS por semana por destinatário para diretórios e candidatos
  • OWNER da plataforma: sem limite

Telefone

  • citizen.phone (E.164); verificação por OTP SMS
  • Verificação de telefone é opt-in e ocorre depois de aprovar o e-mail, só se o usuário optar receber notificações por SMS
  • Comunicar: em caso de perda do e-mail, o telefone é opção de 2FA (não recomendada, mas possível)

Limites honestos

  • Um aparelho/SIM não escala; rate-limit de operadora; deliverability variável -> baixo volume (2FA + município pequeno), não disparo em massa.
Canal SMS para 2FA e micro-pesquisa em municípios pequenos (onde e-mail é fraco). ## SMSGateway por diretório/campanha - [ ] Cada **diretório** (e cada campanha) cadastra seu **próprio** SMSGateway nas configurações: `host`, `api_token`, etc. (app Android sms-gate.app / SMSGateway) - [ ] `SmsSender` plugável (mesmo padrão do `CpfVerifier`); SMSGateway como 1ª impl - [ ] Config cifrada em repouso; nunca em log ## Limite de envio - [ ] **1 SMS por semana por destinatário** para diretórios e candidatos - [ ] **OWNER da plataforma: sem limite** ## Telefone - [ ] `citizen.phone` (E.164); verificação por **OTP SMS** - [ ] Verificação de telefone é **opt-in** e ocorre **depois de aprovar o e-mail**, **só se** o usuário optar receber notificações por SMS - [ ] Comunicar: em caso de perda do e-mail, o telefone é opção de 2FA (**não recomendada**, mas possível) ## Limites honestos - Um aparelho/SIM não escala; rate-limit de operadora; deliverability variável -> baixo volume (2FA + município pequeno), não disparo em massa.
Author
Owner

Telefone + verificacao OTP entregue (imagem 0.72.0-phone-otp, commit 38d72f3): citizen.phone/phone_verified_at + phone_otp (so-hash TTL 10min); /me/phone (status/enviar/verificar), opt-in, cooldown 60s; UI aba Telefone (2FA nao-recomendada, aviso explicito). SMS real quando SMSGateway configurado (env SMS_GATEWAY_*). Verificado: rotas 401, schema OK (rollback).

Telefone + verificacao OTP entregue (imagem 0.72.0-phone-otp, commit 38d72f3): citizen.phone/phone_verified_at + phone_otp (so-hash TTL 10min); /me/phone (status/enviar/verificar), opt-in, cooldown 60s; UI aba Telefone (2FA nao-recomendada, aviso explicito). SMS real quando SMSGateway configurado (env SMS_GATEWAY_*). Verificado: rotas 401, schema OK (rollback).
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
brasil/democracia-social#62
No description provided.