https://github.com/zooniverse/caesar
Backend automation and orchestration
https://github.com/zooniverse/caesar
aggregation automation caesar panoptes-platform
Last synced: 5 days ago
JSON representation
Backend automation and orchestration
- Host: GitHub
- URL: https://github.com/zooniverse/caesar
- Owner: zooniverse
- License: apache-2.0
- Created: 2017-01-12T10:12:34.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2026-01-29T17:15:34.000Z (14 days ago)
- Last Synced: 2026-01-30T05:13:54.919Z (13 days ago)
- Topics: aggregation, automation, caesar, panoptes-platform
- Language: Ruby
- Homepage: https://zooniverse.github.io/caesar
- Size: 2.76 MB
- Stars: 13
- Watchers: 14
- Forks: 12
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# README
Caesar is an evolution of the Nero codebase, which is made more generic. In
essence, Caesar receives classifications from the event stream (a Lambda
script sends them to Caesars HTTP API).
* [Documentation](https://zooniverse.github.io/caesar)
* [Production](https://caesar.zooniverse.org)
* [Staging](https://caesar-staging.zooniverse.org)
## Development
Prepare the Docker containers:
```
docker-compose build
docker-compose run --rm app bin/rails db:setup
docker-compose run --rm -e RAILS_ENV=test app bin/rails db:create
```
Run tests with:
```
docker-compose run --rm -e RAILS_ENV=test app bin/rspec
```
Or interactively / manually in a docker shell
```
docker-compose run --rm -e RAILS_ENV=test app bash
# from the bash prompt
bin/rspec
```
Start a local server with:
```
docker-compose up
```
To have it listen to the stream:
```
AWS_REGION=us-east-1 kinesis-tail zooniverse-staging | bin/stream_to_server
```
Or to override the configuration for a given workflow, create a local file in `tmp/` (or anywhere else, but that directory is ignored by git) and run:
```
AWS_REGION=us-east-1 kinesis-tail zooniverse-staging | bin/override_workflow_configuration workflow_id tmp/path_to_nero_config.json | bin/stream_to_server
```
## Kinesis / Lambda
Panoptes posts classifications into Kinesis. Caesar has a Lambda script that
reads in from Kinesis and then POSTs those into Caesar's API. Docs on how to
change that lambda script are in the
[kinesis-to-http](https://github.com/zooniverse/caesar/tree/master/kinesis-to-http)
directory.
### Mutation tests
```
RAILS_ENV=test bundle exec mutant -r ./config/environment --use rspec Reducers::ExternalReducer
```