Merge remote-tracking branch 'upstream/2021.06-rc' into issue-10386

This commit is contained in:
Michael 2021-06-15 17:21:13 +00:00
commit bc58cb9b94
93 changed files with 3085 additions and 1125 deletions

View file

@ -3,50 +3,76 @@ Database Tables
* [Home](help) * [Home](help)
| Table | Description | | Table | Description |
|------------------------------------------------------|--------------------------------------------------| |-------|-------------|
| [addon](help/database/db_addon) | registered addons | | [2fa_app_specific_password](help/database/db_2fa_app_specific_password) | Two-factor app-specific _password |
| [attach](help/database/db_attach) | file attachments | | [2fa_recovery_codes](help/database/db_2fa_recovery_codes) | Two-factor authentication recovery codes |
| [auth_codes](help/database/db_auth_codes) | OAuth usage | | [2fa_trusted_browser](help/database/db_2fa_trusted_browser) | Two-factor authentication trusted browsers |
| [cache](help/database/db_cache) | OEmbed cache | | [addon](help/database/db_addon) | registered addons |
| [challenge](help/database/db_challenge) | | | [apcontact](help/database/db_apcontact) | ActivityPub compatible contacts - used in the ActivityPub implementation |
| [clients](help/database/db_clients) | OAuth usage | | [application](help/database/db_application) | OAuth application |
| [config](help/database/db_config) | main configuration storage | | [application-token](help/database/db_application-token) | OAuth user token |
| [contact](help/database/db_contact) | contact table | | [attach](help/database/db_attach) | file attachments |
| [conv](help/database/db_conv) | private messages | | [auth_codes](help/database/db_auth_codes) | OAuth usage |
| [conversation](help/database/db_conversation) | Raw data and structure information for messages | | [cache](help/database/db_cache) | Stores temporary data |
| [event](help/database/db_event) | Events | | [challenge](help/database/db_challenge) | |
| [fcontact](help/database/db_fcontact) | friend suggestion stuff | | [clients](help/database/db_clients) | OAuth usage |
| [fsuggest](help/database/db_fsuggest) | friend suggestion stuff | | [config](help/database/db_config) | main configuration storage |
| [group](help/database/db_group) | privacy groups, group info | | [contact](help/database/db_contact) | contact table |
| [group_member](help/database/db_group_member) | privacy groups, member info | | [contact-relation](help/database/db_contact-relation) | Contact relations |
| [gserver](help/database/db_gserver) | | | [conv](help/database/db_conv) | private messages |
| [hook](help/database/db_hook) | addon hook registry | | [conversation](help/database/db_conversation) | Raw data and structure information for messages |
| [intro](help/database/db_intro) | | | [delayed-post](help/database/db_delayed-post) | Posts that are about to be distributed at a later time |
| [item](help/database/db_item) | all posts | | [diaspora-interaction](help/database/db_diaspora-interaction) | Signed Diaspora Interaction |
| [locks](help/database/db_locks) | | | [event](help/database/db_event) | Events |
| [mail](help/database/db_mail) | private messages | | [fcontact](help/database/db_fcontact) | Diaspora compatible contacts - used in the Diaspora implementation |
| [mailacct](help/database/db_mailacct) | | | [fsuggest](help/database/db_fsuggest) | friend suggestion stuff |
| [manage](help/database/db_manage) | table of accounts that can "su" each other | | [group](help/database/db_group) | privacy groups, group info |
| [notify](help/database/db_notify) | notifications | | [group_member](help/database/db_group_member) | privacy groups, member info |
| [notify-threads](help/database/db_notify-threads) | | | [gserver](help/database/db_gserver) | Global servers |
| [oembed](help/database/db_oembed) | cache for OEmbed queries | | [gserver-tag](help/database/db_gserver-tag) | Tags that the server has subscribed |
| [parsed_url](help/database/db_parsed_url) | cache for "parse_url" queries | | [hook](help/database/db_hook) | addon hook registry |
| [pconfig](help/database/db_pconfig) | personal (per user) configuration storage | | [host](help/database/db_host) | Hostname |
| [photo](help/database/db_photo) | photo storage | | [inbox-status](help/database/db_inbox-status) | Status of ActivityPub inboxes |
| [poll](help/database/db_poll) | data for polls | | [intro](help/database/db_intro) | |
| [poll_result](help/database/db_poll_result) | data for poll elements | | [item-uri](help/database/db_item-uri) | URI and GUID for items |
| [profile](help/database/db_profile) | user profiles data | | [locks](help/database/db_locks) | |
| [profile_check](help/database/db_profile_check) | DFRN remote auth use | | [mail](help/database/db_mail) | private messages |
| [push_subscriber](help/database/db_push_subscriber) | | | [mailacct](help/database/db_mailacct) | Mail account data for fetching mails |
| [queue](help/database/db_queue) | | | [manage](help/database/db_manage) | table of accounts that can manage each other |
| [register](help/database/db_register) | registrations requiring admin approval | | [notification](help/database/db_notification) | notifications |
| [search](help/database/db_search) | | | [notify](help/database/db_notify) | notifications |
| [session](help/database/db_session) | web session storage | | [notify-threads](help/database/db_notify-threads) | |
| [sign](help/database/db_sign) | Diaspora signatures | | [oembed](help/database/db_oembed) | cache for OEmbed queries |
| [term](help/database/db_term) | item taxonomy (categories, tags, etc.) table | | [openwebauth-token](help/database/db_openwebauth-token) | Store OpenWebAuth token to verify contacts |
| [thread](help/database/db_thread) | | | [parsed_url](help/database/db_parsed_url) | cache for 'parse_url' queries |
| [tokens](help/database/db_tokens) | OAuth usage | | [pconfig](help/database/db_pconfig) | personal (per user) configuration storage |
| [user](help/database/db_user) | local user table | | [permissionset](help/database/db_permissionset) | |
| [userd](help/database/db_userd) | | | [photo](help/database/db_photo) | photo storage |
| [workerqueue](help/database/db_workerqueue) | | | [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 |

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -1,17 +1,29 @@
Table addon Table addon
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra | registered addons
| ------------- | --------------------------------------------- | ---------- | ---- | --- | ------- | --------------- |
| id | | int(11) | NO | PRI | NULL | auto_increment | Fields
| name | addon base (file)name | char(255) | NO | | | | ------
| version | currently unused | char(255) | NO | | | |
| installed | currently always 1 | tinyint(1) | NO | | 0 | | | Field | Description | Type | Null | Key | Default | Extra |
| hidden | currently unused | tinyint(1) | NO | | 0 | | | ------------ | --------------------------------------------- | ------------ | ---- | --- | ------- | -------------- |
| timestamp | file timestamp to check for reloads | bigint(20) | NO | | 0 | | | id | | int unsigned | NO | PRI | NULL | auto_increment |
| plugin_admin | 1 = has admin config, 0 = has no admin config | tinyint(1) | NO | | 0 | | | 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -1,22 +1,42 @@
Table attach Table attach
============ ===========
| Field | Description | Type | Null | Key | Default | Extra | file attachments
| ---------- | ------------------------------------------------------| ------------ | ---- | --- | ------------------- | --------------- |
| 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 | |
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) Return to [database documentation](help/database)

View file

@ -1,14 +1,32 @@
Table auth_codes Table auth_codes
================ ===========
OAuth2 authorisation register - currently implemented but unused OAuth usage
| Field | Description | Type | Null | Key | Default | Extra | Fields
| ------------- | ----------- | ------------ | ---- | --- | ------- | ----- | ------
| id | | varchar(40) | NO | PRI | NULL | |
| client_id | | varchar(20) | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| redirect_uri | | varchar(200) | NO | | | | | ------------ | ----------- | ------------ | ---- | --- | ------- | ----- |
| expires | | int(11) | NO | | 0 | | | id | | varchar(40) | NO | PRI | NULL | |
| scope | | varchar(250) | NO | | | | | 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) Return to [database documentation](help/database)

View file

@ -3,11 +3,23 @@ Table cache
Stores temporary data Stores temporary data
| Field | Description | Type | Null | Key | Default | Extra | Fields
| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | ------
| k | cache key | varchar(255) | NO | PRI | NULL | |
| v | cached serialized value | text | NO | | NULL | | | Field | Description | Type | Null | Key | Default | Extra |
| 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 | | | 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) Return to [database documentation](help/database)

View file

@ -1,13 +1,27 @@
Table challenge 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) Return to [database documentation](help/database)

View file

