Decision API for making decisions by voting using many voting methods.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
CSDUMMI 716a8e1949 Use BytesField because BlobFields return memoryviews. 4 months ago
graphql GraphQL Authority type has a public_key instead of publicKey field 4 months ago
src Use BytesField because BlobFields return memoryviews. 4 months ago
tests Using RSA for everything 4 months ago
.gitignore using keys/ folder for any key data; using snake case consistently in Authority 5 months ago
Dockerfile Added setup & run section to README 4 months ago
Dockerfile.scheduler Scheduler container added to run in the background 4 months ago
LICENSE Initial commit 5 months ago
README.md Using RSA for everything 4 months ago
TODO Test coverage on almost all mutations. 4 months ago
admin admin script fixed paths 5 months ago
docker-compose.yml Scheduler container added to run in the background 4 months ago
nginx.conf nginx.conf added 5 months ago
requirements.txt misc typos and bugs fixed 4 months ago
restart-server.sh Scheduler container added to run in the background 4 months ago
run-tests.sh Added setup & run section to README 4 months ago
setup.py account resolver on Query added 5 months ago
setup.sh Scheduler container added to run in the background 4 months ago
start-server.sh account resolver on Query added 5 months ago

README.md

Decision API

An API to allow for secure, certified and extensible Internet Voting.

Setup

Install docker and docker-compose and run:

$ ./setup.sh
...
Generated authority <authority id>

Open .env file and fill in:

# Decision API config
DECISION_AUTHORITY_ID=<authority id>
DECISION_AUTHORTIY_PRIVATE_KEY_FILE=/keys/authority

# JWT Public Key for signing
JWT_PRIVATE_KEY_FILE=/keys/jwt
JWT_PUBLIC_KEY_FILE=/keys/jwt.pub

# change this, if you don't run on localhost
# DOMAIN=localhost

# DB config
DB_NAME=DAPI
DB_USER=decision_app
DB_PASSWORD=<random string>

# Test config

AUDITOR_AUTHORITY_ID=<authority id>
AUDITOR_AUTHORITY_KEY=keys/authority

API_ENDPOINT="https://localhost/api/graphql" # set this to the server address, you are testing.

And after completing this configuration, restart the server through:

$ ./start-server.sh

Tests

After starting the server, run the tests like this:

$ ./run-tests.sh