822c9aad229fd18ccaefa02f620085aab0382f19
Serve a RESTful API from any Postgres database
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%