@ -1,13 +1,33 @@
Table clients Table clients
============= ===========
| Field | Description | Type | Null | Key | Default | Extra | OAuth usage
| ------------- | ----------- | ------------ | ---- | --- | ------- | ----- |
| client_id | | varchar(20) | NO | PRI | NULL | | Fields
| pw | | varchar(20) | NO | | | | ------
| redirect_uri | | varchar(200) | NO | | | |
| name | | text | YES | | NULL | | | Field | Description | Type | Null | Key | Default | Extra |
| icon | | text | YES | | NULL | | | ------------ | ----------- | ------------------ | ---- | --- | ------- | ----- |
| uid | | int(11) | NO | | 0 | | | 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) Return to [database documentation](help/database)

View file

@ -1,11 +1,25 @@
Table config 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,72 +1,129 @@
Table contact Table contact
============= ===========
| Field | Description | Type | Null | Key | Default | Extra | contact table
|---------------------------|-----------------------------------------------------------|--------------|------|-----|---------------------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| 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 | | | Field | Description | Type | Null | Key | Default | Extra |
| remote_self | | tinyint(1) | NO | | 0 | | | ------------------------- | --------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| rel | The kind of the relation between the user and the contact | tinyint(1) | NO | | 0 | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| duplex | | tinyint(1) | NO | | 0 | | | uid | Owner User id | mediumint unsigned | NO | | 0 | |
| network | Network protocol of the contact | varchar(255) | NO | | | | | created | | datetime | NO | | 0001-01-01 00:00:00 | |
| name | Name that this contact is known by | varchar(255) | NO | | | | | updated | Date of last contact update | datetime | YES | | 0001-01-01 00:00:00 | |
| nick | Nick- and user name of the contact | varchar(255) | NO | | | | | self | 1 if the contact is the user him/her self | boolean | NO | | 0 | |
| location | | varchar(255) | NO | | | | | remote_self | | boolean | NO | | 0 | |
| about | | text | NO | | NULL | | | rel | The kind of the relation between the user and the contact | tinyint unsigned | NO | | 0 | |
| keywords | public keywords (interests) of the contact | text | NO | | NULL | | | duplex | | boolean | NO | | 0 | |
| gender | | varchar(32) | NO | | | | | network | Network of the contact | char(4) | NO | | | |
| attag | | varchar(255) | NO | | | | | protocol | Protocol of the contact | char(4) | NO | | | |
| photo | Link to the profile photo of the contact | text | NO | | NULL | | | name | Name that this contact is known by | varchar(255) | NO | | | |
| thumb | Link to the profile photo (thumb size) | text | NO | | NULL | | | nick | Nick- and user name of the contact | varchar(255) | NO | | | |
| micro | Link to the profile photo (micro size) | text | NO | | NULL | | | location | | varchar(255) | YES | | | |
| site-pubkey | | text | NO | | NULL | | | about | | text | YES | | NULL | |
| issued-id | | varchar(255) | NO | | | | | keywords | public keywords (interests) of the contact | text | YES | | NULL | |
| dfrn-id | | varchar(255) | NO | | | | | gender | Deprecated | varchar(32) | NO | | | |
| url | | varchar(255) | NO | | | | | xmpp | | varchar(255) | NO | | | |
| nurl | | varchar(255) | NO | | | | | attag | | varchar(255) | NO | | | |
| addr | | varchar(255) | NO | | | | | avatar | | varchar(255) | NO | | | |
| alias | | varchar(255) | NO | | | | | photo | Link to the profile photo of the contact | varchar(255) | YES | | | |
| pubkey | RSA public key 4096 bit | text | NO | | NULL | | | thumb | Link to the profile photo (thumb size) | varchar(255) | YES | | | |
| prvkey | RSA private key 4096 bit | text | NO | | NULL | | | micro | Link to the profile photo (micro size) | varchar(255) | YES | | | |
| batch | | varchar(255) | NO | | | | | site-pubkey | | text | YES | | NULL | |
| request | | text | NO | | NULL | | | issued-id | | varchar(255) | NO | | | |
| notify | | text | NO | | NULL | | | dfrn-id | | varchar(255) | NO | | | |
| poll | | text | NO | | NULL | | | url | | varchar(255) | NO | | | |
| confirm | | text | NO | | NULL | | | nurl | | varchar(255) | NO | | | |
| poco | | text | NO | | NULL | | | addr | | varchar(255) | NO | | | |
| aes_allow | | tinyint(1) | NO | | 0 | | | alias | | varchar(255) | NO | | | |
| ret-aes | | tinyint(1) | NO | | 0 | | | pubkey | RSA public key 4096 bit | text | YES | | NULL | |
| usehub | | tinyint(1) | NO | | 0 | | | prvkey | RSA private key 4096 bit | text | YES | | NULL | |
| subhub | | tinyint(1) | NO | | 0 | | | batch | | varchar(255) | NO | | | |
| hub-verify | | varchar(255) | NO | | | | | request | | varchar(255) | YES | | NULL | |
| last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | | | notify | | varchar(255) | YES | | NULL | |
| success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | | | poll | | varchar(255) | YES | | NULL | |
| failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | | | confirm | | varchar(255) | YES | | NULL | |
| name-date | | datetime | NO | | 0001-01-01 00:00:00 | | | subscribe | | varchar(255) | YES | | NULL | |
| uri-date | | datetime | NO | | 0001-01-01 00:00:00 | | | poco | | varchar(255) | YES | | NULL | |
| avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | | | aes_allow | | boolean | NO | | 0 | |
| term-date | | datetime | NO | | 0001-01-01 00:00:00 | | | ret-aes | | boolean | NO | | 0 | |
| last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | | | usehub | | boolean | NO | | 0 | |
| priority | | tinyint(3) | NO | | 0 | | | subhub | | boolean | NO | | 0 | |
| blocked | | tinyint(1) | NO | | 1 | | | hub-verify | | varchar(255) | NO | | | |
| readonly | posts of the contact are readonly | tinyint(1) | NO | | 0 | | | last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | |
| writable | | tinyint(1) | NO | | 0 | | | success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | |
| forum | contact is a forum | tinyint(1) | NO | | 0 | | | failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | |
| prv | contact is a private group | tinyint(1) | NO | | 0 | | | failed | Connection failed | boolean | YES | | NULL | |
| hidden | | tinyint(1) | NO | | 0 | | | name-date | | datetime | NO | | 0001-01-01 00:00:00 | |
| archive | | tinyint(1) | NO | | 0 | | | uri-date | | datetime | NO | | 0001-01-01 00:00:00 | |
| pending | | tinyint(1) | NO | | 1 | | | avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | |
| rating | | tinyint(1) | NO | | 0 | | | term-date | | datetime | NO | | 0001-01-01 00:00:00 | |
| reason | | text | NO | | NULL | | | last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | |
| closeness | | tinyint(2) | NO | | 99 | | | last-discovery | date of the last follower discovery | datetime | NO | | 0001-01-01 00:00:00 | |
| info | | mediumtext | NO | | NULL | | | priority | | tinyint unsigned | NO | | 0 | |
| profile-id | | int(11) | NO | | 0 | | | blocked | Node-wide block status | boolean | NO | | 1 | |
| bdyear | | varchar(4) | NO | | | | | block_reason | Node-wide block reason | text | YES | | NULL | |
| bd | | date | NO | | 0001-01-01 | | | readonly | posts of the contact are readonly | boolean | NO | | 0 | |
| notify_new_posts | | tinyint(1) | NO | | 0 | | | writable | | boolean | NO | | 0 | |
| fetch_further_information | | tinyint(1) | NO | | 0 | | | forum | contact is a forum | boolean | NO | | 0 | |
| ffi_keyword_denylist | | mediumtext | NO | | NULL | | | 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) Return to [database documentation](help/database)

View file

@ -1,15 +1,35 @@
Table conv Table conv
========== ===========
| Field | Description | Type | Null | Key | Default | Extra | private messages
| ------- | ----------------------------------------- | ---------------- | ---- | --- | ------------------- | --------------- |
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| 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 | | | Field | Description | Type | Null | Key | Default | Extra |
| creator | handle of creator | varchar(255) | NO | | | | | ------- | ----------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| created | creation timestamp | datetime | NO | | 0001-01-01 00:00:00 | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| updated | edited timestamp | datetime | NO | | 0001-01-01 00:00:00 | | | guid | A unique identifier for this conversation | varchar(255) | NO | | | |
| subject | subject of initial message | mediumtext | NO | | NULL | | | 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) Return to [database documentation](help/database)

View file

@ -1,14 +1,30 @@
Table conversation 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -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)

View file

