SQLite format 3 @
.zp � �`j
2�1
��
x� ���Y�YQ� �(� MtableshowshowCREATE TABLE show (
state text primary key not null
)'; indexsqlite_autoindex_show_1show�y�EtablemessagesmessagesCREATE TABLE messages (
id text primary key not null,
body text,
-- delivery is nullable as only messages sent by the user are markable
delivery text,
chat_id text not null,
-- TODO: channel stuff
-- channel_id uuid,
-- check ((chat_id == null) <> (channel_id == null)),
-- check ((chat_id == null) or (channel_id == null)),
-- user is the current "owner" of the message
-- TODO: queued messages offline
-- TODO: timestamp
timestamp text not null,
-- TODO: icky
-- the user to show it coming from (not necessarily the original sender)
-- from_identity text not null,
-- original sender details (only from jabber supported for now)
from_jid text not null,
-- resource can be null
from_resource text,
-- check (from_jid != original_sender),
foreign key(delivery) references delivery(state),
-- TODO: from can be either a jid, a moved jid (for when a contact moves, save original sender jid/user but link to new user), or imported (from another service (save details), linked to new user)
-- TODO: read bool not null,
foreign key(chat_id) references chats(id) on delete cascade,
-- foreign key(from_identity) references identities(id),
foreign key(from_jid) references users(jid),
foreign key(from_jid, from_resource) references resources(bare_jid, resource)
)/C indexsqlite_autoindex_messages_1messagesY�tabledeliverydeliveryCREATE TABLE delivery(
state text primary key not null
)/C indexsqlite_autoindex_delivery_1delivery�L�wtablechatschatsCREATE TABLE chats (
id text primary key not null,
have_chatted bool not null,
correspondent text not null unique,
foreign key(correspondent) references users(jid)
))= indexsqlite_autoindex_chats_2chats)= indexsqlite_autoindex_chats_1chats�1
''�!tablegroups_rostergroups_rosterCREATE TABLE groups_roster(
group_name text not null,
contact_jid text not null,
foreign key(group_name) references groups(group_name),
foreign key(contact_jid) references roster(user_jid) on delete cascade,
primary key(group_name, contact_jid)
)9M' indexsqlite_autoindex_groups_roster_1groups_rosterX�tablegroupsgroupsCREATE TABLE groups(
group_name text primary key not null
)+? indexsqlite_autoindex_groups_1groups
�u �Etablerosterroster
CREATE TABLE roster(
user_jid text primary key not null,
name TEXT,
subscription text not null,
foreign key(subscription) references subscription(state),
foreign key(user_jid) references users(jid)
)+
? indexsqlite_autoindex_roster_1rostere%%�
tablesubscriptionsubscriptionCREATE TABLE subscription(
state text primary key not null
)7K% indexsqlite_autoindex_subscription_1subscription �E�YtableresourcesresourcesCREATE TABLE resources(
bare_jid text not null,
resource text not null,
foreign key(bare_jid) references users(jid),
primary key(bare_jid, resource)
)1E indexsqlite_autoindex_resources_1resources�x�OtableusersusersCREATE TABLE users(
-- TODO: enforce bare jid
jid text primary key not null,
nick text,
avatar text,
-- can receive presence status from non-contacts
cached_status_message text
-- TODO: last_seen
))= indexsqlite_autoindex_users_1users�)--�table_sqlx_migrations_sqlx_migrationsCREATE TABLE _sqlx_migrations (
version BIGINT PRIMARY KEY,
description TEXT NOT NULL,
installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success BOOLEAN NOT NULL,
checksum BLOB NOT NULL,
execution_time BIGINT NOT NULL
)?S- indexsqlite_autoindex__sqlx_migrations_1_sqlx_migrations
� � V3 lh���luz2025-04-08 10:13:05� S�[lh<����R�h�8����R�&��J1p����{��{��z�'�-�L
� � h���
} ��������} buddy)in-pending-out)out-pending-in only-in
only-out9pending-in-pending-out!pending-in
#pending-outnone
u u������� buddy )in-pending-out)out-pending-inonly-inonly-out9pending-in-pending-out!pending-in#pending-out none
� ������� queuedfailedreaddeliveredsent written sending
� �������
queued
failedread
deliveredsentwritten
sending
� ���� 'extended-away)do-not-disturbchataway
� ���� 'extended-away)do-not-disturbchat away
� �
Y � ��
e`j
2�1
��
x� ���Y�YQ� �(� MtableshowshowCREATE TABLE sh MtableshowshowCREATE TABLE show (
state text primary key not null
)Yb; indexsqlite_autoindex_show_1show�y�EtablemessagesmessagesCREATE TABLE messages (
id text primary key not null,
body text,
-- delivery is nullable as only messages sent by the user are markable
delivery text,
chat_id text not null,
-- TODO: channel stuff
-- channel_id uuid,
-- check ((chat_id == null) <> (channel_id == null)),
-- check ((chat_id == null) or (channel_id == null)),
-- user is the current "owner" of the message
-- TODO: queued messages offline
-- TODO: timestamp
timestamp text not null,
-- TODO: icky
-- the user to show it coming from (not necessarily the original sender)
-- from_identity text not null,
-- original sender details (only from jabber supported for now)
from_jid text not null,
-- resource can be null
from_resource text,
-- check (from_jid != original_sender),
foreign key(delivery) references delivery(state),
-- TODO: from can be either a jid, a moved jid (for when a contact moves, save original sender jid/user but link to new user), or imported (from another service (save details), linked to new user)
-- TODO: read bool not null,
foreign key(chat_id) references chats(id) on delete cascade,
-- foreign key(from_identity) references identities(id),
foreign key(from_jid) references users(jid),
foreign key(from_jid, from_resource) references resources(bare_jid, resource)
)Y �C indexsqlite_autoindex_messages_1messagesY�tabledeliverydeliveryCREATE TABLE delivery(
state text primary key not null
)/C indexsqlite_autoindex_delivery_1delivery�L�wtablechatschatsCREATE TABLE chats (
id text primary key not null,
have_chatted bool not null,
correspondent text not null unique,
foreign key(correspondent) references users(jid)
)� V= indexsqlite_autoindex_chats_2chats)= indexsqlite_autoindex_chats_1chats�1
''�!tablegroups_rostergroups_rosterCREATE TABLE groups_roster(
group_name text not null,
contact_jid text not null,
foreign key(group_name) references groups(group_name),
foreign key(contact_jid) references roster(user_jid) on delete cascade,
primary key(group_name, contact_jid)
)9M' indexsqlite_autoindex_groups_roster_1groups_rosterX�tablegroupsgroupsCREATE TABLE groups(
group_name text primary key not null
)+? indexsqlite_autoindex_groups_1groups
�u �Etablerosterroster
CREATE TABLE roster(
user_jid text primary key not null,
name TEXT,
subscription text not null,
foreign key(subscription) references subscription(state),
foreign key(user_jid) references users(jid)
)+
? indexsqlite_autoindex_roster_1rostere%%�
tablesubscriptionsubscriptionCREATE TABLE subscription(
state text primary key not null
)7K% indexsqlite_autoindex_subscription_1subscription �E�YtableresourcesresourcesCREATE TABLE resources(
bare_jid text not null,
resource text not null,
foreign key(bare_jid) references users(jid),
primary key(bare_jid, resource)
)1E indexsqlite_autoindex_resources_1resources�x�OtableusersusersCREATE TABLE users(
-- TODO: enforce bare jid
jid text primary key not null,
nick text,
avatar text,
-- can receive presence status from non-contacts
cached_status_message text
-- TODO: last_seen
))= indexsqlite_autoindex_users_1users�)--�table_sqlx_migrations_sqlx_migrationsCREATE TABLE _sqlx_migrations (
version BIGINT PRIMARY KEY,
description TEXT NOT NULL,
installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success BOOLEAN NOT NULL,
checksum BLOB NOT NULL,
execution_time BIGINT NOT NULL
)?S- indexsqlite_autoindex__sqlx_migrations_1_sqlx_migrations
6 ��O � q "�>� �O77�=tablecapability_hash_nodescapability_hash_nodesCREATE TABLE capability_hash_nodes (
node text primary key not null,
timestamp text,
-- TODO: normalization
capabilities text not null
)I]7 indexsqlite_autoindex_capability_hash_nodes_1capability_hash_nodes �8''�/tablecached_statuscached_statusCREATE TABLE cached_status (
id integer primary key not null,
show text,
message text,
foreign key(show) references show(state)
)'; indexsqlite_autoindex_show_1showMtableshowshowCREATE TABLE show (
state text primary key not null
)/C indexsqlite_autoindex_messages_1messages�y�EtablemessagesmessagesCREATE TABLE messages (
id text primary key not null,
body text,
-- delivery is nullable as only messages sent by the user are markable
delivery text,
chat_id text not null,
-- TODO: channel stuff
-- channel_id uuid,
-- check ((chat_id == null) <> (channel_id == null)),
-- check ((chat_id == null) or (channel_id == null)),
-- user is the current "owner" of the message
-- TODO: queued messages offline
-- TODO: timestamp
timestamp text not null,
-- TODO: icky
-- the user to show it coming from (not necessarily the original sender)
-- from_identity text not null,
-- original sender details (only from jabber supported for now)
from_jid text not null,
-- resource can be null
from_resource text,
-- check (from_jid != original_sender),
foreign key(delivery) references delivery(state),
-- TODO: from can be either a jid, a moved jid (for when a contact moves, save original sender jid/user but link to new user), or imported (from another service (save details), linked to new user)
-- TODO: read bool not null,
foreign key(chat_id) references chats(id) on delete cascade,
-- foreign key(from_identity) references identities(id),
foreign key(from_jid) references users(jid),
foreign key(from_jid, from_resource) references resources(bare_jid, resource)
)/C indexsqlite_autoindex_delivery_1deliveryY�tabledeliverydeliveryCREATE TABLE delivery(
state text primary key not null
))= indexsqlite_autoindex_chats_2chats)= indexsqlite_autoindex_chats_1chats
� � �]� �Ehttps://bunny.garden/filamento#mSavc/SLnHm8zazs5RlcbD/iXoc=aHR0cDovL2phYmJlci5vcmcvcHJvdG9jb2wvY2Fwcx9odHRwOi8vamFiYmVyLm9yZy9wcm90b2NvbC9kaXNjbyNpbmZvH2h0dHA6Ly9qYWJiZXIub3JnL3Byb3RvY29sL2Rpc2NvI2l0ZW1zH2h0dHA6Ly9qYWJiZXIub3JnL3Byb3RvY29sL25pY2sfaHR0cDovL2phYmJlci5vcmcvcHJvdG9jb2wvbmljaytub3RpZnkfHGNsaWVudB9wYx8fZmlsYW1lbnRvIDAuMS4wHx4cHA==
� � ?� https://bunny.garden/filamento#mSavc/SLnHm8zazs5RlcbD/iXoc=