Authentication service for Jenca Cloud. Please see the trello board for work. If you need to be added to the team and board, please request: https://trello.com/b/clWQd0u9/jenca-cloud-core License: MIT
Python Makefile
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.
authentication
docs
storage
.gitignore
.travis.yml
Dockerfile
Dockerfile.dev
LICENSE
Makefile
README.md
dev-requirements.txt
docker-compose.yml
requirements.txt
setup.py

README.md

Requirements Status Build Status Coverage Status Documentation Status

jenca-authentication

An authentication service for Jenca Cloud.

The full documentation for this service can be seen at http://jenca-authentication.readthedocs.org/.

Running this service

This comes with a Docker Compose file.

With Docker Compose available, perhaps in the Jenca Cloud Vagrant development environment, run:

docker-compose build
docker-compose up

to start the API service.

To run commands against the API, on OS X with Docker Machine for example:

$ docker-machine ip dev
$ 192.168.99.100
$ curl -X POST \
  -H "Content-Type: application/json" \
  -g '192.168.99.100:5000/signup' \
  -d '{"email": "user@example.com","password":"secret"}'
$ curl -X POST \
  -H "Content-Type: application/json" \
  -g '192.168.99.100:5000/login' \
  -d '{"email": "user@example.com","password":"secret"}' \
  --cookie-jar ~/Desktop/my_cookie
$ curl -X GET \
  -H "Content-Type: application/json" \
  -g '192.168.99.100:5000/status' \
  --cookie-jar ~/Desktop/my_cookie
$ curl -X POST \
  -H "Content-Type: application/json" \
  -g '192.168.99.100:5000/logout' \
  --cookie ~/Desktop/my_cookie

Development

This service is written using Python and Flask.

To start developing quickly, it is recommended that you create a virtualenv and install the requirements and run the tests inside it:

(my_virtualenv)$ pip install -e .[dev]

Tests are run on Travis-CI.

Documentation

To build the documentation locally, install the development requirements and then use the Makefile in the docs/ directory:

(my_virtualenv)$ make -C docs/ html

To view this built documentation, run:

$ open docs/build/html/index.html

TODO

  • Some way of setting with Docker a way of describing whether the app should be in development or testing. This will likely be an environment variable. In testing only, share the code with the container as a volume with ".:code", which allows Flask to see code changes. In testing only, set debug mode to true in app.run(), which allows live changes as the code changes. In production make sure that all neccessary environment variables are set.