Theon is a system for developing, deploying, maintaining and accessing the content of one or more PostgreSQL databases in a live production environment. Theon has three main components: TheonTK, TheonCoupler and TheonUI.
TheonTK is a command line toolkit that is the primary interface for managed
development of PostgreSQL databases and associated structures (each referred to
as a model
). TheonTK also provides a control interface for TheonCoupler
and TheonUI.
TheonCoupler is a generic in-database synchronisation mechanism that allows
any database table content to be automatically maintained from external (or
internal) data sources (each referred to as a stream
). TheonCoupler is
specfically used within Theon for importing an existing PostgreSQL database
as a model
and other internal processes, but it can also be used for
automatically getting data into any Theon managed PostgreSQL database.
TheonUI is a generic Python WSGI server and Javascript web browser client
that allows database content to be viewed and updated by non-technical end
users. TheonUI is specfically used within Theon for manipulation of a
model
, but it can be used as a production administrative interface for any
Theon managed PostgreSQL database. As the server and client are entirely
database agnostic they could also be used for any PostgreSQL database, not just
those managed with Theon. To function the TheonUI client and server
require one or more modules
(data sets). A module contains information about
a database and definitions of desktops
(business workflows). Together these
define the user interface. TheonTK can be used to automatically build and
maintain these data sets for any Theon managed PostgreSQL database, although
they could be built in other ways independently of Theon. Similarly,
databases can be managed with Theon, but other independent interfaces used in
place of, or alongside, TheonUI.