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://127.0.0.1:9999/syndie
(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.