Giter Site home page Giter Site logo

heimdall's People

Contributors

0xflotus avatar dmerrick avatar fterh avatar itsabdelrahman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heimdall's Issues

Template error?

Running into the following issue when trying to deploy

Serverless: Validating template...
Serverless: [AWS cloudformation 400 0.67s 0 retries] validateTemplate({ TemplateURL:
   'xxxx/compiled-cloudformation-template.json' })

  Error --------------------------------------------------

  Error: The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [S3BucketHeimdallprodmcg-heimdallx] in the Resources block of the template

The section I believe it is referencing is:
cloudformation-template-update-stack.json

              "Resource": {
                "Fn::Join": [
                  "",
                  [
                    "arn:aws:s3:::",
                    {
                      "Ref": "S3BucketHeimdallprodmcg-heimdallx"
                    },
                    "/*"
                  ]
                ]
              }

deploy fails

any idea why this is failing?

(base) D:\Code\heimdall>yarn run deploy-prod
yarn run v1.22.0
$ STAGE=prod yarn run deploy-dev
'STAGE' is not recognized as an internal or external command,
operable program or batch file.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Windows instructions

Steps for Windows:

in the command prompt:
set the stage variable:
set stage=prod
then run the deployment using:
yarn run deploy-dev

Other notes:

  • should region be set in .env rather than in serverless.yml ?
  • I'd be in favor of a setting that enables catch-all aliases and the ability to blacklist individual ones

Teardown instructions

Is there a command that tears down all the AWS deployments? After a quick search in the Serverless CLI docs, I tried sls remove, but unfortunately I get this:

Command output
โฏ sls remove
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.stage' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.stage' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.stage' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.awsId' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.awsSmtpHost' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.awsSmtpPort' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.awsSmtpUser' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.awsSmtpPass' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.baseDomain' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.devSubdomain' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.email' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/env.js):serverless.stage' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid file to satisfy the declaration 'file(lib/config.js):serverless.tableName' could not be found.
 
 
  Serverless Error ---------------------------------------
 
  Trying to populate non string value into a string for variable ${file(lib/env.js):serverless.stage}. Please make sure the value of the property is a string.
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          darwin
     Node Version:              10.15.3
     Framework Version:         1.63.0
     Plugin Version:            3.4.0
     SDK Version:               2.3.0
     Components Core Version:   1.1.2
     Components CLI Version:    1.4.0

This would help people like myself who are not familiar with the Serverless framework a lot!

Thank you ๐Ÿ™

Additional Heimdall features

Thank you so much for creating this very useful tool. I recently forked it and added the following functionality for my use case.

  • Allow selecting alias names (original service only used randomly generated aliases). This uses the email subject as the alias name (the body as the description) in the generate command. Leave the subject blank to auto generate an alias.
  • Support outbound email aliases. Heimdall supported aliases only when another sender initiated the communication. There was no way to initiate communication with an alias. This is now supported in generate command. Here is an example.
To: generate@<YOUR DOMAIN>
SUBJECT: <CUSTOM ALIAS NAME>:<EMAIL ADDRESS TO FORWARD EMAIL TO>
BODY: <DESCRIPTION OF ALIAS>
To: [email protected]
SUBJECT: myfriend:[email protected]
BODY: Alias for my friend bob

When you send emails to <CUSTOM_ALIAS_NAME>@<YOUR DOMAIN> it will automatically forward to the email specified

  • Encrypt the Email password in Amazon SSM

Happy to create PRs if these are features you would be interested in merging. Not a big deal either way. https://github.com/taylorhakes/heimdall

Attachments

What are your plans for adding attachments?

I've been using this for the last couple of years. The only big problem there is it drops all emails above 10mb (attachment issue).

yarn global add serverless . fails

Something is wrong with the serveless install - it keeps failing:

โžœ heimdall git:(master) yarn global add serverless .
yarn global v1.21.1
[1/4] Resolving packages...
error Received malformed response from registry for ".". The registry may be down.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.

Here is a verbose log: https://pastebin.com/k2e6jZsy

Details:
โžœ ~ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
โžœ ~ node --version
v12.16.1
โžœ ~ yarn --version
1.21.1

Alias info command

  • Alias description
  • Created date
  • Number of inbound emails
  • Number of outbound emails
  • Last inbound date
  • Last outbound date

Handle oversized emails

  • Oversized received emails should be bounced/rejected
  • Oversized outgoing emails should try to convert attachments (if any) to S3 links
  • If that fails, it should be bounced/rejected

Encode alias description in sender name instead

cool project. I built something very similar in Python using Lambda & SES to manage my personal email. I like what you did with replies as I hadn't thought of going that far.

One question, when sending the reply, do you remove the prepended subject info before shipping it back to the original sender? Threads could get quite messy if it keeps prepending subjects on each reply. Also, when replying does the lambda cc the email to the original cc list? So the receiver should REPLY vs Reply ALL when responding?

Another suggestion that I think adds some flexibility would be a configuration that would allow all aliases by default and potentially have a way of disabling them. So if I was signing up for medium i could just use [email protected] without having to take the extra set of enabling that alias.

Anyway, wish it was Python so I could contribute, but really like what you have done.

yarn run deploy-prod fails

โฏ yarn run deploy-prod
yarn run v1.22.0
$ STAGE=prod yarn run deploy-dev
$ yarn run predeploy && serverless deploy && yarn run postdeploy
$ tsc lib/env.ts lib/config.ts
/bin/sh: tsc: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.