Technical FAQ

This technical FAQ is intended to provide some more detailed information about notifier, the implementation of the notification service. It is intended for advanced users and/or contributors. It's also a bit incomplete.

For information intended for users of the notification service, see the general FAQ.

If you have a question not answered by this page, contact me (CroquemboucheCroquembouche).

The codebase

Is notifier open-source?

Yes — here's the GitHub repository.

Contributing

Is notifier open to contributions?

It is!

If you're familiar with Git and GitHub, please feel free to open a pull request.

If not, please let me know about any new features you'd like to see.

How do I contribute a language?

To be able to deliver notifications in multiple languages, I need to have the text of the notification written in multiple languages. If you're willing to help translate, thank you!

The notification text can be found here: https://github.com/croque-scp/notifier/blob/main/config/lang.toml

There are two sections: one starting with [base], and one starting with [en]. To add a new language, just copy the [en] section, change "en" to your language's code, and translate all the strings from English to your language.

Note that plural() is a function that picks one of two snippets based on whether a number is equal to 1. If your language has a different plurality system, let me know.

If you're familiar with GitHub and happy to contribute via it, paste your language's section into lang.toml and open a pull request. If not, just send me a message with your translation.

Thank you!

Status page

How does the status page work?

The very last task that the notifier service performs is to upload metrics about how long each of its tasks took to an S3 bucket. This is then served to the status page via CloudFront.

Notifier runs on Lambda, so there's a hard limit on its execution time of 15 minutes. Therefore, if it overruns, it might not get a chance to upload those stats - even if it was able to actually notify everyone it should have. As a result there might be some days where it's appeared to not run, or not notify anyone at all, even if it actually did.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License