Skip to content

decision(firestore-send-email): kit/extension parity – event source is per function, not per instance #3298

Open

Description

@CorieW

firestore-send-email kit/extension parity. Priority: medium. Event consumers that filter on source stop receiving the kit's events.

Difference

  • Extension: source is the instance, //firebaseextensions.googleapis.com/extensions/projects/<project>/instances/<instance>.
  • Kit: the CLI sets source to the function's Cloud Run service, projects/<project>/locations/<region>/services/kit-<instance>-processQueue. That uses the camelCase function id, which doesn't match the real lowercase service name. .env can't override it, because EVENTARC_CLOUD_EVENT_SOURCE is a reserved key. Event types, subject and data are otherwise the same.

Reproduced

Both instances published to the same channel and a recorder captured the events:

  • Extension: //firebaseextensions.googleapis.com/extensions/projects/corie-testing/instances/sepext
  • Kit: projects/corie-testing/locations/us-central1/services/kit-sepkit-processQueue

Code

  • Kit: channel setup events.ts#L23-L30. The source comes from firebase-tools (deploy/functions/prepare.js, EVENTARC_CLOUD_EVENT_SOURCE).

Resolution

Same call as #3255 and #3272:

Activity

  1. CorieW commented on Nov 3, 2026

    @CorieW
    MemberAuthor

    Decision: keep the per-function source, the same call as storage-resize-images (#3272) and delete-user-data (#3255). Recorded under "Decisions" in #3290. Still to do: a note in the kit README's Events section, then this can be closed.

  2. self-assigned this
    on Nov 3, 2026
  3. CorieW commented on Nov 3, 2026

    @CorieW
    MemberAuthor

    Having another look

  4. reopened this on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

decisionNeeds a decision before work can proceedkitsparity

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions