Turandot Business Intelligence
Turandot is a minimalistic business intelligence server. It connects to an SQL database (currently PostgreSQL only) and uses SQL queries to render charts on a simple web interface.
Configuration is done by command line parameters only. There are only two flags necessary to get it running: one for defining the database file, where reports are stored, and a database connection string.
An active internet connection is required to load bootstrap, font-awesome, underscore.js and chart.js in the web interface.
./turandot --store=/path/to/store.db --pq="password=x" [--listen=127.0.0.1:9999] [--syslog [--syslog-name=turandot]] Required: --store <path-to-db> Database file. --pq <libpq-str> PostgreSQL connection string in libpq format Optional: --listen <addr:port> address/port for HTTP server (default: 127.0.0.1:9999) --syslog log to local syslog instead of stdout --syslog-name syslog identifier (default: turandot)
Queries are saved in so called reports. There are 3 types:
Table reports show returned rows as a simple table.
Progress reports render returned rows as a line chart. First result column of the query has to be a TIMESTAMP, all others numeric (some numeric type, not necessarily NUMERIC). Names of the numeric columns are used as dataset labels.
Ratio reports render returned rows as pie/doughnut chart. Results have to have two columns: one text type (labels) and one numeric type (values).
Turandot is a simple but powerful tool - it executes arbitrary SQL: Use a read-only user for connecting to your production database.
There also is no authentication mechanism built-in. You have to restrict access yourself.
All queries are internally wrapped into a simple
SELECT * FROM (<your-query>) LIMIT 128 to prevent returning millions of rows by accident.
Binaries can be downloaded from this site. I cannot release source code at this point.