Skip navigation

Syndie database

The database that the Syndie uses to store each nym's keys, organize their preferences, and store decrypted messages is a JDBC accessible HSQLDB database. By default, it loads the database up through HSQLDB's file:// schema support, which allows only one instance at a time to access the database and loads it into memory. The database can be configured for remote access through HSQLDB's hsql://hostname:portNum/dbName or hsqls://hostname:portNum/dbName schema support, offering remote access (either directly or over SSL/TLS). To use these alternate schemas, simply use the login command with --db jdbc:hsqldb:hsqls:// (etc) after starting up a standalone HSQLDB database configured for remote access.

The database schema itself is kept as part of the Syndie source code as src/syndie/db/ddl.txt, and is documented therein. Basically, it has tables to contain individual channels, messages within those channels, the content stored in those messages (including attachments and references), individual local nyms, their keys, and their preferences. In addition, it has general configuration data for managing the database and the associated archive of .syndie messages.

Also of interest are the database schema updates - src/syndie/db/ddl_update*.txt. They are run sequentially to turn earlier database schema versions into newer versions of the schema.