Skip to content

firestore-send-email kit tracking issue #3290

Open
4 of 16 issues completed
Open

Description

@CorieW

Tracks parity between the firestore-send-email extension (0.2.10) and the @firebase-function-kits/firestore-send-email kit.

How it was tested: both deployed side by side on a test project with matching configs, then compared on emails sent (through an SMTP sink), delivery state, events, logs, runtime settings, load, install and uninstall. Kit tested at kits @ 1c7b047, installed three ways: the README's manual setup, functions:kits:install, and ext:migrate.

Sub-issues are ordered by priority, highest first.

Issues labelled decision need a call: change the kit, or record the difference as accepted in the below "Decisions" section.

Decisions

Intentional Differences

  • Function region: the function is placed next to the database, derived from DATABASE_REGION (multi-regions map to a Cloud Run region). The extension ran it in its own location setting, default us-central1. The Firestore trigger still fires in the database's region.
  • kit- naming: functions, secrets and service accounts are named kit-<instance>-… / firebase-fn-… instead of ext-<instance>-….
  • Declared roles and APIs: the kit declares datastore.user, eventarc.eventReceiver, run.invoker and eventarc.publisher, and enables firestore and eventarcpublishing, instead of relying on the Extensions platform's implicit grants.
  • All four secrets required: SMTP_PASSWORD, CLIENT_ID, CLIENT_SECRET and REFRESH_TOKEN must exist at deploy, because defineSecret can't be optional.
  • Eventarc channel: you create the channel and set EVENTARC_CHANNEL yourself. Publish failures are logged as warnings and no longer stop delivery (decision(firestore-send-email): kit/extension parity – kit continues after an Eventarc publish failure, the extension aborts #3326).
  • Node runtime and image: the runtime follows the host codebase (functions:kits:install writes Node 24), and the base image gets automatic updates. The extension was fixed at nodejs22 with a frozen image (decision(firestore-send-email): kit/extension parity – CLI-installed kit runs Node 24, extension runs Node 22 #3325).
  • Config handling: string values and secrets are trimmed (whitespace-only means unset).
  • Instances and versions: all instances in a kit stanza share one package version. Extension instances were versioned separately.
  • TESTING env path: can be set from .env (fix(firestore-send-email): restore the TESTING env path #3110).

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions