SatsAllDay 15f9950477
Store hashed and salted email addresses (#1111)
* first pass of hashing user emails

* use salt

* add a salt to .env.development (prod salt needs to be kept a secret)
* move `hashEmail` util to a new util module

* trigger a one-time job to migrate existing emails via the worker

so we can use the salt from an env var

* move newsletter signup

move newsletter signup to prisma adapter create user with email code path
so we can still auto-enroll email accounts without having to persist the email address
in plaintext

* remove `email` from api key session lookup query

* drop user email index before dropping column

* restore email column, just null values instead

* fix function name

* fix salt and hash raw sql statement

* update auth methods email type in typedefs from str to bool

* remove todo comment

* lowercase email before hashing during migration

* check for emailHash and email to accommodate migration window

update our lookups to check for a matching emailHash, and then a matching
email, in that order, to accommodate the case that a user tries to login
via email while the migration is running, and their account has not yet been migrated

also update sndev to have a command `./sndev email` to launch the mailhog inbox in your browser

also update `./sndev login` to hash the generated email address and insert it into the db record

* update sndev help

* update awards.csv

* update the hack in next-auth to re-use the email supplied on input to `getUserByEmail`

* consolidate console.error logs

* create generic open command

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2024-05-04 18:06:15 -05:00
..
2021-05-24 19:08:56 -05:00
2021-09-12 11:55:38 -05:00
2021-09-23 12:42:00 -05:00
2021-09-23 12:42:00 -05:00
2021-11-04 19:07:41 -04:00
2021-12-09 14:41:09 -06:00
2022-01-05 14:37:34 -06:00
2022-01-14 17:43:12 -06:00
2022-02-24 13:05:57 -06:00
2022-03-17 15:13:19 -05:00
2022-04-18 15:19:07 -05:00
2022-07-05 14:51:13 -05:00
2022-07-30 08:51:04 -05:00
2022-07-30 08:51:04 -05:00
2022-07-30 08:51:04 -05:00
2022-08-11 15:38:10 -05:00
2022-08-11 15:38:10 -05:00
2022-09-21 14:57:36 -05:00
2022-09-27 16:19:15 -05:00
2022-09-27 16:19:15 -05:00
2022-11-16 10:57:03 -06:00
2022-11-16 10:57:03 -06:00
2022-11-16 10:57:03 -06:00
2022-12-19 16:27:52 -06:00
2022-12-19 16:27:52 -06:00
2022-12-19 16:27:52 -06:00
2023-01-13 11:52:18 -06:00
2023-01-18 12:49:20 -06:00
2023-01-22 14:17:50 -06:00
2023-02-01 17:40:49 -06:00
2023-02-01 17:40:49 -06:00
2023-02-15 11:20:43 -06:00
2023-05-01 15:58:30 -05:00
2023-05-01 15:58:30 -05:00
2023-05-01 15:58:30 -05:00
2023-05-23 09:21:04 -05:00
2023-06-12 12:41:22 -05:00
2023-06-20 09:57:06 -05:00
2023-06-20 11:27:41 -05:00
2023-10-19 18:45:07 -05:00
2023-09-28 15:02:25 -05:00
2023-09-28 15:02:25 -05:00
2023-10-19 18:45:07 -05:00
2023-10-19 18:45:07 -05:00
2023-12-04 21:34:06 -06:00
2023-12-14 11:30:51 -06:00
2023-12-30 17:16:09 -06:00
2024-03-14 15:32:34 -05:00
2021-03-25 14:29:24 -05:00