├── .gitignore ├── README.md ├── envelope └── handler.js └── terraform ├── apigw.tf ├── iam.tf ├── lambda.tf ├── policies └── lambda_role.json ├── provider.tf ├── templates ├── list_letters.json └── read_letter.json └── variables.tf /.gitignore: -------------------------------------------------------------------------------- 1 | *.tfstate 2 | *.tfstate.backup 3 | *.zip 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Signed Blogs 2 | ============ 3 | 4 | This is a basic proof of concept cobbled together after reading about [the awesome new Keybase filesystem](https://keybase.io/introducing-the-keybase-filesystem). 5 | 6 | It's a simple user search, and view onto plaintext and markdown formatted files stored publicly on Keybase. 7 | 8 | ## What/Why/How 9 | There's very little to this - all the heavy-lifting is done by genii at [Keybase.io](http://keybase.io); to whom I'm not affiliated. 10 | 11 | I just thought this was maybe an interesting use for their new filesystem, and threw this together stylesheet-less to toy with it. 12 | 13 | Feel free to fork/PR/host your own, whatever. 14 | 15 | Files are pulled in from Keybase every time - no storage here (would sort of defeat the point anyway). 16 | 17 | ## Try it out: 18 | The Terraform's all ready to go, just supply AWS keys and it'll provision a Lambda, and API Gateway routing. 19 | 20 | Then you can test it out with `${STAGE_URL}/${KEYBASE_USER}[/${POST_TITLE}`. 21 | -------------------------------------------------------------------------------- /envelope/handler.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const async = require('async'); 3 | const cheerio = require('cheerio'); 4 | const request = require('request'); 5 | 6 | const list_response = (user) => ` 7 | 8 | 9 |
10 |