diff --git a/doc/database.md b/doc/database.md index 447607f8da..60e3253fe3 100644 --- a/doc/database.md +++ b/doc/database.md @@ -3,50 +3,76 @@ Database Tables * [Home](help) -| Table | Description | -|------------------------------------------------------|--------------------------------------------------| -| [addon](help/database/db_addon) | registered addons | -| [attach](help/database/db_attach) | file attachments | -| [auth_codes](help/database/db_auth_codes) | OAuth usage | -| [cache](help/database/db_cache) | OEmbed cache | -| [challenge](help/database/db_challenge) | | -| [clients](help/database/db_clients) | OAuth usage | -| [config](help/database/db_config) | main configuration storage | -| [contact](help/database/db_contact) | contact table | -| [conv](help/database/db_conv) | private messages | -| [conversation](help/database/db_conversation) | Raw data and structure information for messages | -| [event](help/database/db_event) | Events | -| [fcontact](help/database/db_fcontact) | friend suggestion stuff | -| [fsuggest](help/database/db_fsuggest) | friend suggestion stuff | -| [group](help/database/db_group) | privacy groups, group info | -| [group_member](help/database/db_group_member) | privacy groups, member info | -| [gserver](help/database/db_gserver) | | -| [hook](help/database/db_hook) | addon hook registry | -| [intro](help/database/db_intro) | | -| [item](help/database/db_item) | all posts | -| [locks](help/database/db_locks) | | -| [mail](help/database/db_mail) | private messages | -| [mailacct](help/database/db_mailacct) | | -| [manage](help/database/db_manage) | table of accounts that can "su" each other | -| [notify](help/database/db_notify) | notifications | -| [notify-threads](help/database/db_notify-threads) | | -| [oembed](help/database/db_oembed) | cache for OEmbed queries | -| [parsed_url](help/database/db_parsed_url) | cache for "parse_url" queries | -| [pconfig](help/database/db_pconfig) | personal (per user) configuration storage | -| [photo](help/database/db_photo) | photo storage | -| [poll](help/database/db_poll) | data for polls | -| [poll_result](help/database/db_poll_result) | data for poll elements | -| [profile](help/database/db_profile) | user profiles data | -| [profile_check](help/database/db_profile_check) | DFRN remote auth use | -| [push_subscriber](help/database/db_push_subscriber) | | -| [queue](help/database/db_queue) | | -| [register](help/database/db_register) | registrations requiring admin approval | -| [search](help/database/db_search) | | -| [session](help/database/db_session) | web session storage | -| [sign](help/database/db_sign) | Diaspora signatures | -| [term](help/database/db_term) | item taxonomy (categories, tags, etc.) table | -| [thread](help/database/db_thread) | | -| [tokens](help/database/db_tokens) | OAuth usage | -| [user](help/database/db_user) | local user table | -| [userd](help/database/db_userd) | | -| [workerqueue](help/database/db_workerqueue) | | +| Table | Description | +|-------|-------------| +| [2fa_app_specific_password](help/database/db_2fa_app_specific_password) | Two-factor app-specific _password | +| [2fa_recovery_codes](help/database/db_2fa_recovery_codes) | Two-factor authentication recovery codes | +| [2fa_trusted_browser](help/database/db_2fa_trusted_browser) | Two-factor authentication trusted browsers | +| [addon](help/database/db_addon) | registered addons | +| [apcontact](help/database/db_apcontact) | ActivityPub compatible contacts - used in the ActivityPub implementation | +| [application](help/database/db_application) | OAuth application | +| [application-token](help/database/db_application-token) | OAuth user token | +| [attach](help/database/db_attach) | file attachments | +| [auth_codes](help/database/db_auth_codes) | OAuth usage | +| [cache](help/database/db_cache) | Stores temporary data | +| [challenge](help/database/db_challenge) | | +| [clients](help/database/db_clients) | OAuth usage | +| [config](help/database/db_config) | main configuration storage | +| [contact](help/database/db_contact) | contact table | +| [contact-relation](help/database/db_contact-relation) | Contact relations | +| [conv](help/database/db_conv) | private messages | +| [conversation](help/database/db_conversation) | Raw data and structure information for messages | +| [delayed-post](help/database/db_delayed-post) | Posts that are about to be distributed at a later time | +| [diaspora-interaction](help/database/db_diaspora-interaction) | Signed Diaspora Interaction | +| [event](help/database/db_event) | Events | +| [fcontact](help/database/db_fcontact) | Diaspora compatible contacts - used in the Diaspora implementation | +| [fsuggest](help/database/db_fsuggest) | friend suggestion stuff | +| [group](help/database/db_group) | privacy groups, group info | +| [group_member](help/database/db_group_member) | privacy groups, member info | +| [gserver](help/database/db_gserver) | Global servers | +| [gserver-tag](help/database/db_gserver-tag) | Tags that the server has subscribed | +| [hook](help/database/db_hook) | addon hook registry | +| [host](help/database/db_host) | Hostname | +| [inbox-status](help/database/db_inbox-status) | Status of ActivityPub inboxes | +| [intro](help/database/db_intro) | | +| [item-uri](help/database/db_item-uri) | URI and GUID for items | +| [locks](help/database/db_locks) | | +| [mail](help/database/db_mail) | private messages | +| [mailacct](help/database/db_mailacct) | Mail account data for fetching mails | +| [manage](help/database/db_manage) | table of accounts that can manage each other | +| [notification](help/database/db_notification) | notifications | +| [notify](help/database/db_notify) | notifications | +| [notify-threads](help/database/db_notify-threads) | | +| [oembed](help/database/db_oembed) | cache for OEmbed queries | +| [openwebauth-token](help/database/db_openwebauth-token) | Store OpenWebAuth token to verify contacts | +| [parsed_url](help/database/db_parsed_url) | cache for 'parse_url' queries | +| [pconfig](help/database/db_pconfig) | personal (per user) configuration storage | +| [permissionset](help/database/db_permissionset) | | +| [photo](help/database/db_photo) | photo storage | +| [post](help/database/db_post) | Structure for all posts | +| [post-category](help/database/db_post-category) | post relation to categories | +| [post-content](help/database/db_post-content) | Content for all posts | +| [post-delivery-data](help/database/db_post-delivery-data) | Delivery data for items | +| [post-media](help/database/db_post-media) | Attached media | +| [post-tag](help/database/db_post-tag) | post relation to tags | +| [post-thread](help/database/db_post-thread) | Thread related data | +| [post-thread-user](help/database/db_post-thread-user) | Thread related data per user | +| [post-user](help/database/db_post-user) | User specific post data | +| [post-user-notification](help/database/db_post-user-notification) | User post notifications | +| [process](help/database/db_process) | Currently running system processes | +| [profile](help/database/db_profile) | user profiles data | +| [profile_check](help/database/db_profile_check) | DFRN remote auth use | +| [profile_field](help/database/db_profile_field) | Custom profile fields | +| [push_subscriber](help/database/db_push_subscriber) | Used for OStatus: Contains feed subscribers | +| [register](help/database/db_register) | registrations requiring admin approval | +| [search](help/database/db_search) | | +| [session](help/database/db_session) | web session storage | +| [storage](help/database/db_storage) | Data stored by Database storage backend | +| [tag](help/database/db_tag) | tags and mentions | +| [tokens](help/database/db_tokens) | OAuth usage | +| [user](help/database/db_user) | The local users | +| [user-contact](help/database/db_user-contact) | User specific public contact data | +| [userd](help/database/db_userd) | Deleted usernames | +| [verb](help/database/db_verb) | Activity Verbs | +| [worker-ipc](help/database/db_worker-ipc) | Inter process communication between the frontend and the worker | +| [workerqueue](help/database/db_workerqueue) | Background tasks queue entries | diff --git a/doc/database/db_2fa_app_specific_password.md b/doc/database/db_2fa_app_specific_password.md new file mode 100644 index 0000000000..66dd77c95c --- /dev/null +++ b/doc/database/db_2fa_app_specific_password.md @@ -0,0 +1,33 @@ +Table 2fa_app_specific_password +=========== + +Two-factor app-specific _password + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------------- | ---------------------------------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | Password ID for revocation | mediumint unsigned | NO | PRI | NULL | auto_increment | +| uid | User ID | mediumint unsigned | NO | | NULL | | +| description | Description of the usage of the password | varchar(255) | YES | | NULL | | +| hashed_password | Hashed password | varchar(255) | NO | | NULL | | +| generated | Datetime the password was generated | datetime | NO | | NULL | | +| last_used | Datetime the password was last used | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------------- | --------------------- | +| PRIMARY | id | +| uid_description | uid, description(190) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_2fa_recovery_codes.md b/doc/database/db_2fa_recovery_codes.md new file mode 100644 index 0000000000..69c34e6547 --- /dev/null +++ b/doc/database/db_2fa_recovery_codes.md @@ -0,0 +1,30 @@ +Table 2fa_recovery_codes +=========== + +Two-factor authentication recovery codes + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| uid | User ID | mediumint unsigned | NO | PRI | NULL | | +| code | Recovery code string | varchar(50) | NO | PRI | NULL | | +| generated | Datetime the code was generated | datetime | NO | | NULL | | +| used | Datetime the code was used | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------- | +| PRIMARY | uid, code | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_2fa_trusted_browser.md b/doc/database/db_2fa_trusted_browser.md new file mode 100644 index 0000000000..d12d9e1fc0 --- /dev/null +++ b/doc/database/db_2fa_trusted_browser.md @@ -0,0 +1,32 @@ +Table 2fa_trusted_browser +=========== + +Two-factor authentication trusted browsers + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------- | ------------------------------------------ | ------------------ | ---- | --- | ------- | ----- | +| cookie_hash | Trusted cookie hash | varchar(80) | NO | PRI | NULL | | +| uid | User ID | mediumint unsigned | NO | | NULL | | +| user_agent | User agent string | text | YES | | NULL | | +| created | Datetime the trusted browser was recorded | datetime | NO | | NULL | | +| last_used | Datetime the trusted browser was last used | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ----------- | +| PRIMARY | cookie_hash | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_addon.md b/doc/database/db_addon.md index cd8a3d44a6..7233b80095 100644 --- a/doc/database/db_addon.md +++ b/doc/database/db_addon.md @@ -1,17 +1,29 @@ Table addon =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------------- | --------------------------------------------- | ---------- | ---- | --- | ------- | --------------- | -| id | | int(11) | NO | PRI | NULL | auto_increment | -| name | addon base (file)name | char(255) | NO | | | | -| version | currently unused | char(255) | NO | | | | -| installed | currently always 1 | tinyint(1) | NO | | 0 | | -| hidden | currently unused | tinyint(1) | NO | | 0 | | -| timestamp | file timestamp to check for reloads | bigint(20) | NO | | 0 | | -| plugin_admin | 1 = has admin config, 0 = has no admin config | tinyint(1) | NO | | 0 | | +registered addons + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | --------------------------------------------- | ------------ | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| name | addon base (file)name | varchar(50) | NO | | | | +| version | currently unused | varchar(50) | NO | | | | +| installed | currently always 1 | boolean | NO | | 0 | | +| hidden | currently unused | boolean | NO | | 0 | | +| timestamp | file timestamp to check for reloads | int unsigned | NO | | 0 | | +| plugin_admin | 1 = has admin config, 0 = has no admin config | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| -------------- | --------------- | +| PRIMARY | id | +| installed_name | installed, name | +| name | UNIQUE, name | -Notes: -These are addons which have been enabled by the site administrator on the addon page Return to [database documentation](help/database) diff --git a/doc/database/db_apcontact.md b/doc/database/db_apcontact.md new file mode 100644 index 0000000000..539be251ae --- /dev/null +++ b/doc/database/db_apcontact.md @@ -0,0 +1,56 @@ +Table apcontact +=========== + +ActivityPub compatible contacts - used in the ActivityPub implementation + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------------- | ---------------------------- | -------------- | ---- | --- | ------------------- | ----- | +| url | URL of the contact | varbinary(255) | NO | PRI | NULL | | +| uuid | | varchar(255) | YES | | NULL | | +| type | | varchar(20) | NO | | NULL | | +| following | | varchar(255) | YES | | NULL | | +| followers | | varchar(255) | YES | | NULL | | +| inbox | | varchar(255) | NO | | NULL | | +| outbox | | varchar(255) | YES | | NULL | | +| sharedinbox | | varchar(255) | YES | | NULL | | +| manually-approve | | boolean | YES | | NULL | | +| nick | | varchar(255) | NO | | | | +| name | | varchar(255) | YES | | NULL | | +| about | | text | YES | | NULL | | +| photo | | varchar(255) | YES | | NULL | | +| addr | | varchar(255) | YES | | NULL | | +| alias | | varchar(255) | YES | | NULL | | +| pubkey | | text | YES | | NULL | | +| subscribe | | varchar(255) | YES | | NULL | | +| baseurl | baseurl of the ap contact | varchar(255) | YES | | NULL | | +| gsid | Global Server ID | int unsigned | YES | | NULL | | +| generator | Name of the contact's system | varchar(255) | YES | | NULL | | +| following_count | Number of following contacts | int unsigned | YES | | 0 | | +| followers_count | Number of followers | int unsigned | YES | | 0 | | +| statuses_count | Number of posts | int unsigned | YES | | 0 | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ----------- | ---------------- | +| PRIMARY | url | +| addr | addr(32) | +| alias | alias(190) | +| followers | followers(190) | +| baseurl | baseurl(190) | +| sharedinbox | sharedinbox(190) | +| gsid | gsid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| gsid | [gserver](help/database/db_gserver) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_application-token.md b/doc/database/db_application-token.md new file mode 100644 index 0000000000..9899a5e8b3 --- /dev/null +++ b/doc/database/db_application-token.md @@ -0,0 +1,38 @@ +Table application-token +=========== + +OAuth user token + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------------- | ------------- | ------------------ | ---- | --- | ------- | ----- | +| application-id | | int unsigned | NO | PRI | NULL | | +| uid | Owner User id | mediumint unsigned | NO | PRI | NULL | | +| code | | varchar(64) | NO | | NULL | | +| access_token | | varchar(64) | NO | | NULL | | +| created_at | creation time | datetime | NO | | NULL | | +| scopes | | varchar(255) | YES | | NULL | | +| read | Read scope | boolean | YES | | NULL | | +| write | Write scope | boolean | YES | | NULL | | +| follow | Follow scope | boolean | YES | | NULL | | +| push | Push scope | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------------------- | +| PRIMARY | application-id, uid | +| uid_id | uid, application-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| application-id | [application](help/database/db_application) | id | +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_application.md b/doc/database/db_application.md new file mode 100644 index 0000000000..0a91e703ad --- /dev/null +++ b/doc/database/db_application.md @@ -0,0 +1,32 @@ +Table application +=========== + +OAuth application + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | --------------- | ------------ | ---- | --- | ------- | -------------- | +| id | generated index | int unsigned | NO | PRI | NULL | auto_increment | +| client_id | | varchar(64) | NO | | NULL | | +| client_secret | | varchar(64) | NO | | NULL | | +| name | | varchar(255) | NO | | NULL | | +| redirect_uri | | varchar(255) | NO | | NULL | | +| website | | varchar(255) | YES | | NULL | | +| scopes | | varchar(255) | YES | | NULL | | +| read | Read scope | boolean | YES | | NULL | | +| write | Write scope | boolean | YES | | NULL | | +| follow | Follow scope | boolean | YES | | NULL | | +| push | Push scope | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------- | ----------------- | +| PRIMARY | id | +| client_id | UNIQUE, client_id | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_attach.md b/doc/database/db_attach.md index 7dde8f860d..76d8e01f20 100644 --- a/doc/database/db_attach.md +++ b/doc/database/db_attach.md @@ -1,22 +1,42 @@ Table attach -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ------------------------------------------------------| ------------ | ---- | --- | ------------------- | --------------- | -| id | generated index | int(11) | NO | PRI | NULL | auto_increment | -| uid | user_id of owner | int(11) | NO | | 0 | | -| hash | hash | varchar(64) | NO | | | | -| filename | filename of original | varchar(255) | NO | | | | -| filetype | mimetype | varchar(64) | NO | | | | -| filesize | size in bytes | int(11) | NO | | 0 | | -| data | file data | longblob | NO | | NULL | | -| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | -| allow_cid | Access Control - list of allowed contact.id '<19><78> | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | +file attachments -Notes: Permissions are surrounded by angle chars. e.g. <4> +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | ----------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | generated index | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| hash | hash | varchar(64) | NO | | | | +| filename | filename of original | varchar(255) | NO | | | | +| filetype | mimetype | varchar(64) | NO | | | | +| filesize | size in bytes | int unsigned | NO | | 0 | | +| data | file data | longblob | NO | | NULL | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78> | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | +| backend-class | Storage backend class | tinytext | YES | | NULL | | +| backend-ref | Storage backend data reference | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_auth_codes.md b/doc/database/db_auth_codes.md index 1fec38500d..a1d28e0965 100644 --- a/doc/database/db_auth_codes.md +++ b/doc/database/db_auth_codes.md @@ -1,14 +1,32 @@ Table auth_codes -================ +=========== -OAuth2 authorisation register - currently implemented but unused +OAuth usage -| Field | Description | Type | Null | Key | Default | Extra | -| ------------- | ----------- | ------------ | ---- | --- | ------- | ----- | -| id | | varchar(40) | NO | PRI | NULL | | -| client_id | | varchar(20) | NO | | | | -| redirect_uri | | varchar(200) | NO | | | | -| expires | | int(11) | NO | | 0 | | -| scope | | varchar(250) | NO | | | | +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ----------- | ------------ | ---- | --- | ------- | ----- | +| id | | varchar(40) | NO | PRI | NULL | | +| client_id | | varchar(20) | NO | | | | +| redirect_uri | | varchar(200) | NO | | | | +| expires | | int | NO | | 0 | | +| scope | | varchar(250) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| --------- | --------- | +| PRIMARY | id | +| client_id | client_id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| client_id | [clients](help/database/db_clients) | client_id | Return to [database documentation](help/database) diff --git a/doc/database/db_cache.md b/doc/database/db_cache.md index f5691d08a6..27a11daa66 100644 --- a/doc/database/db_cache.md +++ b/doc/database/db_cache.md @@ -3,11 +3,23 @@ Table cache Stores temporary data -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | -| k | cache key | varchar(255) | NO | PRI | NULL | | -| v | cached serialized value | text | NO | | NULL | | -| expires | datetime of cache expiration | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| updated | datetime of cache insertion | datetime | NO | MUL | 0001-01-01 00:00:00 | | +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ---------------------------- | -------------- | ---- | --- | ------------------- | ----- | +| k | cache key | varbinary(255) | NO | PRI | NULL | | +| v | cached serialized value | mediumtext | YES | | NULL | | +| expires | datetime of cache expiration | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | datetime of cache insertion | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| --------- | ---------- | +| PRIMARY | k | +| k_expires | k, expires | + Return to [database documentation](help/database) diff --git a/doc/database/db_challenge.md b/doc/database/db_challenge.md index aa7b263fdf..1618389094 100644 --- a/doc/database/db_challenge.md +++ b/doc/database/db_challenge.md @@ -1,13 +1,27 @@ Table challenge -=============== +=========== + + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------- | ------------- | ------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| challenge | | varchar(255) | NO | | | | +| dfrn-id | | varchar(255) | NO | | | | +| expire | | int unsigned | NO | | 0 | | +| type | | varchar(255) | NO | | | | +| last_update | | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| expire | expire | -| Field | Description | Type | Null | Key | Default | Extra | -|-------------|------------------|------------------|------|-----|---------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| challenge | | varchar(255) | NO | | | | -| dfrn-id | | varchar(255) | NO | | | | -| expire | | int(11) | NO | | 0 | | -| type | | varchar(255) | NO | | | | -| last_update | | varchar(255) | NO | | | | Return to [database documentation](help/database) diff --git a/doc/database/db_clients.md b/doc/database/db_clients.md index 228b45cc21..a97e796edd 100644 --- a/doc/database/db_clients.md +++ b/doc/database/db_clients.md @@ -1,13 +1,33 @@ Table clients -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------------- | ----------- | ------------ | ---- | --- | ------- | ----- | -| client_id | | varchar(20) | NO | PRI | NULL | | -| pw | | varchar(20) | NO | | | | -| redirect_uri | | varchar(200) | NO | | | | -| name | | text | YES | | NULL | | -| icon | | text | YES | | NULL | | -| uid | | int(11) | NO | | 0 | | +OAuth usage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ----------- | ------------------ | ---- | --- | ------- | ----- | +| client_id | | varchar(20) | NO | PRI | NULL | | +| pw | | varchar(20) | NO | | | | +| redirect_uri | | varchar(200) | NO | | | | +| name | | text | YES | | NULL | | +| icon | | text | YES | | NULL | | +| uid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------- | +| PRIMARY | client_id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_config.md b/doc/database/db_config.md index 6bcb4bcf89..7d7618794a 100644 --- a/doc/database/db_config.md +++ b/doc/database/db_config.md @@ -1,11 +1,25 @@ Table config -============ +=========== + +main configuration storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | ------------- | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| cat | | varbinary(50) | NO | | | | +| k | | varbinary(50) | NO | | | | +| v | | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | -------------- | +| PRIMARY | id | +| cat_k | UNIQUE, cat, k | -| Field | Description | Type | Null | Key | Default | Extra | -| ----- | ----------- | ---------------- | ---- | --- | ------- | --------------- | -| id | | int(10) unsigned | NO | PRI | NULL | auto_increment | -| cat | | char(255) | NO | MUL | | | -| k | | char(255) | NO | | | | -| v | | text | NO | | NULL | | Return to [database documentation](help/database) diff --git a/doc/database/db_contact-relation.md b/doc/database/db_contact-relation.md new file mode 100644 index 0000000000..8628b1ef66 --- /dev/null +++ b/doc/database/db_contact-relation.md @@ -0,0 +1,33 @@ +Table contact-relation +=========== + +Contact relations + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------------- | --------------------------------------------------- | ------------ | ---- | --- | ------------------- | ----- | +| cid | contact the related contact had interacted with | int unsigned | NO | PRI | 0 | | +| relation-cid | related contact who had interacted with the contact | int unsigned | NO | PRI | 0 | | +| last-interaction | Date of the last interaction | datetime | NO | | 0001-01-01 00:00:00 | | +| follow-updated | Date of the last update of the contact relationship | datetime | NO | | 0001-01-01 00:00:00 | | +| follows | | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------ | ----------------- | +| PRIMARY | cid, relation-cid | +| relation-cid | relation-cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| cid | [contact](help/database/db_contact) | id | +| relation-cid | [contact](help/database/db_contact) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_contact.md b/doc/database/db_contact.md index 2963a1a2a4..0e04c1ece8 100644 --- a/doc/database/db_contact.md +++ b/doc/database/db_contact.md @@ -1,72 +1,129 @@ Table contact -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|---------------------------|-----------------------------------------------------------|--------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| self | 1 if the contact is the user him/her self | tinyint(1) | NO | | 0 | | -| remote_self | | tinyint(1) | NO | | 0 | | -| rel | The kind of the relation between the user and the contact | tinyint(1) | NO | | 0 | | -| duplex | | tinyint(1) | NO | | 0 | | -| network | Network protocol of the contact | varchar(255) | NO | | | | -| name | Name that this contact is known by | varchar(255) | NO | | | | -| nick | Nick- and user name of the contact | varchar(255) | NO | | | | -| location | | varchar(255) | NO | | | | -| about | | text | NO | | NULL | | -| keywords | public keywords (interests) of the contact | text | NO | | NULL | | -| gender | | varchar(32) | NO | | | | -| attag | | varchar(255) | NO | | | | -| photo | Link to the profile photo of the contact | text | NO | | NULL | | -| thumb | Link to the profile photo (thumb size) | text | NO | | NULL | | -| micro | Link to the profile photo (micro size) | text | NO | | NULL | | -| site-pubkey | | text | NO | | NULL | | -| issued-id | | varchar(255) | NO | | | | -| dfrn-id | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| nurl | | varchar(255) | NO | | | | -| addr | | varchar(255) | NO | | | | -| alias | | varchar(255) | NO | | | | -| pubkey | RSA public key 4096 bit | text | NO | | NULL | | -| prvkey | RSA private key 4096 bit | text | NO | | NULL | | -| batch | | varchar(255) | NO | | | | -| request | | text | NO | | NULL | | -| notify | | text | NO | | NULL | | -| poll | | text | NO | | NULL | | -| confirm | | text | NO | | NULL | | -| poco | | text | NO | | NULL | | -| aes_allow | | tinyint(1) | NO | | 0 | | -| ret-aes | | tinyint(1) | NO | | 0 | | -| usehub | | tinyint(1) | NO | | 0 | | -| subhub | | tinyint(1) | NO | | 0 | | -| hub-verify | | varchar(255) | NO | | | | -| last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | | -| success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | | -| failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | | -| name-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| uri-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| term-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | | -| priority | | tinyint(3) | NO | | 0 | | -| blocked | | tinyint(1) | NO | | 1 | | -| readonly | posts of the contact are readonly | tinyint(1) | NO | | 0 | | -| writable | | tinyint(1) | NO | | 0 | | -| forum | contact is a forum | tinyint(1) | NO | | 0 | | -| prv | contact is a private group | tinyint(1) | NO | | 0 | | -| hidden | | tinyint(1) | NO | | 0 | | -| archive | | tinyint(1) | NO | | 0 | | -| pending | | tinyint(1) | NO | | 1 | | -| rating | | tinyint(1) | NO | | 0 | | -| reason | | text | NO | | NULL | | -| closeness | | tinyint(2) | NO | | 99 | | -| info | | mediumtext | NO | | NULL | | -| profile-id | | int(11) | NO | | 0 | | -| bdyear | | varchar(4) | NO | | | | -| bd | | date | NO | | 0001-01-01 | | -| notify_new_posts | | tinyint(1) | NO | | 0 | | -| fetch_further_information | | tinyint(1) | NO | | 0 | | -| ffi_keyword_denylist | | mediumtext | NO | | NULL | | +contact table + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------------------- | --------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | Date of last contact update | datetime | YES | | 0001-01-01 00:00:00 | | +| self | 1 if the contact is the user him/her self | boolean | NO | | 0 | | +| remote_self | | boolean | NO | | 0 | | +| rel | The kind of the relation between the user and the contact | tinyint unsigned | NO | | 0 | | +| duplex | | boolean | NO | | 0 | | +| network | Network of the contact | char(4) | NO | | | | +| protocol | Protocol of the contact | char(4) | NO | | | | +| name | Name that this contact is known by | varchar(255) | NO | | | | +| nick | Nick- and user name of the contact | varchar(255) | NO | | | | +| location | | varchar(255) | YES | | | | +| about | | text | YES | | NULL | | +| keywords | public keywords (interests) of the contact | text | YES | | NULL | | +| gender | Deprecated | varchar(32) | NO | | | | +| xmpp | | varchar(255) | NO | | | | +| attag | | varchar(255) | NO | | | | +| avatar | | varchar(255) | NO | | | | +| photo | Link to the profile photo of the contact | varchar(255) | YES | | | | +| thumb | Link to the profile photo (thumb size) | varchar(255) | YES | | | | +| micro | Link to the profile photo (micro size) | varchar(255) | YES | | | | +| site-pubkey | | text | YES | | NULL | | +| issued-id | | varchar(255) | NO | | | | +| dfrn-id | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| nurl | | varchar(255) | NO | | | | +| addr | | varchar(255) | NO | | | | +| alias | | varchar(255) | NO | | | | +| pubkey | RSA public key 4096 bit | text | YES | | NULL | | +| prvkey | RSA private key 4096 bit | text | YES | | NULL | | +| batch | | varchar(255) | NO | | | | +| request | | varchar(255) | YES | | NULL | | +| notify | | varchar(255) | YES | | NULL | | +| poll | | varchar(255) | YES | | NULL | | +| confirm | | varchar(255) | YES | | NULL | | +| subscribe | | varchar(255) | YES | | NULL | | +| poco | | varchar(255) | YES | | NULL | | +| aes_allow | | boolean | NO | | 0 | | +| ret-aes | | boolean | NO | | 0 | | +| usehub | | boolean | NO | | 0 | | +| subhub | | boolean | NO | | 0 | | +| hub-verify | | varchar(255) | NO | | | | +| last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | | +| success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | | +| failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | | +| failed | Connection failed | boolean | YES | | NULL | | +| name-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| uri-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| term-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | | +| last-discovery | date of the last follower discovery | datetime | NO | | 0001-01-01 00:00:00 | | +| priority | | tinyint unsigned | NO | | 0 | | +| blocked | Node-wide block status | boolean | NO | | 1 | | +| block_reason | Node-wide block reason | text | YES | | NULL | | +| readonly | posts of the contact are readonly | boolean | NO | | 0 | | +| writable | | boolean | NO | | 0 | | +| forum | contact is a forum | boolean | NO | | 0 | | +| prv | contact is a private group | boolean | NO | | 0 | | +| contact-type | | tinyint | NO | | 0 | | +| manually-approve | | boolean | YES | | NULL | | +| hidden | | boolean | NO | | 0 | | +| archive | | boolean | NO | | 0 | | +| pending | | boolean | NO | | 1 | | +| deleted | Contact has been deleted | boolean | NO | | 0 | | +| rating | | tinyint | NO | | 0 | | +| unsearchable | Contact prefers to not be searchable | boolean | NO | | 0 | | +| sensitive | Contact posts sensitive content | boolean | NO | | 0 | | +| baseurl | baseurl of the contact | varchar(255) | YES | | | | +| gsid | Global Server ID | int unsigned | YES | | NULL | | +| reason | | text | YES | | NULL | | +| closeness | | tinyint unsigned | NO | | 99 | | +| info | | mediumtext | YES | | NULL | | +| profile-id | Deprecated | int unsigned | YES | | NULL | | +| bdyear | | varchar(4) | NO | | | | +| bd | | date | NO | | 0001-01-01 | | +| notify_new_posts | | boolean | NO | | 0 | | +| fetch_further_information | | tinyint unsigned | NO | | 0 | | +| ffi_keyword_denylist | | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------------------------- | ------------------------------------ | +| PRIMARY | id | +| uid_name | uid, name(190) | +| self_uid | self, uid | +| alias_uid | alias(128), 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) | +| batch_contact-type | batch(64), contact-type | +| addr_uid | addr(128), uid | +| nurl_uid | nurl(128), uid | +| nick_uid | nick(128), uid | +| attag_uid | attag(96), uid | +| dfrn-id | dfrn-id(64) | +| issued-id | issued-id(64) | +| network_uid_lastupdate | network, uid, last-update | +| uid_network_self_lastupdate | uid, network, self, last-update | +| uid_lastitem | uid, last-item | +| baseurl | baseurl(64) | +| uid_contact-type | uid, contact-type | +| uid_self_contact-type | uid, self, contact-type | +| self_network_uid | self, network, uid | +| gsid | gsid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| gsid | [gserver](help/database/db_gserver) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_conv.md b/doc/database/db_conv.md index f70191b88e..c1d50b5de5 100644 --- a/doc/database/db_conv.md +++ b/doc/database/db_conv.md @@ -1,15 +1,35 @@ Table conv -========== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------- | ----------------------------------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| guid | A unique identifier for this conversation | varchar(64) | NO | | | | -| recips | sender_handle;recipient_handle | mediumtext | NO | | NULL | | -| uid | user_id of the owner of this data | int(11) | NO | MUL | 0 | | -| creator | handle of creator | varchar(255) | NO | | | | -| created | creation timestamp | datetime | NO | | 0001-01-01 00:00:00 | | -| updated | edited timestamp | datetime | NO | | 0001-01-01 00:00:00 | | -| subject | subject of initial message | mediumtext | NO | | NULL | | +private messages + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| guid | A unique identifier for this conversation | varchar(255) | NO | | | | +| recips | sender_handle;recipient_handle | text | YES | | NULL | | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| creator | handle of creator | varchar(255) | NO | | | | +| created | creation timestamp | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | edited timestamp | datetime | NO | | 0001-01-01 00:00:00 | | +| subject | subject of initial message | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_conversation.md b/doc/database/db_conversation.md index 32d030cb15..504b0dd4ae 100644 --- a/doc/database/db_conversation.md +++ b/doc/database/db_conversation.md @@ -1,14 +1,30 @@ Table conversation -================== +=========== + +Raw data and structure information for messages + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------------- | -------------------------------------------------------------------- | ---------------- | ---- | --- | ------------------- | ----- | +| item-uri | Original URI of the item - unrelated to the table with the same name | varbinary(255) | NO | PRI | NULL | | +| reply-to-uri | URI to which this item is a reply | varbinary(255) | NO | | | | +| conversation-uri | GNU Social conversation URI | varbinary(255) | NO | | | | +| conversation-href | GNU Social conversation link | varbinary(255) | NO | | | | +| protocol | The protocol of the item | tinyint unsigned | NO | | 255 | | +| direction | How the message arrived here: 1=push, 2=pull | tinyint unsigned | NO | | 0 | | +| source | Original source | mediumtext | YES | | NULL | | +| received | Receiving date | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ---------------- | ---------------- | +| PRIMARY | item-uri | +| conversation-uri | conversation-uri | +| received | received | -| Field | Description | Type | Null | Key | Default | Extra | -|-------------------| ---------------------------------- |---------------------|------|-----|---------------------|----------------| -| item-uri | URI of the item | varbinary(255) | NO | PRI | NULL | | -| reply-to-uri | URI to which this item is a reply | varbinary(255) | NO | | | | -| conversation-uri | GNU Social conversation URI | varbinary(255) | NO | | | | -| conversation-href | GNU Social conversation link | varbinary(255) | NO | | | | -| protocol | The protocol of the item | tinyint(1) unsigned | NO | | 0 | | -| source | Original source | mediumtext | NO | | | | -| received | Receiving date | datetime | NO | | 0001-01-01 | | Return to [database documentation](help/database) diff --git a/doc/database/db_delayed-post.md b/doc/database/db_delayed-post.md new file mode 100644 index 0000000000..fe3251f70a --- /dev/null +++ b/doc/database/db_delayed-post.md @@ -0,0 +1,31 @@ +Table delayed-post +=========== + +Posts that are about to be distributed at a later time + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ---------------------------------------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uri | URI of the post that will be distributed later | varchar(255) | YES | | NULL | | +| uid | Owner User id | mediumint unsigned | YES | | NULL | | +| delayed | delay time | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------------------- | +| PRIMARY | id | +| uid_uri | UNIQUE, uid, uri(190) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_diaspora-interaction.md b/doc/database/db_diaspora-interaction.md new file mode 100644 index 0000000000..4ac4325909 --- /dev/null +++ b/doc/database/db_diaspora-interaction.md @@ -0,0 +1,28 @@ +Table diaspora-interaction +=========== + +Signed Diaspora Interaction + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------- | --------------------------------------------------------- | ------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| interaction | The Diaspora interaction | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_event.md b/doc/database/db_event.md index 2c0650a8d8..37048599bb 100644 --- a/doc/database/db_event.md +++ b/doc/database/db_event.md @@ -1,26 +1,49 @@ Table event =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ----------------------------------------------- -------| ------------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user_id of the owner of this data | int(11) | NO | MUL | 0 | | -| cid | contact_id (ID of the contact in contact table) | int(11) | NO | | 0 | | -| uri | | varchar(255) | NO | | | | -| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | -| start | event start time | datetime | NO | | 0001-01-01 00:00:00 | | -| finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | | -| summary | short description or title of the event | text | NO | | NULL | | -| desc | event description | text | NO | | NULL | | -| location | event location | text | NO | | NULL | | -| type | event or birthday | varchar(255) | NO | | | | -| nofinish | if event does have no end this is 1 | tinyint(1) | NO | | 0 | | -| adjust | adjust to timezone of the recipient (0 or 1) | tinyint(1) | NO | | 1 | | -| ignore | 0 or 1 | tinyint(1) unsigned | NO | | 0 | | -| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | +Events + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| guid | | varchar(255) | NO | | | | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| cid | contact_id (ID of the contact in contact table) | int unsigned | NO | | 0 | | +| uri | | varchar(255) | NO | | | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | +| start | event start time | datetime | NO | | 0001-01-01 00:00:00 | | +| finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | | +| summary | short description or title of the event | text | YES | | NULL | | +| desc | event description | text | YES | | NULL | | +| location | event location | text | YES | | NULL | | +| type | event or birthday | varchar(20) | NO | | | | +| nofinish | if event does have no end this is 1 | boolean | NO | | 0 | | +| adjust | adjust to timezone of the recipient (0 or 1) | boolean | NO | | 1 | | +| ignore | 0 or 1 | boolean | NO | | 0 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------- | ---------- | +| PRIMARY | id | +| uid_start | uid, start | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| cid | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_fcontact.md b/doc/database/db_fcontact.md index d9a786acc9..43a073f619 100644 --- a/doc/database/db_fcontact.md +++ b/doc/database/db_fcontact.md @@ -1,24 +1,39 @@ Table fcontact -============== +=========== + +Diaspora compatible contacts - used in the Diaspora implementation + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------- | ---------------- | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| guid | unique id | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| name | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| request | | varchar(255) | NO | | | | +| nick | | varchar(255) | NO | | | | +| addr | | varchar(255) | NO | | | | +| batch | | varchar(255) | NO | | | | +| notify | | varchar(255) | NO | | | | +| poll | | varchar(255) | NO | | | | +| confirm | | varchar(255) | NO | | | | +| priority | | tinyint unsigned | NO | | 0 | | +| network | | char(4) | NO | | | | +| alias | | varchar(255) | NO | | | | +| pubkey | | text | YES | | NULL | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------- | +| PRIMARY | id | +| addr | addr(32) | +| url | UNIQUE, url(190) | -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| guid | unique id | varchar(64) | NO | | | | -| url | | varchar(255) | NO | | | | -| name | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| request | | varchar(255) | NO | | | | -| nick | | varchar(255) | NO | | | | -| addr | | varchar(255) | NO | MUL | | | -| batch | | varchar(255) | NO | | | | -| notify | | varchar(255) | NO | | | | -| poll | | varchar(255) | NO | | | | -| confirm | | varchar(255) | NO | | | | -| priority | | tinyint(1) | NO | | 0 | | -| network | | varchar(32) | NO | | | | -| alias | | varchar(255) | NO | | | | -| pubkey | | text | NO | | NULL | | -| updated | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_fsuggest.md b/doc/database/db_fsuggest.md index e461895c80..6ccf732971 100644 --- a/doc/database/db_fsuggest.md +++ b/doc/database/db_fsuggest.md @@ -1,16 +1,38 @@ Table fsuggest -============== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------- | ----------- | ------------ | ---- | --- | ------------------- | --------------- | -| id | | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | | 0 | | -| cid | | int(11) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| request | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| note | | text | NO | | NULL | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | +friend suggestion stuff + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| cid | | int unsigned | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| request | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| note | | text | YES | | NULL | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| cid | cid | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| cid | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_group.md b/doc/database/db_group.md index f27b9a75f7..1892de3e40 100644 --- a/doc/database/db_group.md +++ b/doc/database/db_group.md @@ -1,12 +1,32 @@ Table group =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------- | ------------------------------------------ | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id owning this data | int(10) unsigned | NO | MUL | 0 | | -| visible | 1 indicates the member list is not private | tinyint(1) | NO | | 0 | | -| deleted | 1 indicates the group has been deleted | tinyint(1) | NO | | 0 | | -| name | human readable name of group | varchar(255) | NO | | | | +privacy groups, group info + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| visible | 1 indicates the member list is not private | boolean | NO | | 0 | | +| deleted | 1 indicates the group has been deleted | boolean | NO | | 0 | | +| name | human readable name of group | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_group_member.md b/doc/database/db_group_member.md index f8a402ef6e..a544f3b0ec 100644 --- a/doc/database/db_group_member.md +++ b/doc/database/db_group_member.md @@ -1,11 +1,32 @@ Table group_member -================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ----------------------------------------------------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(10) unsigned | NO | MUL | 0 | | -| gid | groups.id of the associated group | int(10) unsigned | NO | | 0 | | -| contact-id | contact.id of the member assigned to the associated group | int(10) unsigned | NO | | 0 | | +privacy groups, member info + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | --------------------------------------------------------- | ------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| gid | groups.id of the associated group | int unsigned | NO | | 0 | | +| contact-id | contact.id of the member assigned to the associated group | int unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------- | ----------------------- | +| PRIMARY | id | +| contactid | contact-id | +| gid_contactid | UNIQUE, gid, contact-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| gid | [group](help/database/db_group) | id | +| contact-id | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_gserver-tag.md b/doc/database/db_gserver-tag.md new file mode 100644 index 0000000000..82b0ccc881 --- /dev/null +++ b/doc/database/db_gserver-tag.md @@ -0,0 +1,29 @@ +Table gserver-tag +=========== + +Tags that the server has subscribed + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | ---------------------------------- | ------------ | ---- | --- | ------- | ----- | +| gserver-id | The id of the gserver | int unsigned | NO | PRI | 0 | | +| tag | Tag that the server has subscribed | varchar(100) | NO | PRI | | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------------- | +| PRIMARY | gserver-id, tag | +| tag | tag | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| gserver-id | [gserver](help/database/db_gserver) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_gserver.md b/doc/database/db_gserver.md index d9ec69a53c..905602b3b8 100644 --- a/doc/database/db_gserver.md +++ b/doc/database/db_gserver.md @@ -1,24 +1,46 @@ Table gserver -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|------------------|---------------------------|------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| url | | varchar(255) | NO | | | | -| nurl | | varchar(255) | NO | MUL | | | -| version | | varchar(255) | NO | | | | -| site_name | | varchar(255) | NO | | | | -| info | | text | NO | | NULL | | -| register_policy | | tinyint(1) | NO | | 0 | | -| registered-users |Number of registered users | int(10) | NO | | 0 | | -| poco | | varchar(255) | NO | | | | -| noscrape | | varchar(255) | NO | | | | -| network | | varchar(32) | NO | | | | -| platform | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| last_poco_query | | datetime | YES | | 0001-01-01 00:00:00 | | -| last_contact | | datetime | YES | | 0001-01-01 00:00:00 | | -| last_failure | | datetime | YES | | 0001-01-01 00:00:00 | | +Global servers + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------------- | -------------------------------------------------- | ---------------- | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| url | | varchar(255) | NO | | | | +| nurl | | varchar(255) | NO | | | | +| version | | varchar(255) | NO | | | | +| site_name | | varchar(255) | NO | | | | +| info | | text | YES | | NULL | | +| register_policy | | tinyint | NO | | 0 | | +| registered-users | Number of registered users | int unsigned | NO | | 0 | | +| directory-type | Type of directory service (Poco, Mastodon) | tinyint | YES | | 0 | | +| poco | | varchar(255) | NO | | | | +| noscrape | | varchar(255) | NO | | | | +| network | | char(4) | NO | | | | +| protocol | The protocol of the server | tinyint unsigned | YES | | NULL | | +| platform | | varchar(255) | NO | | | | +| relay-subscribe | Has the server subscribed to the relay system | boolean | NO | | 0 | | +| relay-scope | The scope of messages that the server wants to get | varchar(10) | NO | | | | +| detection-method | Method that had been used to detect that server | tinyint unsigned | YES | | NULL | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| last_poco_query | | datetime | YES | | 0001-01-01 00:00:00 | | +| last_contact | Last successful connection request | datetime | YES | | 0001-01-01 00:00:00 | | +| last_failure | Last failed connection request | datetime | YES | | 0001-01-01 00:00:00 | | +| failed | Connection failed | boolean | YES | | NULL | | +| next_contact | Next connection request | datetime | YES | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------------ | ----------------- | +| PRIMARY | id | +| nurl | UNIQUE, nurl(190) | +| next_contact | next_contact | +| network | network | Return to [database documentation](help/database) diff --git a/doc/database/db_hook.md b/doc/database/db_hook.md index 06eb84a182..0ad0981f0c 100644 --- a/doc/database/db_hook.md +++ b/doc/database/db_hook.md @@ -1,12 +1,27 @@ Table hook -========== +=========== + +addon hook registry + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ---------------------------------------------------------------------------------------------------------- | ----------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| hook | name of hook | varbinary(100) | NO | | | | +| file | relative filename of hook handler | varbinary(200) | NO | | | | +| function | function name of hook handler | varbinary(200) | NO | | | | +| priority | not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order | smallint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------------ | ---------------------------- | +| PRIMARY | id | +| priority | priority | +| hook_file_function | UNIQUE, hook, file, function | -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ---------------------------------------------------------------------------------------------------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| hook | name of hook | varchar(255) | NO | MUL | | | -| file | relative filename of hook handler | varchar(255) | NO | | | | -| function | function name of hook handler | varchar(255) | NO | | | | -| priority | not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order | int(11) unsigned | NO | | 0 | | Return to [database documentation](help/database) diff --git a/doc/database/db_host.md b/doc/database/db_host.md new file mode 100644 index 0000000000..4b2d4d1e5d --- /dev/null +++ b/doc/database/db_host.md @@ -0,0 +1,23 @@ +Table host +=========== + +Hostname + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------- | ---------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | tinyint unsigned | NO | PRI | NULL | auto_increment | +| name | The hostname | varchar(128) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------------ | +| PRIMARY | id | +| name | UNIQUE, name | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_inbox-status.md b/doc/database/db_inbox-status.md new file mode 100644 index 0000000000..3b82cf46a0 --- /dev/null +++ b/doc/database/db_inbox-status.md @@ -0,0 +1,27 @@ +Table inbox-status +=========== + +Status of ActivityPub inboxes + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------------------------------ | -------------- | ---- | --- | ------------------- | ----- | +| url | URL of the inbox | varbinary(255) | NO | PRI | NULL | | +| created | Creation date of this entry | datetime | NO | | 0001-01-01 00:00:00 | | +| success | Date of the last successful delivery | datetime | NO | | 0001-01-01 00:00:00 | | +| failure | Date of the last failed delivery | datetime | NO | | 0001-01-01 00:00:00 | | +| previous | Previous delivery date | datetime | NO | | 0001-01-01 00:00:00 | | +| archive | Is the inbox archived? | boolean | NO | | 0 | | +| shared | Is it a shared inbox? | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | url | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_intro.md b/doc/database/db_intro.md index a71154a4f9..426d8579dd 100644 --- a/doc/database/db_intro.md +++ b/doc/database/db_intro.md @@ -1,18 +1,40 @@ Table intro =========== -| Field | Description | Type | Null | Key | Default | Extra | -|------------|------------------|------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | | int(10) unsigned | NO | | 0 | | -| fid | | int(11) | NO | | 0 | | -| contact-id | | int(11) | NO | | 0 | | -| knowyou | | tinyint(1) | NO | | 0 | | -| duplex | | tinyint(1) | NO | | 0 | | -| note | | text | NO | | NULL | | -| hash | | varchar(255) | NO | | | | -| datetime | | datetime | NO | | 0001-01-01 00:00:00 | | -| blocked | | tinyint(1) | NO | | 1 | | -| ignore | | tinyint(1) | NO | | 0 | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | ------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| fid | | int unsigned | YES | | NULL | | +| contact-id | | int unsigned | NO | | 0 | | +| knowyou | | boolean | NO | | 0 | | +| duplex | | boolean | NO | | 0 | | +| note | | text | YES | | NULL | | +| hash | | varchar(255) | NO | | | | +| datetime | | datetime | NO | | 0001-01-01 00:00:00 | | +| blocked | | boolean | NO | | 1 | | +| ignore | | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ---------- | ---------- | +| PRIMARY | id | +| contact-id | contact-id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_item-uri.md b/doc/database/db_item-uri.md new file mode 100644 index 0000000000..c6d1c4c376 --- /dev/null +++ b/doc/database/db_item-uri.md @@ -0,0 +1,25 @@ +Table item-uri +=========== + +URI and GUID for items + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------------------------- | -------------- | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uri | URI of an item | varbinary(255) | NO | | NULL | | +| guid | A unique identifier for an item | varbinary(255) | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ----------- | +| PRIMARY | id | +| uri | UNIQUE, uri | +| guid | guid | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_item.md b/doc/database/db_item.md deleted file mode 100644 index d24d92bad8..0000000000 --- a/doc/database/db_item.md +++ /dev/null @@ -1,72 +0,0 @@ -Table item -========== - -| Field | Description | Type | Null | Key | Default | Extra | -|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| guid | A unique identifier for this item | varchar(255) | NO | MUL | | | -| uri | | varchar(255) | NO | MUL | | | -| uid | user.id which owns this copy of the item | int(10) unsigned | NO | MUL | 0 | | -| contact-id | contact.id | int(11) | NO | MUL | 0 | | -| gcontact-id | ID of the global contact | int(11) | NO | MUL | 0 | | -| type | | varchar(255) | NO | | | | -| wall | This item was posted to the wall of uid | tinyint(1) | NO | MUL | 0 | | -| gravity | | tinyint(1) | NO | | 0 | | -| parent | 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 | int(10) unsigned | NO | MUL | 0 | | -| parent-uri | uri of the parent to this item | varchar(255) | NO | MUL | | | -| extid | | varchar(255 | NO | MUL | | | -| thr-parent | 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 | varchar(255) | NO | | | | -| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | -| commented | Date of last comment/reply to this item | datetime | NO | | 0001-01-01 00:00:00 | | -| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | -| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | -| owner-name | Name of the owner of this item | varchar(255) | NO | | | | -| owner-link | Link to the profile page of the owner of this item | varchar(255) | NO | | | | -| owner-avatar | Link to the avatar picture of the owner of this item | varchar(255) | NO | | | | -| owner-id | Link to the contact table with uid=0 of the owner of this item | int(11) | NO | MUL | 0 | | -| author-name | Name of the author of this item | varchar(255) | NO | | | | -| author-link | Link to the profile page of the author of this item | varchar(255) | NO | | | | -| author-avatar | Link to the avatar picture of the author of this item | varchar(255) | NO | | | | -| author-id | Link to the contact table with uid=0 of the author of this item | int(11) | NO | MUL | 0 | | -| title | item title | varchar(255) | NO | | | | -| body | item body content | mediumtext | NO | | NULL | | -| app | application which generated this item | varchar(255) | NO | | | | -| verb | ActivityStreams verb | varchar(255) | NO | | | | -| object-type | ActivityStreams object type | varchar(255) | NO | | | | -| object | JSON encoded object structure unless it is an implied object (normal post) | text | NO | | NULL | | -| target-type | ActivityStreams target type if applicable (URI) | varchar(255) | NO | | | | -| target | JSON encoded target structure if used | text | NO | | NULL | | -| postopts | External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery | text | NO | | NULL | | -| plink | permalink or URL toa displayable copy of the message at its source | varchar(255) | NO | | | | -| resource-id | Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type | varchar(255) | NO | MUL | | | -| event-id | Used to link to the event.id | int(11) | NO | | 0 | | -| tag | | mediumtext | NO | | NULL | | -| attach | JSON structure representing attachments to this item | mediumtext | NO | | NULL | | -| inform | | mediumtext | NO | | NULL | | -| file | | mediumtext | NO | | NULL | | -| location | text location where this item originated | varchar(255) | NO | | | | -| coord | longitude/latitude pair representing location where this item originated | varchar(255) | NO | | | | -| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | -| private | distribution is restricted | tinyint(1) | NO | | 0 | | -| pubmail | | tinyint(1) | NO | | 0 | | -| moderated | | tinyint(1) | NO | | 0 | | -| visible | | tinyint(1) | NO | | 0 | | -| spam | | tinyint(1) | NO | | 0 | | -| starred | item has been favourited | tinyint(1) | NO | | 0 | | -| bookmark | item has been bookmarked | tinyint(1) | NO | | 0 | | -| unseen | item has not been seen | tinyint(1) | NO | | 1 | | -| deleted | item has been deleted | tinyint(1) | NO | MUL | 0 | | -| origin | item originated at this site | tinyint(1) | NO | | 0 | | -| forum_mode | | tinyint(1) | NO | | 0 | | -| last-child | | tinyint(1) unsigned | NO | | 1 | | -| mention | The owner of this item was mentioned in it | tinyint(1) | NO | | 0 | | -| network | Network from where the item comes from | varchar(32) | NO | | | | -| rendered-hash | | varchar(32) | NO | | | | -| rendered-html | item.body converted to html | mediumtext | NO | | NULL | | -| global | | tinyint(1) | NO | | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_locks.md b/doc/database/db_locks.md index 4de6fbf961..dc5371184d 100644 --- a/doc/database/db_locks.md +++ b/doc/database/db_locks.md @@ -1,11 +1,26 @@ Table locks =========== -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| name | | varchar(128) | NO | | | | -| locked | | tinyint(1) | NO | | 0 | | -| pid | Process ID | int(10) unsigned | NO | | 0 | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ---------------------------- | ------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| name | | varchar(128) | NO | | | | +| locked | | boolean | NO | | 0 | | +| pid | Process ID | int unsigned | NO | | 0 | | +| expires | datetime of cache expiration | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------------ | ------------- | +| PRIMARY | id | +| name_expires | name, expires | + Return to [database documentation](help/database) diff --git a/doc/database/db_mail.md b/doc/database/db_mail.md index 623b8c9c85..460c03bf6a 100644 --- a/doc/database/db_mail.md +++ b/doc/database/db_mail.md @@ -1,24 +1,61 @@ Table mail -========== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | -------------------------------------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(10) unsigned | NO | MUL | 0 | | -| guid | A unique identifier for this private message | int(10) unsigned | NO | MUL | | | -| from-name | name of the sender | varchar(255) | NO | | | | -| from-photo | contact photo link of the sender | varchar(255) | NO | | | | -| from-url | profile linke of the sender | varchar(255) | NO | | | | -| contact-id | contact.id | varchar(255) | NO | | | | -| convid | conv.id | int(11) unsigned | NO | MUL | 0 | | -| title | | varchar(255) | NO | | | | -| body | | mediumtext | NO | | NULL | | -| seen | if message visited it is 1 | varchar(255) | NO | | 0 | | -| reply | | varchar(255) | NO | MUL | 0 | | -| replied | | varchar(255) | NO | | 0 | | -| unknown | if sender not in the contact table this is 1 | varchar(255) | NO | | 0 | | -| uri | | varchar(255) | NO | MUL | | | -| parent-uri | | varchar(255) | NO | MUL | | | -| created | creation time of the private message | datetime | NO | | 0001-01-01 00:00:00 | | +private messages + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | -------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| guid | A unique identifier for this private message | varchar(255) | NO | | | | +| from-name | name of the sender | varchar(255) | NO | | | | +| from-photo | contact photo link of the sender | varchar(255) | NO | | | | +| from-url | profile linke of the sender | varchar(255) | NO | | | | +| contact-id | contact.id | varchar(255) | YES | | NULL | | +| author-id | Link to the contact table with uid=0 of the author of the mail | int unsigned | YES | | NULL | | +| convid | conv.id | int unsigned | YES | | NULL | | +| title | | varchar(255) | NO | | | | +| body | | mediumtext | YES | | NULL | | +| seen | if message visited it is 1 | boolean | NO | | 0 | | +| reply | | boolean | NO | | 0 | | +| replied | | boolean | NO | | 0 | | +| unknown | if sender not in the contact table this is 1 | boolean | NO | | 0 | | +| uri | | varchar(255) | NO | | | | +| uri-id | Item-uri id of the related mail | int unsigned | YES | | NULL | | +| parent-uri | | varchar(255) | NO | | | | +| parent-uri-id | Item-uri id of the parent of the related mail | int unsigned | YES | | NULL | | +| thr-parent | | varchar(255) | YES | | NULL | | +| thr-parent-id | Id of the item-uri table that contains the thread parent uri | int unsigned | YES | | NULL | | +| created | creation time of the private message | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------------- | -------------- | +| PRIMARY | id | +| uid_seen | uid, seen | +| convid | convid | +| uri | uri(64) | +| parent-uri | parent-uri(64) | +| contactid | contact-id(32) | +| author-id | author-id | +| uri-id | uri-id | +| parent-uri-id | parent-uri-id | +| thr-parent-id | thr-parent-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| author-id | [contact](help/database/db_contact) | id | +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| thr-parent-id | [item-uri](help/database/db_item-uri) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_mailacct.md b/doc/database/db_mailacct.md index 9f6484f818..59f34250ce 100644 --- a/doc/database/db_mailacct.md +++ b/doc/database/db_mailacct.md @@ -1,20 +1,40 @@ Table mailacct -============== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------|------------------|--------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | | 0 | | -| server | | varchar(255) | NO | | | | -| port | | int(11) | NO | | 0 | | -| ssltype | | varchar(16) | NO | | | | -| mailbox | | varchar(255) | NO | | | | -| user | | varchar(255) | NO | | | | -| pass | | text | NO | | NULL | | -| reply_to | | varchar(255) | NO | | | | -| action | | int(11) | NO | | 0 | | -| movetofolder | | varchar(255) | NO | | | | -| pubmail | | tinyint(1) | NO | | 0 | | -| last_check | | datetime | NO | | 0001-01-01 00:00:00 | | +Mail account data for fetching mails + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| server | | varchar(255) | NO | | | | +| port | | smallint unsigned | NO | | 0 | | +| ssltype | | varchar(16) | NO | | | | +| mailbox | | varchar(255) | NO | | | | +| user | | varchar(255) | NO | | | | +| pass | | text | YES | | NULL | | +| reply_to | | varchar(255) | NO | | | | +| action | | tinyint unsigned | NO | | 0 | | +| movetofolder | | varchar(255) | NO | | | | +| pubmail | | boolean | NO | | 0 | | +| last_check | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_manage.md b/doc/database/db_manage.md index 4cfc1d0a11..8a2228a5ef 100644 --- a/doc/database/db_manage.md +++ b/doc/database/db_manage.md @@ -1,10 +1,32 @@ Table manage -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ----- | ------------- | ------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user.id | int(11) | NO | MUL | 0 | | -| mid | | int(11) | NO | | 0 | | +table of accounts that can manage each other + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| mid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------- | +| PRIMARY | id | +| uid_mid | UNIQUE, uid, mid | +| mid | mid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| mid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_notification.md b/doc/database/db_notification.md new file mode 100644 index 0000000000..ff059c344f --- /dev/null +++ b/doc/database/db_notification.md @@ -0,0 +1,45 @@ +Table notification +=========== + +notifications + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | ------------------------------------------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | YES | | NULL | | +| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | YES | | NULL | | +| type | | tinyint unsigned | YES | | NULL | | +| actor-id | Link to the contact table with uid=0 of the actor that caused the notification | int unsigned | YES | | NULL | | +| target-uri-id | Item-uri id of the related post | int unsigned | YES | | NULL | | +| parent-uri-id | Item-uri id of the parent of the related post | int unsigned | YES | | NULL | | +| created | | datetime | YES | | NULL | | +| seen | | boolean | YES | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------------- | ----------------------------------------------- | +| PRIMARY | id | +| uid_vid_type_actor-id_target-uri-id | UNIQUE, uid, vid, type, actor-id, target-uri-id | +| vid | vid | +| actor-id | actor-id | +| target-uri-id | target-uri-id | +| parent-uri-id | parent-uri-id | +| seen_uid | seen, uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| vid | [verb](help/database/db_verb) | id | +| actor-id | [contact](help/database/db_contact) | id | +| target-uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_notify-threads.md b/doc/database/db_notify-threads.md index 5c196628d4..82ed225f7d 100644 --- a/doc/database/db_notify-threads.md +++ b/doc/database/db_notify-threads.md @@ -1,12 +1,37 @@ Table notify-threads -==================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------------|------------------|------------------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| notify-id | | int(11) | NO | | 0 | | -| master-parent-item | | int(10) unsigned | NO | MUL | 0 | | -| parent-item | | int(10) unsigned | NO | | 0 | | -| receiver-uid | | int(11) | NO | MUL | 0 | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------------------- | --------------------------------------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| notify-id | | int unsigned | NO | | 0 | | +| master-parent-item | Deprecated | int unsigned | YES | | NULL | | +| master-parent-uri-id | Item-uri id of the parent of the related post | int unsigned | YES | | NULL | | +| parent-item | | int unsigned | NO | | 0 | | +| receiver-uid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| -------------------- | -------------------- | +| PRIMARY | id | +| master-parent-uri-id | master-parent-uri-id | +| receiver-uid | receiver-uid | +| notify-id | notify-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| notify-id | [notify](help/database/db_notify) | id | +| master-parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| receiver-uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_notify.md b/doc/database/db_notify.md index fbf0db7705..250734e56c 100644 --- a/doc/database/db_notify.md +++ b/doc/database/db_notify.md @@ -1,24 +1,51 @@ Table notify -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | --------------------------------- | ------------ | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| hash | | varchar(64) | NO | | | | -| type | | int(11) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| date | | datetime | NO | | 0001-01-01 00:00:00 | | -| msg | | mediumtext | YES | | NULL | | -| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | -| link | | varchar(255) | NO | | | | -| iid | item.id | int(11) | NO | | 0 | | -| parent | | int(11) | NO | | 0 | | -| seen | | tinyint(1) | NO | | 0 | | -| verb | | varchar(255) | NO | | | | -| otype | | varchar(16) | NO | | | | -| name_cache | Cached bbcode parsing of name | tinytext | YES | | NULL | | -| msg_cache | Cached bbcode parsing of msg | mediumtext | YES | | NULL | | +notifications + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | --------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| type | | smallint unsigned | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| date | | datetime | NO | | 0001-01-01 00:00:00 | | +| msg | | mediumtext | YES | | NULL | | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| link | | varchar(255) | NO | | | | +| iid | | int unsigned | YES | | NULL | | +| parent | | int unsigned | YES | | NULL | | +| uri-id | Item-uri id of the related post | int unsigned | YES | | NULL | | +| parent-uri-id | Item-uri id of the parent of the related post | int unsigned | YES | | NULL | | +| seen | | boolean | NO | | 0 | | +| verb | | varchar(100) | NO | | | | +| otype | | varchar(10) | NO | | | | +| name_cache | Cached bbcode parsing of name | tinytext | YES | | NULL | | +| msg_cache | Cached bbcode parsing of msg | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------------- | -------------------- | +| PRIMARY | id | +| seen_uid_date | seen, uid, date | +| uid_date | uid, date | +| uid_type_link | uid, type, link(190) | +| uri-id | uri-id | +| parent-uri-id | parent-uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_oembed.md b/doc/database/db_oembed.md index 651a52e740..8304a32f4b 100644 --- a/doc/database/db_oembed.md +++ b/doc/database/db_oembed.md @@ -1,11 +1,25 @@ Table oembed -============ +=========== + +cache for OEmbed queries + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------------------------ | ------------------ | ---- | --- | ------------------- | ----- | +| url | page url | varbinary(255) | NO | PRI | NULL | | +| maxwidth | Maximum width passed to Oembed | mediumint unsigned | NO | PRI | NULL | | +| content | OEmbed data of the page | mediumtext | YES | | NULL | | +| created | datetime of creation | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------------- | +| PRIMARY | url, maxwidth | +| created | created | -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | -| url | page url | varchar(255) | NO | PRI | NULL | | -| maxwidth | Maximum width passed to Oembed | int(11) | NO | PRI | 0 | | -| content | OEmbed data of the page | text | NO | | NULL | | -| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_openwebauth-token.md b/doc/database/db_openwebauth-token.md new file mode 100644 index 0000000000..c330623d92 --- /dev/null +++ b/doc/database/db_openwebauth-token.md @@ -0,0 +1,33 @@ +Table openwebauth-token +=========== + +Store OpenWebAuth token to verify contacts + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | -------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id - currently unused | mediumint unsigned | NO | | 0 | | +| type | Verify type | varchar(32) | NO | | | | +| token | A generated token | varchar(255) | NO | | | | +| meta | | varchar(255) | NO | | | | +| created | datetime of creation | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_parsed_url.md b/doc/database/db_parsed_url.md index 343e5a8bed..1752cd0b5b 100644 --- a/doc/database/db_parsed_url.md +++ b/doc/database/db_parsed_url.md @@ -1,12 +1,29 @@ Table parsed_url -================ +=========== + +cache for 'parse_url' queries + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | --------------------------------- | ---------- | ---- | --- | ------------------- | ----- | +| url_hash | page url hash | binary(64) | NO | PRI | NULL | | +| guessing | is the 'guessing' mode active? | boolean | NO | PRI | 0 | | +| oembed | is the data the result of oembed? | boolean | NO | PRI | 0 | | +| url | page url | text | NO | | NULL | | +| content | page data | mediumtext | YES | | NULL | | +| created | datetime of creation | datetime | NO | | 0001-01-01 00:00:00 | | +| expires | datetime of expiration | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | -------------------------- | +| PRIMARY | url_hash, guessing, oembed | +| created | created | +| expires | expires | -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | -| url | page url | varchar(255) | NO | PRI | NULL | | -| guessing | is the "guessing" mode active? | tinyint(1) | NO | PRI | 0 | | -| oembed | is the data the result of oembed? | tinyint(1) | NO | PRI | 0 | | -| content | page data | text | NO | | NULL | | -| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_pconfig.md b/doc/database/db_pconfig.md index a4ed10a359..cf9b0d7810 100644 --- a/doc/database/db_pconfig.md +++ b/doc/database/db_pconfig.md @@ -1,12 +1,32 @@ -Table pconfic -============= +Table pconfig +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|-------|-------------|------------|------|-----|---------|----------------| -| id | | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | MUL | 0 | | -| cat | | char(255) | NO | | | | -| k | | char(255) | NO | | | | -| v | | mediumtext | NO | | NULL | | +personal (per user) configuration storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | ------------------ | ---- | --- | ------- | -------------- | +| id | Primary key | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| cat | Category | varchar(50) | NO | | | | +| k | Key | varchar(100) | NO | | | | +| v | Value | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------- | ------------------- | +| PRIMARY | id | +| uid_cat_k | UNIQUE, uid, cat, k | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_permissionset.md b/doc/database/db_permissionset.md new file mode 100644 index 0000000000..38c6fe8f31 --- /dev/null +++ b/doc/database/db_permissionset.md @@ -0,0 +1,33 @@ +Table permissionset +=========== + + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner id of this permission set | mediumint unsigned | NO | | 0 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------------------- | ------------------------------------------------------------- | +| PRIMARY | id | +| uid_allow_cid_allow_gid_deny_cid_deny_gid | uid, allow_cid(50), allow_gid(30), deny_cid(50), deny_gid(30) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_photo.md b/doc/database/db_photo.md index 2bb7473e21..b641ae4596 100644 --- a/doc/database/db_photo.md +++ b/doc/database/db_photo.md @@ -1,29 +1,60 @@ Table photo =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ----------- | ------------------------------------------------------ | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(10) unsigned | NO | MUL | 0 | | -| contact-id | contact.id | int(10) unsigned | NO | | 0 | | -| guid | A unique identifier for this photo | varchar(64) | NO | MUL | | | -| resource-id | | varchar(255) | NO | MUL | | | -| created | creation date | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | | -| title | | varchar(255) | NO | | | | -| desc | | text | NO | | NULL | | -| album | The name of the album to which the photo belongs | varchar(255) | NO | | | | -| filename | | varchar(255) | NO | | | | -| type | image type | varchar(128) | NO | | image/jpeg | | -| height | | smallint(6) | NO | | 0 | | -| width | | smallint(6) | NO | | 0 | | -| size | | int(10) unsigned | NO | | 0 | | -| data | | mediumblob | NO | | NULL | | -| scale | | tinyint(3) | NO | | 0 | | -| profile | | tinyint(1) | NO | | 0 | | -| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | +photo storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| contact-id | contact.id | int unsigned | NO | | 0 | | +| guid | A unique identifier for this photo | char(16) | NO | | | | +| resource-id | | char(32) | NO | | | | +| hash | hash value of the photo | char(32) | YES | | NULL | | +| created | creation date | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | | +| title | | varchar(255) | NO | | | | +| desc | | text | YES | | NULL | | +| album | The name of the album to which the photo belongs | varchar(255) | NO | | | | +| filename | | varchar(255) | NO | | | | +| type | | varchar(30) | NO | | image/jpeg | | +| height | | smallint unsigned | NO | | 0 | | +| width | | smallint unsigned | NO | | 0 | | +| datasize | | int unsigned | NO | | 0 | | +| data | | mediumblob | NO | | NULL | | +| scale | | tinyint unsigned | NO | | 0 | | +| profile | | boolean | NO | | 0 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | +| accessible | Make photo publicly accessible, ignoring permissions | boolean | NO | | 0 | | +| backend-class | Storage backend class | tinytext | YES | | NULL | | +| backend-ref | Storage backend data reference | text | YES | | NULL | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------- | ------------------------------------ | +| 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 | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_poll.md b/doc/database/db_poll.md deleted file mode 100644 index fd89b345c1..0000000000 --- a/doc/database/db_poll.md +++ /dev/null @@ -1,19 +0,0 @@ -Table poll -========== - -| Field | Description | Type | Null | Key | Default | Extra | -|-------|-------------|------------|------|-----|---------|----------------| -| id | | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | MUL | 0 | | -| q0 | | mediumtext | NO | | NULL | | -| q1 | | mediumtext | NO | | NULL | | -| q2 | | mediumtext | NO | | NULL | | -| q3 | | mediumtext | NO | | NULL | | -| q4 | | mediumtext | NO | | NULL | | -| q5 | | mediumtext | NO | | NULL | | -| q6 | | mediumtext | NO | | NULL | | -| q7 | | mediumtext | NO | | NULL | | -| q8 | | mediumtext | NO | | NULL | | -| q9 | | mediumtext | NO | | NULL | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_poll_result.md b/doc/database/db_poll_result.md deleted file mode 100644 index 5a732d0adf..0000000000 --- a/doc/database/db_poll_result.md +++ /dev/null @@ -1,10 +0,0 @@ -Table poll_result -================= - -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|---------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| poll_id | | int(11) | NO | MUL | 0 | | -| choice | | int(11) | NO | MUL | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_post-category.md b/doc/database/db_post-category.md new file mode 100644 index 0000000000..b825a8f4b1 --- /dev/null +++ b/doc/database/db_post-category.md @@ -0,0 +1,34 @@ +Table post-category +=========== + +post relation to categories + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------ | --------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| uid | User id | mediumint unsigned | NO | PRI | 0 | | +| type | | tinyint unsigned | NO | PRI | 0 | | +| tid | | int unsigned | NO | PRI | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------------- | +| PRIMARY | uri-id, uid, type, tid | +| uri-id | tid | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| uid | [user](help/database/db_user) | uid | +| tid | [tag](help/database/db_tag) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-content.md b/doc/database/db_post-content.md new file mode 100644 index 0000000000..0addf43a31 --- /dev/null +++ b/doc/database/db_post-content.md @@ -0,0 +1,46 @@ +Table post-content +=========== + +Content for all posts + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| title | item title | varchar(255) | NO | | | | +| content-warning | | varchar(255) | NO | | | | +| body | item body content | mediumtext | YES | | NULL | | +| raw-body | Body without embedded media links | mediumtext | YES | | NULL | | +| location | text location where this item originated | varchar(255) | NO | | | | +| coord | longitude/latitude pair representing location where this item originated | varchar(255) | NO | | | | +| language | Language information about this post | text | YES | | NULL | | +| app | application which generated this item | varchar(255) | NO | | | | +| rendered-hash | | varchar(32) | NO | | | | +| rendered-html | item.body converted to html | mediumtext | YES | | NULL | | +| object-type | ActivityStreams object type | varchar(100) | NO | | | | +| object | JSON encoded object structure unless it is an implied object (normal post) | text | YES | | NULL | | +| target-type | ActivityStreams target type if applicable (URI) | varchar(100) | NO | | | | +| target | JSON encoded target structure if used | text | YES | | NULL | | +| resource-id | Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type | varchar(32) | NO | | | | +| plink | permalink or URL to a displayable copy of the message at its source | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| -------------------------- | -------------------------------------- | +| PRIMARY | uri-id | +| plink | plink(191) | +| resource-id | resource-id | +| title-content-warning-body | FULLTEXT, title, content-warning, body | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-delivery-data.md b/doc/database/db_post-delivery-data.md new file mode 100644 index 0000000000..ad4ca6af32 --- /dev/null +++ b/doc/database/db_post-delivery-data.md @@ -0,0 +1,37 @@ +Table post-delivery-data +=========== + +Delivery data for items + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| postopts | External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery | text | YES | | NULL | | +| inform | Additional receivers of the linked item | mediumtext | YES | | NULL | | +| queue_count | Initial number of delivery recipients, used as item.delivery_queue_count | mediumint | NO | | 0 | | +| queue_done | Number of successful deliveries, used as item.delivery_queue_done | mediumint | NO | | 0 | | +| queue_failed | Number of unsuccessful deliveries, used as item.delivery_queue_failed | mediumint | NO | | 0 | | +| activitypub | Number of successful deliveries via ActivityPub | mediumint | NO | | 0 | | +| dfrn | Number of successful deliveries via DFRN | mediumint | NO | | 0 | | +| legacy_dfrn | Number of successful deliveries via legacy DFRN | mediumint | NO | | 0 | | +| diaspora | Number of successful deliveries via Diaspora | mediumint | NO | | 0 | | +| ostatus | Number of successful deliveries via OStatus | mediumint | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-media.md b/doc/database/db_post-media.md new file mode 100644 index 0000000000..e17a04e5fb --- /dev/null +++ b/doc/database/db_post-media.md @@ -0,0 +1,46 @@ +Table post-media +=========== + +Attached media + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------------- | --------------------------------------------------------- | ----------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | | NULL | | +| url | Media URL | varbinary(511) | NO | | NULL | | +| type | Media type | tinyint unsigned | NO | | 0 | | +| mimetype | | varchar(60) | YES | | NULL | | +| height | Height of the media | smallint unsigned | YES | | NULL | | +| width | Width of the media | smallint unsigned | YES | | NULL | | +| size | Media size | int unsigned | YES | | NULL | | +| preview | Preview URL | varbinary(255) | YES | | NULL | | +| preview-height | Height of the preview picture | smallint unsigned | YES | | NULL | | +| preview-width | Width of the preview picture | smallint unsigned | YES | | NULL | | +| description | | text | YES | | NULL | | +| name | Name of the media | varchar(255) | YES | | NULL | | +| author-url | URL of the author of the media | varbinary(255) | YES | | NULL | | +| author-name | Name of the author of the media | varchar(255) | YES | | NULL | | +| author-image | Image of the author of the media | varbinary(255) | YES | | NULL | | +| publisher-url | URL of the publisher of the media | varbinary(255) | YES | | NULL | | +| publisher-name | Name of the publisher of the media | varchar(255) | YES | | NULL | | +| publisher-image | Image of the publisher of the media | varbinary(255) | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ---------- | ------------------- | +| PRIMARY | id | +| uri-id-url | UNIQUE, uri-id, url | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-tag.md b/doc/database/db_post-tag.md new file mode 100644 index 0000000000..7811f32e07 --- /dev/null +++ b/doc/database/db_post-tag.md @@ -0,0 +1,34 @@ +Table post-tag +=========== + +post relation to tags + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------ | --------------------------------------------------------- | ---------------- | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| type | | tinyint unsigned | NO | PRI | 0 | | +| tid | | int unsigned | NO | PRI | 0 | | +| cid | Contact id of the mentioned public contact | int unsigned | NO | PRI | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------------- | +| PRIMARY | uri-id, type, tid, cid | +| tid | tid | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| tid | [tag](help/database/db_tag) | id | +| cid | [contact](help/database/db_contact) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-thread-user.md b/doc/database/db_post-thread-user.md new file mode 100644 index 0000000000..3efb5a77af --- /dev/null +++ b/doc/database/db_post-thread-user.md @@ -0,0 +1,70 @@ +Table post-thread-user +=========== + +Thread related data per user + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ------------------------------------------------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| owner-id | Item owner | int unsigned | NO | | 0 | | +| author-id | Item author | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| network | | char(4) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| received | | datetime | NO | | 0001-01-01 00:00:00 | | +| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | +| commented | | datetime | NO | | 0001-01-01 00:00:00 | | +| uid | Owner id which owns this copy of the item | mediumint unsigned | NO | PRI | 0 | | +| pinned | The thread is pinned on the profile page | boolean | NO | | 0 | | +| starred | | boolean | NO | | 0 | | +| ignored | Ignore updates for this thread | boolean | NO | | 0 | | +| wall | This item was posted to the wall of uid | boolean | NO | | 0 | | +| mention | | boolean | NO | | 0 | | +| pubmail | | boolean | NO | | 0 | | +| forum_mode | | tinyint unsigned | NO | | 0 | | +| contact-id | contact.id | int unsigned | NO | | 0 | | +| unseen | post has not been seen | boolean | NO | | 1 | | +| hidden | Marker to hide the post from the user | boolean | NO | | 0 | | +| origin | item originated at this site | boolean | NO | | 0 | | +| psid | ID of the permission set of this post | int unsigned | YES | | NULL | | +| post-user-id | Id of the post-user table | int unsigned | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------------- | -------------- | +| PRIMARY | uid, uri-id | +| uri-id | uri-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| uid | uid | +| contact-id | contact-id | +| psid | psid | +| post-user-id | post-user-id | +| commented | commented | +| uid_received | uid, received | +| uid_pinned | uid, pinned | +| uid_commented | uid, commented | +| uid_starred | uid, starred | +| uid_mention | uid, mention | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | +| psid | [permissionset](help/database/db_permissionset) | id | +| post-user-id | [post-user](help/database/db_post-user) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-thread.md b/doc/database/db_post-thread.md new file mode 100644 index 0000000000..96fd0d4275 --- /dev/null +++ b/doc/database/db_post-thread.md @@ -0,0 +1,43 @@ +Table post-thread +=========== + +Thread related data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------------------------------------------------------- | ------------ | ---- | --- | ------------------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| owner-id | Item owner | int unsigned | NO | | 0 | | +| author-id | Item author | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| network | | char(4) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| received | | datetime | NO | | 0001-01-01 00:00:00 | | +| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | +| commented | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| --------- | --------- | +| PRIMARY | uri-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| received | received | +| commented | commented | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-user-notification.md b/doc/database/db_post-user-notification.md new file mode 100644 index 0000000000..36edd4a289 --- /dev/null +++ b/doc/database/db_post-user-notification.md @@ -0,0 +1,31 @@ +Table post-user-notification +=========== + +User post notifications + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------------- | --------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| uid | Owner id which owns this copy of the item | mediumint unsigned | NO | PRI | NULL | | +| notification-type | | tinyint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ----------- | +| PRIMARY | uid, uri-id | +| uri-id | uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-user.md b/doc/database/db_post-user.md new file mode 100644 index 0000000000..5fbc3e985a --- /dev/null +++ b/doc/database/db_post-user.md @@ -0,0 +1,86 @@ +Table post-user +=========== + +User specific post data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------------- | --------------------------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | | NULL | | +| parent-uri-id | Id of the item-uri table that contains the parent uri | int unsigned | YES | | NULL | | +| thr-parent-id | Id of the item-uri table that contains the thread parent uri | int unsigned | YES | | NULL | | +| external-id | Id of the item-uri table entry that contains the external uri | int unsigned | YES | | NULL | | +| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | +| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | +| gravity | | tinyint unsigned | NO | | 0 | | +| network | Network from where the item comes from | char(4) | NO | | | | +| owner-id | Link to the contact table with uid=0 of the owner of this item | int unsigned | NO | | 0 | | +| author-id | Link to the contact table with uid=0 of the author of this item | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| post-type | Post type (personal note, image, article, ...) | tinyint unsigned | NO | | 0 | | +| post-reason | Reason why the post arrived at the user | tinyint unsigned | NO | | 0 | | +| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | YES | | NULL | | +| private | 0=public, 1=private, 2=unlisted | tinyint unsigned | NO | | 0 | | +| global | | boolean | NO | | 0 | | +| visible | | boolean | NO | | 0 | | +| deleted | item has been marked for deletion | boolean | NO | | 0 | | +| uid | Owner id which owns this copy of the item | mediumint unsigned | NO | | NULL | | +| protocol | Protocol used to deliver the item for this user | tinyint unsigned | YES | | NULL | | +| contact-id | contact.id | int unsigned | NO | | 0 | | +| event-id | Used to link to the event.id | int unsigned | YES | | NULL | | +| unseen | post has not been seen | boolean | NO | | 1 | | +| hidden | Marker to hide the post from the user | boolean | NO | | 0 | | +| notification-type | | tinyint unsigned | NO | | 0 | | +| wall | This item was posted to the wall of uid | boolean | NO | | 0 | | +| origin | item originated at this site | boolean | NO | | 0 | | +| psid | ID of the permission set of this post | int unsigned | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| -------------------- | ----------------------- | +| PRIMARY | id | +| uid_uri-id | UNIQUE, uid, uri-id | +| uri-id | uri-id | +| parent-uri-id | parent-uri-id | +| thr-parent-id | thr-parent-id | +| external-id | external-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| vid | vid | +| contact-id | contact-id | +| event-id | event-id | +| psid | psid | +| author-id_uid | author-id, uid | +| author-id_received | author-id, received | +| parent-uri-id_uid | parent-uri-id, uid | +| uid_contactid | uid, contact-id | +| uid_unseen_contactid | uid, unseen, contact-id | +| uid_unseen | uid, unseen | +| uid_hidden_uri-id | uid, hidden, uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| thr-parent-id | [item-uri](help/database/db_item-uri) | id | +| external-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | +| vid | [verb](help/database/db_verb) | id | +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | +| event-id | [event](help/database/db_event) | id | +| psid | [permissionset](help/database/db_permissionset) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post.md b/doc/database/db_post.md new file mode 100644 index 0000000000..303269b1c6 --- /dev/null +++ b/doc/database/db_post.md @@ -0,0 +1,58 @@ +Table post +=========== + +Structure for all posts + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | --------------------------------------------------------------------------------- | ----------------- | ---- | --- | ------------------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| parent-uri-id | Id of the item-uri table that contains the parent uri | int unsigned | YES | | NULL | | +| thr-parent-id | Id of the item-uri table that contains the thread parent uri | int unsigned | YES | | NULL | | +| external-id | Id of the item-uri table entry that contains the external uri | int unsigned | YES | | NULL | | +| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | +| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | +| gravity | | tinyint unsigned | NO | | 0 | | +| network | Network from where the item comes from | char(4) | NO | | | | +| owner-id | Link to the contact table with uid=0 of the owner of this item | int unsigned | NO | | 0 | | +| author-id | Link to the contact table with uid=0 of the author of this item | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| post-type | Post type (personal note, image, article, ...) | tinyint unsigned | NO | | 0 | | +| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | YES | | NULL | | +| private | 0=public, 1=private, 2=unlisted | tinyint unsigned | NO | | 0 | | +| global | | boolean | NO | | 0 | | +| visible | | boolean | NO | | 0 | | +| deleted | item has been marked for deletion | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------- | ------------- | +| PRIMARY | uri-id | +| parent-uri-id | parent-uri-id | +| thr-parent-id | thr-parent-id | +| external-id | external-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| vid | vid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| thr-parent-id | [item-uri](help/database/db_item-uri) | id | +| external-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | +| vid | [verb](help/database/db_verb) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_process.md b/doc/database/db_process.md new file mode 100644 index 0000000000..062e6ff22c --- /dev/null +++ b/doc/database/db_process.md @@ -0,0 +1,24 @@ +Table process +=========== + +Currently running system processes + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------- | ------------- | ---- | --- | ------------------- | ----- | +| pid | | int unsigned | NO | PRI | NULL | | +| command | | varbinary(32) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------- | +| PRIMARY | pid | +| command | command | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_profile.md b/doc/database/db_profile.md index 375e06635a..4ea3b56003 100644 --- a/doc/database/db_profile.md +++ b/doc/database/db_profile.md @@ -1,48 +1,70 @@ Table profile -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------|-----------------------------------------------|--------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(11) | NO | | 0 | | -| profile-name | Name of the profile | varchar(255) | NO | | | | -| is-default | Mark this profile as default profile | tinyint(1) | NO | | 0 | | -| hide-friends | Hide friend list from viewers of this profile | tinyint(1) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| pdesc | Deprecated | varchar(255) | NO | | | | -| dob | Day of birth | varchar(32) | NO | | 0001-01-01 | | -| address | | varchar(255) | NO | | | | -| locality | | varchar(255) | NO | | | | -| region | | varchar(255) | NO | | | | -| postal-code | | varchar(32) | NO | | | | -| country-name | | varchar(255) | NO | | | | -| hometown | Deprecated | varchar(255) | NO | MUL | | | -| gender | Deprecated | varchar(32) | NO | | | | -| marital | Deprecated | varchar(255) | NO | | | | -| with | Deprecated | text | NO | | NULL | | -| howlong | Deprecated | datetime | NO | | 0001-01-01 00:00:00 | | -| sexual | Deprecated | varchar(255) | NO | | | | -| politic | Deprecated | varchar(255) | NO | | | | -| religion | Deprecated | varchar(255) | NO | | | | -| pub_keywords | | text | NO | | NULL | | -| prv_keywords | | text | NO | | NULL | | -| likes | Deprecated | text | NO | | NULL | | -| dislikes | Deprecated | text | NO | | NULL | | -| about | Profile description | text | NO | | | | -| summary | Deprecated | varchar(255) | NO | | | | -| music | Deprecated | text | NO | | NULL | | -| book | Deprecated | text | NO | | NULL | | -| tv | Deprecated | text | NO | | NULL | | -| film | Deprecated | text | NO | | NULL | | -| interest | Deprecated | text | NO | | NULL | | -| romance | Deprecated | text | NO | | NULL | | -| work | Deprecated | text | NO | | NULL | | -| education | Deprecated | text | NO | | NULL | | -| contact | Deprecated | text | NO | | NULL | | -| homepage | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| thumb | | varchar(255) | NO | | | | -| publish | publish default profile in local directory | tinyint(1) | NO | | 0 | | -| net-publish | publish profile in global directory | tinyint(1) | NO | | 0 | | +user profiles data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | --------------------------------------------- | ------------------ | ---- | --- | ---------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| profile-name | Deprecated | varchar(255) | YES | | NULL | | +| is-default | Deprecated | boolean | YES | | NULL | | +| hide-friends | Hide friend list from viewers of this profile | boolean | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| pdesc | Deprecated | varchar(255) | YES | | NULL | | +| dob | Day of birth | varchar(32) | NO | | 0000-00-00 | | +| address | | varchar(255) | NO | | | | +| locality | | varchar(255) | NO | | | | +| region | | varchar(255) | NO | | | | +| postal-code | | varchar(32) | NO | | | | +| country-name | | varchar(255) | NO | | | | +| hometown | Deprecated | varchar(255) | YES | | NULL | | +| gender | Deprecated | varchar(32) | YES | | NULL | | +| marital | Deprecated | varchar(255) | YES | | NULL | | +| with | Deprecated | text | YES | | NULL | | +| howlong | Deprecated | datetime | YES | | NULL | | +| sexual | Deprecated | varchar(255) | YES | | NULL | | +| politic | Deprecated | varchar(255) | YES | | NULL | | +| religion | Deprecated | varchar(255) | YES | | NULL | | +| pub_keywords | | text | YES | | NULL | | +| prv_keywords | | text | YES | | NULL | | +| likes | Deprecated | text | YES | | NULL | | +| dislikes | Deprecated | text | YES | | NULL | | +| about | Profile description | text | YES | | NULL | | +| summary | Deprecated | varchar(255) | YES | | NULL | | +| music | Deprecated | text | YES | | NULL | | +| book | Deprecated | text | YES | | NULL | | +| tv | Deprecated | text | YES | | NULL | | +| film | Deprecated | text | YES | | NULL | | +| interest | Deprecated | text | YES | | NULL | | +| romance | Deprecated | text | YES | | NULL | | +| work | Deprecated | text | YES | | NULL | | +| education | Deprecated | text | YES | | NULL | | +| contact | Deprecated | text | YES | | NULL | | +| homepage | | varchar(255) | NO | | | | +| xmpp | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| thumb | | varchar(255) | NO | | | | +| publish | publish default profile in local directory | boolean | NO | | 0 | | +| net-publish | publish profile in global directory | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| -------------- | ---------------------- | +| PRIMARY | id | +| uid_is-default | uid, is-default | +| pub_keywords | FULLTEXT, pub_keywords | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_profile_check.md b/doc/database/db_profile_check.md index 411da06d30..4049bd6048 100644 --- a/doc/database/db_profile_check.md +++ b/doc/database/db_profile_check.md @@ -1,13 +1,35 @@ Table profile_check -=================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id | int(10) unsigned | NO | | 0 | | -| cid | contact.id | int(10) unsigned | NO | | 0 | | -| dfrn_id | | varchar(255) | NO | | | | -| sec | | varchar(255) | NO | | 0 | | -| expire | | int(11) | NO | | NULL | | +DFRN remote auth use + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| cid | contact.id | int unsigned | NO | | 0 | | +| dfrn_id | | varchar(255) | NO | | | | +| sec | | varchar(255) | NO | | | | +| expire | | int unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| cid | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_profile_field.md b/doc/database/db_profile_field.md new file mode 100644 index 0000000000..56e8e3d0b6 --- /dev/null +++ b/doc/database/db_profile_field.md @@ -0,0 +1,38 @@ +Table profile_field +=========== + +Custom profile fields + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner user id | mediumint unsigned | NO | | 0 | | +| order | Field ordering per user | mediumint unsigned | NO | | 1 | | +| psid | ID of the permission set of this profile field - 0 = public | int unsigned | YES | | NULL | | +| label | Label of the field | varchar(255) | NO | | | | +| value | Value of the field | text | YES | | NULL | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | +| order | order | +| psid | psid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| psid | [permissionset](help/database/db_permissionset) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_push_subscriber.md b/doc/database/db_push_subscriber.md index b766ccb46c..4ba50a4d1d 100644 --- a/doc/database/db_push_subscriber.md +++ b/doc/database/db_push_subscriber.md @@ -1,10 +1,38 @@ Table push_subscriber -===================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|---------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| poll_id | | int(11) | NO | MUL | 0 | | -| choice | | int(11) | NO | MUL | 0 | | +Used for OStatus: Contains feed subscribers + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | --------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| callback_url | | varchar(255) | NO | | | | +| topic | | varchar(255) | NO | | | | +| nickname | | varchar(255) | NO | | | | +| push | Retrial counter | tinyint | NO | | 0 | | +| last_update | Date of last successful trial | datetime | NO | | 0001-01-01 00:00:00 | | +| next_try | Next retrial date | datetime | NO | | 0001-01-01 00:00:00 | | +| renewed | Date of last subscription renewal | datetime | NO | | 0001-01-01 00:00:00 | | +| secret | | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| -------- | -------- | +| PRIMARY | id | +| next_try | next_try | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_queue.md b/doc/database/db_queue.md deleted file mode 100644 index 6b19f02f28..0000000000 --- a/doc/database/db_queue.md +++ /dev/null @@ -1,14 +0,0 @@ -Table queue -=========== - -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|-------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| cid | | int(11) | NO | MUL | 0 | | -| network | | varchar(32) | NO | MUL | | | -| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| last | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| content | | mediumtext | NO | | NULL | | -| batch | | tinyint(1) | NO | MUL | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_register.md b/doc/database/db_register.md index 974a2dc673..8ace3c199b 100644 --- a/doc/database/db_register.md +++ b/doc/database/db_register.md @@ -1,13 +1,34 @@ Table register -============== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) unsigned | NO | PRI | NULL | auto_increment | -| hash | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| uid | user.id | int(11) unsigned | NO | | | | -| password | | varchar(255) | NO | | | | -| language | | varchar(16) | NO | | | | +registrations requiring admin approval + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| hash | | varchar(255) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| uid | User id | mediumint unsigned | NO | | 0 | | +| password | | varchar(255) | NO | | | | +| language | | varchar(16) | NO | | | | +| note | | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_search.md b/doc/database/db_search.md index 63d0a46b40..157d09ecb8 100644 --- a/doc/database/db_search.md +++ b/doc/database/db_search.md @@ -1,10 +1,31 @@ Table search -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|-------|------------------|--------------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | MUL | 0 | | -| term | | varchar(255) | NO | MUL | | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| term | | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| -------- | ------------- | +| PRIMARY | id | +| uid_term | uid, term(64) | +| term | term(64) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_session.md b/doc/database/db_session.md index 1e87c24d03..794e49c6a7 100644 --- a/doc/database/db_session.md +++ b/doc/database/db_session.md @@ -1,11 +1,26 @@ Table session -============= +=========== + +web session storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------ | ------------- | --------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | bigint unsigned | NO | PRI | NULL | auto_increment | +| sid | | varbinary(255) | NO | | | | +| data | | text | YES | | NULL | | +| expire | | int unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------- | +| PRIMARY | id | +| sid | sid(64) | +| expire | expire | -| Field | Description | Type | Null | Key | Default | Extra | -| ------ | ------------- | ------------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | -| sid | | varchar(255) | NO | MUL | | | -| data | | text | NO | | NULL | | -| expire | | int(10) unsigned | NO | MUL | 0 | | Return to [database documentation](help/database) diff --git a/doc/database/db_sign.md b/doc/database/db_sign.md deleted file mode 100644 index 6986613e59..0000000000 --- a/doc/database/db_sign.md +++ /dev/null @@ -1,12 +0,0 @@ -Table sign -========== - -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| iid | item.id | int(10) unsigned | NO | MUL | 0 | | -| signed_text | | mediumtext | NO | | NULL | | -| signature | | text | NO | | NULL | | -| signer | | varchar(255) | NO | | | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_storage.md b/doc/database/db_storage.md new file mode 100644 index 0000000000..55911e28a6 --- /dev/null +++ b/doc/database/db_storage.md @@ -0,0 +1,22 @@ +Table storage +=========== + +Data stored by Database storage backend + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------------------------ | ------------ | ---- | --- | ------- | -------------- | +| id | Auto incremented image data id | int unsigned | NO | PRI | NULL | auto_increment | +| data | file data | longblob | NO | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_tag.md b/doc/database/db_tag.md new file mode 100644 index 0000000000..8c742917a7 --- /dev/null +++ b/doc/database/db_tag.md @@ -0,0 +1,25 @@ +Table tag +=========== + +tags and mentions + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | -------------- | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| name | | varchar(96) | NO | | | | +| url | | varbinary(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------------- | ----------------- | +| PRIMARY | id | +| type_name_url | UNIQUE, name, url | +| url | url | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_term.md b/doc/database/db_term.md deleted file mode 100644 index d18bf1c3b1..0000000000 --- a/doc/database/db_term.md +++ /dev/null @@ -1,19 +0,0 @@ -Table term -========== - -| Field | Description | Type | Null | Key | Default | Extra | -|----------| ------------- |---------------------|------|-----|---------------------|----------------| -| tid | | int(10) unsigned | NO | PRI | NULL | auto_increment | -| oid | | int(10) unsigned | NO | MUL | 0 | | -| otype | | tinyint(3) unsigned | NO | MUL | 0 | | -| type | | tinyint(3) unsigned | NO | MUL | 0 | | -| term | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| aid | | int(10) unsigned | NO | | 0 | | -| uid | | int(10) unsigned | NO | MUL | 0 | | -| guid | | varchar(255) | NO | MUL | | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| received | | datetime | NO | | 0001-01-01 00:00:00 | | -| global | | tinyint(1) | NO | | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_thread.md b/doc/database/db_thread.md deleted file mode 100644 index 13b70b4511..0000000000 --- a/doc/database/db_thread.md +++ /dev/null @@ -1,33 +0,0 @@ -Table thread -============ - -| Field | Description | Type | Null | Key | Default | Extra | -|-------------|------------------|------------------|------|-----|---------------------|-------| -| iid | sequential ID | int(10) unsigned | NO | PRI | 0 | | -| uid | | int(10) unsigned | NO | MUL | 0 | | -| contact-id | | int(11) unsigned | NO | | 0 | | -| gcontact-id | Global Contact | int(11) unsigned | NO | | 0 | | -| owner-id | Item owner | int(11) unsigned | NO | MUL | 0 | | -| author-id | Item author | int(11) unsigned | NO | MUL | 0 | | -| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| edited | | datetime | NO | | 0001-01-01 00:00:00 | | -| commented | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| received | | datetime | NO | | 0001-01-01 00:00:00 | | -| changed | | datetime | NO | | 0001-01-01 00:00:00 | | -| wall | | tinyint(1) | NO | MUL | 0 | | -| private | | tinyint(1) | NO | | 0 | | -| pubmail | | tinyint(1) | NO | | 0 | | -| moderated | | tinyint(1) | NO | | 0 | | -| visible | | tinyint(1) | NO | | 0 | | -| spam | | tinyint(1) | NO | | 0 | | -| starred | | tinyint(1) | NO | | 0 | | -| ignored | | tinyint(1) | NO | | 0 | | -| bookmark | | tinyint(1) | NO | | 0 | | -| unseen | | tinyint(1) | NO | | 1 | | -| deleted | | tinyint(1) | NO | | 0 | | -| origin | | tinyint(1) | NO | | 0 | | -| forum_mode | | tinyint(1) | NO | | 0 | | -| mention | | tinyint(1) | NO | | 0 | | -| network | | varchar(32) | NO | | | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_tokens.md b/doc/database/db_tokens.md index 3b3778d68c..7cf9bba4cc 100644 --- a/doc/database/db_tokens.md +++ b/doc/database/db_tokens.md @@ -1,13 +1,35 @@ Table tokens -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ----------- | ------------ | ---- | --- | ------- | ----- | -| id | | varchar(40) | NO | PRI | NULL | | -| secret | | text | NO | | NULL | | -| client_id | | varchar(20) | NO | | | | -| expires | | int(11) | NO | | 0 | | -| scope | | varchar(200) | NO | | | | -| uid | | int(11) | NO | | 0 | | +OAuth usage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ----------- | ------------------ | ---- | --- | ------- | ----- | +| id | | varchar(40) | NO | PRI | NULL | | +| secret | | text | YES | | NULL | | +| client_id | | varchar(20) | NO | | | | +| expires | | int | NO | | 0 | | +| scope | | varchar(200) | NO | | | | +| uid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| --------- | --------- | +| PRIMARY | id | +| client_id | client_id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| client_id | [clients](help/database/db_clients) | client_id | +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_user-contact.md b/doc/database/db_user-contact.md new file mode 100644 index 0000000000..35d140cfff --- /dev/null +++ b/doc/database/db_user-contact.md @@ -0,0 +1,33 @@ +Table user-contact +=========== + +User specific public contact data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| cid | Contact id of the linked public contact | int unsigned | NO | PRI | 0 | | +| uid | User id | mediumint unsigned | NO | PRI | 0 | | +| blocked | Contact is completely blocked for this user | boolean | YES | | NULL | | +| ignored | Posts from this contact are ignored | boolean | YES | | NULL | | +| collapsed | Posts from this contact are collapsed | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | -------- | +| PRIMARY | uid, cid | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| cid | [contact](help/database/db_contact) | id | +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_user.md b/doc/database/db_user.md index 7033bcc896..611fb76b05 100644 --- a/doc/database/db_user.md +++ b/doc/database/db_user.md @@ -1,77 +1,75 @@ Table user -========== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------------------|-----------------------------------------------------------------------------------------|---------------------|------|-----|---------------------|----------------| -| uid | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| guid | A unique identifier for this user | varchar(64) | NO | | | | -| username | Name that this user is known by | varchar(255) | NO | | | | -| password | encrypted password | varchar(255) | NO | | | | -| nickname | nick- and user name | varchar(255) | NO | MUL | | | -| email | the users email address | varchar(255) | NO | | | | -| openid | | varchar(255) | NO | | | | -| timezone | PHP-legal timezone | varchar(128) | NO | | | | -| language | default language | varchar(32) | NO | | en | | -| register_date | timestamp of registration | datetime | NO | | 0001-01-01 00:00:00 | | -| login_date | timestamp of last login | datetime | NO | | 0001-01-01 00:00:00 | | -| default-location | Default for item.location | varchar(255) | NO | | | | -| allow_location | 1 allows to display the location | tinyint(1) | NO | | 0 | | -| theme | user theme preference | varchar(255) | NO | | | | -| pubkey | RSA public key 4096 bit | text | NO | | NULL | | -| prvkey | RSA private key 4096 bit | text | NO | | NULL | | -| spubkey | | text | NO | | NULL | | -| sprvkey | | text | NO | | NULL | | -| verified | user is verified through email | tinyint(1) unsigned | NO | | 0 | | -| blocked | 1 for user is blocked | tinyint(1) unsigned | NO | | 0 | | -| blockwall | Prohibit contacts to post to the profile page of the user | tinyint(1) unsigned | NO | | 0 | | -| hidewall | Hide profile details from unkown viewers | tinyint(1) unsigned | NO | | 0 | | -| blocktags | Prohibit contacts to tag the post of this user | tinyint(1) unsigned | NO | | 0 | | -| unkmail | Permit unknown people to send private mails to this user | tinyint(1) | NO | | 0 | | -| cntunkmail | | int(11) | NO | | 10 | | -| notify-flags | email notification options | int(11) unsigned | NO | | 65535 | | -| page-flags | page/profile type | int(11) unsigned | NO | | 0 | | -| prvnets | | tinyint(1) | NO | | 0 | | -| pwdreset | | varchar(255) | NO | | | | -| maxreq | | int(11) | NO | | 10 | | -| expire | | int(11) unsigned | NO | | 0 | | -| account_removed | if 1 the account is removed | tinyint(1) | NO | | 0 | | -| account_expired | | tinyint(1) | NO | | 0 | | -| account_expires_on | timestamp when account expires and will be deleted | datetime | NO | | 0001-01-01 00:00:00 | | -| expire_notification_sent | timestamp of last warning of account expiration | datetime | NO | | 0001-01-01 00:00:00 | | -| def_gid | | int(11) | NO | | 0 | | -| allow_cid | default permission for this user | mediumtext | NO | | NULL | | -| allow_gid | default permission for this user | mediumtext | NO | | NULL | | -| deny_cid | default permission for this user | mediumtext | NO | | NULL | | -| deny_gid | default permission for this user | mediumtext | NO | | NULL | | -| openidserver | | text | NO | | NULL | | +The local users -``` -/** -* page-flags -*/ -define ( 'PAGE_NORMAL', 0 ); -define ( 'PAGE_SOAPBOX', 1 ); -define ( 'PAGE_COMMUNITY', 2 ); -define ( 'PAGE_FREELOVE', 3 ); -define ( 'PAGE_BLOG', 4 ); -define ( 'PAGE_PRVGROUP', 5 ); +Fields +------ -/** -* notify-flags -*/ -define ( 'NOTIFY_INTRO', 0x0001 ); -define ( 'NOTIFY_CONFIRM', 0x0002 ); -define ( 'NOTIFY_WALL', 0x0004 ); -define ( 'NOTIFY_COMMENT', 0x0008 ); -define ( 'NOTIFY_MAIL', 0x0010 ); -define ( 'NOTIFY_SUGGEST', 0x0020 ); -define ( 'NOTIFY_PROFILE', 0x0040 ); -define ( 'NOTIFY_TAGSELF', 0x0080 ); -define ( 'NOTIFY_TAGSHARE', 0x0100 ); -define ( 'NOTIFY_POKE', 0x0200 ); -define ( 'NOTIFY_SHARE', 0x0400 ); +| Field | Description | Type | Null | Key | Default | Extra | +| ------------------------ | --------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| uid | sequential ID | mediumint unsigned | NO | PRI | NULL | auto_increment | +| parent-uid | The parent user that has full control about this user | mediumint unsigned | YES | | NULL | | +| guid | A unique identifier for this user | varchar(64) | NO | | | | +| username | Name that this user is known by | varchar(255) | NO | | | | +| password | encrypted password | varchar(255) | NO | | | | +| legacy_password | Is the password hash double-hashed? | boolean | NO | | 0 | | +| nickname | nick- and user name | varchar(255) | NO | | | | +| email | the users email address | varchar(255) | NO | | | | +| openid | | varchar(255) | NO | | | | +| timezone | PHP-legal timezone | varchar(128) | NO | | | | +| language | default language | varchar(32) | NO | | en | | +| register_date | timestamp of registration | datetime | NO | | 0001-01-01 00:00:00 | | +| login_date | timestamp of last login | datetime | NO | | 0001-01-01 00:00:00 | | +| default-location | Default for item.location | varchar(255) | NO | | | | +| allow_location | 1 allows to display the location | boolean | NO | | 0 | | +| theme | user theme preference | varchar(255) | NO | | | | +| pubkey | RSA public key 4096 bit | text | YES | | NULL | | +| prvkey | RSA private key 4096 bit | text | YES | | NULL | | +| spubkey | | text | YES | | NULL | | +| sprvkey | | text | YES | | NULL | | +| verified | user is verified through email | boolean | NO | | 0 | | +| blocked | 1 for user is blocked | boolean | NO | | 0 | | +| blockwall | Prohibit contacts to post to the profile page of the user | boolean | NO | | 0 | | +| hidewall | Hide profile details from unkown viewers | boolean | NO | | 0 | | +| blocktags | Prohibit contacts to tag the post of this user | boolean | NO | | 0 | | +| unkmail | Permit unknown people to send private mails to this user | boolean | NO | | 0 | | +| cntunkmail | | int unsigned | NO | | 10 | | +| notify-flags | email notification options | smallint unsigned | NO | | 65535 | | +| page-flags | page/profile type | tinyint unsigned | NO | | 0 | | +| account-type | | tinyint unsigned | NO | | 0 | | +| prvnets | | boolean | NO | | 0 | | +| pwdreset | Password reset request token | varchar(255) | YES | | NULL | | +| pwdreset_time | Timestamp of the last password reset request | datetime | YES | | NULL | | +| maxreq | | int unsigned | NO | | 10 | | +| expire | | int unsigned | NO | | 0 | | +| account_removed | if 1 the account is removed | boolean | NO | | 0 | | +| account_expired | | boolean | NO | | 0 | | +| account_expires_on | timestamp when account expires and will be deleted | datetime | NO | | 0001-01-01 00:00:00 | | +| expire_notification_sent | timestamp of last warning of account expiration | datetime | NO | | 0001-01-01 00:00:00 | | +| def_gid | | int unsigned | NO | | 0 | | +| allow_cid | default permission for this user | mediumtext | YES | | NULL | | +| allow_gid | default permission for this user | mediumtext | YES | | NULL | | +| deny_cid | default permission for this user | mediumtext | YES | | NULL | | +| deny_gid | default permission for this user | mediumtext | YES | | NULL | | +| openidserver | | text | YES | | NULL | | -define ( 'NOTIFY_SYSTEM', 0x8000 ); -``` +Indexes +------------ + +| Name | Fields | +| ---------- | ------------ | +| PRIMARY | uid | +| nickname | nickname(32) | +| parent-uid | parent-uid | +| guid | guid | +| email | email(64) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| parent-uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_userd.md b/doc/database/db_userd.md index 80e3084757..17a81b408a 100644 --- a/doc/database/db_userd.md +++ b/doc/database/db_userd.md @@ -1,9 +1,23 @@ Table userd =========== -| Field | Description | Type | Null | Key | Default | Extra | -|----------|------------------|--------------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| username | | varchar(255) | NO | MUL | NULL | | +Deleted usernames + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------- | ------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| username | | varchar(255) | NO | | NULL | | + +Indexes +------------ + +| Name | Fields | +| -------- | ------------ | +| PRIMARY | id | +| username | username(32) | + Return to [database documentation](help/database) diff --git a/doc/database/db_verb.md b/doc/database/db_verb.md new file mode 100644 index 0000000000..43507053b2 --- /dev/null +++ b/doc/database/db_verb.md @@ -0,0 +1,23 @@ +Table verb +=========== + +Activity Verbs + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | ----------------- | ---- | --- | ------- | -------------- | +| id | | smallint unsigned | NO | PRI | NULL | auto_increment | +| name | | varchar(100) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| name | name | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_worker-ipc.md b/doc/database/db_worker-ipc.md new file mode 100644 index 0000000000..1635981d70 --- /dev/null +++ b/doc/database/db_worker-ipc.md @@ -0,0 +1,22 @@ +Table worker-ipc +=========== + +Inter process communication between the frontend and the worker + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------------------- | ------- | ---- | --- | ------- | ----- | +| key | | int | NO | PRI | NULL | | +| jobs | Flag for outstanding jobs | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | key | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_workerqueue.md b/doc/database/db_workerqueue.md index 182358a4c4..a479ecbcaa 100644 --- a/doc/database/db_workerqueue.md +++ b/doc/database/db_workerqueue.md @@ -1,14 +1,38 @@ Table workerqueue -================= +=========== + +Background tasks queue entries + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------- | ---------------- | ---- | --- | ------------------- | -------------- | +| id | Auto incremented worker task id | int unsigned | NO | PRI | NULL | auto_increment | +| command | Task command | varchar(100) | YES | | NULL | | +| parameter | Task parameter | mediumtext | YES | | NULL | | +| priority | Task priority | tinyint unsigned | NO | | 0 | | +| created | Creation date | datetime | NO | | 0001-01-01 00:00:00 | | +| pid | Process id of the worker | int unsigned | NO | | 0 | | +| executed | Execution date | datetime | NO | | 0001-01-01 00:00:00 | | +| next_try | Next retrial date | datetime | NO | | 0001-01-01 00:00:00 | | +| retrial | Retrial counter | tinyint | NO | | 0 | | +| done | Marked 1 when the task was done - will be deleted later | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------- | -------------------------------- | +| PRIMARY | id | +| command | command | +| done_command_parameter | done, command, parameter(64) | +| done_executed | done, executed | +| done_priority_retrial_created | done, priority, retrial, created | +| done_priority_next_try | done, priority, next_try | +| done_pid_next_try | done, pid, next_try | +| done_pid_retrial | done, pid, retrial | +| done_pid_priority_created | done, pid, priority, created | -| Field | Description | Type | Null | Key | Default | Extra | -|-----------|------------------|---------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| parameter | | text | NO | | NULL | | -| priority | | tinyint(3) unsigned | NO | | 0 | | -| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| pid | | int(11) | NO | | 0 | | -| executed | | datetime | NO | | 0001-01-01 00:00:00 | | -| done | set to 1 if done | tinyint(1) | NO | | 0 | | Return to [database documentation](help/database) diff --git a/src/Console/DatabaseStructure.php b/src/Console/DatabaseStructure.php index c6d708eb71..b44400c01a 100644 --- a/src/Console/DatabaseStructure.php +++ b/src/Console/DatabaseStructure.php @@ -120,6 +120,7 @@ HELP; $output = ob_get_clean(); break; case "dumpsql": + DBStructure::writeStructure(); ob_start(); DBStructure::printStructure($basePath); $output = ob_get_clean(); diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index 914846590b..9af6100a0a 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -24,6 +24,7 @@ namespace Friendica\Database; use Exception; use Friendica\Core\Hook; use Friendica\Core\Logger; +use Friendica\Core\Renderer; use Friendica\DI; use Friendica\Model\Item; use Friendica\Model\User; @@ -159,6 +160,110 @@ class DBStructure return DI::l10n()->t('Errors encountered performing database changes: ') . $message . EOL; } + public static function writeStructure() + { + Renderer::registerTemplateEngine('Friendica\Render\FriendicaSmartyEngine'); + + $tables = []; + foreach (self::definition(null) as $name => $definition) { + $indexes = [[ + 'name' => 'Name', + 'fields' => 'Fields', + ], + [ + 'name' => '-', + 'fields' => '-', + ]]; + + $lengths = ['name' => 4, 'fields' => 6]; + foreach ($definition['indexes'] as $key => $value) { + $fieldlist = implode(', ', $value); + $indexes[] = ['name' => $key, 'fields' => $fieldlist]; + $lengths['name'] = max($lengths['name'], strlen($key)); + $lengths['fields'] = max($lengths['fields'], strlen($fieldlist)); + } + + array_walk_recursive($indexes, function(&$value, $key) use ($lengths) + { + $value = str_pad($value, $lengths[$key], $value === '-' ? '-' : ' '); + }); + + $foreign = []; + $fields = [[ + 'name' => 'Field', + 'comment' => 'Description', + 'type' => 'Type', + 'null' => 'Null', + 'primary' => 'Key', + 'default' => 'Default', + 'extra' => 'Extra', + ], + [ + 'name' => '-', + 'comment' => '-', + 'type' => '-', + 'null' => '-', + 'primary' => '-', + 'default' => '-', + 'extra' => '-', + ]]; + $lengths = [ + 'name' => 5, + 'comment' => 11, + 'type' => 4, + 'null' => 4, + 'primary' => 3, + 'default' => 7, + 'extra' => 5, + ]; + foreach ($definition['fields'] as $key => $value) { + $field = []; + $field['name'] = $key; + $field['comment'] = $value['comment'] ?? ''; + $field['type'] = $value['type']; + $field['null'] = ($value['not null'] ?? false) ? 'NO' : 'YES'; + $field['primary'] = ($value['primary'] ?? false) ? 'PRI' : ''; + $field['default'] = $value['default'] ?? 'NULL'; + $field['extra'] = $value['extra'] ?? ''; + + foreach ($field as $fieldname => $fieldvalue) { + $lengths[$fieldname] = max($lengths[$fieldname] ?? 0, strlen($fieldvalue)); + } + $fields[] = $field; + + if (!empty($value['foreign'])) { + $foreign[] = [ + 'field' => $key, + 'targettable' => array_keys($value['foreign'])[0], + 'targetfield' => array_values($value['foreign'])[0] + ]; + } + } + + array_walk_recursive($fields, function(&$value, $key) use ($lengths) + { + $value = str_pad($value, $lengths[$key], $value === '-' ? '-' : ' '); + }); + + $tables[] = ['name' => $name, 'comment' => $definition['comment']]; + $content = Renderer::replaceMacros(Renderer::getMarkupTemplate('structure.tpl'), [ + '$name' => $name, + '$comment' => $definition['comment'], + '$fields' => $fields, + '$indexes' => $indexes, + '$foreign' => $foreign, + ]); + $filename = DI::basePath() . '/doc/database/db_' . $name . '.md'; + file_put_contents($filename, $content); + } + asort($tables); + $content = Renderer::replaceMacros(Renderer::getMarkupTemplate('tables.tpl'), [ + '$tables' => $tables, + ]); + $filename = DI::basePath() . '/doc/database.md'; + file_put_contents($filename, $content); + } + public static function printStructure($basePath) { $database = self::definition($basePath, false); @@ -1206,7 +1311,7 @@ class DBStructure if ($verbose) { echo "Zero contact added\n"; } - } + } } elseif (self::existsTable('contact') && $verbose) { echo "Zero contact already added\n"; } elseif ($verbose) { @@ -1230,7 +1335,7 @@ class DBStructure if (self::existsTable('permissionset')) { if (!DBA::exists('permissionset', ['id' => 0])) { - DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); + DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); $lastid = DBA::lastInsertId(); if ($lastid != 0) { DBA::update('permissionset', ['id' => 0], ['id' => $lastid]); @@ -1265,7 +1370,7 @@ class DBStructure } elseif ($verbose) { echo "permissionset: Table not found\n"; } - + if (!self::existsForeignKeyForField('tokens', 'client_id')) { $tokens = DBA::p("SELECT `tokens`.`id` FROM `tokens` LEFT JOIN `clients` ON `clients`.`client_id` = `tokens`.`client_id` diff --git a/view/templates/structure.tpl b/view/templates/structure.tpl new file mode 100644 index 0000000000..f6a647b791 --- /dev/null +++ b/view/templates/structure.tpl @@ -0,0 +1,31 @@ +Table {{$name nofilter}} +=========== + +{{$comment nofilter}} + +Fields +------ + +{{foreach $fields as $field}} +| {{$field.name nofilter}} | {{$field.comment nofilter}} | {{$field.type nofilter}} | {{$field.null nofilter}} | {{$field.primary nofilter}} | {{$field.default nofilter}} | {{$field.extra nofilter}} | +{{/foreach}} + +Indexes +------------ + +{{foreach $indexes as $index}} +| {{$index.name nofilter}} | {{$index.fields nofilter}} | +{{/foreach}} + +{{if $foreign}} +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +{{foreach $foreign as $key}} +| {{$key.field nofilter}} | [{{$key.targettable nofilter}}](help/database/db_{{$key.targettable nofilter}}) | {{$key.targetfield nofilter}} | +{{/foreach}} +{{/if}} + +Return to [database documentation](help/database) diff --git a/view/templates/tables.tpl b/view/templates/tables.tpl new file mode 100644 index 0000000000..2bf38c9f10 --- /dev/null +++ b/view/templates/tables.tpl @@ -0,0 +1,10 @@ +Database Tables +=============== + +* [Home](help) + +| Table | Description | +|-------|-------------| +{{foreach $tables as $table}} +| [{{$table.name nofilter}}](help/database/db_{{$table.name nofilter}}) | {{$table.comment nofilter}} | +{{/foreach}}