Post PGP-signed content without a username or password.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
bin
config
db
lib
public
spec
vendor/assets
.env
.foreman
.gitignore
.rspec
.ruby-version
.sample.env
Gemfile
Gemfile.lock
Procfile
README.md
Rakefile
config.ru
data

README.md

Mnfst

Concept: never create an account, instead sign text with a PGP key.

Create a new status. This takes JSON where the content is a piece of text that is signed using a PGP key.

POST /statuses
Content-Type: application/json

{ status: { signed_body: PGP-signed-ASCII } }

=>

201

Create a new status, detached. This takes JSON where the content is a piece of text plus the PGP signature.

POST /statuses
Content-Type: application/json

{ status: { body: ASCII, signature: PGP-signed-ASCII } }

=>

201

View a status. Takes a status ID. This is mostly here just for sharing URLs with others.

GET /statuses/:id
Content-Type: application/json
Accept: application/json

or:

GET /statuses/:id
Content-Type: text/html

Examples

This repo comes with a file data that has an example POST data. Use it as a template.

The signed_body was generated from an input file named tweet using:

gpg -a --output tweet.asc --sign tweet

These commands can be used to interact with the system:

curl -i -d@data localhost:7000/statuses -H "Content-Type: application/json"
curl -i localhost:7000/statuses/17 -H "Content-Type: application/json" -H "Accept: application/json"

Getting Started

This repository comes equipped with a self-setup script.

% ./bin/setup

After setting up, you can run the application using foreman:

% foreman start

Guidelines

Use the following guides for getting things done, programming well, and programming in style.