Codebase list jabberd2 / HEAD tools / db-setup.sqlite
HEAD

Tree @HEAD (Download .tar.gz)

db-setup.sqlite @HEADraw · history · blame

--
-- This is the required schema for sqlite.
--
--     sqlite3 db/sqlite.db < tools/db-setup.sqlite
--
PRAGMA page_size = 4096;
PRAGMA journal_mode = WAL;
BEGIN;

--
-- c2s authentication/registration table
--
CREATE TABLE "authreg" (
    "username" TEXT NOT NULL,
    "realm" TEXT NOT NULL,
    "password" TEXT );

CREATE INDEX i_authreg_username ON "authreg"("username");
CREATE INDEX i_authreg_realm ON "authreg"("realm");

--
-- Session manager tables 
--

--
-- Active (seen) users
-- Used by: core
--
CREATE TABLE "active" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "time" INTEGER NOT NULL DEFAULT 0 );

CREATE INDEX IF NOT EXISTS i_active_collection_owner
    ON "active"("collection-owner");

--
-- Logout times
-- Used by: mod_iq_last
--
CREATE TABLE "logout" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "time" INTEGER NOT NULL DEFAULT 0 );

--
-- Roster items
-- Used by: mod_roster
--
CREATE TABLE "roster-items" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "jid" TEXT NOT NULL,
    "name" TEXT,
    "to" BOOLEAN NOT NULL,
    "from" BOOLEAN NOT NULL,
    "ask" INTEGER NOT NULL );

CREATE INDEX i_rosteri_owner ON "roster-items"("collection-owner");

--
-- Roster groups
-- Used by: mod_roster
--
CREATE TABLE "roster-groups" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "jid" TEXT NOT NULL,
    "group" TEXT NOT NULL );

CREATE INDEX i_rosterg_owner ON "roster-groups"("collection-owner");
CREATE INDEX i_rosterg_owner_jid ON "roster-groups"("collection-owner", "jid");

--
-- Published roster items
-- Used by: mod_roster_publish
--
CREATE TABLE "published-roster" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "jid" TEXT NOT NULL,
	"group" TEXT,
    "name" TEXT,
    "to" BOOLEAN NOT NULL,
    "from" BOOLEAN NOT NULL,
    "ask" INTEGER NOT NULL );

CREATE INDEX i_pubrosteri_owner ON "published-roster"("collection-owner");

--
-- Published roster groups
-- Used by: mod_roster_publish
--
CREATE TABLE "published-roster-groups" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "groupname" TEXT NOT NULL );

CREATE INDEX i_pubrosterg_owner ON "published-roster-groups"("collection-owner");

--
-- vCard (user profile information)
-- Used by: mod_iq_vcard
--
CREATE TABLE "vcard" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "fn" TEXT,
    "nickname" TEXT,
    "url" TEXT,
    "tel" TEXT,
    "email" TEXT,
    "jabberid" TEXT,
    "mailer" TEXT,
    "title" TEXT,
    "role" TEXT,
    "bday" TEXT,
    "tz" TEXT,
    "n-family" TEXT,
    "n-given" TEXT,
    "n-middle" TEXT,
    "n-prefix" TEXT,
    "n-suffix" TEXT,
    "adr-street" TEXT,
    "adr-extadd" TEXT,
    "adr-pobox" TEXT,
    "adr-locality" TEXT,
    "adr-region" TEXT,
    "adr-pcode" TEXT,
    "adr-country" TEXT,
    "geo-lat" TEXT,
    "geo-lon" TEXT,
    "org-orgname" TEXT,
    "org-orgunit" TEXT,
    "agent-extval" TEXT,
    "sort-string" TEXT,
    "desc" TEXT,
    "note" TEXT,
    "uid" TEXT,
    
    "photo-type" TEXT,
    "photo-binval" TEXT,
    "photo-extval" TEXT,
    
    "logo-type" TEXT,
    "logo-binval" TEXT,
    "logo-extval" TEXT,
    
    "sound-phonetic" TEXT,
    "sound-binval" TEXT,
    "sound-extval" TEXT,
    
    "key-type" TEXT,
    "key-cred" TEXT,
    
    "rev" TEXT );

CREATE INDEX i_vcard_owner ON "vcard"("collection-owner");

--
-- Offline message queue
-- Used by: mod_offline
--
CREATE TABLE "queue" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "xml" TEXT NOT NULL );

CREATE INDEX i_queue_owner ON "queue"("collection-owner");

--
-- Private XML storage
-- Used by: mod_iq_private
--
CREATE TABLE "private" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "ns" TEXT,
    "xml" TEXT );

CREATE INDEX i_private_owner ON "private"("collection-owner");

--
-- Message Of The Day (MOTD) messages (announcements)
-- Used by: mod_announce
--
CREATE TABLE "motd-message" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "xml" TEXT NOT NULL );

--
-- Times of last MOTD message for each user
-- Used by: mod_announce
--
CREATE TABLE "motd-times" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "time" INTEGER NOT NULL );

--
-- Default privacy list
-- Used by: mod_privacy
--
CREATE TABLE "privacy-default" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "default" TEXT );

--
-- Privacy lists
-- Used by: mod_privacy
--
CREATE TABLE "privacy-items" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "list" TEXT NOT NULL,
    "type" TEXT,
    "value" TEXT,
    "deny" BOOL,
    "order" INTEGER,
    "block" INTEGER );

CREATE INDEX i_privacyi_owner ON "privacy-items"("collection-owner");

--
-- Vacation settings
-- Used by: mod_vacation
--
CREATE TABLE "vacation-settings" (
    "collection-owner" TEXT NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "start" INTEGER,
    "end" INTEGER,
    "message" TEXT );

--
-- User status information
-- Used by: mod_status
--
CREATE TABLE "status" (
    "collection-owner" text NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "status" TEXT NOT NULL,
    "show" TEXT,
    "last-login" INTEGER DEFAULT '0',
    "last-logout" INTEGER DEFAULT '0',
    "xml" TEXT );

--
-- Email verification information
-- Used by: mod_verify
--
CREATE TABLE "verify" (
    "collection-owner" text NOT NULL,
    "object-sequence" INTEGER PRIMARY KEY,
    "email" text NOT NULL,
    "code" text,
    "state" INTEGER DEFAULT 0);

COMMIT;