@ -1,26 +1,49 @@
Table event Table event
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra | Events
| ---------- | ----------------------------------------------- -------| ------------------- | ---- | --- | ------------------- | --------------- |
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| 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 | | | | | Field | Description | Type | Null | Key | Default | Extra |
| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | | --------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------------------- | -------------- |
| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| start | event start time | datetime | NO | | 0001-01-01 00:00:00 | | | guid | | varchar(255) | NO | | | |
| finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | | | uid | Owner User id | mediumint unsigned | NO | | 0 | |
| summary | short description or title of the event | text | NO | | NULL | | | cid | contact_id (ID of the contact in contact table) | int unsigned | NO | | 0 | |
| desc | event description | text | NO | | NULL | | | uri | | varchar(255) | NO | | | |
| location | event location | text | NO | | NULL | | | created | creation time | datetime | NO | | 0001-01-01 00:00:00 | |
| type | event or birthday | varchar(255) | NO | | | | | edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | |
| nofinish | if event does have no end this is 1 | tinyint(1) | NO | | 0 | | | start | event start time | datetime | NO | | 0001-01-01 00:00:00 | |
| adjust | adjust to timezone of the recipient (0 or 1) | tinyint(1) | NO | | 1 | | | finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | |
| ignore | 0 or 1 | tinyint(1) unsigned | NO | | 0 | | | summary | short description or title of the event | text | YES | | NULL | |
| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | | desc | event description | text | YES | | NULL | |
| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | | location | event location | text | YES | | NULL | |
| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | | type | event or birthday | varchar(20) | NO | | | |
| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | | 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) Return to [database documentation](help/database)

View file

@ -1,24 +1,39 @@
Table fcontact 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) Return to [database documentation](help/database)

View file

@ -1,16 +1,38 @@
Table fsuggest Table fsuggest
============== ===========
| Field | Description | Type | Null | Key | Default | Extra | friend suggestion stuff
| ------- | ----------- | ------------ | ---- | --- | ------------------- | --------------- |
| id | | int(11) | NO | PRI | NULL | auto_increment | Fields
| uid | | int(11) | NO | | 0 | | ------
| cid | | int(11) | NO | | 0 | |
| name | | varchar(255) | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| url | | varchar(255) | NO | | | | | ------- | ----------- | ------------------ | ---- | --- | ------------------- | -------------- |
| request | | varchar(255) | NO | | | | | id | | int unsigned | NO | PRI | NULL | auto_increment |
| photo | | varchar(255) | NO | | | | | uid | User id | mediumint unsigned | NO | | 0 | |
| note | | text | NO | | NULL | | | cid | | int unsigned | NO | | 0 | |
| created | | datetime | NO | | 0001-01-01 00:00:00 | | | 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) Return to [database documentation](help/database)

View file

@ -1,12 +1,32 @@
Table group Table group
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra | privacy groups, group info
| ------- | ------------------------------------------ | ---------------- | ---- | --- | ------- | --------------- |
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| 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 | | | Field | Description | Type | Null | Key | Default | Extra |
| name | human readable name of group | varchar(255) | NO | | | | | ------- | ------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- |
| 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) Return to [database documentation](help/database)

View file

@ -1,11 +1,32 @@
Table group_member Table group_member
================== ===========
| Field | Description | Type | Null | Key | Default | Extra | privacy groups, member info
| ---------- | ----------------------------------------------------------- | ---------------- | ---- | --- | ------- | --------------- |
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| 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 | | | 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,24 +1,46 @@
Table gserver Table gserver
============= ===========
| Field | Description | Type | Null | Key | Default | Extra | Global servers
|------------------|---------------------------|------------------|------|-----|---------------------|----------------|
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| url | | varchar(255) | NO | | | | ------
| nurl | | varchar(255) | NO | MUL | | |
| version | | varchar(255) | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| site_name | | varchar(255) | NO | | | | | ---------------- | -------------------------------------------------- | ---------------- | ---- | --- | ------------------- | -------------- |
| info | | text | NO | | NULL | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| register_policy | | tinyint(1) | NO | | 0 | | | url | | varchar(255) | NO | | | |
| registered-users |Number of registered users | int(10) | NO | | 0 | | | nurl | | varchar(255) | NO | | | |
| poco | | varchar(255) | NO | | | | | version | | varchar(255) | NO | | | |
| noscrape | | varchar(255) | NO | | | | | site_name | | varchar(255) | NO | | | |
| network | | varchar(32) | NO | | | | | info | | text | YES | | NULL | |
| platform | | varchar(255) | NO | | | | | register_policy | | tinyint | NO | | 0 | |
| created | | datetime | NO | | 0001-01-01 00:00:00 | | | registered-users | Number of registered users | int unsigned | NO | | 0 | |
| last_poco_query | | datetime | YES | | 0001-01-01 00:00:00 | | | directory-type | Type of directory service (Poco, Mastodon) | tinyint | YES | | 0 | |
| last_contact | | datetime | YES | | 0001-01-01 00:00:00 | | | poco | | varchar(255) | NO | | | |
| last_failure | | datetime | YES | | 0001-01-01 00:00:00 | | | 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) Return to [database documentation](help/database)

View file

@ -1,12 +1,27 @@
Table hook 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) Return to [database documentation](help/database)

23
doc/database/db_host.md Normal file
View file

@ -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)

View file

@ -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)

View file

@ -1,18 +1,40 @@
Table intro Table intro
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra |
|------------|------------------|------------------|------|-----|---------------------|----------------|
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| uid | | int(10) unsigned | NO | | 0 | | ------
| fid | | int(11) | NO | | 0 | |
| contact-id | | int(11) | NO | | 0 | | | Field | Description | Type | Null | Key | Default | Extra |
| knowyou | | tinyint(1) | NO | | 0 | | | ---------- | ------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| duplex | | tinyint(1) | NO | | 0 | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| note | | text | NO | | NULL | | | uid | User id | mediumint unsigned | NO | | 0 | |
| hash | | varchar(255) | NO | | | | | fid | | int unsigned | YES | | NULL | |
| datetime | | datetime | NO | | 0001-01-01 00:00:00 | | | contact-id | | int unsigned | NO | | 0 | |
| blocked | | tinyint(1) | NO | | 1 | | | knowyou | | boolean | NO | | 0 | |
| ignore | | tinyint(1) | 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -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)

View file

@ -1,11 +1,26 @@
Table locks Table locks
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra |
|---------|------------------|------------------|------|-----|---------------------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| name | | varchar(128) | NO | | | | ------
| locked | | tinyint(1) | NO | | 0 | |
| pid | Process ID | int(10) unsigned | NO | | 0 | | | 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) Return to [database documentation](help/database)

View file

@ -1,24 +1,61 @@
Table mail Table mail
========== ===========
| Field | Description | Type | Null | Key | Default | Extra | private messages
| ---------- | -------------------------------------------- | ---------------- | ---- | --- | ------------------- | --------------- |
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| 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 | | | | | Field | Description | Type | Null | Key | Default | Extra |
| from-photo | contact photo link of the sender | varchar(255) | NO | | | | | ------------- | -------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| from-url | profile linke of the sender | varchar(255) | NO | | | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| contact-id | contact.id | varchar(255) | NO | | | | | uid | Owner User id | mediumint unsigned | NO | | 0 | |
| convid | conv.id | int(11) unsigned | NO | MUL | 0 | | | guid | A unique identifier for this private message | varchar(255) | NO | | | |
| title | | varchar(255) | NO | | | | | from-name | name of the sender | varchar(255) | NO | | | |
| body | | mediumtext | NO | | NULL | | | from-photo | contact photo link of the sender | varchar(255) | NO | | | |
| seen | if message visited it is 1 | varchar(255) | NO | | 0 | | | from-url | profile linke of the sender | varchar(255) | NO | | | |
| reply | | varchar(255) | NO | MUL | 0 | | | contact-id | contact.id | varchar(255) | YES | | NULL | |
| replied | | varchar(255) | NO | | 0 | | | author-id | Link to the contact table with uid=0 of the author of the mail | int unsigned | YES | | NULL | |
| unknown | if sender not in the contact table this is 1 | varchar(255) | NO | | 0 | | | convid | conv.id | int unsigned | YES | | NULL | |
| uri | | varchar(255) | NO | MUL | | | | title | | varchar(255) | NO | | | |
| parent-uri | | varchar(255) | NO | MUL | | | | body | | mediumtext | YES | | NULL | |
| created | creation time of the private message | datetime | NO | | 0001-01-01 00:00:00 | | | 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) Return to [database documentation](help/database)

View file

