Our Personal Data Server from scratch! tranquil.farm

feat(custom-templates): Add notification templates capability for customizes notifications with examples #647

Merged oyster.cafe
targeting main from templated-emails
Merged opened by and assigned to oyster.cafe
targeting main from templated-emails

From @straiforos.tngl.sh :

I added templated email functionality.

You can configure a directory that allows you to add custom email templates and wording and still leverage replacements/templating for hostname, handle, verify link etc. There is a fallback config if you do not want to configure every locale, and just have a specific target audience. It will yell at you if you miss a template for the locale. Maybe it could be made to be more flexible. I like fail fast deployments. I proved it worked for my fileorbit.cloud instance.

Commit desc:

  • use tranquil_pds not comms since the validate email and templates are reexported from pds package
  • implement handlebars syntax
  • update templates to be transport agnostic, email, discord, telegram with handlebar examples with conditions
  • refactor template and notice logic from PR #269, and #299 to be self contained enforcing all substitutions to be defined within the enum properties
  • fix open TODOs, store.rs uses get_string within the ids.rs get_built_ins method
  • UTC logging for User facing notices restored
  • new api error for verification channel requires bot
  • fix tests to use metadata for html body...
  • remove unwrap and handle template rendering error explicitly
  • update verify_link to use handlebars trusted url syntax {{{verify_link}}}
  • fix verification enqueueing to include channel in template rendering
  • use locale enum for validation and display instead of string array separately maintained
  • support text only templates for signal and discord
  • fix missing verify_link and verify_page in migration and signup verification templates with unit tests
  • consolidated body and subject notice methods into a single rendered function
Commits 0