- A docker-containerized microservice for https://cyber-dojo.org.
- An HTTP Ruby Sinatra web service, offering a Group/Kata model+persistence API.
- Demonstrates a Kosli instrumented GitHub CI workflow deploying, with Continuous Compliance, to staging and production AWS environments.
- Uses patterns from https://www.kosli.com/blog/using-kosli-attest-in-github-action-workflows-some-tips/
There are two sets of tests:
- server: these run from inside the saver container
- client: these run from outside the saver container, making api calls only
# To build the images
$ make {image_server|image_client}
# To run all tests
$ make {test_server|test_client}
# To run only specific tests
$ ./bin/run_tests.sh {-h|--help}
$ ./bin/run_tests.sh server Ks366
# To check coverage metrics
$ make {coverage_server|coverage_client}
- POST group_create(manifest)
- GET group_exists?(id)
- POST group_join(id,indexes)
- GET group_joined(id)
- GET group_manifest(id)
- POST group_fork(id,index)
- POST kata_create(manifest)
- GET kata_exists?(id)
- GET kata_events(id)
- GET kata_event(id,index)
- GET katas_events(ids,indexes)
- GET kata_manifest(id)
- POST kata_ran_tests(id,index,files,stdout,stderr,status,summary)
- POST kata_predicted_right(id,index,files,stdout,stderr,status,summary)
- POST kata_predicted_wrong(id,index,files,stdout,stderr,status,summary)
- POST kata_reverted(id,index,files,stdout,stderr,status,summary)
- POST kata_checked_out(id,index,files,stdout,stderr,status,summary)
- GET kata_option_get(id,name)
- POST kata_option_set(id,name,value)
- POST kata_fork(id,index)