@ -1,20 +1,40 @@
Table mailacct Table mailacct
============== ===========
| Field | Description | Type | Null | Key | Default | Extra | Mail account data for fetching mails
|--------------|------------------|--------------|------|-----|---------------------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| uid | | int(11) | NO | | 0 | | ------
| server | | varchar(255) | NO | | | |
| port | | int(11) | NO | | 0 | | | Field | Description | Type | Null | Key | Default | Extra |
| ssltype | | varchar(16) | NO | | | | | ------------ | ------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| mailbox | | varchar(255) | NO | | | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| user | | varchar(255) | NO | | | | | uid | User id | mediumint unsigned | NO | | 0 | |
| pass | | text | NO | | NULL | | | server | | varchar(255) | NO | | | |
| reply_to | | varchar(255) | NO | | | | | port | | smallint unsigned | NO | | 0 | |
| action | | int(11) | NO | | 0 | | | ssltype | | varchar(16) | NO | | | |
| movetofolder | | varchar(255) | NO | | | | | mailbox | | varchar(255) | NO | | | |
| pubmail | | tinyint(1) | NO | | 0 | | | user | | varchar(255) | NO | | | |
| last_check | | datetime | NO | | 0001-01-01 00:00:00 | | | 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) Return to [database documentation](help/database)

View file

@ -1,10 +1,32 @@
Table manage Table manage
============ ===========
| Field | Description | Type | Null | Key | Default | Extra | table of accounts that can manage each other
| ----- | ------------- | ------- | ---- | --- | ------- | --------------- |
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| uid | user.id | int(11) | NO | MUL | 0 | | ------
| mid | | int(11) | NO | | 0 | |
| 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,12 +1,37 @@
Table notify-threads Table notify-threads
==================== ===========
| Field | Description | Type | Null | Key | Default | Extra |
|--------------------|------------------|------------------|------|-----|---------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| notify-id | | int(11) | NO | | 0 | | ------
| master-parent-item | | int(10) unsigned | NO | MUL | 0 | |
| parent-item | | int(10) unsigned | NO | | 0 | | | Field | Description | Type | Null | Key | Default | Extra |
| receiver-uid | | int(11) | NO | MUL | 0 | | | -------------------- | --------------------------------------------- | ------------------ | ---- | --- | ------- | -------------- |
| 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) Return to [database documentation](help/database)

View file

@ -1,24 +1,51 @@
Table notify Table notify
============ ===========
| Field | Description | Type | Null | Key | Default | Extra | notifications
| ---------- | --------------------------------- | ------------ | ---- | --- | ------------------- | --------------- |
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| hash | | varchar(64) | NO | | | | ------
| type | | int(11) | NO | | 0 | |
| name | | varchar(255) | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| url | | varchar(255) | NO | | | | | ------------- | --------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| photo | | varchar(255) | NO | | | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| date | | datetime | NO | | 0001-01-01 00:00:00 | | | type | | smallint unsigned | NO | | 0 | |
| msg | | mediumtext | YES | | NULL | | | name | | varchar(255) | NO | | | |
| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | | url | | varchar(255) | NO | | | |
| link | | varchar(255) | NO | | | | | photo | | varchar(255) | NO | | | |
| iid | item.id | int(11) | NO | | 0 | | | date | | datetime | NO | | 0001-01-01 00:00:00 | |
| parent | | int(11) | NO | | 0 | | | msg | | mediumtext | YES | | NULL | |
| seen | | tinyint(1) | NO | | 0 | | | uid | Owner User id | mediumint unsigned | NO | | 0 | |
| verb | | varchar(255) | NO | | | | | link | | varchar(255) | NO | | | |
| otype | | varchar(16) | NO | | | | | iid | | int unsigned | YES | | NULL | |
| name_cache | Cached bbcode parsing of name | tinytext | YES | | NULL | | | parent | | int unsigned | YES | | NULL | |
| msg_cache | Cached bbcode parsing of msg | mediumtext | 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) Return to [database documentation](help/database)

View file

@ -1,11 +1,25 @@
Table oembed 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,12 +1,29 @@
Table parsed_url 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) Return to [database documentation](help/database)

View file

@ -1,12 +1,32 @@
Table pconfic Table pconfig
============= ===========
| Field | Description | Type | Null | Key | Default | Extra | personal (per user) configuration storage
|-------|-------------|------------|------|-----|---------|----------------|
| id | | int(11) | NO | PRI | NULL | auto_increment | Fields
| uid | | int(11) | NO | MUL | 0 | | ------
| cat | | char(255) | NO | | | |
| k | | char(255) | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| v | | mediumtext | NO | | NULL | | | ----- | ----------- | ------------------ | ---- | --- | ------- | -------------- |
| 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,29 +1,60 @@
Table photo Table photo
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra | photo storage
| ----------- | ------------------------------------------------------ | ---------------- | ---- | --- | ------------------- | --------------- |
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| 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 | | | | Field | Description | Type | Null | Key | Default | Extra |
| resource-id | | varchar(255) | NO | MUL | | | | ------------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------------------- | -------------- |
| created | creation date | datetime | NO | | 0001-01-01 00:00:00 | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | | | uid | Owner User id | mediumint unsigned | NO | | 0 | |
| title | | varchar(255) | NO | | | | | contact-id | contact.id | int unsigned | NO | | 0 | |
| desc | | text | NO | | NULL | | | guid | A unique identifier for this photo | char(16) | NO | | | |
| album | The name of the album to which the photo belongs | varchar(255) | NO | | | | | resource-id | | char(32) | NO | | | |
| filename | | varchar(255) | NO | | | | | hash | hash value of the photo | char(32) | YES | | NULL | |
| type | image type | varchar(128) | NO | | image/jpeg | | | created | creation date | datetime | NO | | 0001-01-01 00:00:00 | |
| height | | smallint(6) | NO | | 0 | | | edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | |
| width | | smallint(6) | NO | | 0 | | | title | | varchar(255) | NO | | | |
| size | | int(10) unsigned | NO | | 0 | | | desc | | text | YES | | NULL | |
| data | | mediumblob | NO | | NULL | | | album | The name of the album to which the photo belongs | varchar(255) | NO | | | |
| scale | | tinyint(3) | NO | | 0 | | | filename | | varchar(255) | NO | | | |
| profile | | tinyint(1) | NO | | 0 | | | type | | varchar(30) | NO | | image/jpeg | |
| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | | height | | smallint unsigned | NO | | 0 | |
| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | | width | | smallint unsigned | NO | | 0 | |
| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | | datasize | | int unsigned | NO | | 0 | |
| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | | 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

58
doc/database/db_post.md Normal file
View file

@ -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)

View file

@ -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)

View file

