Mailer-16: feat: add secrets invoke from aws secrets #22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request primarily focuses on a shift in the way the application handles secrets, moving from a simple environment variable-based approach to utilizing AWS Secret Manager. The changes involve modifications to the configuration files, the introduction of new strategies for secret management, and adjustments to the mail service to accommodate these changes.
Key changes include:
Secret Management:
src/strategies/secretStrategies/awsSecretStrategy.ts
: Implemented AWS Secret Manager to fetch secrets. This involves creating a new SecretsManager client and retrieving the secrets from AWS.src/strategies/secretStrategies/envSecretStrategy.ts
: Created a new strategy for fetching secrets from environment variables.src/strategies/secretStrategies/secretStrategy.ts
: Created a new strategy to get secrets either from AWS Secret Manager or environment variables.Configuration Changes:
package.json
: Added the AWS SDK for JavaScript as a dependency to interact with AWS Secret Manager.src/config/aws.config.ts
: Created a new configuration file for AWS settings, including the region and Secret Manager name.src/config/mail.config.ts
: Refactored the mail configuration to fetch mail settings from the new secret management strategies.src/providers/awsConfigStorage.provider.ts
: Created a new provider for storing AWS configuration settings.Mail Service Adjustments:
src/services/mail.ts
: Refactored the mail service to use the new mail configuration and made thesend
method asynchronous to accommodate the asynchronous nature of fetching secrets. [1] [2] [3]src/services/mailServer.ts
: Adjusted thesendMail
method to use the new mail configuration. [1] [2]