fix(firestore-send-email): kit/extension parity – a required placeholder SMTP_PASSWORD overrides the password in SMTP_CONNECTION_URI

Aperta
#3,293 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
56/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
firebase, typescript

Direzione di ricerca

Start with kits/firestore-send-email/src/helpers.ts around lines 93–99 and compare its SMTP password handling with the extension helper at functions/src/helpers.ts around lines 61–68. Read the kit README section around lines 157–169 and inspect the migration and secret binding references in the issue. Done means a kit migrated from a URI with an inline password can send successfully, with the intended behavior documented or covered.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

kits parity type: bug

firestore-send-email kit/extension parity. Priority: high. After migrating, every email fails to send if the SMTP password was kept in the connection URI.

Difference
  • Extension: SMTP_PASSWORD is optional. Installs that put the password in SMTP_CONNECTION_URI (the "backwards compatible" form in the param's description) have no secret, and the URI's password is used.
  • Kit:
    • All four secrets are always bound, so SMTP_PASSWORD must exist and must not be empty. ext:migrate and functions:kits:install prompt for it, and Secret Manager rejects an empty value.
    • Any non-blank value then replaces the URI's password, the same as in the extension.
    • Users who enter a placeholder (the README recommends placeholders for the unused secrets) get an authentication failure on every send. A placeholder also adds auth to SMTP relays that need none.
Reproduced
  1. Extension installed with SMTP_CONNECTION_URI=smtp://user:[email protected]:587 and no SMTP_PASSWORD: mail sends (SUCCESS).
  2. firebase ext:migrate on that instance: it prompts "Enter a value for SMTP password". An empty answer fails with Secret Payload cannot be empty, so "placeholder" was entered.
  3. The migrated kit fails every document with delivery.error: "Error: Invalid login: 535 Authentication failed". A README-setup kit with the same URI and a placeholder secret fails the same way.
  4. Setting the secret to a single space works around it: the kit trims it to unset, and mail sends.
Code
Resolution
  • Only use SMTP_PASSWORD when the URI carries no password of its own. That is a behaviour change only for configs that set both.
  • Or, at a minimum, document in the README and the migration notes: move an inline password into SMTP_PASSWORD, or set that secret to a single space.
Lingua principale
TypeScript
Stelle
979
Fork
436
Merge medio
2g 13h
PR unite (30g)
18

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di firebase/extensions

Tutte le issue di firebase/extensions

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.