Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(maildev): implement maildev for development #1339

Merged
merged 7 commits into from
Mar 23, 2021
Merged

Conversation

orbitalsqwib
Copy link
Contributor

Problem

Currently local development requires hardcoding OTPs to "111111" and using the dummy MailerNoOp service.

Integrating maildev with for use in local development instead will close the security risks from accidentally generating dummy OTPs in production, and align development to be closer to the production setup.

Closes #951

Solution

  • Implemented maildev for local development
  • Removed MailerNoOp and Nodemailer Direct Transport
  • Refactored code paths to always use maildev for development
  • Updated end-to-end tests to use maildev for retrieving OTPs

Deploy Notes

  • Removed the nodemailer-direct-transport library
  • Installed the maildev library, and added the maildev/maildev container to docker-compose

Currently local development requires hardcoding OTPs to "111111" and using the dummy MailerNoOp
service.

-implemented maildev for local development
-added an environment variable to toggle
maildev, defaults to true

fix #951
Currently, tests are not able to take into account maildev when testing functionality.

-disable maildev by default until tests can be updated
- Removed MailerNoOp and Nodemailer Direct Transport
- Removed `USE_MAILDEV` env var
- Refactored code paths to always use maildev for development
- Improved LoginProcedure to use regex to find OTP

fix #951
@orbitalsqwib orbitalsqwib requested a review from LoneRifle March 22, 2021 09:17
Copy link
Contributor

@LoneRifle LoneRifle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm otherwise. I think we should go ahead and undertake the stretch goal that would provide a custom maildev image that modifies the binary to log mail contents to maintain the quick input of OTPs that devs currently enjoy

src/server/inversify.config.ts Outdated Show resolved Hide resolved
src/types/server/util/nodemailer.d.ts Outdated Show resolved Hide resolved
src/server/config.ts Outdated Show resolved Hide resolved
src/server/services/email.ts Outdated Show resolved Hide resolved
- Refactored Nodemailer transport option configurations for clarity
- Cleaned up email, inversify and config files

fix #951
package.json Outdated Show resolved Hide resolved
- Removed maildev from dependencies as maildev is currently run through a docker container

fix #951
@orbitalsqwib orbitalsqwib requested a review from LoneRifle March 23, 2021 03:23
src/server/config.ts Outdated Show resolved Hide resolved
@orbitalsqwib orbitalsqwib merged commit 0487bbb into develop Mar 23, 2021
@orbitalsqwib orbitalsqwib deleted the build/maildev branch March 23, 2021 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use maildev for local development
2 participants