AURA Steering: Program Scheduler
AURA Steering is the scheduling module, where the actual program schedule of the whole station is stored as well as all infos regarding single shows and emissions.
It also acts as an OpenID Connect provider for dashboard
and tank
.
Installation
Follow the instructions to deploy AURA Web from the Docker Compose Installation
If you just want to try steering
locally, use the provided compose setup and
be sure to add:
AURA_PROTO=http
to the .env
file.
Configuration for development
A better development setup for steering
, that pulls the docker images for
dashboard
, dashboard-clock
and tank
from Docker Hub, builds the image for
steering
locally and exposes the ports can be achieved with
docker-compose.steering.yml
by adding this lines to the end of the .env
file:
STEERING_VERSION=local
TANK_VERSION=unstable
DASHBOARD_VERSION=unstable
DASHBOARD_CLOCK_VERSION=unstable
COMPOSE_FILE=docker-compose.yml:docker-compose.steering.yml
LDAP authentication backend
If you would like to add LDAP authentication backend, you need to enable it by
setting the STEERING_USE_LDAP_AUTH
and the AUTH_LDAP_BIND_PASSWORD
environment variables in the .env
file and configure the values of the
AUTH_LDAP_*
settings in
https://gitlab.servus.at/aura/steering/-/blob/master/steering/settings.py#L198
STEERING_USE_LDAP_AUTH=1
AUTH_LDAP_BIND_PASSWORD=
Testing
If you want to run the test suite, you can run pytest
in the container:
$ docker compose run steering poetry run pytest
Installation and execution with Poetry
If you really don't want to use Docker, you can install and run steering
using Poetry using SQLite.
Refer to the documentation on how to install Poetry.
First, install all the dependencies for the project:
$ poetry install --no-root
Then, you can set up the database:
$ poetry run ./manage.py migrate
And, load the fixtures:
$ poetry run ./manage.py loaddata fixtures/*/*.json
Then, you can create an RSA Key and the clients for dashboard
and tank
:
$ poetry run ./manage.py creatersakey
$ poetry run ./manage.py create_oidc_client dashboard public -r "id_token token" -u http://localhost:8080/oidc_callback.html -u http://localhost:8080/oidc_callback_silentRenew.html -p http://localhost:8080/
$ poetry run ./manage.py create_oidc_client tank confidential -r "code" -u http://localhost:8040/auth/oidc/callback
Finally, you can start the development server:
$ poetry run ./manage.py runserver
Extending the settings
If you want to extend the settings while doing local development with poetry,
you just need to set the DJANGO_SETTINGS_MODULE
environment variable to point
to the new settings file, e.g. to run the server using the sample_settings.py
file:
$ DJANGO_SETTINGS_MODULE=steering.sample_settings poetry run ./manage.py runserver
Data Model
A visualization of the data model can be generated using the Graph Models Django Extensions
The following command will generate an image out of the models:
$ poetry run ./manage.py graph_models --pydot -g -o steering_data_model.png program profile