Skip to content

[P0] Envio do OTP por SMS real (RF01) #77

Open

Description

@hbgit

Origem: item #3 (P0) do backlog da auditoria do PRD em docs/auditoria-prd/2026-10-15-lacunas-prd.md (PR #74).

Lacuna: Envio de OTP por SMS real (provedor + telefone do paciente)

Tipo: código + externo. Por que esta prioridade: Sem SMS o paciente só entra com o ACS presente gerando um QR (R6): não há login por conta própria fora do ambiente de dev; a escolha de provedor/contrato é de produto.

Evidência e o que falta, por ID

  • RF01 (parcial): Fluxo CPF + nascimento + OTP em auth.requestOtp/verifyOtp; passwordless_auth_service_test.dart passa; e2e real em scripts/qa/patient_full_e2e.sh (2026-09-30). Único gateway é LoggingSmsGateway (backend/sinalacs_server/lib/src/application/auth/sms_gateway.dart:36), que só escreve o código no log em APP_ENV=development. — falta: Escolher e integrar provedor de SMS (implementar SmsGateway); criar coluna de telefone do paciente (hoje o destino é o CPF, sms_gateway.dart:12).
  • MVP-LOGIN-60S (parcial): Fluxo OTP funciona (RF01). — falta: SMS real e medição com 10 pacientes.
  • M2.1 (parcial): Login, alerta, triagem e status no app do paciente (RF01, RF03, RF04, RF05). — falta: SMS real (RF01) e o estado Atendido do status (RF05).
  • R6 (parcial): O ACS pode gerar quantas vezes quiser um convite QR de uso único para paciente da microárea dele (backend/sinalacs_server/lib/src/endpoints/onboarding_endpoint.dart:21), e completeEnrollment emite uma sessão do paciente (onboarding_endpoint.dart:37,70): é metade do fallback por QR. Nenhum provedor de SMS (RF01). — falta: Entrada sem o ACS presente quando o SMS falha; biometria; múltiplos provedores de SMS.

Medido em 2026-10-15 a partir de develop em 92106d1.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions