2014-11-02 00:10:37 -07:00
2014-10-14 11:13:55 -07:00
2014-06-16 21:36:55 -07:00
2014-10-28 20:05:15 -07:00
2014-06-16 21:36:55 -07:00

Serve a RESTful API from any Postgres database

Build Status

Installation

brew install postgres
cabal install -j --enable-tests

Example usage:

cabal run -p 3000 -d postgres://[auth-role]:@localhost:5432/[database] -a [anonymous-role]

You will need to provide two database roles (which are allowed to be the same). One is called the authenticator role (auth-role above) which should have enough privileges to read the auth table in the dbapi schema if you intend to support multi-user applications.

The other role is for anonymous access (anonymous-role above). Immediately upon acceping any unauthenticated HTTP connection dbapi assumes this role in its queries to postgres. Give this role as much or little permissions as you would like.

Running tests

createuser --superuser --no-password dbapi_test
createdb -O dbapi_test -U postgres dbapi_test

cabal test --show-details=always --test-options="--color"

Distributing Heroku build

heroku create --stack=cedar --buildpack https://github.com/begriffs/heroku-buildpack-ghc.git
git push heroku master

heroku config:set S3_ACCESS_KEY=abc
heroku config:set S3_SECRET_KEY=123
heroku config:set S3_BUCKET=s3://foo/bar

heroku run scripts/release_s3.sh
Languages
Haskell 67.3%
PLpgSQL 21.5%
Python 6.7%
Nix 4.3%
Shell 0.2%