Search and consult CADA advices

cada, advice, api, flask, france, opendata, search
pip install cada==1.0.1



Build status Join the chat at

A simplistic interface to search and consult CADA advices.

This is the engine behind


CADA has been tested on Python 3.7, MongoDB 4.1 and ElasticSearch 7.2.

The ElasticSearch ICU Analysis plugin is required.

You can install it with:

elasticsearch-plugin install analysis-icu


You can install Cada with pip:

$ pip install cada

You need to create the cada working directory, denoted by $HOME in this documentation:

$ mkdir -p $HOME && cd $HOME
$ vim cada.cfg  # See configuration
$ wget -O data.csv
$ cada load data.csv  # Load initial data
$ cada static  # Optional: collect static assets for proper caching
$ cada runserver

local development environment

Please make sure you are in a clean virtualenv.

$ git clone
$ cd cada
$ docker-compose up -d
$ pip install -e .
$ wget -O data.csv
$ cada load data.csv
$ cada reindex
$ cada runserver


All configuration is done through the cada.cfg file in $HOME. It's basically a Python file with constants defined in it:

  • SERVER_NAME: the public server name. Mainly used in emails.
  • SECRET_KEY: the common crypto hash. e.g. sessions. openssl rand -hex 24 should be a good start.
  • ELASTICSEARCH_URL: the ElasticSearch server URL in host:port format. Default to localhost:9200 if not set
  • MONGODB_SETTINGS: a dictionary to configure MongoDB. Default to {'DB': 'cada'}. See the official flask-mongoengine documentation for more details.


Mail server configuration is done through the following variables:

  • MAIL_SERVER: SMTP server hostname. Default to localhost.
  • MAIL_PORT: SMTP server port. Default to 25.
  • MAIL_USE_TLS: activate TLS. Default to False.
  • MAIL_USE_SSL: activate SSL. Default to False.
  • MAIL_USERNAME: optional SMTP server username.
  • MAIL_PASSWORD: optional SMTP server password.
  • MAIL_DEFAULT_SENDER: Sender email used for mailings. Default to cada@localhost.
  • ANON_ALERT_MAIL: destination mail for anonymisation alerts. Default to cada.alert@localhost.

See the official Flask-Mail documentation for more details.


There is an optional support for Sentry. You need to install the required dependencies:

$ pip install raven[flask]
# Or to install it with cada
$ pip install cada[sentry]

You need to add your Sentry DSN to the configuration



There is an optional Piwik support. You simply need to add your Piwik server URL and your Piwik project ID to the configuration: