diff --git a/config/dbstructure.json b/config/dbstructure.json new file mode 100644 index 0000000000..62f710cdf7 --- /dev/null +++ b/config/dbstructure.json @@ -0,0 +1,1250 @@ +{ + "addon": { + "comment": "registered addons", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": ""}, + "name": {"type": "varchar(50)", "not null": "1", "default": "", "comment": "addon base (file)name"}, + "version": {"type": "varchar(50)", "not null": "1", "default": "", "comment": "currently unused"}, + "installed": {"type": "boolean", "not null": "1", "default": "0", "comment": "currently always 1"}, + "hidden": {"type": "boolean", "not null": "1", "default": "0", "comment": "currently unused"}, + "timestamp": {"type": "int unsigned", "not null": "1", "default": "0", "comment": "file timestamp to check for reloads"}, + "plugin_admin": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 = has admin config, 0 = has no admin config"} + }, + "indexes": { + "PRIMARY": ["id"], + "name": ["UNIQUE", "name"] + } + }, + "attach": { + "comment": "file attachments", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "generated index"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "hash": {"type": "varchar(64)", "not null": "1", "default": "", "comment": "hash"}, + "filename": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "filename of original"}, + "filetype": {"type": "varchar(64)", "not null": "1", "default": "", "comment": "mimetype"}, + "filesize": {"type": "int unsigned", "not null": "1", "default": "0", "comment": "size in bytes"}, + "data": {"type": "longblob", "not null": "1", "comment": "file data"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "creation time"}, + "edited": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "last edit time"}, + "allow_cid": {"type": "mediumtext", "comment": "Access Control - list of allowed contact.id '<19><78>"}, + "allow_gid": {"type": "mediumtext", "comment": "Access Control - list of allowed groups"}, + "deny_cid": {"type": "mediumtext", "comment": "Access Control - list of denied contact.id"}, + "deny_gid": {"type": "mediumtext", "comment": "Access Control - list of denied groups"} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "auth_codes": { + "comment": "OAuth usage", + "fields": { + "id": {"type": "varchar(40)", "not null": "1", "primary": "1", "comment": ""}, + "client_id": {"type": "varchar(20)", "not null": "1", "default": "", "relation": {"clients": "client_id"}, "comment": ""}, + "redirect_uri": {"type": "varchar(200)", "not null": "1", "default": "", "comment": ""}, + "expires": {"type": "int", "not null": "1", "default": "0", "comment": ""}, + "scope": {"type": "varchar(250)", "not null": "1", "default": "", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "cache": { + "comment": "Stores temporary data", + "fields": { + "k": {"type": "varbinary(255)", "not null": "1", "primary": "1", "comment": "cache key"}, + "v": {"type": "mediumtext", "comment": "cached serialized value"}, + "expires": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime of cache expiration"}, + "updated": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime of cache insertion"} + }, + "indexes": { + "PRIMARY": ["k"], + "k_expires": ["k", "expires"] + } + }, + "challenge": { + "comment": "", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "challenge": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "dfrn-id": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "expire": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""}, + "type": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "last_update": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "clients": { + "comment": "OAuth usage", + "fields": { + "client_id": {"type": "varchar(20)", "not null": "1", "primary": "1", "comment": ""}, + "pw": {"type": "varchar(20)", "not null": "1", "default": "", "comment": ""}, + "redirect_uri": {"type": "varchar(200)", "not null": "1", "default": "", "comment": ""}, + "name": {"type": "text", "comment": ""}, + "icon": {"type": "text", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"} + }, + "indexes": { + "PRIMARY": ["client_id"] + } + }, + "config": { + "comment": "main configuration storage", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": ""}, + "cat": {"type": "varbinary(50)", "not null": "1", "default": "", "comment": ""}, + "k": {"type": "varbinary(50)", "not null": "1", "default": "", "comment": ""}, + "v": {"type": "mediumtext", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "cat_k": ["UNIQUE", "cat", "k"] + } + }, + "contact": { + "comment": "contact table", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "self": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 if the contact is the user him/her self"}, + "remote_self": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "rel": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": "The kind of the relation between the user and the contact"}, + "duplex": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": "Network protocol of the contact"}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Name that this contact is known by"}, + "nick": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Nick- and user name of the contact"}, + "location": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "about": {"type": "text", "comment": ""}, + "keywords": {"type": "text", "comment": "public keywords (interests) of the contact"}, + "gender": {"type": "varchar(32)", "not null": "1", "default": "", "comment": ""}, + "xmpp": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "attag": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "avatar": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "photo": {"type": "varchar(255)", "default": "", "comment": "Link to the profile photo of the contact"}, + "thumb": {"type": "varchar(255)", "default": "", "comment": "Link to the profile photo (thumb size)"}, + "micro": {"type": "varchar(255)", "default": "", "comment": "Link to the profile photo (micro size)"}, + "site-pubkey": {"type": "text", "comment": ""}, + "issued-id": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "dfrn-id": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "nurl": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "addr": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "alias": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "pubkey": {"type": "text", "comment": "RSA public key 4096 bit"}, + "prvkey": {"type": "text", "comment": "RSA private key 4096 bit"}, + "batch": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "request": {"type": "varchar(255)", "comment": ""}, + "notify": {"type": "varchar(255)", "comment": ""}, + "poll": {"type": "varchar(255)", "comment": ""}, + "confirm": {"type": "varchar(255)", "comment": ""}, + "poco": {"type": "varchar(255)", "comment": ""}, + "aes_allow": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "ret-aes": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "usehub": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "subhub": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "hub-verify": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "last-update": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of the last try to update the contact info"}, + "success_update": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of the last successful contact update"}, + "failure_update": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of the last failed update"}, + "name-date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "uri-date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "avatar-date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "term-date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "last-item": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "date of the last post"}, + "priority": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "blocked": {"type": "boolean", "not null": "1", "default": "1", "comment": ""}, + "readonly": {"type": "boolean", "not null": "1", "default": "0", "comment": "posts of the contact are readonly"}, + "writable": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "forum": {"type": "boolean", "not null": "1", "default": "0", "comment": "contact is a forum"}, + "prv": {"type": "boolean", "not null": "1", "default": "0", "comment": "contact is a private group"}, + "contact-type": {"type": "tinyint", "not null": "1", "default": "0", "comment": ""}, + "hidden": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "archive": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "pending": {"type": "boolean", "not null": "1", "default": "1", "comment": ""}, + "rating": {"type": "tinyint", "not null": "1", "default": "0", "comment": ""}, + "reason": {"type": "text", "comment": ""}, + "closeness": {"type": "tinyint unsigned", "not null": "1", "default": "99", "comment": ""}, + "info": {"type": "mediumtext", "comment": ""}, + "profile-id": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""}, + "bdyear": {"type": "varchar(4)", "not null": "1", "default": "", "comment": ""}, + "bd": {"type": "date", "not null": "1", "default": "0001-01-01", "comment": ""}, + "notify_new_posts": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "fetch_further_information": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "ffi_keyword_blacklist": {"type": "text", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_name": ["uid", "name(190)"], + "self_uid": ["self", "uid"], + "alias_uid": ["alias(32)", "uid"], + "pending_uid": ["pending", "uid"], + "blocked_uid": ["blocked", "uid"], + "uid_rel_network_poll": ["uid", "rel", "network", "poll(64)", "archive"], + "uid_network_batch": ["uid", "network", "batch(64)"], + "addr_uid": ["addr(32)", "uid"], + "nurl_uid": ["nurl(32)", "uid"], + "nick_uid": ["nick(32)", "uid"], + "dfrn-id": ["dfrn-id(64)"], + "issued-id": ["issued-id(64)"] + } + }, + "conv": { + "comment": "private messages", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "A unique identifier for this conversation"}, + "recips": {"type": "text", "comment": "sender_handle;recipient_handle"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "creator": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "handle of creator"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "creation timestamp"}, + "updated": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "edited timestamp"}, + "subject": {"type": "text", "comment": "subject of initial message"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid": ["uid"] + } + }, + "conversation": { + "comment": "Raw data and structure information for messages", + "fields": { + "item-uri": {"type": "varbinary(255)", "not null": "1", "primary": "1", "comment": "URI of the item"}, + "reply-to-uri": {"type": "varbinary(255)", "not null": "1", "default": "", "comment": "URI to which this item is a reply"}, + "conversation-uri": {"type": "varbinary(255)", "not null": "1", "default": "", "comment": "GNU Social conversation URI"}, + "conversation-href": {"type": "varbinary(255)", "not null": "1", "default": "", "comment": "GNU Social conversation link"}, + "protocol": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": "The protocol of the item"}, + "source": {"type": "mediumtext", "comment": "Original source"}, + "received": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Receiving date"} + }, + "indexes": { + "PRIMARY": ["item-uri"], + "conversation-uri": ["conversation-uri"], + "received": ["received"] + } + }, + "event": { + "comment": "Events", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "cid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "contact_id (ID of the contact in contact table)"}, + "uri": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "creation time"}, + "edited": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "last edit time"}, + "start": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "event start time"}, + "finish": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "event end time"}, + "summary": {"type": "text", "comment": "short description or title of the event"}, + "desc": {"type": "text", "comment": "event description"}, + "location": {"type": "text", "comment": "event location"}, + "type": {"type": "varchar(20)", "not null": "1", "default": "", "comment": "event or birthday"}, + "nofinish": {"type": "boolean", "not null": "1", "default": "0", "comment": "if event does have no end this is 1"}, + "adjust": {"type": "boolean", "not null": "1", "default": "1", "comment": "adjust to timezone of the recipient (0 or 1)"}, + "ignore": {"type": "boolean", "not null": "1", "default": "0", "comment": "0 or 1"}, + "allow_cid": {"type": "mediumtext", "comment": "Access Control - list of allowed contact.id '<19><78>'"}, + "allow_gid": {"type": "mediumtext", "comment": "Access Control - list of allowed groups"}, + "deny_cid": {"type": "mediumtext", "comment": "Access Control - list of denied contact.id"}, + "deny_gid": {"type": "mediumtext", "comment": "Access Control - list of denied groups"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_start": ["uid", "start"] + } + }, + "fcontact": { + "comment": "Diaspora compatible contacts - used in the Diaspora implementation", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "unique id"}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "photo": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "request": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "nick": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "addr": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "batch": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "notify": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "poll": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "confirm": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "priority": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": ""}, + "alias": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "pubkey": {"type": "text", "comment": ""}, + "updated": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "addr": ["addr(32)"], + "url": ["UNIQUE", "url(190)"] + } + }, + "fsuggest": { + "comment": "friend suggestion stuff", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "cid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": ""}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "request": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "photo": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "note": {"type": "text", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "gcign": { + "comment": "contacts ignored by friend suggestions", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Local User id"}, + "gcid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"gcontact": "id"}, "comment": "gcontact.id of ignored contact"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid": ["uid"], + "gcid": ["gcid"] + } + }, + "gcontact": { + "comment": "global contacts", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Name that this contact is known by"}, + "nick": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Nick- and user name of the contact"}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Link to the contacts profile page"}, + "nurl": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "photo": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Link to the profile photo"}, + "connect": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "updated": {"type": "datetime", "default": "0001-01-01 00:00:00", "comment": ""}, + "last_contact": {"type": "datetime", "default": "0001-01-01 00:00:00", "comment": ""}, + "last_failure": {"type": "datetime", "default": "0001-01-01 00:00:00", "comment": ""}, + "location": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "about": {"type": "text", "comment": ""}, + "keywords": {"type": "text", "comment": "puplic keywords (interests)"}, + "gender": {"type": "varchar(32)", "not null": "1", "default": "", "comment": ""}, + "birthday": {"type": "varchar(32)", "not null": "1", "default": "0001-01-01", "comment": ""}, + "community": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 if contact is forum account"}, + "contact-type": {"type": "tinyint", "not null": "1", "default": "-1", "comment": ""}, + "hide": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 = should be hidden from search"}, + "nsfw": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 = contact posts nsfw content"}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": "social network protocol"}, + "addr": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "notify": {"type": "varchar(255)", "comment": ""}, + "alias": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "generation": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "server_url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "baseurl of the contacts server"} + }, + "indexes": { + "PRIMARY": ["id"], + "nurl": ["UNIQUE", "nurl(190)"], + "name": ["name(64)"], + "nick": ["nick(32)"], + "addr": ["addr(64)"], + "hide_network_updated": ["hide", "network", "updated"], + "updated": ["updated"] + } + }, + "glink": { + "comment": "'friends of friends' linkages derived from poco", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "cid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "gcid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"gcontact": "id"}, "comment": ""}, + "zcid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"gcontact": "id"}, "comment": ""}, + "updated": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "cid_uid_gcid_zcid": ["UNIQUE", "cid", "uid", "gcid", "zcid"], + "gcid": ["gcid"] + } + }, + "group": { + "comment": "privacy groups, group info", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "visible": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 indicates the member list is not private"}, + "deleted": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 indicates the group has been deleted"}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "human readable name of group"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid": ["uid"] + } + }, + "group_member": { + "comment": "privacy groups, member info", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "gid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"group": "id"}, "comment": "groups.id of the associated group"}, + "contact-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "contact.id of the member assigned to the associated group"} + }, + "indexes": { + "PRIMARY": ["id"], + "contactid": ["contact-id"], + "gid_contactid": ["UNIQUE", "gid", "contact-id"] + } + }, + "gserver": { + "comment": "Global servers", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "nurl": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "version": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "site_name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "info": {"type": "text", "comment": ""}, + "register_policy": {"type": "tinyint", "not null": "1", "default": "0", "comment": ""}, + "registered-users": {"type": "int unsigned", "not null": "1", "default": "0", "comment": "Number of registered users"}, + "poco": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "noscrape": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": ""}, + "platform": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "relay-subscribe": {"type": "boolean", "not null": "1", "default": "0", "comment": "Has the server subscribed to the relay system"}, + "relay-scope": {"type": "varchar(10)", "not null": "1", "default": "", "comment": "The scope of messages that the server wants to get"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "last_poco_query": {"type": "datetime", "default": "0001-01-01 00:00:00", "comment": ""}, + "last_contact": {"type": "datetime", "default": "0001-01-01 00:00:00", "comment": ""}, + "last_failure": {"type": "datetime", "default": "0001-01-01 00:00:00", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "nurl": ["UNIQUE", "nurl(190)"] + } + }, + "gserver-tag": { + "comment": "Tags that the server has subscribed", + "fields": { + "gserver-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"gserver": "id"}, "primary": "1", "comment": "The id of the gserver"}, + "tag": {"type": "varchar(100)", "not null": "1", "default": "", "primary": "1", "comment": "Tag that the server has subscribed"} + }, + "indexes": { + "PRIMARY": ["gserver-id", "tag"], + "tag": ["tag"] + } + }, + "hook": { + "comment": "addon hook registry", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "hook": {"type": "varbinary(100)", "not null": "1", "default": "", "comment": "name of hook"}, + "file": {"type": "varbinary(200)", "not null": "1", "default": "", "comment": "relative filename of hook handler"}, + "function": {"type": "varbinary(200)", "not null": "1", "default": "", "comment": "function name of hook handler"}, + "priority": {"type": "smallint unsigned", "not null": "1", "default": "0", "comment": "not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order"} + }, + "indexes": { + "PRIMARY": ["id"], + "hook_file_function": ["UNIQUE", "hook", "file", "function"] + } + }, + "intro": { + "comment": "", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "fid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"fcontact": "id"}, "comment": ""}, + "contact-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": ""}, + "knowyou": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "duplex": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "note": {"type": "text", "comment": ""}, + "hash": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "datetime": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "blocked": {"type": "boolean", "not null": "1", "default": "1", "comment": ""}, + "ignore": {"type": "boolean", "not null": "1", "default": "0", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "item": { + "comment": "Structure for all posts", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "relation": {"thread": "iid"}}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "A unique identifier for this item"}, + "uri": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "uri-hash": {"type": "varchar(80)", "not null": "1", "default": "", "comment": "RIPEMD-128 hash from uri"}, + "parent": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"item": "id"}, "comment": "item.id of the parent to this item if it is a reply of some form; otherwise this must be set to the id of this item"}, + "parent-uri": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "uri of the parent to this item"}, + "thr-parent": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "If the parent of this item is not the top-level item in the conversation, the uri of the immediate parent; otherwise set to parent-uri"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Creation timestamp."}, + "edited": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of last edit (default is created)"}, + "commented": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of last comment/reply to this item"}, + "received": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime"}, + "changed": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date that something in the conversation changed, indicating clients should fetch the conversation again"}, + "gravity": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": "Network from where the item comes from"}, + "owner-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "Link to the contact table with uid=0 of the owner of this item"}, + "author-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "Link to the contact table with uid=0 of the author of this item"}, + "icid": {"type": "int unsigned", "relation": {"item-content": "id"}, "comment": "Id of the item-content table entry that contains the whole item content"}, + "iaid": {"type": "int unsigned", "relation": {"item-activity": "id"}, "comment": "Id of the item-activity table entry that contains the activity data"}, + "extid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "post-type": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": "Post type (personal note, bookmark, ...)"}, + "global": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "private": {"type": "boolean", "not null": "1", "default": "0", "comment": "distribution is restricted"}, + "visible": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "moderated": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "deleted": {"type": "boolean", "not null": "1", "default": "0", "comment": "item has been deleted"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner id which owns this copy of the item"}, + "contact-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "contact.id"}, + "wall": {"type": "boolean", "not null": "1", "default": "0", "comment": "This item was posted to the wall of uid"}, + "origin": {"type": "boolean", "not null": "1", "default": "0", "comment": "item originated at this site"}, + "pubmail": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "starred": {"type": "boolean", "not null": "1", "default": "0", "comment": "item has been favourited"}, + "unseen": {"type": "boolean", "not null": "1", "default": "1", "comment": "item has not been seen"}, + "mention": {"type": "boolean", "not null": "1", "default": "0", "comment": "The owner of this item was mentioned in it"}, + "forum_mode": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "psid": {"type": "int unsigned", "relation": {"permissionset": "id"}, "comment": "ID of the permission set of this post"}, + "resource-id": {"type": "varchar(32)", "not null": "1", "default": "", "comment": "Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type"}, + "event-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"event": "id"}, "comment": "Used to link to the event.id"}, + "attach": {"type": "mediumtext", "comment": "JSON structure representing attachments to this item"}, + "allow_cid": {"type": "mediumtext", "comment": "Deprecated"}, + "allow_gid": {"type": "mediumtext", "comment": "Deprecated"}, + "deny_cid": {"type": "mediumtext", "comment": "Deprecated"}, + "deny_gid": {"type": "mediumtext", "comment": "Deprecated"}, + "postopts": {"type": "text", "comment": "Deprecated"}, + "inform": {"type": "mediumtext", "comment": "Deprecated"}, + "type": {"type": "varchar(20)", "comment": "Deprecated"}, + "bookmark": {"type": "boolean", "comment": "Deprecated"}, + "file": {"type": "mediumtext", "comment": "Deprecated"}, + "location": {"type": "varchar(255)", "comment": "Deprecated"}, + "coord": {"type": "varchar(255)", "comment": "Deprecated"}, + "tag": {"type": "mediumtext", "comment": "Deprecated"}, + "plink": {"type": "varchar(255)", "comment": "Deprecated"}, + "title": {"type": "varchar(255)", "comment": "Deprecated"}, + "content-warning": {"type": "varchar(255)", "comment": "Deprecated"}, + "body": {"type": "mediumtext", "comment": "Deprecated"}, + "app": {"type": "varchar(255)", "comment": "Deprecated"}, + "verb": {"type": "varchar(100)", "comment": "Deprecated"}, + "object-type": {"type": "varchar(100)", "comment": "Deprecated"}, + "object": {"type": "text", "comment": "Deprecated"}, + "target-type": {"type": "varchar(100)", "comment": "Deprecated"}, + "target": {"type": "text", "comment": "Deprecated"}, + "author-name": {"type": "varchar(255)", "comment": "Deprecated"}, + "author-link": {"type": "varchar(255)", "comment": "Deprecated"}, + "author-avatar": {"type": "varchar(255)", "comment": "Deprecated"}, + "owner-name": {"type": "varchar(255)", "comment": "Deprecated"}, + "owner-link": {"type": "varchar(255)", "comment": "Deprecated"}, + "owner-avatar": {"type": "varchar(255)", "comment": "Deprecated"}, + "rendered-hash": {"type": "varchar(32)", "comment": "Deprecated"}, + "rendered-html": {"type": "mediumtext", "comment": "Deprecated"} + }, + "indexes": { + "PRIMARY": ["id"], + "guid": ["guid(191)"], + "uri": ["uri(191)"], + "parent": ["parent"], + "parent-uri": ["parent-uri(191)"], + "extid": ["extid(191)"], + "uid_id": ["uid", "id"], + "uid_contactid_id": ["uid", "contact-id", "id"], + "uid_created": ["uid", "created"], + "uid_commented": ["uid", "commented"], + "uid_unseen_contactid": ["uid", "unseen", "contact-id"], + "uid_network_received": ["uid", "network", "received"], + "uid_network_commented": ["uid", "network", "commented"], + "uid_thrparent": ["uid", "thr-parent(190)"], + "uid_parenturi": ["uid", "parent-uri(190)"], + "uid_contactid_created": ["uid", "contact-id", "created"], + "authorid_created": ["author-id", "created"], + "ownerid": ["owner-id"], + "uid_uri": ["uid", "uri(190)"], + "resource-id": ["resource-id"], + "deleted_changed": ["deleted", "changed"], + "uid_wall_changed": ["uid", "wall", "changed"], + "uid_eventid": ["uid", "event-id"], + "icid": ["icid"], + "iaid": ["iaid"], + "psid_wall": ["psid", "wall"] + } + }, + "item-activity": { + "comment": "Activities for items", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "relation": {"thread": "iid"}}, + "uri": {"type": "varchar(255)", "comment": ""}, + "uri-hash": {"type": "varchar(80)", "not null": "1", "default": "", "comment": "RIPEMD-128 hash from uri"}, + "activity": {"type": "smallint unsigned", "not null": "1", "default": "0", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "uri-hash": ["UNIQUE", "uri-hash"], + "uri": ["uri(191)"] + } + }, + "item-content": { + "comment": "Content for all posts", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "relation": {"thread": "iid"}}, + "uri": {"type": "varchar(255)", "comment": ""}, + "uri-plink-hash": {"type": "varchar(80)", "not null": "1", "default": "", "comment": "RIPEMD-128 hash from uri"}, + "title": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "item title"}, + "content-warning": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "body": {"type": "mediumtext", "comment": "item body content"}, + "location": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "text location where this item originated"}, + "coord": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "longitude/latitude pair representing location where this item originated"}, + "language": {"type": "text", "comment": "Language information about this post"}, + "app": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "application which generated this item"}, + "rendered-hash": {"type": "varchar(32)", "not null": "1", "default": "", "comment": ""}, + "rendered-html": {"type": "mediumtext", "comment": "item.body converted to html"}, + "object-type": {"type": "varchar(100)", "not null": "1", "default": "", "comment": "ActivityStreams object type"}, + "object": {"type": "text", "comment": "JSON encoded object structure unless it is an implied object (normal post)"}, + "target-type": {"type": "varchar(100)", "not null": "1", "default": "", "comment": "ActivityStreams target type if applicable (URI)"}, + "target": {"type": "text", "comment": "JSON encoded target structure if used"}, + "plink": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "permalink or URL to a displayable copy of the message at its source"}, + "verb": {"type": "varchar(100)", "not null": "1", "default": "", "comment": "ActivityStreams verb"} + }, + "indexes": { + "PRIMARY": ["id"], + "uri-plink-hash": ["UNIQUE", "uri-plink-hash"], + "uri": ["uri(191)"] + } + }, + "item-delivery-data": { + "comment": "Delivery data for items", + "fields": { + "iid": {"type": "int unsigned", "not null": "1", "primary": "1", "relation": {"item": "id"}, "comment": "Item id"}, + "postopts": {"type": "text", "comment": "External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery"}, + "inform": {"type": "mediumtext", "comment": "Additional receivers of the linked item"} + }, + "indexes": { + "PRIMARY": ["iid"] + } + }, + "locks": { + "comment": "", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "name": {"type": "varchar(128)", "not null": "1", "default": "", "comment": ""}, + "locked": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "pid": {"type": "int unsigned", "not null": "1", "default": "0", "comment": "Process ID"}, + "expires": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime of cache expiration"} + }, + "indexes": { + "PRIMARY": ["id"], + "name_expires": ["name", "expires"] + } + }, + "mail": { + "comment": "private messages", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "A unique identifier for this private message"}, + "from-name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "name of the sender"}, + "from-photo": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "contact photo link of the sender"}, + "from-url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "profile linke of the sender"}, + "contact-id": {"type": "varchar(255)", "not null": "1", "default": "", "relation": {"contact": "id"}, "comment": "contact.id"}, + "convid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"conv": "id"}, "comment": "conv.id"}, + "title": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "body": {"type": "mediumtext", "comment": ""}, + "seen": {"type": "boolean", "not null": "1", "default": "0", "comment": "if message visited it is 1"}, + "reply": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "replied": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "unknown": {"type": "boolean", "not null": "1", "default": "0", "comment": "if sender not in the contact table this is 1"}, + "uri": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "parent-uri": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "creation time of the private message"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_seen": ["uid", "seen"], + "convid": ["convid"], + "uri": ["uri(64)"], + "parent-uri": ["parent-uri(64)"], + "contactid": ["contact-id(32)"] + } + }, + "mailacct": { + "comment": "Mail account data for fetching mails", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "server": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "port": {"type": "smallint unsigned", "not null": "1", "default": "0", "comment": ""}, + "ssltype": {"type": "varchar(16)", "not null": "1", "default": "", "comment": ""}, + "mailbox": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "user": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "pass": {"type": "text", "comment": ""}, + "reply_to": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "action": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "movetofolder": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "pubmail": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "last_check": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "manage": { + "comment": "table of accounts that can manage each other", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "mid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_mid": ["UNIQUE", "uid", "mid"] + } + }, + "notify": { + "comment": "notifications", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "hash": {"type": "varchar(64)", "not null": "1", "default": "", "comment": ""}, + "type": {"type": "smallint unsigned", "not null": "1", "default": "0", "comment": ""}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "photo": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "msg": {"type": "mediumtext", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "link": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "iid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"item": "id"}, "comment": "item.id"}, + "parent": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"item": "id"}, "comment": ""}, + "seen": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "verb": {"type": "varchar(100)", "not null": "1", "default": "", "comment": ""}, + "otype": {"type": "varchar(10)", "not null": "1", "default": "", "comment": ""}, + "name_cache": {"type": "tinytext", "comment": "Cached bbcode parsing of name"}, + "msg_cache": {"type": "mediumtext", "comment": "Cached bbcode parsing of msg"} + }, + "indexes": { + "PRIMARY": ["id"], + "hash_uid": ["hash", "uid"], + "seen_uid_date": ["seen", "uid", "date"], + "uid_date": ["uid", "date"], + "uid_type_link": ["uid", "type", "link(190)"] + } + }, + "notify-threads": { + "comment": "", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "notify-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"notify": "id"}, "comment": ""}, + "master-parent-item": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"item": "id"}, "comment": ""}, + "parent-item": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""}, + "receiver-uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "oembed": { + "comment": "cache for OEmbed queries", + "fields": { + "url": {"type": "varbinary(255)", "not null": "1", "primary": "1", "comment": "page url"}, + "maxwidth": {"type": "mediumint unsigned", "not null": "1", "primary": "1", "comment": "Maximum width passed to Oembed"}, + "content": {"type": "mediumtext", "comment": "OEmbed data of the page"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime of creation"} + }, + "indexes": { + "PRIMARY": ["url", "maxwidth"], + "created": ["created"] + } + }, + "openwebauth-token": { + "comment": "Store OpenWebAuth token to verify contacts", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "type": {"type": "varchar(32)", "not null": "1", "default": "", "comment": "Verify type"}, + "token": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "A generated token"}, + "meta": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime of creation"} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "parsed_url": { + "comment": "cache for 'parse_url' queries", + "fields": { + "url": {"type": "varbinary(255)", "not null": "1", "primary": "1", "comment": "page url"}, + "guessing": {"type": "boolean", "not null": "1", "default": "0", "primary": "1", "comment": "is the 'guessing' mode active?"}, + "oembed": {"type": "boolean", "not null": "1", "default": "0", "primary": "1", "comment": "is the data the result of oembed?"}, + "content": {"type": "mediumtext", "comment": "page data"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "datetime of creation"} + }, + "indexes": { + "PRIMARY": ["url", "guessing", "oembed"], + "created": ["created"] + } + }, + "participation": { + "comment": "Storage for participation messages from Diaspora", + "fields": { + "iid": {"type": "int unsigned", "not null": "1", "primary": "1", "relation": {"item": "id"}, "comment": ""}, + "server": {"type": "varchar(60)", "not null": "1", "primary": "1", "comment": ""}, + "cid": {"type": "int unsigned", "not null": "1", "relation": {"contact": "id"}, "comment": ""}, + "fid": {"type": "int unsigned", "not null": "1", "relation": {"fcontact": "id"}, "comment": ""} + }, + "indexes": { + "PRIMARY": ["iid", "server"] + } + }, + "pconfig": { + "comment": "personal (per user) configuration storage", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "cat": {"type": "varbinary(50)", "not null": "1", "default": "", "comment": ""}, + "k": {"type": "varbinary(100)", "not null": "1", "default": "", "comment": ""}, + "v": {"type": "mediumtext", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_cat_k": ["UNIQUE", "uid", "cat", "k"] + } + }, + "permissionset": { + "comment": "", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner id of this permission set"}, + "allow_cid": {"type": "mediumtext", "comment": "Access Control - list of allowed contact.id '<19><78>'"}, + "allow_gid": {"type": "mediumtext", "comment": "Access Control - list of allowed groups"}, + "deny_cid": {"type": "mediumtext", "comment": "Access Control - list of denied contact.id"}, + "deny_gid": {"type": "mediumtext", "comment": "Access Control - list of denied groups"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_allow_cid_allow_gid_deny_cid_deny_gid": ["allow_cid(50)", "allow_gid(30)", "deny_cid(50)", "deny_gid(30)"] + } + }, + "photo": { + "comment": "photo storage", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "contact-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "contact.id"}, + "guid": {"type": "char(16)", "not null": "1", "default": "", "comment": "A unique identifier for this photo"}, + "resource-id": {"type": "char(32)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "creation date"}, + "edited": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "last edited date"}, + "title": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "desc": {"type": "text", "comment": ""}, + "album": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "The name of the album to which the photo belongs"}, + "filename": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "type": {"type": "varchar(30)", "not null": "1", "default": "image/jpeg"}, + "height": {"type": "smallint unsigned", "not null": "1", "default": "0", "comment": ""}, + "width": {"type": "smallint unsigned", "not null": "1", "default": "0", "comment": ""}, + "datasize": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""}, + "data": {"type": "mediumblob", "not null": "1", "comment": ""}, + "scale": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "profile": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "allow_cid": {"type": "mediumtext", "comment": "Access Control - list of allowed contact.id '<19><78>'"}, + "allow_gid": {"type": "mediumtext", "comment": "Access Control - list of allowed groups"}, + "deny_cid": {"type": "mediumtext", "comment": "Access Control - list of denied contact.id"}, + "deny_gid": {"type": "mediumtext", "comment": "Access Control - list of denied groups"} + }, + "indexes": { + "PRIMARY": ["id"], + "contactid": ["contact-id"], + "uid_contactid": ["uid", "contact-id"], + "uid_profile": ["uid", "profile"], + "uid_album_scale_created": ["uid", "album(32)", "scale", "created"], + "uid_album_resource-id_created": ["uid", "album(32)", "resource-id", "created"], + "resource-id": ["resource-id"] + } + }, + "poll": { + "comment": "Currently unused table for storing poll results", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "q0": {"type": "text", "comment": ""}, + "q1": {"type": "text", "comment": ""}, + "q2": {"type": "text", "comment": ""}, + "q3": {"type": "text", "comment": ""}, + "q4": {"type": "text", "comment": ""}, + "q5": {"type": "text", "comment": ""}, + "q6": {"type": "text", "comment": ""}, + "q7": {"type": "text", "comment": ""}, + "q8": {"type": "text", "comment": ""}, + "q9": {"type": "text", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "uid": ["uid"] + } + }, + "poll_result": { + "comment": "data for polls - currently unused", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "poll_id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"poll": "id"}}, + "choice": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "poll_id": ["poll_id"] + } + }, + "process": { + "comment": "Currently running system processes", + "fields": { + "pid": {"type": "int unsigned", "not null": "1", "primary": "1", "comment": ""}, + "command": {"type": "varbinary(32)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""} + }, + "indexes": { + "PRIMARY": ["pid"], + "command": ["command"] + } + }, + "profile": { + "comment": "user profiles data", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "Owner User id"}, + "profile-name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Name of the profile"}, + "is-default": {"type": "boolean", "not null": "1", "default": "0", "comment": "Mark this profile as default profile"}, + "hide-friends": {"type": "boolean", "not null": "1", "default": "0", "comment": "Hide friend list from viewers of this profile"}, + "name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "pdesc": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Title or description"}, + "dob": {"type": "varchar(32)", "not null": "1", "default": "0000-00-00", "comment": "Day of birth"}, + "address": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "locality": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "region": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "postal-code": {"type": "varchar(32)", "not null": "1", "default": "", "comment": ""}, + "country-name": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "hometown": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "gender": {"type": "varchar(32)", "not null": "1", "default": "", "comment": ""}, + "marital": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "with": {"type": "text", "comment": ""}, + "howlong": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "sexual": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "politic": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "religion": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "pub_keywords": {"type": "text", "comment": ""}, + "prv_keywords": {"type": "text", "comment": ""}, + "likes": {"type": "text", "comment": ""}, + "dislikes": {"type": "text", "comment": ""}, + "about": {"type": "text", "comment": ""}, + "summary": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "music": {"type": "text", "comment": ""}, + "book": {"type": "text", "comment": ""}, + "tv": {"type": "text", "comment": ""}, + "film": {"type": "text", "comment": ""}, + "interest": {"type": "text", "comment": ""}, + "romance": {"type": "text", "comment": ""}, + "work": {"type": "text", "comment": ""}, + "education": {"type": "text", "comment": ""}, + "contact": {"type": "text", "comment": ""}, + "homepage": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "xmpp": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "photo": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "thumb": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "publish": {"type": "boolean", "not null": "1", "default": "0", "comment": "publish default profile in local directory"}, + "net-publish": {"type": "boolean", "not null": "1", "default": "0", "comment": "publish profile in global directory"} + }, + "indexes": { + "PRIMARY": ["id"], + "uid_is-default": ["uid", "is-default"] + } + }, + "profile_check": { + "comment": "DFRN remote auth use", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "cid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "contact.id"}, + "dfrn_id": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "sec": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "expire": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "push_subscriber": { + "comment": "Used for OStatus: Contains feed subscribers", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "callback_url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "topic": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "nickname": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "push": {"type": "tinyint", "not null": "1", "default": "0", "comment": "Retrial counter"}, + "last_update": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of last successful trial"}, + "next_try": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Next retrial date"}, + "renewed": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of last subscription renewal"}, + "secret": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "next_try": ["next_try"] + } + }, + "queue": { + "comment": "Queue for messages that couldn't be delivered", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "cid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "Message receiver"}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": "Receiver's network"}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Unique GUID of the message"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date, when the message was created"}, + "last": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Date of last trial"}, + "next": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Next retrial date"}, + "retrial": {"type": "tinyint", "not null": "1", "default": "0", "comment": "Retrial counter"}, + "content": {"type": "mediumtext", "comment": ""}, + "batch": {"type": "boolean", "not null": "1", "default": "0", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "last": ["last"], + "next": ["next"] + } + }, + "register": { + "comment": "registrations requiring admin approval", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "hash": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "password": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "language": {"type": "varchar(16)", "not null": "1", "default": "", "comment": ""}, + "note": {"type": "text", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "search": { + "comment": "", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "term": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "uid": ["uid"] + } + }, + "session": { + "comment": "web session storage", + "fields": { + "id": {"type": "bigint unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "sid": {"type": "varbinary(255)", "not null": "1", "default": "", "comment": ""}, + "data": {"type": "text", "comment": ""}, + "expire": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "sid": ["sid(64)"], + "expire": ["expire"] + } + }, + "sign": { + "comment": "Diaspora signatures", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "iid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"item": "id"}, "comment": "item.id"}, + "signed_text": {"type": "mediumtext", "comment": ""}, + "signature": {"type": "text", "comment": ""}, + "signer": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "iid": ["UNIQUE", "iid"] + } + }, + "term": { + "comment": "item taxonomy (categories, tags, etc.) table", + "fields": { + "tid": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": ""}, + "oid": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"item": "id"}, "comment": ""}, + "otype": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "type": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "term": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "url": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "guid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "received": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "global": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"} + }, + "indexes": { + "PRIMARY": ["tid"], + "oid_otype_type_term": ["oid", "otype", "type", "term(32)"], + "uid_otype_type_term_global_created": ["uid", "otype", "type", "term(32)", "global", "created"], + "uid_otype_type_url": ["uid", "otype", "type", "url(64)"], + "guid": ["guid(64)"] + } + }, + "thread": { + "comment": "Thread related data", + "fields": { + "iid": {"type": "int unsigned", "not null": "1", "default": "0", "primary": "1", "relation": {"item": "id"}, "comment": "sequential ID"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"}, + "contact-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": ""}, + "owner-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "Item owner"}, + "author-id": {"type": "int unsigned", "not null": "1", "default": "0", "relation": {"contact": "id"}, "comment": "Item author"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "edited": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "commented": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "received": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "changed": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": ""}, + "wall": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "private": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "pubmail": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "moderated": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "visible": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "starred": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "ignored": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "post-type": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": "Post type (personal note, bookmark, ...)"}, + "unseen": {"type": "boolean", "not null": "1", "default": "1", "comment": ""}, + "deleted": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "origin": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "forum_mode": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "mention": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "network": {"type": "char(4)", "not null": "1", "default": "", "comment": ""}, + "bookmark": {"type": "boolean", "comment": ""} + }, + "indexes": { + "PRIMARY": ["iid"], + "uid_network_commented": ["uid", "network", "commented"], + "uid_network_created": ["uid", "network", "created"], + "uid_contactid_commented": ["uid", "contact-id", "commented"], + "uid_contactid_created": ["uid", "contact-id", "created"], + "contactid": ["contact-id"], + "ownerid": ["owner-id"], + "authorid": ["author-id"], + "uid_created": ["uid", "created"], + "uid_commented": ["uid", "commented"], + "uid_wall_created": ["uid", "wall", "created"], + "private_wall_origin_commented": ["private", "wall", "origin", "commented"] + } + }, + "tokens": { + "comment": "OAuth usage", + "fields": { + "id": {"type": "varchar(40)", "not null": "1", "primary": "1", "comment": ""}, + "secret": {"type": "text", "comment": ""}, + "client_id": {"type": "varchar(20)", "not null": "1", "default": "", "relation": {"clients": "client_id"}}, + "expires": {"type": "int", "not null": "1", "default": "0", "comment": ""}, + "scope": {"type": "varchar(200)", "not null": "1", "default": "", "comment": ""}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "User id"} + }, + "indexes": { + "PRIMARY": ["id"] + } + }, + "user": { + "comment": "The local users", + "fields": { + "uid": {"type": "mediumint unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "parent-uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "relation": {"user": "uid"}, "comment": "The parent user that has full control about this user"}, + "guid": {"type": "varchar(64)", "not null": "1", "default": "", "comment": "A unique identifier for this user"}, + "username": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Name that this user is known by"}, + "password": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "encrypted password"}, + "legacy_password": {"type": "boolean", "not null": "1", "default": "0", "comment": "Is the password hash double-hashed?"}, + "nickname": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "nick- and user name"}, + "email": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "the users email address"}, + "openid": {"type": "varchar(255)", "not null": "1", "default": "", "comment": ""}, + "timezone": {"type": "varchar(128)", "not null": "1", "default": "", "comment": "PHP-legal timezone"}, + "language": {"type": "varchar(32)", "not null": "1", "default": "en", "comment": "default language"}, + "register_date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "timestamp of registration"}, + "login_date": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "timestamp of last login"}, + "default-location": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "Default for item.location"}, + "allow_location": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 allows to display the location"}, + "theme": {"type": "varchar(255)", "not null": "1", "default": "", "comment": "user theme preference"}, + "pubkey": {"type": "text", "comment": "RSA public key 4096 bit"}, + "prvkey": {"type": "text", "comment": "RSA private key 4096 bit"}, + "spubkey": {"type": "text", "comment": ""}, + "sprvkey": {"type": "text", "comment": ""}, + "verified": {"type": "boolean", "not null": "1", "default": "0", "comment": "user is verified through email"}, + "blocked": {"type": "boolean", "not null": "1", "default": "0", "comment": "1 for user is blocked"}, + "blockwall": {"type": "boolean", "not null": "1", "default": "0", "comment": "Prohibit contacts to post to the profile page of the user"}, + "hidewall": {"type": "boolean", "not null": "1", "default": "0", "comment": "Hide profile details from unkown viewers"}, + "blocktags": {"type": "boolean", "not null": "1", "default": "0", "comment": "Prohibit contacts to tag the post of this user"}, + "unkmail": {"type": "boolean", "not null": "1", "default": "0", "comment": "Permit unknown people to send private mails to this user"}, + "cntunkmail": {"type": "int unsigned", "not null": "1", "default": "10", "comment": ""}, + "notify-flags": {"type": "smallint unsigned", "not null": "1", "default": "65535", "comment": "email notification options"}, + "page-flags": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": "page/profile type"}, + "account-type": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": ""}, + "prvnets": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "pwdreset": {"type": "varchar(255)", "comment": "Password reset request token"}, + "pwdreset_time": {"type": "datetime", "comment": "Timestamp of the last password reset request"}, + "maxreq": {"type": "int unsigned", "not null": "1", "default": "10", "comment": ""}, + "expire": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""}, + "account_removed": {"type": "boolean", "not null": "1", "default": "0", "comment": "if 1 the account is removed"}, + "account_expired": {"type": "boolean", "not null": "1", "default": "0", "comment": ""}, + "account_expires_on": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "timestamp when account expires and will be deleted"}, + "expire_notification_sent": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "timestamp of last warning of account expiration"}, + "def_gid": {"type": "int unsigned", "not null": "1", "default": "0", "comment": ""}, + "allow_cid": {"type": "mediumtext", "comment": "default permission for this user"}, + "allow_gid": {"type": "mediumtext", "comment": "default permission for this user"}, + "deny_cid": {"type": "mediumtext", "comment": "default permission for this user"}, + "deny_gid": {"type": "mediumtext", "comment": "default permission for this user"}, + "openidserver": {"type": "text", "comment": ""} + }, + "indexes": { + "PRIMARY": ["uid"], + "nickname": ["nickname(32)"] + } + }, + "userd": { + "comment": "Deleted usernames", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "sequential ID"}, + "username": {"type": "varchar(255)", "not null": "1", "comment": ""} + }, + "indexes": { + "PRIMARY": ["id"], + "username": ["username(32)"] + } + }, + "user-item": { + "comment": "User specific item data", + "fields": { + "iid": {"type": "int unsigned", "not null": "1", "default": "0", "primary": "1", "relation": {"item": "id"}, "comment": "Item id"}, + "uid": {"type": "mediumint unsigned", "not null": "1", "default": "0", "primary": "1", "relation": {"user": "uid"}, "comment": "User id"}, + "hidden": {"type": "boolean", "not null": "1", "default": "0", "comment": "Marker to hide an item from the user"} + }, + "indexes": { + "PRIMARY": ["uid", "iid"] + } + }, + "worker-ipc": { + "comment": "Inter process communication between the frontend and the worker", + "fields": { + "key": {"type": "int", "not null": "1", "primary": "1", "comment": ""}, + "jobs": {"type": "boolean", "comment": "Flag for outstanding jobs"} + }, + "indexes": { + "PRIMARY": ["key"] + }, + "engine": "MEMORY" + }, + "workerqueue": { + "comment": "Background tasks queue entries", + "fields": { + "id": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "Auto incremented worker task id"}, + "parameter": {"type": "mediumblob", "comment": "Task command"}, + "priority": {"type": "tinyint unsigned", "not null": "1", "default": "0", "comment": "Task priority"}, + "created": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Creation date"}, + "pid": {"type": "int unsigned", "not null": "1", "default": "0", "comment": "Process id of the worker"}, + "executed": {"type": "datetime", "not null": "1", "default": "0001-01-01 00:00:00", "comment": "Execution date"}, + "done": {"type": "boolean", "not null": "1", "default": "0", "comment": "Marked 1 when the task was done - will be deleted later"} + }, + "indexes": { + "PRIMARY": ["id"], + "pid": ["pid"], + "parameter": ["parameter(64)"], + "priority_created": ["priority", "created"], + "done_executed": ["done", "executed"] + } + } +} \ No newline at end of file diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index 5ff15227b4..d6cd66aafa 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -820,1262 +820,41 @@ class DBStructure return $retval; } + /** + * Loads the database structure definition from the /config/dbstructure.json file + * + * Expected format: + * "table_name": { + * "comment": "meaningful table comment", + * "fields": { + * "field_name1": {"type": "int unsigned", "not null": "1", "extra": "auto_increment", "primary": "1", "comment": "meaningful field comment"}, + * "field_name2": {"type": "varchar(50)", "not null": "1", "default": "", "comment": "meaningful field comment"}, + * }, + * "indexes": { + * "PRIMARY": ["field_name1"], + * "name": ["UNIQUE", "field_name2"] + * } + * } + * + * @return array + * @throws Exception + */ public static function definition() { - $database = []; + $a = \Friendica\BaseObject::getApp(); - $database["addon"] = [ - "comment" => "registered addons", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""], - "name" => ["type" => "varchar(50)", "not null" => "1", "default" => "", "comment" => "addon base (file)name"], - "version" => ["type" => "varchar(50)", "not null" => "1", "default" => "", "comment" => "currently unused"], - "installed" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "currently always 1"], - "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "currently unused"], - "timestamp" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "file timestamp to check for reloads"], - "plugin_admin" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 = has admin config, 0 = has no admin config"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "name" => ["UNIQUE", "name"], - ] - ]; - $database["attach"] = [ - "comment" => "file attachments", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "generated index"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "hash" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => "hash"], - "filename" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "filename of original"], - "filetype" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => "mimetype"], - "filesize" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "size in bytes"], - "data" => ["type" => "longblob", "not null" => "1", "comment" => "file data"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "creation time"], - "edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "last edit time"], - "allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>"], - "allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"], - "deny_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied contact.id"], - "deny_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied groups"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["auth_codes"] = [ - "comment" => "OAuth usage", - "fields" => [ - "id" => ["type" => "varchar(40)", "not null" => "1", "primary" => "1", "comment" => ""], - "client_id" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "relation" => ["clients" => "client_id"], "comment" => ""], - "redirect_uri" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""], - "expires" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""], - "scope" => ["type" => "varchar(250)", "not null" => "1", "default" => "", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["cache"] = [ - "comment" => "Stores temporary data", - "fields" => [ - "k" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "cache key"], - "v" => ["type" => "mediumtext", "comment" => "cached serialized value"], - "expires" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime of cache expiration"], - "updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime of cache insertion"], - ], - "indexes" => [ - "PRIMARY" => ["k"], - "k_expires" => ["k", "expires"], - ] - ]; - $database["challenge"] = [ - "comment" => "", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "challenge" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "dfrn-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "type" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "last_update" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["clients"] = [ - "comment" => "OAuth usage", - "fields" => [ - "client_id" => ["type" => "varchar(20)", "not null" => "1", "primary" => "1", "comment" => ""], - "pw" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => ""], - "redirect_uri" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""], - "name" => ["type" => "text", "comment" => ""], - "icon" => ["type" => "text", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - ], - "indexes" => [ - "PRIMARY" => ["client_id"], - ] - ]; - $database["config"] = [ - "comment" => "main configuration storage", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""], - "cat" => ["type" => "varbinary(50)", "not null" => "1", "default" => "", "comment" => ""], - "k" => ["type" => "varbinary(50)", "not null" => "1", "default" => "", "comment" => ""], - "v" => ["type" => "mediumtext", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "cat_k" => ["UNIQUE", "cat", "k"], - ] - ]; - $database["contact"] = [ - "comment" => "contact table", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 if the contact is the user him/her self"], - "remote_self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "rel" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "The kind of the relation between the user and the contact"], - "duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Network protocol of the contact"], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name that this contact is known by"], - "nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Nick- and user name of the contact"], - "location" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "about" => ["type" => "text", "comment" => ""], - "keywords" => ["type" => "text", "comment" => "public keywords (interests) of the contact"], - "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""], - "xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "attag" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "photo" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo of the contact"], - "thumb" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo (thumb size)"], - "micro" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo (micro size)"], - "site-pubkey" => ["type" => "text", "comment" => ""], - "issued-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "dfrn-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "nurl" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "addr" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "pubkey" => ["type" => "text", "comment" => "RSA public key 4096 bit"], - "prvkey" => ["type" => "text", "comment" => "RSA private key 4096 bit"], - "batch" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "request" => ["type" => "varchar(255)", "comment" => ""], - "notify" => ["type" => "varchar(255)", "comment" => ""], - "poll" => ["type" => "varchar(255)", "comment" => ""], - "confirm" => ["type" => "varchar(255)", "comment" => ""], - "poco" => ["type" => "varchar(255)", "comment" => ""], - "aes_allow" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "ret-aes" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "usehub" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "subhub" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "hub-verify" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "last-update" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of the last try to update the contact info"], - "success_update" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of the last successful contact update"], - "failure_update" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of the last failed update"], - "name-date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "uri-date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "avatar-date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "term-date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "last-item" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "date of the last post"], - "priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "blocked" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""], - "readonly" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "posts of the contact are readonly"], - "writable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "forum" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a forum"], - "prv" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a private group"], - "contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""], - "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "archive" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "pending" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""], - "rating" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""], - "reason" => ["type" => "text", "comment" => ""], - "closeness" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "99", "comment" => ""], - "info" => ["type" => "mediumtext", "comment" => ""], - "profile-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "bdyear" => ["type" => "varchar(4)", "not null" => "1", "default" => "", "comment" => ""], - "bd" => ["type" => "date", "not null" => "1", "default" => "0001-01-01", "comment" => ""], - "notify_new_posts" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "fetch_further_information" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "ffi_keyword_blacklist" => ["type" => "text", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_name" => ["uid", "name(190)"], - "self_uid" => ["self", "uid"], - "alias_uid" => ["alias(32)", "uid"], - "pending_uid" => ["pending", "uid"], - "blocked_uid" => ["blocked", "uid"], - "uid_rel_network_poll" => ["uid", "rel", "network", "poll(64)", "archive"], - "uid_network_batch" => ["uid", "network", "batch(64)"], - "addr_uid" => ["addr(32)", "uid"], - "nurl_uid" => ["nurl(32)", "uid"], - "nick_uid" => ["nick(32)", "uid"], - "dfrn-id" => ["dfrn-id(64)"], - "issued-id" => ["issued-id(64)"], - ] - ]; - $database["conv"] = [ - "comment" => "private messages", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "A unique identifier for this conversation"], - "recips" => ["type" => "text", "comment" => "sender_handle;recipient_handle"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "creator" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "handle of creator"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "creation timestamp"], - "updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "edited timestamp"], - "subject" => ["type" => "text", "comment" => "subject of initial message"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid" => ["uid"], - ] - ]; - $database["conversation"] = [ - "comment" => "Raw data and structure information for messages", - "fields" => [ - "item-uri" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "URI of the item"], - "reply-to-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "URI to which this item is a reply"], - "conversation-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation URI"], - "conversation-href" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation link"], - "protocol" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "The protocol of the item"], - "source" => ["type" => "mediumtext", "comment" => "Original source"], - "received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Receiving date"], - ], - "indexes" => [ - "PRIMARY" => ["item-uri"], - "conversation-uri" => ["conversation-uri"], - "received" => ["received"], - ] - ]; - $database["event"] = [ - "comment" => "Events", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "contact_id (ID of the contact in contact table)"], - "uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "creation time"], - "edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "last edit time"], - "start" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "event start time"], - "finish" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "event end time"], - "summary" => ["type" => "text", "comment" => "short description or title of the event"], - "desc" => ["type" => "text", "comment" => "event description"], - "location" => ["type" => "text", "comment" => "event location"], - "type" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => "event or birthday"], - "nofinish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "if event does have no end this is 1"], - "adjust" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "adjust to timezone of the recipient (0 or 1)"], - "ignore" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "0 or 1"], - "allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>'"], - "allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"], - "deny_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied contact.id"], - "deny_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied groups"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_start" => ["uid", "start"], - ] - ]; - $database["fcontact"] = [ - "comment" => "Diaspora compatible contacts - used in the Diaspora implementation", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "unique id"], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "request" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "addr" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "batch" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "notify" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "poll" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "confirm" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""], - "alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "pubkey" => ["type" => "text", "comment" => ""], - "updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "addr" => ["addr(32)"], - "url" => ["UNIQUE", "url(190)"], - ] - ]; - $database["fsuggest"] = [ - "comment" => "friend suggestion stuff", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "request" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "note" => ["type" => "text", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["gcign"] = [ - "comment" => "contacts ignored by friend suggestions", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Local User id"], - "gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => "gcontact.id of ignored contact"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid" => ["uid"], - "gcid" => ["gcid"], - ] - ]; - $database["gcontact"] = [ - "comment" => "global contacts", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name that this contact is known by"], - "nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Nick- and user name of the contact"], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Link to the contacts profile page"], - "nurl" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Link to the profile photo"], - "connect" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "updated" => ["type" => "datetime", "default" => NULL_DATE, "comment" => ""], - "last_contact" => ["type" => "datetime", "default" => NULL_DATE, "comment" => ""], - "last_failure" => ["type" => "datetime", "default" => NULL_DATE, "comment" => ""], - "location" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "about" => ["type" => "text", "comment" => ""], - "keywords" => ["type" => "text", "comment" => "puplic keywords (interests)"], - "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""], - "birthday" => ["type" => "varchar(32)", "not null" => "1", "default" => "0001-01-01", "comment" => ""], - "community" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 if contact is forum account"], - "contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "-1", "comment" => ""], - "hide" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 = should be hidden from search"], - "nsfw" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 = contact posts nsfw content"], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "social network protocol"], - "addr" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "notify" => ["type" => "varchar(255)", "comment" => ""], - "alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "generation" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "server_url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "baseurl of the contacts server"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "nurl" => ["UNIQUE", "nurl(190)"], - "name" => ["name(64)"], - "nick" => ["nick(32)"], - "addr" => ["addr(64)"], - "hide_network_updated" => ["hide", "network", "updated"], - "updated" => ["updated"], - ] - ]; - $database["glink"] = [ - "comment" => "'friends of friends' linkages derived from poco", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""], - "zcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""], - "updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "cid_uid_gcid_zcid" => ["UNIQUE", "cid","uid","gcid","zcid"], - "gcid" => ["gcid"], - ] - ]; - $database["group"] = [ - "comment" => "privacy groups, group info", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 indicates the member list is not private"], - "deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 indicates the group has been deleted"], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "human readable name of group"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid" => ["uid"], - ] - ]; - $database["group_member"] = [ - "comment" => "privacy groups, member info", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "gid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["group" => "id"], "comment" => "groups.id of the associated group"], - "contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "contact.id of the member assigned to the associated group"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "contactid" => ["contact-id"], - "gid_contactid" => ["UNIQUE", "gid", "contact-id"], - ] - ]; - $database["gserver"] = [ - "comment" => "Global servers", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "nurl" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "version" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "site_name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "info" => ["type" => "text", "comment" => ""], - "register_policy" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""], - "registered-users" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "Number of registered users"], - "poco" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "noscrape" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""], - "platform" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "relay-subscribe" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Has the server subscribed to the relay system"], - "relay-scope" => ["type" => "varchar(10)", "not null" => "1", "default" => "", "comment" => "The scope of messages that the server wants to get"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "last_poco_query" => ["type" => "datetime", "default" => NULL_DATE, "comment" => ""], - "last_contact" => ["type" => "datetime", "default" => NULL_DATE, "comment" => ""], - "last_failure" => ["type" => "datetime", "default" => NULL_DATE, "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "nurl" => ["UNIQUE", "nurl(190)"], - ] - ]; - $database["gserver-tag"] = [ - "comment" => "Tags that the server has subscribed", - "fields" => [ - "gserver-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gserver" => "id"], "primary" => "1", "comment" => "The id of the gserver"], - "tag" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "primary" => "1", "comment" => "Tag that the server has subscribed"], - ], - "indexes" => [ - "PRIMARY" => ["gserver-id", "tag"], - "tag" => ["tag"], - ] - ]; - $database["hook"] = [ - "comment" => "addon hook registry", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "hook" => ["type" => "varbinary(100)", "not null" => "1", "default" => "", "comment" => "name of hook"], - "file" => ["type" => "varbinary(200)", "not null" => "1", "default" => "", "comment" => "relative filename of hook handler"], - "function" => ["type" => "varbinary(200)", "not null" => "1", "default" => "", "comment" => "function name of hook handler"], - "priority" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => "not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "hook_file_function" => ["UNIQUE", "hook", "file", "function"], - ] - ]; - $database["intro"] = [ - "comment" => "", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "fid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["fcontact" => "id"], "comment" => ""], - "contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""], - "knowyou" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "note" => ["type" => "text", "comment" => ""], - "hash" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "datetime" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "blocked" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""], - "ignore" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["item"] = [ - "comment" => "Structure for all posts", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "relation" => ["thread" => "iid"]], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "A unique identifier for this item"], - "uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "uri-hash" => ["type" => "varchar(80)", "not null" => "1", "default" => "", "comment" => "RIPEMD-128 hash from uri"], - "parent" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => "item.id of the parent to this item if it is a reply of some form; otherwise this must be set to the id of this item"], - "parent-uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "uri of the parent to this item"], - "thr-parent" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "If the parent of this item is not the top-level item in the conversation, the uri of the immediate parent; otherwise set to parent-uri"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Creation timestamp."], - "edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of last edit (default is created)"], - "commented" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of last comment/reply to this item"], - "received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime"], - "changed" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date that something in the conversation changed, indicating clients should fetch the conversation again"], - "gravity" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Network from where the item comes from"], - "owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Link to the contact table with uid=0 of the owner of this item"], - "author-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Link to the contact table with uid=0 of the author of this item"], - "icid" => ["type" => "int unsigned", "relation" => ["item-content" => "id"], "comment" => "Id of the item-content table entry that contains the whole item content"], - "iaid" => ["type" => "int unsigned", "relation" => ["item-activity" => "id"], "comment" => "Id of the item-activity table entry that contains the activity data"], - "extid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "post-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Post type (personal note, bookmark, ...)"], - "global" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "private" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "distribution is restricted"], - "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been deleted"], - // User specific fields. Eventually they will move to user-item - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner id which owns this copy of the item"], - "contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "contact.id"], - "wall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "This item was posted to the wall of uid"], - "origin" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item originated at this site"], - "pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "starred" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been favourited"], - "unseen" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "item has not been seen"], - "mention" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "The owner of this item was mentioned in it"], - "forum_mode" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "psid" => ["type" => "int unsigned", "relation" => ["permissionset" => "id"], "comment" => "ID of the permission set of this post"], - // It has to be decided whether these fields belong to the user or the structure - "resource-id" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type"], - "event-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["event" => "id"], "comment" => "Used to link to the event.id"], - // Could possibly be replaced by the "attach" table? - "attach" => ["type" => "mediumtext", "comment" => "JSON structure representing attachments to this item"], - // Deprecated fields. Will be removed in upcoming versions - "allow_cid" => ["type" => "mediumtext", "comment" => "Deprecated"], - "allow_gid" => ["type" => "mediumtext", "comment" => "Deprecated"], - "deny_cid" => ["type" => "mediumtext", "comment" => "Deprecated"], - "deny_gid" => ["type" => "mediumtext", "comment" => "Deprecated"], - "postopts" => ["type" => "text", "comment" => "Deprecated"], - "inform" => ["type" => "mediumtext", "comment" => "Deprecated"], - "type" => ["type" => "varchar(20)", "comment" => "Deprecated"], - "bookmark" => ["type" => "boolean", "comment" => "Deprecated"], - "file" => ["type" => "mediumtext", "comment" => "Deprecated"], - "location" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "coord" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "tag" => ["type" => "mediumtext", "comment" => "Deprecated"], - "plink" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "title" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "content-warning" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "body" => ["type" => "mediumtext", "comment" => "Deprecated"], - "app" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "verb" => ["type" => "varchar(100)", "comment" => "Deprecated"], - "object-type" => ["type" => "varchar(100)", "comment" => "Deprecated"], - "object" => ["type" => "text", "comment" => "Deprecated"], - "target-type" => ["type" => "varchar(100)", "comment" => "Deprecated"], - "target" => ["type" => "text", "comment" => "Deprecated"], - "author-name" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "author-link" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "author-avatar" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "owner-name" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "owner-link" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "owner-avatar" => ["type" => "varchar(255)", "comment" => "Deprecated"], - "rendered-hash" => ["type" => "varchar(32)", "comment" => "Deprecated"], - "rendered-html" => ["type" => "mediumtext", "comment" => "Deprecated"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "guid" => ["guid(191)"], - "uri" => ["uri(191)"], - "parent" => ["parent"], - "parent-uri" => ["parent-uri(191)"], - "extid" => ["extid(191)"], - "uid_id" => ["uid","id"], - "uid_contactid_id" => ["uid","contact-id","id"], - "uid_created" => ["uid","created"], - "uid_commented" => ["uid","commented"], - "uid_unseen_contactid" => ["uid","unseen","contact-id"], - "uid_network_received" => ["uid","network","received"], - "uid_network_commented" => ["uid","network","commented"], - "uid_thrparent" => ["uid","thr-parent(190)"], - "uid_parenturi" => ["uid","parent-uri(190)"], - "uid_contactid_created" => ["uid","contact-id","created"], - "authorid_created" => ["author-id","created"], - "ownerid" => ["owner-id"], - "uid_uri" => ["uid", "uri(190)"], - "resource-id" => ["resource-id"], - "deleted_changed" => ["deleted","changed"], - "uid_wall_changed" => ["uid","wall","changed"], - "uid_eventid" => ["uid","event-id"], - "icid" => ["icid"], - "iaid" => ["iaid"], - "psid_wall" => ["psid", "wall"], - ] - ]; - $database["item-activity"] = [ - "comment" => "Activities for items", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "relation" => ["thread" => "iid"]], - "uri" => ["type" => "varchar(255)", "comment" => ""], - "uri-hash" => ["type" => "varchar(80)", "not null" => "1", "default" => "", "comment" => "RIPEMD-128 hash from uri"], - "activity" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uri-hash" => ["UNIQUE", "uri-hash"], - "uri" => ["uri(191)"], - ] - ]; - $database["item-content"] = [ - "comment" => "Content for all posts", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "relation" => ["thread" => "iid"]], - "uri" => ["type" => "varchar(255)", "comment" => ""], - "uri-plink-hash" => ["type" => "varchar(80)", "not null" => "1", "default" => "", "comment" => "RIPEMD-128 hash from uri"], - "title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "item title"], - "content-warning" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "body" => ["type" => "mediumtext", "comment" => "item body content"], - "location" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "text location where this item originated"], - "coord" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "longitude/latitude pair representing location where this item originated"], - "language" => ["type" => "text", "comment" => "Language information about this post"], - "app" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "application which generated this item"], - "rendered-hash" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""], - "rendered-html" => ["type" => "mediumtext", "comment" => "item.body converted to html"], - "object-type" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => "ActivityStreams object type"], - "object" => ["type" => "text", "comment" => "JSON encoded object structure unless it is an implied object (normal post)"], - "target-type" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => "ActivityStreams target type if applicable (URI)"], - "target" => ["type" => "text", "comment" => "JSON encoded target structure if used"], - "plink" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "permalink or URL to a displayable copy of the message at its source"], - "verb" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => "ActivityStreams verb"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uri-plink-hash" => ["UNIQUE", "uri-plink-hash"], - "uri" => ["uri(191)"], - ] - ]; - $database["item-delivery-data"] = [ - "comment" => "Delivery data for items", - "fields" => [ - "iid" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "relation" => ["item" => "id"], "comment" => "Item id"], - "postopts" => ["type" => "text", "comment" => "External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery"], - "inform" => ["type" => "mediumtext", "comment" => "Additional receivers of the linked item"], - ], - "indexes" => [ - "PRIMARY" => ["iid"], - ] - ]; - $database["locks"] = [ - "comment" => "", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "name" => ["type" => "varchar(128)", "not null" => "1", "default" => "", "comment" => ""], - "locked" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "pid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "Process ID"], - "expires" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime of cache expiration"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "name_expires" => ["name", "expires"] - ] - ]; - $database["mail"] = [ - "comment" => "private messages", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "A unique identifier for this private message"], - "from-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "name of the sender"], - "from-photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "contact photo link of the sender"], - "from-url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "profile linke of the sender"], - "contact-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "relation" => ["contact" => "id"], "comment" => "contact.id"], - "convid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["conv" => "id"], "comment" => "conv.id"], - "title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "body" => ["type" => "mediumtext", "comment" => ""], - "seen" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "if message visited it is 1"], - "reply" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "replied" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "unknown" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "if sender not in the contact table this is 1"], - "uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "parent-uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "creation time of the private message"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_seen" => ["uid", "seen"], - "convid" => ["convid"], - "uri" => ["uri(64)"], - "parent-uri" => ["parent-uri(64)"], - "contactid" => ["contact-id(32)"], - ] - ]; - $database["mailacct"] = [ - "comment" => "Mail account data for fetching mails", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "server" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "port" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "ssltype" => ["type" => "varchar(16)", "not null" => "1", "default" => "", "comment" => ""], - "mailbox" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "user" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "pass" => ["type" => "text", "comment" => ""], - "reply_to" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "action" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "movetofolder" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "last_check" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["manage"] = [ - "comment" => "table of accounts that can manage each other", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "mid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_mid" => ["UNIQUE", "uid","mid"], - ] - ]; - $database["notify"] = [ - "comment" => "notifications", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "hash" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""], - "type" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "msg" => ["type" => "mediumtext", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "link" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => "item.id"], - "parent" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""], - "seen" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "verb" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""], - "otype" => ["type" => "varchar(10)", "not null" => "1", "default" => "", "comment" => ""], - "name_cache" => ["type" => "tinytext", "comment" => "Cached bbcode parsing of name"], - "msg_cache" => ["type" => "mediumtext", "comment" => "Cached bbcode parsing of msg"] - ], - "indexes" => [ - "PRIMARY" => ["id"], - "hash_uid" => ["hash", "uid"], - "seen_uid_date" => ["seen", "uid", "date"], - "uid_date" => ["uid", "date"], - "uid_type_link" => ["uid", "type", "link(190)"], - ] - ]; - $database["notify-threads"] = [ - "comment" => "", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "notify-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["notify" => "id"], "comment" => ""], - "master-parent-item" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""], - "parent-item" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "receiver-uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["oembed"] = [ - "comment" => "cache for OEmbed queries", - "fields" => [ - "url" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "page url"], - "maxwidth" => ["type" => "mediumint unsigned", "not null" => "1", "primary" => "1", "comment" => "Maximum width passed to Oembed"], - "content" => ["type" => "mediumtext", "comment" => "OEmbed data of the page"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime of creation"], - ], - "indexes" => [ - "PRIMARY" => ["url", "maxwidth"], - "created" => ["created"], - ] - ]; - $database["openwebauth-token"] = [ - "comment" => "Store OpenWebAuth token to verify contacts", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "type" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Verify type"], - "token" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "A generated token"], - "meta" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime of creation"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["parsed_url"] = [ - "comment" => "cache for 'parse_url' queries", - "fields" => [ - "url" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "page url"], - "guessing" => ["type" => "boolean", "not null" => "1", "default" => "0", "primary" => "1", "comment" => "is the 'guessing' mode active?"], - "oembed" => ["type" => "boolean", "not null" => "1", "default" => "0", "primary" => "1", "comment" => "is the data the result of oembed?"], - "content" => ["type" => "mediumtext", "comment" => "page data"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "datetime of creation"], - ], - "indexes" => [ - "PRIMARY" => ["url", "guessing", "oembed"], - "created" => ["created"], - ] - ]; - $database["participation"] = [ - "comment" => "Storage for participation messages from Diaspora", - "fields" => [ - "iid" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "relation" => ["item" => "id"], "comment" => ""], - "server" => ["type" => "varchar(60)", "not null" => "1", "primary" => "1", "comment" => ""], - "cid" => ["type" => "int unsigned", "not null" => "1", "relation" => ["contact" => "id"], "comment" => ""], - "fid" => ["type" => "int unsigned", "not null" => "1", "relation" => ["fcontact" => "id"], "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["iid", "server"] - ] - ]; - $database["pconfig"] = [ - "comment" => "personal (per user) configuration storage", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "cat" => ["type" => "varbinary(50)", "not null" => "1", "default" => "", "comment" => ""], - "k" => ["type" => "varbinary(100)", "not null" => "1", "default" => "", "comment" => ""], - "v" => ["type" => "mediumtext", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_cat_k" => ["UNIQUE", "uid", "cat", "k"], - ] - ]; - $database["permissionset"] = [ - "comment" => "", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner id of this permission set"], - "allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>'"], - "allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"], - "deny_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied contact.id"], - "deny_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied groups"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_allow_cid_allow_gid_deny_cid_deny_gid" => ["allow_cid(50)", "allow_gid(30)", "deny_cid(50)", "deny_gid(30)"], - ] - ]; - $database["photo"] = [ - "comment" => "photo storage", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "contact.id"], - "guid" => ["type" => "char(16)", "not null" => "1", "default" => "", "comment" => "A unique identifier for this photo"], - "resource-id" => ["type" => "char(32)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "creation date"], - "edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "last edited date"], - "title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "desc" => ["type" => "text", "comment" => ""], - "album" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "The name of the album to which the photo belongs"], - "filename" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "type" => ["type" => "varchar(30)", "not null" => "1", "default" => "image/jpeg"], - "height" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "width" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "datasize" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "data" => ["type" => "mediumblob", "not null" => "1", "comment" => ""], - "scale" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "profile" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>'"], - "allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"], - "deny_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied contact.id"], - "deny_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied groups"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "contactid" => ["contact-id"], - "uid_contactid" => ["uid", "contact-id"], - "uid_profile" => ["uid", "profile"], - "uid_album_scale_created" => ["uid", "album(32)", "scale", "created"], - "uid_album_resource-id_created" => ["uid", "album(32)", "resource-id", "created"], - "resource-id" => ["resource-id"], - ] - ]; - $database["poll"] = [ - "comment" => "Currently unused table for storing poll results", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "q0" => ["type" => "text", "comment" => ""], - "q1" => ["type" => "text", "comment" => ""], - "q2" => ["type" => "text", "comment" => ""], - "q3" => ["type" => "text", "comment" => ""], - "q4" => ["type" => "text", "comment" => ""], - "q5" => ["type" => "text", "comment" => ""], - "q6" => ["type" => "text", "comment" => ""], - "q7" => ["type" => "text", "comment" => ""], - "q8" => ["type" => "text", "comment" => ""], - "q9" => ["type" => "text", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid" => ["uid"], - ] - ]; - $database["poll_result"] = [ - "comment" => "data for polls - currently unused", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "poll_id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["poll" => "id"]], - "choice" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "poll_id" => ["poll_id"], - ] - ]; - $database["process"] = [ - "comment" => "Currently running system processes", - "fields" => [ - "pid" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "comment" => ""], - "command" => ["type" => "varbinary(32)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["pid"], - "command" => ["command"], - ] - ]; - $database["profile"] = [ - "comment" => "user profiles data", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"], - "profile-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name of the profile"], - "is-default" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Mark this profile as default profile"], - "hide-friends" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Hide friend list from viewers of this profile"], - "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "pdesc" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Title or description"], - "dob" => ["type" => "varchar(32)", "not null" => "1", "default" => "0000-00-00", "comment" => "Day of birth"], - "address" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "locality" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "region" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "postal-code" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""], - "country-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "hometown" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""], - "marital" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "with" => ["type" => "text", "comment" => ""], - "howlong" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "sexual" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "politic" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "religion" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "pub_keywords" => ["type" => "text", "comment" => ""], - "prv_keywords" => ["type" => "text", "comment" => ""], - "likes" => ["type" => "text", "comment" => ""], - "dislikes" => ["type" => "text", "comment" => ""], - "about" => ["type" => "text", "comment" => ""], - "summary" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "music" => ["type" => "text", "comment" => ""], - "book" => ["type" => "text", "comment" => ""], - "tv" => ["type" => "text", "comment" => ""], - "film" => ["type" => "text", "comment" => ""], - "interest" => ["type" => "text", "comment" => ""], - "romance" => ["type" => "text", "comment" => ""], - "work" => ["type" => "text", "comment" => ""], - "education" => ["type" => "text", "comment" => ""], - "contact" => ["type" => "text", "comment" => ""], - "homepage" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "thumb" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "publish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "publish default profile in local directory"], - "net-publish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "publish profile in global directory"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid_is-default" => ["uid", "is-default"], - ] - ]; - $database["profile_check"] = [ - "comment" => "DFRN remote auth use", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "contact.id"], - "dfrn_id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "sec" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["push_subscriber"] = [ - "comment" => "Used for OStatus: Contains feed subscribers", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "callback_url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "topic" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "nickname" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "push" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => "Retrial counter"], - "last_update" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of last successful trial"], - "next_try" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Next retrial date"], - "renewed" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of last subscription renewal"], - "secret" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "next_try" => ["next_try"], - ] - ]; - $database["queue"] = [ - "comment" => "Queue for messages that couldn't be delivered", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Message receiver"], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Receiver's network"], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Unique GUID of the message"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date, when the message was created"], - "last" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date of last trial"], - "next" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Next retrial date"], - "retrial" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => "Retrial counter"], - "content" => ["type" => "mediumtext", "comment" => ""], - "batch" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "last" => ["last"], - "next" => ["next"], - ] - ]; - $database["register"] = [ - "comment" => "registrations requiring admin approval", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "hash" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "password" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "language" => ["type" => "varchar(16)", "not null" => "1", "default" => "", "comment" => ""], - "note" => ["type" => "text", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["search"] = [ - "comment" => "", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "term" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "uid" => ["uid"], - ] - ]; - $database["session"] = [ - "comment" => "web session storage", - "fields" => [ - "id" => ["type" => "bigint unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "sid" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""], - "data" => ["type" => "text", "comment" => ""], - "expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "sid" => ["sid(64)"], - "expire" => ["expire"], - ] - ]; - $database["sign"] = [ - "comment" => "Diaspora signatures", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => "item.id"], - "signed_text" => ["type" => "mediumtext", "comment" => ""], - "signature" => ["type" => "text", "comment" => ""], - "signer" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "iid" => ["UNIQUE", "iid"], - ] - ]; - $database["term"] = [ - "comment" => "item taxonomy (categories, tags, etc.) table", - "fields" => [ - "tid" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""], - "oid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""], - "otype" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "term" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "global" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - ], - "indexes" => [ - "PRIMARY" => ["tid"], - "oid_otype_type_term" => ["oid","otype","type","term(32)"], - "uid_otype_type_term_global_created" => ["uid","otype","type","term(32)","global","created"], - "uid_otype_type_url" => ["uid","otype","type","url(64)"], - "guid" => ["guid(64)"], - ] - ]; - $database["thread"] = [ - "comment" => "Thread related data", - "fields" => [ - "iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["item" => "id"], "comment" => "sequential ID"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - "contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""], - "owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Item owner"], - "author-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Item author"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "commented" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "changed" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""], - "wall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "private" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "starred" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "ignored" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "post-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Post type (personal note, bookmark, ...)"], - "unseen" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""], - "deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "origin" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "forum_mode" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "mention" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""], - "bookmark" => ["type" => "boolean", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["iid"], - "uid_network_commented" => ["uid","network","commented"], - "uid_network_created" => ["uid","network","created"], - "uid_contactid_commented" => ["uid","contact-id","commented"], - "uid_contactid_created" => ["uid","contact-id","created"], - "contactid" => ["contact-id"], - "ownerid" => ["owner-id"], - "authorid" => ["author-id"], - "uid_created" => ["uid","created"], - "uid_commented" => ["uid","commented"], - "uid_wall_created" => ["uid","wall","created"], - "private_wall_origin_commented" => ["private","wall","origin","commented"], - ] - ]; - $database["tokens"] = [ - "comment" => "OAuth usage", - "fields" => [ - "id" => ["type" => "varchar(40)", "not null" => "1", "primary" => "1", "comment" => ""], - "secret" => ["type" => "text", "comment" => ""], - "client_id" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "relation" => ["clients" => "client_id"]], - "expires" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""], - "scope" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - ] - ]; - $database["user"] = [ - "comment" => "The local users", - "fields" => [ - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "parent-uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "The parent user that has full control about this user"], - "guid" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => "A unique identifier for this user"], - "username" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name that this user is known by"], - "password" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "encrypted password"], - "legacy_password" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Is the password hash double-hashed?"], - "nickname" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "nick- and user name"], - "email" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "the users email address"], - "openid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""], - "timezone" => ["type" => "varchar(128)", "not null" => "1", "default" => "", "comment" => "PHP-legal timezone"], - "language" => ["type" => "varchar(32)", "not null" => "1", "default" => "en", "comment" => "default language"], - "register_date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "timestamp of registration"], - "login_date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "timestamp of last login"], - "default-location" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Default for item.location"], - "allow_location" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 allows to display the location"], - "theme" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "user theme preference"], - "pubkey" => ["type" => "text", "comment" => "RSA public key 4096 bit"], - "prvkey" => ["type" => "text", "comment" => "RSA private key 4096 bit"], - "spubkey" => ["type" => "text", "comment" => ""], - "sprvkey" => ["type" => "text", "comment" => ""], - "verified" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "user is verified through email"], - "blocked" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 for user is blocked"], - "blockwall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Prohibit contacts to post to the profile page of the user"], - "hidewall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Hide profile details from unkown viewers"], - "blocktags" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Prohibit contacts to tag the post of this user"], - "unkmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Permit unknown people to send private mails to this user"], - "cntunkmail" => ["type" => "int unsigned", "not null" => "1", "default" => "10", "comment" => ""], - "notify-flags" => ["type" => "smallint unsigned", "not null" => "1", "default" => "65535", "comment" => "email notification options"], - "page-flags" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "page/profile type"], - "account-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "prvnets" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "pwdreset" => ["type" => "varchar(255)", "comment" => "Password reset request token"], - "pwdreset_time" => ["type" => "datetime", "comment" => "Timestamp of the last password reset request"], - "maxreq" => ["type" => "int unsigned", "not null" => "1", "default" => "10", "comment" => ""], - "expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "account_removed" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "if 1 the account is removed"], - "account_expired" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "account_expires_on" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "timestamp when account expires and will be deleted"], - "expire_notification_sent" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "timestamp of last warning of account expiration"], - "def_gid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""], - "allow_cid" => ["type" => "mediumtext", "comment" => "default permission for this user"], - "allow_gid" => ["type" => "mediumtext", "comment" => "default permission for this user"], - "deny_cid" => ["type" => "mediumtext", "comment" => "default permission for this user"], - "deny_gid" => ["type" => "mediumtext", "comment" => "default permission for this user"], - "openidserver" => ["type" => "text", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["uid"], - "nickname" => ["nickname(32)"], - ] - ]; - $database["userd"] = [ - "comment" => "Deleted usernames", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"], - "username" => ["type" => "varchar(255)", "not null" => "1", "comment" => ""], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "username" => ["username(32)"], - ] - ]; - $database["user-item"] = [ - "comment" => "User specific item data", - "fields" => [ - "iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["item" => "id"], "comment" => "Item id"], - "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["user" => "uid"], "comment" => "User id"], - "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Marker to hide an item from the user"], - ], - "indexes" => [ - "PRIMARY" => ["uid", "iid"], - ] - ]; - $database["worker-ipc"] = [ - "comment" => "Inter process communication between the frontend and the worker", - "fields" => [ - "key" => ["type" => "int", "not null" => "1", "primary" => "1", "comment" => ""], - "jobs" => ["type" => "boolean", "comment" => "Flag for outstanding jobs"], - ], - "indexes" => [ - "PRIMARY" => ["key"], - ], - "engine" => "MEMORY", - ]; + $filename = $a->get_basepath() . '/config/dbstructure.json'; - $database["workerqueue"] = [ - "comment" => "Background tasks queue entries", - "fields" => [ - "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented worker task id"], - "parameter" => ["type" => "mediumblob", "comment" => "Task command"], - "priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Task priority"], - "created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Creation date"], - "pid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "Process id of the worker"], - "executed" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Execution date"], - "done" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Marked 1 when the task was done - will be deleted later"], - ], - "indexes" => [ - "PRIMARY" => ["id"], - "pid" => ["pid"], - "parameter" => ["parameter(64)"], - "priority_created" => ["priority", "created"], - "done_executed" => ["done", "executed"], - ] - ]; + if (!is_readable($filename)) { + throw new Exception('Missing database structure config file config/dbstructure.json'); + } + + $json = file_get_contents($filename); + + $database = json_decode($json, true); + + if (!$database) { + throw new Exception('Corrupted database structure config file config/dbstructure.json'); + } Addon::callHooks('dbstructure_definition', $database);