├── .env.local ├── .eslintignore ├── .eslintrc.json ├── .github └── workflows │ └── nodejs.yml ├── .gitignore ├── .nvmrc ├── .vscode └── launch.json ├── .yarnrc ├── LICENSE ├── README.md ├── __mocks__ ├── aws-sdk.js ├── mock-helpers │ ├── s3.js │ └── sqs.js └── ssh2-promise.js ├── configuration-examples ├── serverless.yml └── vpc │ ├── ftp-vpc.yaml │ └── ftp_vpc.tf ├── diagrams ├── activity.png ├── activity.xml ├── sequence.png ├── sequence.xml ├── state.md ├── state.png ├── vpc.png └── vpc.xml ├── handlers ├── lib │ ├── config.js │ ├── config.test.js │ ├── pullTree.js │ ├── pushFile.js │ ├── resolvePromiseWithTimeout.js │ ├── resolvePromiseWithTimeout.test.js │ ├── s3.js │ ├── s3.test.js │ ├── sqs.js │ ├── sqs.test.js │ ├── sshConfig.js │ └── sshConfig.test.js ├── pull.js ├── pull.test.js ├── push.js ├── push.test.js ├── pushRetry.js └── pushRetry.test.js ├── integration-test ├── .env ├── docker-compose.yml ├── init-ssh-key.sh ├── init-test-data.sh ├── integration-test.js ├── lib │ ├── s3.js │ ├── sqs.js │ └── utils.js └── serverlessGetSSHTestKey.js ├── manual-pull-test ├── .env ├── README.md ├── docker-compose.yml ├── docker_sftpd.sh └── pull.js ├── package.json ├── sample-events ├── cloudwatch-events-notification.json ├── cloudwatch-poll.json ├── john-s3-notification.json ├── s3SamplePutEvent.json └── test2.cloudwatch-events-notification.json ├── serverless.yml └── yarn.lock /.env.local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/.env.local -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/.github/workflows/nodejs.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/.gitignore -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 10.15.3 -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | save-prefix "" 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/README.md -------------------------------------------------------------------------------- /__mocks__/aws-sdk.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/__mocks__/aws-sdk.js -------------------------------------------------------------------------------- /__mocks__/mock-helpers/s3.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/__mocks__/mock-helpers/s3.js -------------------------------------------------------------------------------- /__mocks__/mock-helpers/sqs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/__mocks__/mock-helpers/sqs.js -------------------------------------------------------------------------------- /__mocks__/ssh2-promise.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/__mocks__/ssh2-promise.js -------------------------------------------------------------------------------- /configuration-examples/serverless.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/configuration-examples/serverless.yml -------------------------------------------------------------------------------- /configuration-examples/vpc/ftp-vpc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/configuration-examples/vpc/ftp-vpc.yaml -------------------------------------------------------------------------------- /configuration-examples/vpc/ftp_vpc.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/configuration-examples/vpc/ftp_vpc.tf -------------------------------------------------------------------------------- /diagrams/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/activity.png -------------------------------------------------------------------------------- /diagrams/activity.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/activity.xml -------------------------------------------------------------------------------- /diagrams/sequence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/sequence.png -------------------------------------------------------------------------------- /diagrams/sequence.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/sequence.xml -------------------------------------------------------------------------------- /diagrams/state.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/state.md -------------------------------------------------------------------------------- /diagrams/state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/state.png -------------------------------------------------------------------------------- /diagrams/vpc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/vpc.png -------------------------------------------------------------------------------- /diagrams/vpc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/diagrams/vpc.xml -------------------------------------------------------------------------------- /handlers/lib/config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/config.js -------------------------------------------------------------------------------- /handlers/lib/config.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/config.test.js -------------------------------------------------------------------------------- /handlers/lib/pullTree.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/pullTree.js -------------------------------------------------------------------------------- /handlers/lib/pushFile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/pushFile.js -------------------------------------------------------------------------------- /handlers/lib/resolvePromiseWithTimeout.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/resolvePromiseWithTimeout.js -------------------------------------------------------------------------------- /handlers/lib/resolvePromiseWithTimeout.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/resolvePromiseWithTimeout.test.js -------------------------------------------------------------------------------- /handlers/lib/s3.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/s3.js -------------------------------------------------------------------------------- /handlers/lib/s3.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/s3.test.js -------------------------------------------------------------------------------- /handlers/lib/sqs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/sqs.js -------------------------------------------------------------------------------- /handlers/lib/sqs.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/sqs.test.js -------------------------------------------------------------------------------- /handlers/lib/sshConfig.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/sshConfig.js -------------------------------------------------------------------------------- /handlers/lib/sshConfig.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/lib/sshConfig.test.js -------------------------------------------------------------------------------- /handlers/pull.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/pull.js -------------------------------------------------------------------------------- /handlers/pull.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/pull.test.js -------------------------------------------------------------------------------- /handlers/push.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/push.js -------------------------------------------------------------------------------- /handlers/push.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/push.test.js -------------------------------------------------------------------------------- /handlers/pushRetry.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/pushRetry.js -------------------------------------------------------------------------------- /handlers/pushRetry.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/handlers/pushRetry.test.js -------------------------------------------------------------------------------- /integration-test/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/.env -------------------------------------------------------------------------------- /integration-test/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/docker-compose.yml -------------------------------------------------------------------------------- /integration-test/init-ssh-key.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/init-ssh-key.sh -------------------------------------------------------------------------------- /integration-test/init-test-data.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/init-test-data.sh -------------------------------------------------------------------------------- /integration-test/integration-test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/integration-test.js -------------------------------------------------------------------------------- /integration-test/lib/s3.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/lib/s3.js -------------------------------------------------------------------------------- /integration-test/lib/sqs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/lib/sqs.js -------------------------------------------------------------------------------- /integration-test/lib/utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/lib/utils.js -------------------------------------------------------------------------------- /integration-test/serverlessGetSSHTestKey.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/integration-test/serverlessGetSSHTestKey.js -------------------------------------------------------------------------------- /manual-pull-test/.env: -------------------------------------------------------------------------------- 1 | KEYNAME=sftptest 2 | LOCALHOST_PORT=2222 -------------------------------------------------------------------------------- /manual-pull-test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/manual-pull-test/README.md -------------------------------------------------------------------------------- /manual-pull-test/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/manual-pull-test/docker-compose.yml -------------------------------------------------------------------------------- /manual-pull-test/docker_sftpd.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/manual-pull-test/docker_sftpd.sh -------------------------------------------------------------------------------- /manual-pull-test/pull.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/manual-pull-test/pull.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/package.json -------------------------------------------------------------------------------- /sample-events/cloudwatch-events-notification.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/sample-events/cloudwatch-events-notification.json -------------------------------------------------------------------------------- /sample-events/cloudwatch-poll.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/sample-events/cloudwatch-poll.json -------------------------------------------------------------------------------- /sample-events/john-s3-notification.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/sample-events/john-s3-notification.json -------------------------------------------------------------------------------- /sample-events/s3SamplePutEvent.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/sample-events/s3SamplePutEvent.json -------------------------------------------------------------------------------- /sample-events/test2.cloudwatch-events-notification.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/sample-events/test2.cloudwatch-events-notification.json -------------------------------------------------------------------------------- /serverless.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/serverless.yml -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lqueryvg/sftp-lambda/HEAD/yarn.lock --------------------------------------------------------------------------------