extensions icon indicating copy to clipboard operation
extensions copied to clipboard

🐛 [firestore-send-email] delete email documents on TTL expire

Open balee opened this issue 1 year ago • 3 comments

[READ] Step 1: Are you in the right place?

Issues filed here should be about bugs for a specific extension in this repository. If you have a general question, need help debugging, or fall into some other category use one of these other channels:

  • For general technical questions, post a question on StackOverflow with the firebase tag.
  • For general Firebase discussion, use the firebase-talk google group.
  • To file a bug against the Firebase Extensions platform, or for an issue affecting multiple extensions, please reach out to Firebase support directly.

[REQUIRED] Step 2: Describe your configuration

  • Extension name: firestore-send-email
  • Extension version: 0.1.27
  • Configuration values (redact info where appropriate):
    • Cloud Functions location: us-central1
    • SMTP connection URI: redacted
    • SMTP password (Optional): redacted
    • Email documents collection: mail
    • Default FROM address: redacted
    • Firestore TTL type: day
    • Firestore TTL value: 5
    • remaining optional parameters are not set

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

  1. Configure the plugin as described in the documentation, also set TTL type to day and TTL value to 5.
  2. Send some emails with the plugin.
  3. Note, that the emails are sent and received by the recipients as expected.
  4. Wait until the specified TTL is elapsed (and some weeks more, just to be sure)
Expected result

The documents in the configured collection are expected to be deleted automatically.

Actual result

The documents are never deleted.

Please note, that it is not even possible to manually set up a TTL policy, because expireAt field is at 2nd level in the document created by the plugin, however, only 1st level fields can be configure as timestamp field when creating a TTL policy (see https://console.cloud.google.com/firestore/databases/-default-/ttl)

Example document:

email-retu

balee avatar Feb 05 '24 19:02 balee

I was wondering if it's possible to create a TTL Policy for a 2nd level field by specifying the timestamp field with dot notation, such as "delivery.expireAt". However, if setting the TTL manually is required, I believe it would be beneficial to include this information in the documentation. Unfortunately, I could not find any related instructions. Could you please clarify this?

MasaGon avatar Feb 24 '24 11:02 MasaGon

its not much help but this works for us. using delivery.expireAt. extension 0.1.30

ottob avatar Mar 15 '24 13:03 ottob

Indeed, a TTL policy with delivery.expireAt is working. The documentation might be a bit more descriptive in this subject, it wasn't even clear for me that I have to create a TTL policy because it is not done automagically.

balee avatar Mar 24 '24 14:03 balee

Documents updated explaining how to add the TTL policy properly. Apologies for the lack of information before. New documents will be merged shortly.

Gustolandia avatar Dec 30 '24 18:12 Gustolandia