A server-less implementation of the ssh observatory
- API for a Web Application
- API for a Mobile Application
npm install -g serverless
In order to deploy the endpoint simply run
assume-role YOUR_ROLE && serverless deploy
The expected result should be similar to:
$ serverless deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (4.18 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..........................
Serverless: Stack update finished...
Service Information
service: ssh-observatory
stage: dev
region: us-east-1
stack: ssh-observatory-dev
api keys:
None
endpoints:
POST - https://kz5f2ztw43.execute-api.us-east-1.amazonaws.com/dev/scans
GET - https://kz5f2ztw43.execute-api.us-east-1.amazonaws.com/dev/scans
GET - https://kz5f2ztw43.execute-api.us-east-1.amazonaws.com/dev/scans/{id}
functions:
create: ssh-observatory-dev-create
list: ssh-observatory-dev-list
get: ssh-observatory-dev-get
You can create, retrieve, update, or delete todos with the following commands:
curl -X POST https://XXXXXXX.execute-api.us-east-1.amazonaws.com/dev/scans --data '{ "target": "ssh.mozilla.com", "port": 22 }'
Example output:
{"port": 22, "updatedAt": 1536951946457, "id": "2f8f92ec-b851-11e8-8c13-ee273c03d56e", "createdAt": 1536951946457, "target": "ssh.mozilla.com"}
curl https://XXXXXXX.execute-api.us-east-1.amazonaws.com/dev/scans
Example output:
[{"port": 22, "id": "2f8f92ec-b851-11e8-8c13-ee273c03d56e", "target": "ssh.mozilla.com", "createdAt": 1536951946457, "updatedAt": 1536951946457}, {"port": 22, "id": "2e94de74-b851-11e8-8c13-ee273c03d56e", "target": "ssh.mozilla.com", "createdAt": 1536951944812, "updatedAt": 1536951944812}, {"port": 22, "id": "59d27142-b850-11e8-8c13-ee273c03d56e", "target": "ssh.mozilla.com", "createdAt": 1536951587861, "updatedAt": 1536951587861}]
# Replace the <id> part with a real id from your todos table
curl https://XXXXXXX.execute-api.us-east-1.amazonaws.com/dev/scans/<id>
Example Result:
{"port": 22, "id": "2f8f92ec-b851-11e8-8c13-ee273c03d56e", "target": "ssh.mozilla.com", "createdAt": 1536951946457, "updatedAt": 1536951946457}
make dependencies
make unit-tests