Aggregates and enhances carpooling-offers and publishes them as GTFS(-RT)
Project description
Amarillo
CRUD for carpool offers
An Amarillo is a yellow-dressed person helping others to find a car pool in Cuba.
Setup
- Python 3.9.2 with pip
- python3-venv
Create a virtual environment python3 -m venv venv
.
Activate the environment and install the dependencies pip install -r requirements.txt
.
Run uvicorn amarillo.main:app
.
In development, you can use --reload
.
Environment Variables
env
ADMIN_TOKEN
Security
All endpoints are protected by an API-Key in the HTTP header. There is a special admin user. For this user, the API-Key must be passed in as an environment variable when Amarillo is started.
The admin can create additional API-Keys in the /agencyconf
endpoint. This
endpoint is always available but not always shown in /docs
, especially not
when running in production.
The Swagger docs for /agencyconf
can be seen on the MFDZ demo server.
Permissions work this way
- the admin is allowed to call all operations on all resources. Only the admin
can create new API-Keys by POSTing an
AgencyConf
JSON object to/agencyconf
. - API-Keys for agencies are allowed to POST/PUT/GET/DELETE their own resources and GET some public resources.
Development
GTFS-RT python bindings
In case you modify or update the proto-files in amarillo/proto, you'll need to regenerate the python bindings. First, create the python files:
$ cd amarillo/proto
$ protoc --version
libprotoc 3.21.6
$ protoc --proto_path=. --python_out=../services/gtfsrt gtfs-realtime.proto realtime_extension.proto
$ sed 's/import gtfs_realtime_pb2/import amarillo.services.gtfsrt.gtfs_realtime_pb2/g' ../services/gtfsrt/realtime_extension_pb2.py | sponge ../services/gtfsrt/realtime_extension_pb2.py
Testing
In the top directory, run pytest amarillo/tests
.
Docker
Based on tiangolo/uvicorn-gunicorn:python3.9-slim
- build
docker build -t amarillo --build-arg="PLUGINS=amarillo-metrics" .
- run
docker run --rm --name amarillo -p 8000:80 -e MAX_WORKERS="1" -e ADMIN_TOKEN=$ADMIN_TOKEN -e RIDE2GO_TOKEN=$RIDE2GO_TOKEN -e TZ=Europe/Berlin -v $(pwd)/data:/app/data amarillo
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for amarillo-0.0.15a3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c09c75b9a85b5452f6179f6877f0287c34ffb5a8aff23d4faea2f419415d59c |
|
MD5 | 69a0f5b1463ecf52cd58f70e6dde7f10 |
|
BLAKE2b-256 | e6153b373c154f82a1da428e3ea25a0c7a8937bbd7207371f647fa45b26dbd65 |