@ -1,48 +1,70 @@
Table profile Table profile
============= ===========
| Field | Description | Type | Null | Key | Default | Extra | user profiles data
|--------------|-----------------------------------------------|--------------|------|-----|---------------------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| 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 | | | Field | Description | Type | Null | Key | Default | Extra |
| hide-friends | Hide friend list from viewers of this profile | tinyint(1) | NO | | 0 | | | ------------ | --------------------------------------------- | ------------------ | ---- | --- | ---------- | -------------- |
| name | | varchar(255) | NO | | | | | id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment |
| pdesc | Deprecated | varchar(255) | NO | | | | | uid | Owner User id | mediumint unsigned | NO | | 0 | |
| dob | Day of birth | varchar(32) | NO | | 0001-01-01 | | | profile-name | Deprecated | varchar(255) | YES | | NULL | |
| address | | varchar(255) | NO | | | | | is-default | Deprecated | boolean | YES | | NULL | |
| locality | | varchar(255) | NO | | | | | hide-friends | Hide friend list from viewers of this profile | boolean | NO | | 0 | |
| region | | varchar(255) | NO | | | | | name | | varchar(255) | NO | | | |
| postal-code | | varchar(32) | NO | | | | | pdesc | Deprecated | varchar(255) | YES | | NULL | |
| country-name | | varchar(255) | NO | | | | | dob | Day of birth | varchar(32) | NO | | 0000-00-00 | |
| hometown | Deprecated | varchar(255) | NO | MUL | | | | address | | varchar(255) | NO | | | |
| gender | Deprecated | varchar(32) | NO | | | | | locality | | varchar(255) | NO | | | |
| marital | Deprecated | varchar(255) | NO | | | | | region | | varchar(255) | NO | | | |
| with | Deprecated | text | NO | | NULL | | | postal-code | | varchar(32) | NO | | | |
| howlong | Deprecated | datetime | NO | | 0001-01-01 00:00:00 | | | country-name | | varchar(255) | NO | | | |
| sexual | Deprecated | varchar(255) | NO | | | | | hometown | Deprecated | varchar(255) | YES | | NULL | |
| politic | Deprecated | varchar(255) | NO | | | | | gender | Deprecated | varchar(32) | YES | | NULL | |
| religion | Deprecated | varchar(255) | NO | | | | | marital | Deprecated | varchar(255) | YES | | NULL | |
| pub_keywords | | text | NO | | NULL | | | with | Deprecated | text | YES | | NULL | |
| prv_keywords | | text | NO | | NULL | | | howlong | Deprecated | datetime | YES | | NULL | |
| likes | Deprecated | text | NO | | NULL | | | sexual | Deprecated | varchar(255) | YES | | NULL | |
| dislikes | Deprecated | text | NO | | NULL | | | politic | Deprecated | varchar(255) | YES | | NULL | |
| about | Profile description | text | NO | | | | | religion | Deprecated | varchar(255) | YES | | NULL | |
| summary | Deprecated | varchar(255) | NO | | | | | pub_keywords | | text | YES | | NULL | |
| music | Deprecated | text | NO | | NULL | | | prv_keywords | | text | YES | | NULL | |
| book | Deprecated | text | NO | | NULL | | | likes | Deprecated | text | YES | | NULL | |
| tv | Deprecated | text | NO | | NULL | | | dislikes | Deprecated | text | YES | | NULL | |
| film | Deprecated | text | NO | | NULL | | | about | Profile description | text | YES | | NULL | |
| interest | Deprecated | text | NO | | NULL | | | summary | Deprecated | varchar(255) | YES | | NULL | |
| romance | Deprecated | text | NO | | NULL | | | music | Deprecated | text | YES | | NULL | |
| work | Deprecated | text | NO | | NULL | | | book | Deprecated | text | YES | | NULL | |
| education | Deprecated | text | NO | | NULL | | | tv | Deprecated | text | YES | | NULL | |
| contact | Deprecated | text | NO | | NULL | | | film | Deprecated | text | YES | | NULL | |
| homepage | | varchar(255) | NO | | | | | interest | Deprecated | text | YES | | NULL | |
| photo | | varchar(255) | NO | | | | | romance | Deprecated | text | YES | | NULL | |
| thumb | | varchar(255) | NO | | | | | work | Deprecated | text | YES | | NULL | |
| publish | publish default profile in local directory | tinyint(1) | NO | | 0 | | | education | Deprecated | text | YES | | NULL | |
| net-publish | publish profile in global directory | tinyint(1) | NO | | 0 | | | 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) Return to [database documentation](help/database)

View file

@ -1,13 +1,35 @@
Table profile_check Table profile_check
=================== ===========
| Field | Description | Type | Null | Key | Default | Extra | DFRN remote auth use
| -------- | ------------- | ---------------- | ---- | --- | ------- | --------------- |
| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | Fields
| uid | user.id | int(10) unsigned | NO | | 0 | | ------
| cid | contact.id | int(10) unsigned | NO | | 0 | |
| dfrn_id | | varchar(255) | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| sec | | varchar(255) | NO | | 0 | | | ------- | ------------- | ------------------ | ---- | --- | ------- | -------------- |
| expire | | int(11) | NO | | NULL | | | 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,10 +1,38 @@
Table push_subscriber Table push_subscriber
===================== ===========
| Field | Description | Type | Null | Key | Default | Extra | Used for OStatus: Contains feed subscribers
|---------|------------------|---------|------|-----|---------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| poll_id | | int(11) | NO | MUL | 0 | | ------
| choice | | int(11) | NO | MUL | 0 | |
| 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,13 +1,34 @@
Table register Table register
============== ===========
| Field | Description | Type | Null | Key | Default | Extra | registrations requiring admin approval
| -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- |
| id | sequential ID | int(11) unsigned | NO | PRI | NULL | auto_increment | Fields
| hash | | varchar(255) | NO | | | | ------
| created | | datetime | NO | | 0001-01-01 00:00:00 | |
| uid | user.id | int(11) unsigned | NO | | | | | Field | Description | Type | Null | Key | Default | Extra |
| password | | varchar(255) | NO | | | | | -------- | ------------- | ------------------ | ---- | --- | ------------------- | -------------- |
| language | | varchar(16) | NO | | | | | 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) Return to [database documentation](help/database)

View file

@ -1,10 +1,31 @@
Table search Table search
============ ===========
| Field | Description | Type | Null | Key | Default | Extra |
|-------|------------------|--------------|------|-----|---------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| uid | | int(11) | NO | MUL | 0 | | ------
| term | | varchar(255) | NO | MUL | | |
| 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) Return to [database documentation](help/database)

View file

@ -1,11 +1,26 @@
Table session 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -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)

25
doc/database/db_tag.md Normal file
View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -1,13 +1,35 @@
Table tokens Table tokens
============ ===========
| Field | Description | Type | Null | Key | Default | Extra | OAuth usage
| ---------- | ----------- | ------------ | ---- | --- | ------- | ----- |
| id | | varchar(40) | NO | PRI | NULL | | Fields
| secret | | text | NO | | NULL | | ------
| client_id | | varchar(20) | NO | | | |
| expires | | int(11) | NO | | 0 | | | Field | Description | Type | Null | Key | Default | Extra |
| scope | | varchar(200) | NO | | | | | --------- | ----------- | ------------------ | ---- | --- | ------- | ----- |
| uid | | int(11) | NO | | 0 | | | 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) Return to [database documentation](help/database)

View file

@ -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)

View file

