|Max Erenberg 7b749701f0|
work in progress
First, make sure that you have installed the syscom dev environment. This will setup all of the services needed for ceo to work. You should clone this repo in one of the dev environment containers.
Next, install and activate a virtualenv:
python3 -m venv venv . venv/bin/activate pip install -r requirements.txt pip install -r dev-requirements.txt
Running the application
ceod is essentially a distributed application, with instances on different hosts offering different services. For example, the ceod instance on mail offers a service to subscribe people to mailing lists, and the ceod instance on phosphoric-acid offers a service to create new members. Therefore, you will need to run ceod on multiple hosts. Currently, those are phosphoric-acid, mail and caffeine (in the dev environment, caffeine is replaced by coffee).
To run ceod on a single host:
export FLASK_APP=ceod.api export FLASK_ENV=development flask run -h 0.0.0.0 -p 9987
Sometimes changes you make in the source code don't show up while Flask
is running. Stop the flask app (Ctrl-C), run
restart the app.
Interacting with the application
The client part of ceo hasn't been written yet, so we'll use curl to interact with ceod for now.
ceod uses SPNEGO for authentication, and TLS for confidentiality and integrity. In development mode, TLS can be disabled. First, make sure that your version of curl has been compiled with SPNEGO support:
Your should see 'SPNEGO' in the 'Features' section.
Here's an example of using curl with SPNEGO:
# Get a Kerberos TGT first kinit curl --negotiate -u : --service-name ceod http://mail:9987/api/mailman/csc-general/ctdalek
Not all endpoints are SPNEGO-protected, e.g. to get info for a member: