Actions take time. Each character is locked until their action is complete.

Requests hang while waiting.

Signed-off-by: Mike Lang <mike.lang@orionvm.com.au>
Implement auth decorator, including support for guest sessions.

The decision to allow both basic auth and session-based auth is one that
reflects the dual nature of the website - sessions are far more convenient
for browsers, while basic auth is much nicer for API calls.
Style and structure fixes.

Lowercase directories please.
All documentation as plaintext in the /docs directory.
No BOM on unicode files.
Newlines at the end of files please.

Signed-off-by: Mike Lang <mike.lang@orionvm.com.au>
app: Read in secret key at init time from untracked file.

Sorry folks, but we can't put the secret key in the public repo.
Wouldn't be very secret.

Signed-off-by: Mike Lang <mike.lang@orionvm.com.au>