@ -1,77 +1,75 @@
Table user Table user
========== ===========
| Field | Description | Type | Null | Key | Default | Extra | The local users
|--------------------------|-----------------------------------------------------------------------------------------|---------------------|------|-----|---------------------|----------------|
| 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 | |
``` Fields
/** ------
* 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 );
/** | Field | Description | Type | Null | Key | Default | Extra |
* notify-flags | ------------------------ | --------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- |
*/ | uid | sequential ID | mediumint unsigned | NO | PRI | NULL | auto_increment |
define ( 'NOTIFY_INTRO', 0x0001 ); | parent-uid | The parent user that has full control about this user | mediumint unsigned | YES | | NULL | |
define ( 'NOTIFY_CONFIRM', 0x0002 ); | guid | A unique identifier for this user | varchar(64) | NO | | | |
define ( 'NOTIFY_WALL', 0x0004 ); | username | Name that this user is known by | varchar(255) | NO | | | |
define ( 'NOTIFY_COMMENT', 0x0008 ); | password | encrypted password | varchar(255) | NO | | | |
define ( 'NOTIFY_MAIL', 0x0010 ); | legacy_password | Is the password hash double-hashed? | boolean | NO | | 0 | |
define ( 'NOTIFY_SUGGEST', 0x0020 ); | nickname | nick- and user name | varchar(255) | NO | | | |
define ( 'NOTIFY_PROFILE', 0x0040 ); | email | the users email address | varchar(255) | NO | | | |
define ( 'NOTIFY_TAGSELF', 0x0080 ); | openid | | varchar(255) | NO | | | |
define ( 'NOTIFY_TAGSHARE', 0x0100 ); | timezone | PHP-legal timezone | varchar(128) | NO | | | |
define ( 'NOTIFY_POKE', 0x0200 ); | language | default language | varchar(32) | NO | | en | |
define ( 'NOTIFY_SHARE', 0x0400 ); | 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) Return to [database documentation](help/database)

View file

@ -1,9 +1,23 @@
Table userd Table userd
=========== ===========
| Field | Description | Type | Null | Key | Default | Extra | Deleted usernames
|----------|------------------|--------------|------|-----|---------|----------------|
| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | Fields
| username | | varchar(255) | NO | MUL | NULL | | ------
| 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) Return to [database documentation](help/database)

23
doc/database/db_verb.md Normal file
View file

@ -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)

View file

@ -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)

View file

@ -1,14 +1,38 @@
Table workerqueue 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) Return to [database documentation](help/database)

View file

@ -120,6 +120,7 @@ HELP;
$output = ob_get_clean(); $output = ob_get_clean();
break; break;
case "dumpsql": case "dumpsql":
DBStructure::writeStructure();
ob_start(); ob_start();
DBStructure::printStructure($basePath); DBStructure::printStructure($basePath);
$output = ob_get_clean(); $output = ob_get_clean();

View file

@ -24,6 +24,7 @@ namespace Friendica\Database;
use Exception; use Exception;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Logger; use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\User; use Friendica\Model\User;
@ -159,6 +160,110 @@ class DBStructure
return DI::l10n()->t('Errors encountered performing database changes: ') . $message . EOL; 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) public static function printStructure($basePath)
{ {
$database = self::definition($basePath, false); $database = self::definition($basePath, false);
@ -1206,7 +1311,7 @@ class DBStructure
if ($verbose) { if ($verbose) {
echo "Zero contact added\n"; echo "Zero contact added\n";
} }
} }
} elseif (self::existsTable('contact') && $verbose) { } elseif (self::existsTable('contact') && $verbose) {
echo "Zero contact already added\n"; echo "Zero contact already added\n";
} elseif ($verbose) { } elseif ($verbose) {
@ -1230,7 +1335,7 @@ class DBStructure
if (self::existsTable('permissionset')) { if (self::existsTable('permissionset')) {
if (!DBA::exists('permissionset', ['id' => 0])) { 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(); $lastid = DBA::lastInsertId();
if ($lastid != 0) { if ($lastid != 0) {
DBA::update('permissionset', ['id' => 0], ['id' => $lastid]); DBA::update('permissionset', ['id' => 0], ['id' => $lastid]);
@ -1265,7 +1370,7 @@ class DBStructure
} elseif ($verbose) { } elseif ($verbose) {
echo "permissionset: Table not found\n"; echo "permissionset: Table not found\n";
} }
if (!self::existsForeignKeyForField('tokens', 'client_id')) { if (!self::existsForeignKeyForField('tokens', 'client_id')) {
$tokens = DBA::p("SELECT `tokens`.`id` FROM `tokens` $tokens = DBA::p("SELECT `tokens`.`id` FROM `tokens`
LEFT JOIN `clients` ON `clients`.`client_id` = `tokens`.`client_id` LEFT JOIN `clients` ON `clients`.`client_id` = `tokens`.`client_id`

View file

@ -586,10 +586,10 @@ class Event
$last_date = ''; $last_date = '';
$fmt = DI::l10n()->t('l, F j'); $fmt = DI::l10n()->t('l, F j');
foreach ($event_result as $event) { foreach ($event_result as $event) {
$item = Post::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link'], ['id' => $event['itemid']]); $item = Post::selectFirst(['plink', 'author-name', 'author-avatar', 'author-link', 'private'], ['id' => $event['itemid']]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
// Using default values when no item had been found // Using default values when no item had been found
$item = ['plink' => '', 'author-name' => '', 'author-avatar' => '', 'author-link' => '']; $item = ['plink' => '', 'author-name' => '', 'author-avatar' => '', 'author-link' => '', 'private' => Item::PUBLIC];
} }
$event = array_merge($event, $item); $event = array_merge($event, $item);

View file

@ -32,6 +32,7 @@ use Friendica\Model\Contact;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\BaseAdmin; use Friendica\Module\BaseAdmin;
use Friendica\Module\Register; use Friendica\Module\Register;
use Friendica\Protocol\Relay;
use Friendica\Util\BasePath; use Friendica\Util\BasePath;
use Friendica\Util\EMailer\MailBuilder; use Friendica\Util\EMailer\MailBuilder;
use Friendica\Util\Strings; use Friendica\Util\Strings;
@ -208,8 +209,6 @@ class Site extends BaseAdmin
$worker_fastlane = !empty($_POST['worker_fastlane']); $worker_fastlane = !empty($_POST['worker_fastlane']);
$relay_directly = !empty($_POST['relay_directly']); $relay_directly = !empty($_POST['relay_directly']);
$relay_server = (!empty($_POST['relay_server']) ? Strings::escapeTags(trim($_POST['relay_server'])) : '');
$relay_subscribe = !empty($_POST['relay_subscribe']);
$relay_scope = (!empty($_POST['relay_scope']) ? Strings::escapeTags(trim($_POST['relay_scope'])) : ''); $relay_scope = (!empty($_POST['relay_scope']) ? Strings::escapeTags(trim($_POST['relay_scope'])) : '');
$relay_server_tags = (!empty($_POST['relay_server_tags']) ? Strings::escapeTags(trim($_POST['relay_server_tags'])) : ''); $relay_server_tags = (!empty($_POST['relay_server_tags']) ? Strings::escapeTags(trim($_POST['relay_server_tags'])) : '');
$relay_deny_tags = (!empty($_POST['relay_deny_tags']) ? Strings::escapeTags(trim($_POST['relay_deny_tags'])) : ''); $relay_deny_tags = (!empty($_POST['relay_deny_tags']) ? Strings::escapeTags(trim($_POST['relay_deny_tags'])) : '');
@ -418,8 +417,6 @@ class Site extends BaseAdmin
DI::config()->set('system', 'worker_fastlane' , $worker_fastlane); DI::config()->set('system', 'worker_fastlane' , $worker_fastlane);
DI::config()->set('system', 'relay_directly' , $relay_directly); DI::config()->set('system', 'relay_directly' , $relay_directly);
DI::config()->set('system', 'relay_server' , $relay_server);
DI::config()->set('system', 'relay_subscribe' , $relay_subscribe);
DI::config()->set('system', 'relay_scope' , $relay_scope); DI::config()->set('system', 'relay_scope' , $relay_scope);
DI::config()->set('system', 'relay_server_tags', $relay_server_tags); DI::config()->set('system', 'relay_server_tags', $relay_server_tags);
DI::config()->set('system', 'relay_deny_tags' , $relay_deny_tags); DI::config()->set('system', 'relay_deny_tags' , $relay_deny_tags);
@ -589,6 +586,10 @@ class Site extends BaseAdmin
'$performance' => DI::l10n()->t('Performance'), '$performance' => DI::l10n()->t('Performance'),
'$worker_title' => DI::l10n()->t('Worker'), '$worker_title' => DI::l10n()->t('Worker'),
'$relay_title' => DI::l10n()->t('Message Relay'), '$relay_title' => DI::l10n()->t('Message Relay'),
'$relay_description' => DI::l10n()->t('Use the command "console relay" in the command line to add or remove relays.'),
'$no_relay_list' => DI::l10n()->t('The system is not subscribed to any relays at the moment.'),
'$relay_list_title' => DI::l10n()->t('The system is currently subscribed to the following relays:'),
'$relay_list' => Relay::getList(['url']),
'$relocate' => DI::l10n()->t('Relocate Instance'), '$relocate' => DI::l10n()->t('Relocate Instance'),
'$relocate_warning' => DI::l10n()->t('<strong>Warning!</strong> Advanced function. Could make this server unreachable.'), '$relocate_warning' => DI::l10n()->t('<strong>Warning!</strong> Advanced function. Could make this server unreachable.'),
'$baseurl' => DI::baseUrl()->get(true), '$baseurl' => DI::baseUrl()->get(true),
@ -688,10 +689,8 @@ class Site extends BaseAdmin
'$worker_queues' => ['worker_queues', DI::l10n()->t('Maximum number of parallel workers'), DI::config()->get('system', 'worker_queues'), DI::l10n()->t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)], '$worker_queues' => ['worker_queues', DI::l10n()->t('Maximum number of parallel workers'), DI::config()->get('system', 'worker_queues'), DI::l10n()->t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)],
'$worker_fastlane' => ['worker_fastlane', DI::l10n()->t('Enable fastlane'), DI::config()->get('system', 'worker_fastlane'), DI::l10n()->t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')], '$worker_fastlane' => ['worker_fastlane', DI::l10n()->t('Enable fastlane'), DI::config()->get('system', 'worker_fastlane'), DI::l10n()->t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')],
'$relay_subscribe' => ['relay_subscribe', DI::l10n()->t('Use relay servers'), DI::config()->get('system', 'relay_subscribe'), DI::l10n()->t('Enables the receiving of public posts from relay servers. They will be included in the search, subscribed tags and on the global community page.')],
'$relay_server' => ['relay_server', DI::l10n()->t('"Social Relay" server'), DI::config()->get('system', 'relay_server'), DI::l10n()->t('Address of the "Social Relay" server where public posts should be send to. For example %s. ActivityRelay servers are administrated via the "console relay" command line command.', 'https://social-relay.isurf.ca')],
'$relay_directly' => ['relay_directly', DI::l10n()->t('Direct relay transfer'), DI::config()->get('system', 'relay_directly'), DI::l10n()->t('Enables the direct transfer to other servers without using the relay servers')], '$relay_directly' => ['relay_directly', DI::l10n()->t('Direct relay transfer'), DI::config()->get('system', 'relay_directly'), DI::l10n()->t('Enables the direct transfer to other servers without using the relay servers')],
'$relay_scope' => ['relay_scope', DI::l10n()->t('Relay scope'), DI::config()->get('system', 'relay_scope'), DI::l10n()->t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), ['' => DI::l10n()->t('Disabled'), 'all' => DI::l10n()->t('all'), 'tags' => DI::l10n()->t('tags')]], '$relay_scope' => ['relay_scope', DI::l10n()->t('Relay scope'), DI::config()->get('system', 'relay_scope'), DI::l10n()->t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), [SR_SCOPE_NONE => DI::l10n()->t('Disabled'), SR_SCOPE_ALL => DI::l10n()->t('all'), SR_SCOPE_TAGS => DI::l10n()->t('tags')]],
'$relay_server_tags' => ['relay_server_tags', DI::l10n()->t('Server tags'), DI::config()->get('system', 'relay_server_tags'), DI::l10n()->t('Comma separated list of tags for the "tags" subscription.')], '$relay_server_tags' => ['relay_server_tags', DI::l10n()->t('Server tags'), DI::config()->get('system', 'relay_server_tags'), DI::l10n()->t('Comma separated list of tags for the "tags" subscription.')],
'$relay_deny_tags' => ['relay_deny_tags', DI::l10n()->t('Deny Server tags'), DI::config()->get('system', 'relay_deny_tags'), DI::l10n()->t('Comma separated list of tags that are rejected.')], '$relay_deny_tags' => ['relay_deny_tags', DI::l10n()->t('Deny Server tags'), DI::config()->get('system', 'relay_deny_tags'), DI::l10n()->t('Comma separated list of tags that are rejected.')],
'$relay_user_tags' => ['relay_user_tags', DI::l10n()->t('Allow user tags'), DI::config()->get('system', 'relay_user_tags'), DI::l10n()->t('If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".')], '$relay_user_tags' => ['relay_user_tags', DI::l10n()->t('Allow user tags'), DI::config()->get('system', 'relay_user_tags'), DI::l10n()->t('If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".')],

View file

@ -35,13 +35,7 @@ class XSocialRelay extends BaseModule
{ {
$config = DI::config(); $config = DI::config();
$subscribe = $config->get('system', 'relay_subscribe', false); $scope = $config->get('system', 'relay_scope');
if ($subscribe) {
$scope = $config->get('system', 'relay_scope', SR_SCOPE_ALL);
} else {
$scope = SR_SCOPE_NONE;
}
$systemTags = []; $systemTags = [];
$userTags = []; $userTags = [];
@ -63,7 +57,7 @@ class XSocialRelay extends BaseModule
$tagList = array_unique(array_merge($systemTags, $userTags)); $tagList = array_unique(array_merge($systemTags, $userTags));
$relay = [ $relay = [
'subscribe' => $subscribe, 'subscribe' => ($scope != SR_SCOPE_NONE),
'scope' => $scope, 'scope' => $scope,
'tags' => $tagList, 'tags' => $tagList,
'protocols' => [ 'protocols' => [

View file

@ -68,13 +68,9 @@ class Transmitter
*/ */
public static function addRelayServerInboxes(array $inboxes = []) public static function addRelayServerInboxes(array $inboxes = [])
{ {
$contacts = DBA::select('apcontact', ['inbox'], foreach (Relay::getList(['inbox']) as $contact) {
["`type` = ? AND `url` IN (SELECT `url` FROM `contact` WHERE `uid` = ? AND `rel` = ?)",
'Application', 0, Contact::FRIEND]);
while ($contact = DBA::fetch($contacts)) {
$inboxes[$contact['inbox']] = $contact['inbox']; $inboxes[$contact['inbox']] = $contact['inbox'];
} }
DBA::close($contacts);
return $inboxes; return $inboxes;
} }
@ -92,7 +88,7 @@ class Transmitter
return $inboxes; return $inboxes;
} }
$relays = Relay::getList($item_id, [], [Protocol::ACTIVITYPUB]); $relays = Relay::getDirectRelayList($item_id);
if (empty($relays)) { if (empty($relays)) {
return $inboxes; return $inboxes;
} }

View file

@ -29,7 +29,6 @@ use Friendica\DI;
use Friendica\Model\APContact; use Friendica\Model\APContact;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\GServer; use Friendica\Model\GServer;
use Friendica\Model\Item;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Model\Search; use Friendica\Model\Search;
use Friendica\Model\Tag; use Friendica\Model\Tag;
@ -54,12 +53,7 @@ class Relay
{ {
$config = DI::config(); $config = DI::config();
$subscribe = $config->get('system', 'relay_subscribe', false); $scope = $config->get('system', 'relay_scope');
if ($subscribe) {
$scope = $config->get('system', 'relay_scope', SR_SCOPE_ALL);
} else {
$scope = SR_SCOPE_NONE;
}
if ($scope == SR_SCOPE_NONE) { if ($scope == SR_SCOPE_NONE) {
Logger::info('Server does not accept relay posts - rejected', ['network' => $network, 'url' => $url]); Logger::info('Server does not accept relay posts - rejected', ['network' => $network, 'url' => $url]);
@ -168,7 +162,7 @@ class Relay
return; return;
} }
if (DBA::isResult($old)) { if (DBA::isResult($old)) {
$fields['updated'] = DateTimeFormat::utcNow(); $fields['updated'] = DateTimeFormat::utcNow();
Logger::info('Update relay contact', ['server' => $gserver['url'], 'id' => $old['id'], 'fields' => $fields]); Logger::info('Update relay contact', ['server' => $gserver['url'], 'id' => $old['id'], 'fields' => $fields]);
@ -224,76 +218,65 @@ class Relay
} }
/** /**
* Return a list of relay servers * Return a list of servers that we serve via the direct relay
*
* The list contains not only the official relays but also servers that we serve directly
* *
* @param integer $item_id id of the item that is sent * @param integer $item_id id of the item that is sent
* @param array $contacts Previously fetched contacts * @param array $contacts Previously fetched contacts
* @param array $networks Networks of the relay servers * @param array $networks Networks of the relay servers
* *
* @return array of relay servers * @return array of relay servers
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/ */
public static function getList(int $item_id, array $contacts, array $networks) public static function getDirectRelayList(int $item_id)
{ {
$serverlist = []; $serverlist = [];
// Fetching relay servers if (!DI::config()->get("system", "relay_directly", false)) {
$serverdata = DI::config()->get("system", "relay_server"); return [];
if (!empty($serverdata)) {
$servers = explode(",", $serverdata);
foreach ($servers as $server) {
$gserver = DBA::selectFirst('gserver', ['id', 'url', 'network'], ['nurl' => Strings::normaliseLink($server)]);
if (DBA::isResult($gserver)) {
$serverlist[$gserver['id']] = $gserver;
}
}
} }
if (DI::config()->get("system", "relay_directly", false)) { // We distribute our stuff based on the parent to ensure that the thread will be complete
// We distribute our stuff based on the parent to ensure that the thread will be complete $parent = Post::selectFirst(['uri-id'], ['id' => $item_id]);
$parent = Post::selectFirst(['uri-id'], ['id' => $item_id]); if (!DBA::isResult($parent)) {
if (!DBA::isResult($parent)) { return [];
return; }
}
// Servers that want to get all content // Servers that want to get all content
$servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'all']); $servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'all']);
while ($server = DBA::fetch($servers)) {
$serverlist[$server['id']] = $server;
}
DBA::close($servers);
// All tags of the current post
$tags = DBA::select('tag-view', ['name'], ['uri-id' => $parent['uri-id'], 'type' => Tag::HASHTAG]);
$taglist = [];
while ($tag = DBA::fetch($tags)) {
$taglist[] = $tag['name'];
}
DBA::close($tags);
// All servers who wants content with this tag
$tagserverlist = [];
if (!empty($taglist)) {
$tagserver = DBA::select('gserver-tag', ['gserver-id'], ['tag' => $taglist]);
while ($server = DBA::fetch($tagserver)) {
$tagserverlist[] = $server['gserver-id'];
}
DBA::close($tagserver);
}
// All adresses with the given id
if (!empty($tagserverlist)) {
$servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'tags', 'id' => $tagserverlist]);
while ($server = DBA::fetch($servers)) { while ($server = DBA::fetch($servers)) {
$serverlist[$server['id']] = $server; $serverlist[$server['id']] = $server;
} }
DBA::close($servers); DBA::close($servers);
// All tags of the current post
$tags = DBA::select('tag-view', ['name'], ['uri-id' => $parent['uri-id'], 'type' => Tag::HASHTAG]);
$taglist = [];
while ($tag = DBA::fetch($tags)) {
$taglist[] = $tag['name'];
}
DBA::close($tags);
// All servers who wants content with this tag
$tagserverlist = [];
if (!empty($taglist)) {
$tagserver = DBA::select('gserver-tag', ['gserver-id'], ['tag' => $taglist]);
while ($server = DBA::fetch($tagserver)) {
$tagserverlist[] = $server['gserver-id'];
}
DBA::close($tagserver);
}
// All adresses with the given id
if (!empty($tagserverlist)) {
$servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'tags', 'id' => $tagserverlist]);
while ($server = DBA::fetch($servers)) {
$serverlist[$server['id']] = $server;
}
DBA::close($servers);
}
} }
$contacts = [];
// Now we are collecting all relay contacts // Now we are collecting all relay contacts
foreach ($serverlist as $gserver) { foreach ($serverlist as $gserver) {
// We don't send messages to ourselves // We don't send messages to ourselves
@ -304,15 +287,24 @@ class Relay
if (empty($contact)) { if (empty($contact)) {
continue; continue;
} }
if (in_array($contact['network'], $networks) && !in_array($contact['batch'], array_column($contacts, 'batch'))) {
$contacts[] = $contact;
}
} }
return $contacts; return $contacts;
} }
/**
* Return a list of relay servers
*
* @param array $fields Field list
* @return array
* @throws Exception
*/
public static function getList($fields = []):array
{
return DBA::selectToArray('apcontact', $fields,
["`type` = ? AND `url` IN (SELECT `url` FROM `contact` WHERE `uid` = ? AND `rel` = ?)", 'Application', 0, Contact::FRIEND]);
}
/** /**
* Return a contact for a given server address or creates a dummy entry * Return a contact for a given server address or creates a dummy entry
* *

View file

@ -39,7 +39,6 @@ use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub; use Friendica\Protocol\ActivityPub;
use Friendica\Protocol\Diaspora; use Friendica\Protocol\Diaspora;
use Friendica\Protocol\OStatus; use Friendica\Protocol\OStatus;
use Friendica\Protocol\Relay;
use Friendica\Protocol\Salmon; use Friendica\Protocol\Salmon;
use Friendica\Util\Network; use Friendica\Util\Network;
use Friendica\Util\Strings; use Friendica\Util\Strings;
@ -442,12 +441,12 @@ class Notifier
$batch_delivery = false; $batch_delivery = false;
if ($public_message && !in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION]) && !$followup) { if ($public_message && !in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION]) && !$followup) {
$relay_list = []; $participants = [];
if ($diaspora_delivery && !$unlisted) { if ($diaspora_delivery && !$unlisted) {
$batch_delivery = true; $batch_delivery = true;
$relay_list_stmt = DBA::p( $participants_stmt = DBA::p(
"SELECT "SELECT
`batch`, `network`, `protocol`, `batch`, `network`, `protocol`,
ANY_VALUE(`id`) AS `id`, ANY_VALUE(`id`) AS `id`,
@ -466,17 +465,11 @@ class Notifier
$owner['uid'], $owner['uid'],
Contact::SHARING Contact::SHARING
); );
$relay_list = DBA::toArray($relay_list_stmt); $participants = DBA::toArray($participants_stmt);
// Fetch the participation list // Fetch the participation list
// The function will ensure that there are no duplicates // The function will ensure that there are no duplicates
$relay_list = Diaspora::participantsForThread($target_item, $relay_list); $participants = Diaspora::participantsForThread($target_item, $participants);
// Add the relay to the list, avoid duplicates.
// Don't send community posts to the relay. Forum posts via the Diaspora protocol are looking ugly.
if (!$followup && !Item::isForumPost($target_item, $owner) && !self::isForumPost($target_item)) {
$relay_list = Relay::getList($target_id, $relay_list, [Protocol::DFRN, Protocol::DIASPORA]);
}
} }
$condition = ['network' => Protocol::DFRN, 'uid' => $owner['uid'], 'blocked' => false, $condition = ['network' => Protocol::DFRN, 'uid' => $owner['uid'], 'blocked' => false,
@ -484,7 +477,7 @@ class Notifier
$contacts = DBA::toArray(DBA::select('contact', ['id', 'url', 'addr', 'name', 'network', 'protocol'], $condition)); $contacts = DBA::toArray(DBA::select('contact', ['id', 'url', 'addr', 'name', 'network', 'protocol'], $condition));
$conversants = array_merge($contacts, $relay_list); $conversants = array_merge($contacts, $participants);
$delivery_queue_count += self::delivery($cmd, $post_uriid, $sender_uid, $target_item, $thr_parent, $owner, $batch_delivery, true, $conversants, $ap_contacts, []); $delivery_queue_count += self::delivery($cmd, $post_uriid, $sender_uid, $target_item, $thr_parent, $owner, $batch_delivery, true, $conversants, $ap_contacts, []);

View file

@ -164,9 +164,13 @@ return [
// Comma separated list of tags that are rejected. // Comma separated list of tags that are rejected.
'relay_deny_tags' => '', 'relay_deny_tags' => '',
// relay_server (String) // relay_directly (Boolean)
// Address of the relay server where public posts should be send to. // Directly transmit content to relay subscribers without using a relay server
'relay_server' => 'https://social-relay.isurf.ca', 'relay_directly' => false,
// relay_scope (SR_SCOPE_NONE, SR_SCOPE_TAGS or SR_SCOPE_ALL)
// Defines the scope of accepted posts from the relay servers
'relay_scope' => SR_SCOPE_NONE,
// relay_server_tags (String) // relay_server_tags (String)
// Comma separated list of tags for the "tags" subscription. // Comma separated list of tags for the "tags" subscription.

File diff suppressed because it is too large Load diff

View file

@ -127,13 +127,22 @@
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div> <div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div>
<h2>{{$relay_title}}</h2> <h2>{{$relay_title}}</h2>
{{include file="field_checkbox.tpl" field=$relay_subscribe}} {{if $relay_list}}
{{include file="field_input.tpl" field=$relay_server}} <p>{{$relay_list_title}}</p>
{{include file="field_checkbox.tpl" field=$relay_directly}} <ul id="relay-list">
{{foreach $relay_list as $relay}}
<li>{{$relay.url}}</li>
{{/foreach}}
</ul>
{{else}}
<p>{{$no_relay_list}}</p>
{{/if}}
<p>{{$relay_description}}</p>
{{include file="field_select.tpl" field=$relay_scope}} {{include file="field_select.tpl" field=$relay_scope}}
{{include file="field_input.tpl" field=$relay_server_tags}} {{include file="field_input.tpl" field=$relay_server_tags}}
{{include file="field_input.tpl" field=$relay_deny_tags}} {{include file="field_input.tpl" field=$relay_deny_tags}}
{{include file="field_checkbox.tpl" field=$relay_user_tags}} {{include file="field_checkbox.tpl" field=$relay_user_tags}}
{{include file="field_checkbox.tpl" field=$relay_directly}}
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div> <div class="submit"><input type="submit" name="page_site" value="{{$submit}}"/></div>

View file

@ -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)

10
view/templates/tables.tpl Normal file
View file

@ -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}}

View file

@ -297,13 +297,22 @@
</div> </div>
<div id="admin-settings-relay-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="admin-settings-relay"> <div id="admin-settings-relay-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="admin-settings-relay">
<div class="panel-body"> <div class="panel-body">
{{include file="field_checkbox.tpl" field=$relay_subscribe}} {{if $relay_list}}
{{include file="field_input.tpl" field=$relay_server}} <p>{{$relay_list_title}}</p>
{{include file="field_checkbox.tpl" field=$relay_directly}} <ul id="relay-list">
{{foreach $relay_list as $relay}}
<li>{{$relay.url}}</li>
{{/foreach}}
</ul>
{{else}}
<p>{{$no_relay_list}}</p>
{{/if}}
<p>{{$relay_description}}</p>
{{include file="field_select.tpl" field=$relay_scope}} {{include file="field_select.tpl" field=$relay_scope}}
{{include file="field_input.tpl" field=$relay_server_tags}} {{include file="field_input.tpl" field=$relay_server_tags}}
{{include file="field_input.tpl" field=$relay_deny_tags}} {{include file="field_input.tpl" field=$relay_deny_tags}}
{{include file="field_checkbox.tpl" field=$relay_user_tags}} {{include file="field_checkbox.tpl" field=$relay_user_tags}}
{{include file="field_checkbox.tpl" field=$relay_directly}}
</div> </div>
<div class="panel-footer"> <div class="panel-footer">
<input type="submit" name="page_site" class="btn btn-primary" value="{{$submit}}"/> <input type="submit" name="page_site" class="btn btn-primary" value="{{$submit}}"/>