fix(firestore-send-email): kit/extension parity – a required placeholder SMTP_PASSWORD overrides the password in SMTP_CONNECTION_URI
维护者通常 7 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 56/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- firebase, typescript
调研方向
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.
由索引模型根据 Issue 内容生成。
描述
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_PASSWORDis optional. Installs that put the password inSMTP_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_PASSWORDmust exist and must not be empty.ext:migrateandfunctions:kits:installprompt 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.
- All four secrets are always bound, so
Reproduced
- Extension installed with
SMTP_CONNECTION_URI=smtp://user:[email protected]:587and noSMTP_PASSWORD: mail sends (SUCCESS). firebase ext:migrateon that instance: it prompts "Enter a value for SMTP password". An empty answer fails withSecret Payload cannot be empty, so "placeholder" was entered.- 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. - Setting the secret to a single space works around it: the kit trims it to unset, and mail sends.
Code
- Extension:
- extension.yaml#L212-L244 (URI with an inline password, and
SMTP_PASSWORDwithrequired: false) - helpers.ts#L61-L68
- extension.yaml#L212-L244 (URI with an inline password, and
- Kit:
- all four secrets bound: index.ts#L70, #L114, config.ts#L307-L312
- the override: helpers.ts#L93-L99
- the trim: export-config.ts#L95-L98
- README: README.md#L157-L169
Resolution
- Only use
SMTP_PASSWORDwhen 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.
- 主要语言
- TypeScript
- 星标
- 979
- 派生
- 435
- 平均合并
- 4 天 22 小时
- 30 天内合并 PR
- 15
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
firebase/extensions 的其他 Issue
-
kits parity type: bug
难度 2/5 1-3 小时 新手友好度 65/100
firebase/extensions#3303 ·
维护者通常 7 天内回复
-
kits parity type: bug
难度 2/5 1-3 小时 新手友好度 78/100
firebase/extensions#3301 ·
维护者通常 7 天内回复
-
documentation kits parity
难度 2/5 1-3 小时 新手友好度 72/100
firebase/extensions#3300 ·
维护者通常 7 天内回复
-
kits parity type: bug
难度 2/5 1-3 小时 新手友好度 76/100
firebase/extensions#3296 ·
维护者通常 7 天内回复
-
kits parity type: bug
难度 2/5 1-3 小时 新手友好度 78/100
firebase/extensions#3294 ·
维护者通常 7 天内回复
查看 firebase/extensions 的全部 Issue
相似的 Issue
-
twilio.webhook() rejects valid requests when the query string has an encoded `?` and a `+` space未关闭
难度 2/5 1-3 小时 新手友好度 75/100
twilio/twilio-node#1232 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复
-
Tiling managers are not destroyed in disable(), so window-created handlers keep running (Gio.Settings constructed without schema)可能已有人在做 @gnacho 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
domferr/tilingshell#641 ·
维护者通常 3 天内回复
-
🐛 bug
难度 2/5 1-3 小时 新手友好度 78/100
LibreChat-AI/LibreChat#17887 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100