diff --git a/doc/API-Mastodon.md b/doc/API-Mastodon.md index db70d9fce..b01de4eb3 100644 --- a/doc/API-Mastodon.md +++ b/doc/API-Mastodon.md @@ -13,44 +13,21 @@ Authentication is the same as described in [Using the APIs](help/api#Authenticat ### Supported apps -#### Android - -- [AndStatus](http://andstatus.org) -- [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma) -- [Fedi](https://play.google.com/store/apps/details?id=com.fediverse.app) -- [Husky](https://husky.fwgs.ru) -- [Roma](https://play.google.com/store/apps/details?id=tech.bigfig.roma) -- [Subway Tooter](https://github.com/tateisu/SubwayTooter) -- [Tooot](https://tooot.app/) -- [Tusky](https://tusky.app) -- [Twidere](https://github.com/TwidereProject/) -- [twitlatte](https://github.com/moko256/twitlatte) -- [Yuito](https://github.com/accelforce/Yuito) - -#### iOS -- [Amaroq](https://github.com/ReticentJohn/Amaroq/tree/master) -- [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma) -- [Fedi](https://apps.apple.com/de/app/fedi-for-pleroma-and-mastodon/id1478806281) -- [Roma](https://apps.apple.com/de/app/roma-for-pleroma-and-mastodon/id1445328699) -- [StarPterano](https://apps.apple.com/de/app/starpterano/id1436972796) Uses an OAuth method where you have to manually copy and paste the provided code. -- [Stella](https://apps.apple.com/us/app/stella-for-mastodon-twitter/id921372048?l=ms) -- [Tooot](https://tooot.app/) -- [Tootle](https://apps.apple.com/de/app/tootle-for-mastodon/id1236013466) entered hostname must match in upper/lower case. Currently crashes on "Status" type notifications. - -#### Desktop -- [Whalebird](https://whalebird.social) +For supported apps please have a look at the [FAQ](help/FAQ#clients) ### Unsupported apps #### Android + - [Fedilab](https://framagit.org/tom79/fedilab) Automatically uses the legacy API, see issue: https://framagit.org/tom79/fedilab/-/issues/520 - [Mammut](https://github.com/jamiesanson/Mammut) There are problems with the token request, see issue https://github.com/jamiesanson/Mammut/issues/19 #### iOS + - [Mast](https://github.com/Beesitech/Mast) Doesn't accept the entered instance name. Claims that it is invalid (Message is: "Not a valid instance (may be closed or dead)") - [Toot!](https://apps.apple.com/app/toot/id1229021451) -#### Other +#### Desktop - [Halycon](https://www.halcyon.social/) Doesn't load content, creates masses of HTTP requests - [Mastonaut](https://mastonaut.app/) diff --git a/doc/FAQ.md b/doc/FAQ.md index a073585f1..0819ab288 100644 --- a/doc/FAQ.md +++ b/doc/FAQ.md @@ -183,25 +183,52 @@ Example: Friendica Support ### What friendica clients can I use? Friendica is using a [Twitter/GNU Social compatible API](help/api), which means you can use any Twitter/GNU Social client for your platform as long as you can change the API path in its settings. -Since the 2021.06 release, Friendica also supports the Mastodon API. +Since the 2021.06 release, Friendica also supports the [Mastodon API](help/API-Mastodon) which works with many Mastodon clients. Here is a list of known working clients: -* Android - * [Friendiqa](https://git.friendi.ca/lubuwest/Friendiqa) ([F-Droid](https://git.friendi.ca/lubuwest/Friendiqa#install), [Google Play](https://play.google.com/store/apps/details?id=org.qtproject.friendiqa)) - * [Fedilab](https://fedilab.app) ([F-Droid](https://f-droid.org/app/fr.gouv.etalab.mastodon), [Google Play](https://play.google.com/store/apps/details?id=app.fedilab.android)) - * [AndStatus](http://andstatus.org) ([F-Droid](https://f-droid.org/repository/browse/?fdid=org.andstatus.app), [Google Play](https://play.google.com/store/apps/details?id=org.andstatus.app)) - * [Twidere](https://dimension.im/) ([F-Droid](https://f-droid.org/repository/browse/?fdid=org.mariotaku.twidere), [Google Play](https://play.google.com/store/apps/details?id=com.twidere.twiderex), [GitHub](https://github.com/TwidereProject/Twidere-Android)) -* SailfishOS - * [Friendly](https://openrepos.net/content/fabrixxm/friendly#comment-form) -* Linux - * [Choqok](https://choqok.kde.org) -* Windows - * [Friendica Mobile](https://www.microsoft.com/de-DE/store/p/friendica-mobile/9nblggh0fhmn?rtc=1) (Windows 10) - * [Husky](https://husky.fwgs.ru) - * [Subway Tooter](https://github.com/tateisu/SubwayTooter) - * [Tusky](https://tusky.app) - * [twitlatte](https://github.com/moko256/twitlatte) - * [Yuito](https://github.com/accelforce/Yuito) +#### Android + +* [AndStatus](http://andstatus.org) ([F-Droid](https://f-droid.org/repository/browse/?fdid=org.andstatus.app), [Google Play](https://play.google.com/store/apps/details?id=org.andstatus.app)) +* [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma) +* [DiCa](https://dica.mixi.cool/) (Available at Google Play) +* [Fedi](https://play.google.com/store/apps/details?id=com.fediverse.app) +* [Fedilab](https://fedilab.app) ([F-Droid](https://f-droid.org/app/fr.gouv.etalab.mastodon), [Google Play](https://play.google.com/store/apps/details?id=app.fedilab.android)) +* [Friendiqa](https://git.friendi.ca/lubuwest/Friendiqa) ([F-Droid](https://git.friendi.ca/lubuwest/Friendiqa#install), [Google Play](https://play.google.com/store/apps/details?id=org.qtproject.friendiqa)) +* [Husky](https://husky.fwgs.ru) +* [Roma](https://play.google.com/store/apps/details?id=tech.bigfig.roma) +* [Subway Tooter](https://github.com/tateisu/SubwayTooter) +* [Tooot](https://tooot.app/) +* [Tusky](https://tusky.app) +* [Twidere](https://dimension.im/) ([F-Droid](https://f-droid.org/repository/browse/?fdid=org.mariotaku.twidere), [Google Play](https://play.google.com/store/apps/details?id=com.twidere.twiderex), [GitHub](https://github.com/TwidereProject/Twidere-Android)) +* [twitlatte](https://github.com/moko256/twitlatte) +* [Yuito](https://github.com/accelforce/Yuito) + +#### SailfishOS + +* [Friendly](https://openrepos.net/content/fabrixxm/friendly#comment-form) + +#### iOS + +* [Amaroq](https://github.com/ReticentJohn/Amaroq/tree/master) +* [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma) +* [Fedi](https://apps.apple.com/de/app/fedi-for-pleroma-and-mastodon/id1478806281) +* [Roma](https://apps.apple.com/de/app/roma-for-pleroma-and-mastodon/id1445328699) +* [StarPterano](https://apps.apple.com/de/app/starpterano/id1436972796) Uses an OAuth method where you have to manually copy and paste the provided code. +* [Stella](https://apps.apple.com/us/app/stella-for-mastodon-twitter/id921372048?l=ms) +* [Tooot](https://tooot.app/) +* [Tootle](https://apps.apple.com/de/app/tootle-for-mastodon/id1236013466) entered hostname must match in upper/lower case. Currently crashes on "Status" type notifications. + +#### Linux + +* [Choqok](https://choqok.kde.org) +* [Whalebird](https://whalebird.social) +* [TheDesk](https://ja.mstdn.wiki/TheDesk) +* [Toot](https://toot.readthedocs.io/en/latest/) +* [Tootle](https://github.com/bleakgrey/tootle) + +#### Windows + +* [Friendica Mobile](https://www.microsoft.com/de-DE/store/p/friendica-mobile/9nblggh0fhmn?rtc=1) (Windows 10) Depending on the features of the client you might encounter some glitches in usability, like being limited in the length of your postings to 140 characters and having no access to the [permission settings](help/Groups-and-Privacy). diff --git a/doc/database.md b/doc/database.md index 447607f8d..60e3253fe 100644 --- a/doc/database.md +++ b/doc/database.md @@ -3,50 +3,76 @@ Database Tables * [Home](help) -| Table | Description | -|------------------------------------------------------|--------------------------------------------------| -| [addon](help/database/db_addon) | registered addons | -| [attach](help/database/db_attach) | file attachments | -| [auth_codes](help/database/db_auth_codes) | OAuth usage | -| [cache](help/database/db_cache) | OEmbed cache | -| [challenge](help/database/db_challenge) | | -| [clients](help/database/db_clients) | OAuth usage | -| [config](help/database/db_config) | main configuration storage | -| [contact](help/database/db_contact) | contact table | -| [conv](help/database/db_conv) | private messages | -| [conversation](help/database/db_conversation) | Raw data and structure information for messages | -| [event](help/database/db_event) | Events | -| [fcontact](help/database/db_fcontact) | friend suggestion stuff | -| [fsuggest](help/database/db_fsuggest) | friend suggestion stuff | -| [group](help/database/db_group) | privacy groups, group info | -| [group_member](help/database/db_group_member) | privacy groups, member info | -| [gserver](help/database/db_gserver) | | -| [hook](help/database/db_hook) | addon hook registry | -| [intro](help/database/db_intro) | | -| [item](help/database/db_item) | all posts | -| [locks](help/database/db_locks) | | -| [mail](help/database/db_mail) | private messages | -| [mailacct](help/database/db_mailacct) | | -| [manage](help/database/db_manage) | table of accounts that can "su" each other | -| [notify](help/database/db_notify) | notifications | -| [notify-threads](help/database/db_notify-threads) | | -| [oembed](help/database/db_oembed) | cache for OEmbed queries | -| [parsed_url](help/database/db_parsed_url) | cache for "parse_url" queries | -| [pconfig](help/database/db_pconfig) | personal (per user) configuration storage | -| [photo](help/database/db_photo) | photo storage | -| [poll](help/database/db_poll) | data for polls | -| [poll_result](help/database/db_poll_result) | data for poll elements | -| [profile](help/database/db_profile) | user profiles data | -| [profile_check](help/database/db_profile_check) | DFRN remote auth use | -| [push_subscriber](help/database/db_push_subscriber) | | -| [queue](help/database/db_queue) | | -| [register](help/database/db_register) | registrations requiring admin approval | -| [search](help/database/db_search) | | -| [session](help/database/db_session) | web session storage | -| [sign](help/database/db_sign) | Diaspora signatures | -| [term](help/database/db_term) | item taxonomy (categories, tags, etc.) table | -| [thread](help/database/db_thread) | | -| [tokens](help/database/db_tokens) | OAuth usage | -| [user](help/database/db_user) | local user table | -| [userd](help/database/db_userd) | | -| [workerqueue](help/database/db_workerqueue) | | +| Table | Description | +|-------|-------------| +| [2fa_app_specific_password](help/database/db_2fa_app_specific_password) | Two-factor app-specific _password | +| [2fa_recovery_codes](help/database/db_2fa_recovery_codes) | Two-factor authentication recovery codes | +| [2fa_trusted_browser](help/database/db_2fa_trusted_browser) | Two-factor authentication trusted browsers | +| [addon](help/database/db_addon) | registered addons | +| [apcontact](help/database/db_apcontact) | ActivityPub compatible contacts - used in the ActivityPub implementation | +| [application](help/database/db_application) | OAuth application | +| [application-token](help/database/db_application-token) | OAuth user token | +| [attach](help/database/db_attach) | file attachments | +| [auth_codes](help/database/db_auth_codes) | OAuth usage | +| [cache](help/database/db_cache) | Stores temporary data | +| [challenge](help/database/db_challenge) | | +| [clients](help/database/db_clients) | OAuth usage | +| [config](help/database/db_config) | main configuration storage | +| [contact](help/database/db_contact) | contact table | +| [contact-relation](help/database/db_contact-relation) | Contact relations | +| [conv](help/database/db_conv) | private messages | +| [conversation](help/database/db_conversation) | Raw data and structure information for messages | +| [delayed-post](help/database/db_delayed-post) | Posts that are about to be distributed at a later time | +| [diaspora-interaction](help/database/db_diaspora-interaction) | Signed Diaspora Interaction | +| [event](help/database/db_event) | Events | +| [fcontact](help/database/db_fcontact) | Diaspora compatible contacts - used in the Diaspora implementation | +| [fsuggest](help/database/db_fsuggest) | friend suggestion stuff | +| [group](help/database/db_group) | privacy groups, group info | +| [group_member](help/database/db_group_member) | privacy groups, member info | +| [gserver](help/database/db_gserver) | Global servers | +| [gserver-tag](help/database/db_gserver-tag) | Tags that the server has subscribed | +| [hook](help/database/db_hook) | addon hook registry | +| [host](help/database/db_host) | Hostname | +| [inbox-status](help/database/db_inbox-status) | Status of ActivityPub inboxes | +| [intro](help/database/db_intro) | | +| [item-uri](help/database/db_item-uri) | URI and GUID for items | +| [locks](help/database/db_locks) | | +| [mail](help/database/db_mail) | private messages | +| [mailacct](help/database/db_mailacct) | Mail account data for fetching mails | +| [manage](help/database/db_manage) | table of accounts that can manage each other | +| [notification](help/database/db_notification) | notifications | +| [notify](help/database/db_notify) | notifications | +| [notify-threads](help/database/db_notify-threads) | | +| [oembed](help/database/db_oembed) | cache for OEmbed queries | +| [openwebauth-token](help/database/db_openwebauth-token) | Store OpenWebAuth token to verify contacts | +| [parsed_url](help/database/db_parsed_url) | cache for 'parse_url' queries | +| [pconfig](help/database/db_pconfig) | personal (per user) configuration storage | +| [permissionset](help/database/db_permissionset) | | +| [photo](help/database/db_photo) | photo storage | +| [post](help/database/db_post) | Structure for all posts | +| [post-category](help/database/db_post-category) | post relation to categories | +| [post-content](help/database/db_post-content) | Content for all posts | +| [post-delivery-data](help/database/db_post-delivery-data) | Delivery data for items | +| [post-media](help/database/db_post-media) | Attached media | +| [post-tag](help/database/db_post-tag) | post relation to tags | +| [post-thread](help/database/db_post-thread) | Thread related data | +| [post-thread-user](help/database/db_post-thread-user) | Thread related data per user | +| [post-user](help/database/db_post-user) | User specific post data | +| [post-user-notification](help/database/db_post-user-notification) | User post notifications | +| [process](help/database/db_process) | Currently running system processes | +| [profile](help/database/db_profile) | user profiles data | +| [profile_check](help/database/db_profile_check) | DFRN remote auth use | +| [profile_field](help/database/db_profile_field) | Custom profile fields | +| [push_subscriber](help/database/db_push_subscriber) | Used for OStatus: Contains feed subscribers | +| [register](help/database/db_register) | registrations requiring admin approval | +| [search](help/database/db_search) | | +| [session](help/database/db_session) | web session storage | +| [storage](help/database/db_storage) | Data stored by Database storage backend | +| [tag](help/database/db_tag) | tags and mentions | +| [tokens](help/database/db_tokens) | OAuth usage | +| [user](help/database/db_user) | The local users | +| [user-contact](help/database/db_user-contact) | User specific public contact data | +| [userd](help/database/db_userd) | Deleted usernames | +| [verb](help/database/db_verb) | Activity Verbs | +| [worker-ipc](help/database/db_worker-ipc) | Inter process communication between the frontend and the worker | +| [workerqueue](help/database/db_workerqueue) | Background tasks queue entries | diff --git a/doc/database/db_2fa_app_specific_password.md b/doc/database/db_2fa_app_specific_password.md new file mode 100644 index 000000000..66dd77c95 --- /dev/null +++ b/doc/database/db_2fa_app_specific_password.md @@ -0,0 +1,33 @@ +Table 2fa_app_specific_password +=========== + +Two-factor app-specific _password + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------------- | ---------------------------------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | Password ID for revocation | mediumint unsigned | NO | PRI | NULL | auto_increment | +| uid | User ID | mediumint unsigned | NO | | NULL | | +| description | Description of the usage of the password | varchar(255) | YES | | NULL | | +| hashed_password | Hashed password | varchar(255) | NO | | NULL | | +| generated | Datetime the password was generated | datetime | NO | | NULL | | +| last_used | Datetime the password was last used | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------------- | --------------------- | +| PRIMARY | id | +| uid_description | uid, description(190) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_2fa_recovery_codes.md b/doc/database/db_2fa_recovery_codes.md new file mode 100644 index 000000000..69c34e654 --- /dev/null +++ b/doc/database/db_2fa_recovery_codes.md @@ -0,0 +1,30 @@ +Table 2fa_recovery_codes +=========== + +Two-factor authentication recovery codes + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| uid | User ID | mediumint unsigned | NO | PRI | NULL | | +| code | Recovery code string | varchar(50) | NO | PRI | NULL | | +| generated | Datetime the code was generated | datetime | NO | | NULL | | +| used | Datetime the code was used | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------- | +| PRIMARY | uid, code | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_2fa_trusted_browser.md b/doc/database/db_2fa_trusted_browser.md new file mode 100644 index 000000000..d12d9e1fc --- /dev/null +++ b/doc/database/db_2fa_trusted_browser.md @@ -0,0 +1,32 @@ +Table 2fa_trusted_browser +=========== + +Two-factor authentication trusted browsers + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------- | ------------------------------------------ | ------------------ | ---- | --- | ------- | ----- | +| cookie_hash | Trusted cookie hash | varchar(80) | NO | PRI | NULL | | +| uid | User ID | mediumint unsigned | NO | | NULL | | +| user_agent | User agent string | text | YES | | NULL | | +| created | Datetime the trusted browser was recorded | datetime | NO | | NULL | | +| last_used | Datetime the trusted browser was last used | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ----------- | +| PRIMARY | cookie_hash | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_addon.md b/doc/database/db_addon.md index cd8a3d44a..7233b8009 100644 --- a/doc/database/db_addon.md +++ b/doc/database/db_addon.md @@ -1,17 +1,29 @@ Table addon =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------------- | --------------------------------------------- | ---------- | ---- | --- | ------- | --------------- | -| id | | int(11) | NO | PRI | NULL | auto_increment | -| name | addon base (file)name | char(255) | NO | | | | -| version | currently unused | char(255) | NO | | | | -| installed | currently always 1 | tinyint(1) | NO | | 0 | | -| hidden | currently unused | tinyint(1) | NO | | 0 | | -| timestamp | file timestamp to check for reloads | bigint(20) | NO | | 0 | | -| plugin_admin | 1 = has admin config, 0 = has no admin config | tinyint(1) | NO | | 0 | | +registered addons + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | --------------------------------------------- | ------------ | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| name | addon base (file)name | varchar(50) | NO | | | | +| version | currently unused | varchar(50) | NO | | | | +| installed | currently always 1 | boolean | NO | | 0 | | +| hidden | currently unused | boolean | NO | | 0 | | +| timestamp | file timestamp to check for reloads | int unsigned | NO | | 0 | | +| plugin_admin | 1 = has admin config, 0 = has no admin config | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| -------------- | --------------- | +| PRIMARY | id | +| installed_name | installed, name | +| name | UNIQUE, name | -Notes: -These are addons which have been enabled by the site administrator on the addon page Return to [database documentation](help/database) diff --git a/doc/database/db_apcontact.md b/doc/database/db_apcontact.md new file mode 100644 index 000000000..539be251a --- /dev/null +++ b/doc/database/db_apcontact.md @@ -0,0 +1,56 @@ +Table apcontact +=========== + +ActivityPub compatible contacts - used in the ActivityPub implementation + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------------- | ---------------------------- | -------------- | ---- | --- | ------------------- | ----- | +| url | URL of the contact | varbinary(255) | NO | PRI | NULL | | +| uuid | | varchar(255) | YES | | NULL | | +| type | | varchar(20) | NO | | NULL | | +| following | | varchar(255) | YES | | NULL | | +| followers | | varchar(255) | YES | | NULL | | +| inbox | | varchar(255) | NO | | NULL | | +| outbox | | varchar(255) | YES | | NULL | | +| sharedinbox | | varchar(255) | YES | | NULL | | +| manually-approve | | boolean | YES | | NULL | | +| nick | | varchar(255) | NO | | | | +| name | | varchar(255) | YES | | NULL | | +| about | | text | YES | | NULL | | +| photo | | varchar(255) | YES | | NULL | | +| addr | | varchar(255) | YES | | NULL | | +| alias | | varchar(255) | YES | | NULL | | +| pubkey | | text | YES | | NULL | | +| subscribe | | varchar(255) | YES | | NULL | | +| baseurl | baseurl of the ap contact | varchar(255) | YES | | NULL | | +| gsid | Global Server ID | int unsigned | YES | | NULL | | +| generator | Name of the contact's system | varchar(255) | YES | | NULL | | +| following_count | Number of following contacts | int unsigned | YES | | 0 | | +| followers_count | Number of followers | int unsigned | YES | | 0 | | +| statuses_count | Number of posts | int unsigned | YES | | 0 | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ----------- | ---------------- | +| PRIMARY | url | +| addr | addr(32) | +| alias | alias(190) | +| followers | followers(190) | +| baseurl | baseurl(190) | +| sharedinbox | sharedinbox(190) | +| gsid | gsid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| gsid | [gserver](help/database/db_gserver) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_application-token.md b/doc/database/db_application-token.md new file mode 100644 index 000000000..9899a5e8b --- /dev/null +++ b/doc/database/db_application-token.md @@ -0,0 +1,38 @@ +Table application-token +=========== + +OAuth user token + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------------- | ------------- | ------------------ | ---- | --- | ------- | ----- | +| application-id | | int unsigned | NO | PRI | NULL | | +| uid | Owner User id | mediumint unsigned | NO | PRI | NULL | | +| code | | varchar(64) | NO | | NULL | | +| access_token | | varchar(64) | NO | | NULL | | +| created_at | creation time | datetime | NO | | NULL | | +| scopes | | varchar(255) | YES | | NULL | | +| read | Read scope | boolean | YES | | NULL | | +| write | Write scope | boolean | YES | | NULL | | +| follow | Follow scope | boolean | YES | | NULL | | +| push | Push scope | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------------------- | +| PRIMARY | application-id, uid | +| uid_id | uid, application-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| application-id | [application](help/database/db_application) | id | +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_application.md b/doc/database/db_application.md new file mode 100644 index 000000000..0a91e703a --- /dev/null +++ b/doc/database/db_application.md @@ -0,0 +1,32 @@ +Table application +=========== + +OAuth application + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | --------------- | ------------ | ---- | --- | ------- | -------------- | +| id | generated index | int unsigned | NO | PRI | NULL | auto_increment | +| client_id | | varchar(64) | NO | | NULL | | +| client_secret | | varchar(64) | NO | | NULL | | +| name | | varchar(255) | NO | | NULL | | +| redirect_uri | | varchar(255) | NO | | NULL | | +| website | | varchar(255) | YES | | NULL | | +| scopes | | varchar(255) | YES | | NULL | | +| read | Read scope | boolean | YES | | NULL | | +| write | Write scope | boolean | YES | | NULL | | +| follow | Follow scope | boolean | YES | | NULL | | +| push | Push scope | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------- | ----------------- | +| PRIMARY | id | +| client_id | UNIQUE, client_id | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_attach.md b/doc/database/db_attach.md index 7dde8f860..76d8e01f2 100644 --- a/doc/database/db_attach.md +++ b/doc/database/db_attach.md @@ -1,22 +1,42 @@ Table attach -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ------------------------------------------------------| ------------ | ---- | --- | ------------------- | --------------- | -| id | generated index | int(11) | NO | PRI | NULL | auto_increment | -| uid | user_id of owner | int(11) | NO | | 0 | | -| hash | hash | varchar(64) | NO | | | | -| filename | filename of original | varchar(255) | NO | | | | -| filetype | mimetype | varchar(64) | NO | | | | -| filesize | size in bytes | int(11) | NO | | 0 | | -| data | file data | longblob | NO | | NULL | | -| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | -| allow_cid | Access Control - list of allowed contact.id '<19><78> | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | +file attachments -Notes: Permissions are surrounded by angle chars. e.g. <4> +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | ----------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | generated index | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| hash | hash | varchar(64) | NO | | | | +| filename | filename of original | varchar(255) | NO | | | | +| filetype | mimetype | varchar(64) | NO | | | | +| filesize | size in bytes | int unsigned | NO | | 0 | | +| data | file data | longblob | NO | | NULL | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78> | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | +| backend-class | Storage backend class | tinytext | YES | | NULL | | +| backend-ref | Storage backend data reference | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_auth_codes.md b/doc/database/db_auth_codes.md index 1fec38500..a1d28e096 100644 --- a/doc/database/db_auth_codes.md +++ b/doc/database/db_auth_codes.md @@ -1,14 +1,32 @@ Table auth_codes -================ +=========== -OAuth2 authorisation register - currently implemented but unused +OAuth usage -| Field | Description | Type | Null | Key | Default | Extra | -| ------------- | ----------- | ------------ | ---- | --- | ------- | ----- | -| id | | varchar(40) | NO | PRI | NULL | | -| client_id | | varchar(20) | NO | | | | -| redirect_uri | | varchar(200) | NO | | | | -| expires | | int(11) | NO | | 0 | | -| scope | | varchar(250) | NO | | | | +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ----------- | ------------ | ---- | --- | ------- | ----- | +| id | | varchar(40) | NO | PRI | NULL | | +| client_id | | varchar(20) | NO | | | | +| redirect_uri | | varchar(200) | NO | | | | +| expires | | int | NO | | 0 | | +| scope | | varchar(250) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| --------- | --------- | +| PRIMARY | id | +| client_id | client_id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| client_id | [clients](help/database/db_clients) | client_id | Return to [database documentation](help/database) diff --git a/doc/database/db_cache.md b/doc/database/db_cache.md index f5691d08a..27a11daa6 100644 --- a/doc/database/db_cache.md +++ b/doc/database/db_cache.md @@ -3,11 +3,23 @@ Table cache Stores temporary data -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | -| k | cache key | varchar(255) | NO | PRI | NULL | | -| v | cached serialized value | text | NO | | NULL | | -| expires | datetime of cache expiration | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| updated | datetime of cache insertion | datetime | NO | MUL | 0001-01-01 00:00:00 | | +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ---------------------------- | -------------- | ---- | --- | ------------------- | ----- | +| k | cache key | varbinary(255) | NO | PRI | NULL | | +| v | cached serialized value | mediumtext | YES | | NULL | | +| expires | datetime of cache expiration | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | datetime of cache insertion | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| --------- | ---------- | +| PRIMARY | k | +| k_expires | k, expires | + Return to [database documentation](help/database) diff --git a/doc/database/db_challenge.md b/doc/database/db_challenge.md index aa7b263fd..161838909 100644 --- a/doc/database/db_challenge.md +++ b/doc/database/db_challenge.md @@ -1,13 +1,27 @@ Table challenge -=============== +=========== + + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------- | ------------- | ------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| challenge | | varchar(255) | NO | | | | +| dfrn-id | | varchar(255) | NO | | | | +| expire | | int unsigned | NO | | 0 | | +| type | | varchar(255) | NO | | | | +| last_update | | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| expire | expire | -| Field | Description | Type | Null | Key | Default | Extra | -|-------------|------------------|------------------|------|-----|---------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| challenge | | varchar(255) | NO | | | | -| dfrn-id | | varchar(255) | NO | | | | -| expire | | int(11) | NO | | 0 | | -| type | | varchar(255) | NO | | | | -| last_update | | varchar(255) | NO | | | | Return to [database documentation](help/database) diff --git a/doc/database/db_clients.md b/doc/database/db_clients.md index 228b45cc2..a97e796ed 100644 --- a/doc/database/db_clients.md +++ b/doc/database/db_clients.md @@ -1,13 +1,33 @@ Table clients -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------------- | ----------- | ------------ | ---- | --- | ------- | ----- | -| client_id | | varchar(20) | NO | PRI | NULL | | -| pw | | varchar(20) | NO | | | | -| redirect_uri | | varchar(200) | NO | | | | -| name | | text | YES | | NULL | | -| icon | | text | YES | | NULL | | -| uid | | int(11) | NO | | 0 | | +OAuth usage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ----------- | ------------------ | ---- | --- | ------- | ----- | +| client_id | | varchar(20) | NO | PRI | NULL | | +| pw | | varchar(20) | NO | | | | +| redirect_uri | | varchar(200) | NO | | | | +| name | | text | YES | | NULL | | +| icon | | text | YES | | NULL | | +| uid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------- | +| PRIMARY | client_id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_config.md b/doc/database/db_config.md index 6bcb4bcf8..7d7618794 100644 --- a/doc/database/db_config.md +++ b/doc/database/db_config.md @@ -1,11 +1,25 @@ Table config -============ +=========== + +main configuration storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | ------------- | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| cat | | varbinary(50) | NO | | | | +| k | | varbinary(50) | NO | | | | +| v | | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | -------------- | +| PRIMARY | id | +| cat_k | UNIQUE, cat, k | -| Field | Description | Type | Null | Key | Default | Extra | -| ----- | ----------- | ---------------- | ---- | --- | ------- | --------------- | -| id | | int(10) unsigned | NO | PRI | NULL | auto_increment | -| cat | | char(255) | NO | MUL | | | -| k | | char(255) | NO | | | | -| v | | text | NO | | NULL | | Return to [database documentation](help/database) diff --git a/doc/database/db_contact-relation.md b/doc/database/db_contact-relation.md new file mode 100644 index 000000000..8628b1ef6 --- /dev/null +++ b/doc/database/db_contact-relation.md @@ -0,0 +1,33 @@ +Table contact-relation +=========== + +Contact relations + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------------- | --------------------------------------------------- | ------------ | ---- | --- | ------------------- | ----- | +| cid | contact the related contact had interacted with | int unsigned | NO | PRI | 0 | | +| relation-cid | related contact who had interacted with the contact | int unsigned | NO | PRI | 0 | | +| last-interaction | Date of the last interaction | datetime | NO | | 0001-01-01 00:00:00 | | +| follow-updated | Date of the last update of the contact relationship | datetime | NO | | 0001-01-01 00:00:00 | | +| follows | | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------ | ----------------- | +| PRIMARY | cid, relation-cid | +| relation-cid | relation-cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| cid | [contact](help/database/db_contact) | id | +| relation-cid | [contact](help/database/db_contact) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_contact.md b/doc/database/db_contact.md index 2963a1a2a..0e04c1ece 100644 --- a/doc/database/db_contact.md +++ b/doc/database/db_contact.md @@ -1,72 +1,129 @@ Table contact -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|---------------------------|-----------------------------------------------------------|--------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| self | 1 if the contact is the user him/her self | tinyint(1) | NO | | 0 | | -| remote_self | | tinyint(1) | NO | | 0 | | -| rel | The kind of the relation between the user and the contact | tinyint(1) | NO | | 0 | | -| duplex | | tinyint(1) | NO | | 0 | | -| network | Network protocol of the contact | varchar(255) | NO | | | | -| name | Name that this contact is known by | varchar(255) | NO | | | | -| nick | Nick- and user name of the contact | varchar(255) | NO | | | | -| location | | varchar(255) | NO | | | | -| about | | text | NO | | NULL | | -| keywords | public keywords (interests) of the contact | text | NO | | NULL | | -| gender | | varchar(32) | NO | | | | -| attag | | varchar(255) | NO | | | | -| photo | Link to the profile photo of the contact | text | NO | | NULL | | -| thumb | Link to the profile photo (thumb size) | text | NO | | NULL | | -| micro | Link to the profile photo (micro size) | text | NO | | NULL | | -| site-pubkey | | text | NO | | NULL | | -| issued-id | | varchar(255) | NO | | | | -| dfrn-id | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| nurl | | varchar(255) | NO | | | | -| addr | | varchar(255) | NO | | | | -| alias | | varchar(255) | NO | | | | -| pubkey | RSA public key 4096 bit | text | NO | | NULL | | -| prvkey | RSA private key 4096 bit | text | NO | | NULL | | -| batch | | varchar(255) | NO | | | | -| request | | text | NO | | NULL | | -| notify | | text | NO | | NULL | | -| poll | | text | NO | | NULL | | -| confirm | | text | NO | | NULL | | -| poco | | text | NO | | NULL | | -| aes_allow | | tinyint(1) | NO | | 0 | | -| ret-aes | | tinyint(1) | NO | | 0 | | -| usehub | | tinyint(1) | NO | | 0 | | -| subhub | | tinyint(1) | NO | | 0 | | -| hub-verify | | varchar(255) | NO | | | | -| last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | | -| success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | | -| failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | | -| name-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| uri-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| term-date | | datetime | NO | | 0001-01-01 00:00:00 | | -| last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | | -| priority | | tinyint(3) | NO | | 0 | | -| blocked | | tinyint(1) | NO | | 1 | | -| readonly | posts of the contact are readonly | tinyint(1) | NO | | 0 | | -| writable | | tinyint(1) | NO | | 0 | | -| forum | contact is a forum | tinyint(1) | NO | | 0 | | -| prv | contact is a private group | tinyint(1) | NO | | 0 | | -| hidden | | tinyint(1) | NO | | 0 | | -| archive | | tinyint(1) | NO | | 0 | | -| pending | | tinyint(1) | NO | | 1 | | -| rating | | tinyint(1) | NO | | 0 | | -| reason | | text | NO | | NULL | | -| closeness | | tinyint(2) | NO | | 99 | | -| info | | mediumtext | NO | | NULL | | -| profile-id | | int(11) | NO | | 0 | | -| bdyear | | varchar(4) | NO | | | | -| bd | | date | NO | | 0001-01-01 | | -| notify_new_posts | | tinyint(1) | NO | | 0 | | -| fetch_further_information | | tinyint(1) | NO | | 0 | | -| ffi_keyword_denylist | | mediumtext | NO | | NULL | | +contact table + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------------------- | --------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | Date of last contact update | datetime | YES | | 0001-01-01 00:00:00 | | +| self | 1 if the contact is the user him/her self | boolean | NO | | 0 | | +| remote_self | | boolean | NO | | 0 | | +| rel | The kind of the relation between the user and the contact | tinyint unsigned | NO | | 0 | | +| duplex | | boolean | NO | | 0 | | +| network | Network of the contact | char(4) | NO | | | | +| protocol | Protocol of the contact | char(4) | NO | | | | +| name | Name that this contact is known by | varchar(255) | NO | | | | +| nick | Nick- and user name of the contact | varchar(255) | NO | | | | +| location | | varchar(255) | YES | | | | +| about | | text | YES | | NULL | | +| keywords | public keywords (interests) of the contact | text | YES | | NULL | | +| gender | Deprecated | varchar(32) | NO | | | | +| xmpp | | varchar(255) | NO | | | | +| attag | | varchar(255) | NO | | | | +| avatar | | varchar(255) | NO | | | | +| photo | Link to the profile photo of the contact | varchar(255) | YES | | | | +| thumb | Link to the profile photo (thumb size) | varchar(255) | YES | | | | +| micro | Link to the profile photo (micro size) | varchar(255) | YES | | | | +| site-pubkey | | text | YES | | NULL | | +| issued-id | | varchar(255) | NO | | | | +| dfrn-id | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| nurl | | varchar(255) | NO | | | | +| addr | | varchar(255) | NO | | | | +| alias | | varchar(255) | NO | | | | +| pubkey | RSA public key 4096 bit | text | YES | | NULL | | +| prvkey | RSA private key 4096 bit | text | YES | | NULL | | +| batch | | varchar(255) | NO | | | | +| request | | varchar(255) | YES | | NULL | | +| notify | | varchar(255) | YES | | NULL | | +| poll | | varchar(255) | YES | | NULL | | +| confirm | | varchar(255) | YES | | NULL | | +| subscribe | | varchar(255) | YES | | NULL | | +| poco | | varchar(255) | YES | | NULL | | +| aes_allow | | boolean | NO | | 0 | | +| ret-aes | | boolean | NO | | 0 | | +| usehub | | boolean | NO | | 0 | | +| subhub | | boolean | NO | | 0 | | +| hub-verify | | varchar(255) | NO | | | | +| last-update | Date of the last try to update the contact info | datetime | NO | | 0001-01-01 00:00:00 | | +| success_update | Date of the last successful contact update | datetime | NO | | 0001-01-01 00:00:00 | | +| failure_update | Date of the last failed update | datetime | NO | | 0001-01-01 00:00:00 | | +| failed | Connection failed | boolean | YES | | NULL | | +| name-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| uri-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| avatar-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| term-date | | datetime | NO | | 0001-01-01 00:00:00 | | +| last-item | date of the last post | datetime | NO | | 0001-01-01 00:00:00 | | +| last-discovery | date of the last follower discovery | datetime | NO | | 0001-01-01 00:00:00 | | +| priority | | tinyint unsigned | NO | | 0 | | +| blocked | Node-wide block status | boolean | NO | | 1 | | +| block_reason | Node-wide block reason | text | YES | | NULL | | +| readonly | posts of the contact are readonly | boolean | NO | | 0 | | +| writable | | boolean | NO | | 0 | | +| forum | contact is a forum | boolean | NO | | 0 | | +| prv | contact is a private group | boolean | NO | | 0 | | +| contact-type | | tinyint | NO | | 0 | | +| manually-approve | | boolean | YES | | NULL | | +| hidden | | boolean | NO | | 0 | | +| archive | | boolean | NO | | 0 | | +| pending | | boolean | NO | | 1 | | +| deleted | Contact has been deleted | boolean | NO | | 0 | | +| rating | | tinyint | NO | | 0 | | +| unsearchable | Contact prefers to not be searchable | boolean | NO | | 0 | | +| sensitive | Contact posts sensitive content | boolean | NO | | 0 | | +| baseurl | baseurl of the contact | varchar(255) | YES | | | | +| gsid | Global Server ID | int unsigned | YES | | NULL | | +| reason | | text | YES | | NULL | | +| closeness | | tinyint unsigned | NO | | 99 | | +| info | | mediumtext | YES | | NULL | | +| profile-id | Deprecated | int unsigned | YES | | NULL | | +| bdyear | | varchar(4) | NO | | | | +| bd | | date | NO | | 0001-01-01 | | +| notify_new_posts | | boolean | NO | | 0 | | +| fetch_further_information | | tinyint unsigned | NO | | 0 | | +| ffi_keyword_denylist | | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------------------------- | ------------------------------------ | +| PRIMARY | id | +| uid_name | uid, name(190) | +| self_uid | self, uid | +| alias_uid | alias(128), uid | +| pending_uid | pending, uid | +| blocked_uid | blocked, uid | +| uid_rel_network_poll | uid, rel, network, poll(64), archive | +| uid_network_batch | uid, network, batch(64) | +| batch_contact-type | batch(64), contact-type | +| addr_uid | addr(128), uid | +| nurl_uid | nurl(128), uid | +| nick_uid | nick(128), uid | +| attag_uid | attag(96), uid | +| dfrn-id | dfrn-id(64) | +| issued-id | issued-id(64) | +| network_uid_lastupdate | network, uid, last-update | +| uid_network_self_lastupdate | uid, network, self, last-update | +| uid_lastitem | uid, last-item | +| baseurl | baseurl(64) | +| uid_contact-type | uid, contact-type | +| uid_self_contact-type | uid, self, contact-type | +| self_network_uid | self, network, uid | +| gsid | gsid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| gsid | [gserver](help/database/db_gserver) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_conv.md b/doc/database/db_conv.md index f70191b88..c1d50b5de 100644 --- a/doc/database/db_conv.md +++ b/doc/database/db_conv.md @@ -1,15 +1,35 @@ Table conv -========== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------- | ----------------------------------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| guid | A unique identifier for this conversation | varchar(64) | NO | | | | -| recips | sender_handle;recipient_handle | mediumtext | NO | | NULL | | -| uid | user_id of the owner of this data | int(11) | NO | MUL | 0 | | -| creator | handle of creator | varchar(255) | NO | | | | -| created | creation timestamp | datetime | NO | | 0001-01-01 00:00:00 | | -| updated | edited timestamp | datetime | NO | | 0001-01-01 00:00:00 | | -| subject | subject of initial message | mediumtext | NO | | NULL | | +private messages + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| guid | A unique identifier for this conversation | varchar(255) | NO | | | | +| recips | sender_handle;recipient_handle | text | YES | | NULL | | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| creator | handle of creator | varchar(255) | NO | | | | +| created | creation timestamp | datetime | NO | | 0001-01-01 00:00:00 | | +| updated | edited timestamp | datetime | NO | | 0001-01-01 00:00:00 | | +| subject | subject of initial message | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_conversation.md b/doc/database/db_conversation.md index 32d030cb1..504b0dd4a 100644 --- a/doc/database/db_conversation.md +++ b/doc/database/db_conversation.md @@ -1,14 +1,30 @@ Table conversation -================== +=========== + +Raw data and structure information for messages + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------------- | -------------------------------------------------------------------- | ---------------- | ---- | --- | ------------------- | ----- | +| item-uri | Original URI of the item - unrelated to the table with the same name | varbinary(255) | NO | PRI | NULL | | +| reply-to-uri | URI to which this item is a reply | varbinary(255) | NO | | | | +| conversation-uri | GNU Social conversation URI | varbinary(255) | NO | | | | +| conversation-href | GNU Social conversation link | varbinary(255) | NO | | | | +| protocol | The protocol of the item | tinyint unsigned | NO | | 255 | | +| direction | How the message arrived here: 1=push, 2=pull | tinyint unsigned | NO | | 0 | | +| source | Original source | mediumtext | YES | | NULL | | +| received | Receiving date | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ---------------- | ---------------- | +| PRIMARY | item-uri | +| conversation-uri | conversation-uri | +| received | received | -| Field | Description | Type | Null | Key | Default | Extra | -|-------------------| ---------------------------------- |---------------------|------|-----|---------------------|----------------| -| item-uri | URI of the item | varbinary(255) | NO | PRI | NULL | | -| reply-to-uri | URI to which this item is a reply | varbinary(255) | NO | | | | -| conversation-uri | GNU Social conversation URI | varbinary(255) | NO | | | | -| conversation-href | GNU Social conversation link | varbinary(255) | NO | | | | -| protocol | The protocol of the item | tinyint(1) unsigned | NO | | 0 | | -| source | Original source | mediumtext | NO | | | | -| received | Receiving date | datetime | NO | | 0001-01-01 | | Return to [database documentation](help/database) diff --git a/doc/database/db_delayed-post.md b/doc/database/db_delayed-post.md new file mode 100644 index 000000000..fe3251f70 --- /dev/null +++ b/doc/database/db_delayed-post.md @@ -0,0 +1,31 @@ +Table delayed-post +=========== + +Posts that are about to be distributed at a later time + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ---------------------------------------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uri | URI of the post that will be distributed later | varchar(255) | YES | | NULL | | +| uid | Owner User id | mediumint unsigned | YES | | NULL | | +| delayed | delay time | datetime | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------------------- | +| PRIMARY | id | +| uid_uri | UNIQUE, uid, uri(190) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_diaspora-interaction.md b/doc/database/db_diaspora-interaction.md new file mode 100644 index 000000000..4ac432590 --- /dev/null +++ b/doc/database/db_diaspora-interaction.md @@ -0,0 +1,28 @@ +Table diaspora-interaction +=========== + +Signed Diaspora Interaction + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------- | --------------------------------------------------------- | ------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| interaction | The Diaspora interaction | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_event.md b/doc/database/db_event.md index 2c0650a8d..37048599b 100644 --- a/doc/database/db_event.md +++ b/doc/database/db_event.md @@ -1,26 +1,49 @@ Table event =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ----------------------------------------------- -------| ------------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user_id of the owner of this data | int(11) | NO | MUL | 0 | | -| cid | contact_id (ID of the contact in contact table) | int(11) | NO | | 0 | | -| uri | | varchar(255) | NO | | | | -| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | -| start | event start time | datetime | NO | | 0001-01-01 00:00:00 | | -| finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | | -| summary | short description or title of the event | text | NO | | NULL | | -| desc | event description | text | NO | | NULL | | -| location | event location | text | NO | | NULL | | -| type | event or birthday | varchar(255) | NO | | | | -| nofinish | if event does have no end this is 1 | tinyint(1) | NO | | 0 | | -| adjust | adjust to timezone of the recipient (0 or 1) | tinyint(1) | NO | | 1 | | -| ignore | 0 or 1 | tinyint(1) unsigned | NO | | 0 | | -| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | +Events + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| guid | | varchar(255) | NO | | | | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| cid | contact_id (ID of the contact in contact table) | int unsigned | NO | | 0 | | +| uri | | varchar(255) | NO | | | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | +| start | event start time | datetime | NO | | 0001-01-01 00:00:00 | | +| finish | event end time | datetime | NO | | 0001-01-01 00:00:00 | | +| summary | short description or title of the event | text | YES | | NULL | | +| desc | event description | text | YES | | NULL | | +| location | event location | text | YES | | NULL | | +| type | event or birthday | varchar(20) | NO | | | | +| nofinish | if event does have no end this is 1 | boolean | NO | | 0 | | +| adjust | adjust to timezone of the recipient (0 or 1) | boolean | NO | | 1 | | +| ignore | 0 or 1 | boolean | NO | | 0 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------- | ---------- | +| PRIMARY | id | +| uid_start | uid, start | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| cid | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_fcontact.md b/doc/database/db_fcontact.md index d9a786acc..43a073f61 100644 --- a/doc/database/db_fcontact.md +++ b/doc/database/db_fcontact.md @@ -1,24 +1,39 @@ Table fcontact -============== +=========== + +Diaspora compatible contacts - used in the Diaspora implementation + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------- | ---------------- | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| guid | unique id | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| name | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| request | | varchar(255) | NO | | | | +| nick | | varchar(255) | NO | | | | +| addr | | varchar(255) | NO | | | | +| batch | | varchar(255) | NO | | | | +| notify | | varchar(255) | NO | | | | +| poll | | varchar(255) | NO | | | | +| confirm | | varchar(255) | NO | | | | +| priority | | tinyint unsigned | NO | | 0 | | +| network | | char(4) | NO | | | | +| alias | | varchar(255) | NO | | | | +| pubkey | | text | YES | | NULL | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------- | +| PRIMARY | id | +| addr | addr(32) | +| url | UNIQUE, url(190) | -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| guid | unique id | varchar(64) | NO | | | | -| url | | varchar(255) | NO | | | | -| name | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| request | | varchar(255) | NO | | | | -| nick | | varchar(255) | NO | | | | -| addr | | varchar(255) | NO | MUL | | | -| batch | | varchar(255) | NO | | | | -| notify | | varchar(255) | NO | | | | -| poll | | varchar(255) | NO | | | | -| confirm | | varchar(255) | NO | | | | -| priority | | tinyint(1) | NO | | 0 | | -| network | | varchar(32) | NO | | | | -| alias | | varchar(255) | NO | | | | -| pubkey | | text | NO | | NULL | | -| updated | | datetime | NO | | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_fsuggest.md b/doc/database/db_fsuggest.md index e461895c8..6ccf73297 100644 --- a/doc/database/db_fsuggest.md +++ b/doc/database/db_fsuggest.md @@ -1,16 +1,38 @@ Table fsuggest -============== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------- | ----------- | ------------ | ---- | --- | ------------------- | --------------- | -| id | | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | | 0 | | -| cid | | int(11) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| request | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| note | | text | NO | | NULL | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | +friend suggestion stuff + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| cid | | int unsigned | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| request | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| note | | text | YES | | NULL | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| cid | cid | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| cid | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_group.md b/doc/database/db_group.md index f27b9a75f..1892de3e4 100644 --- a/doc/database/db_group.md +++ b/doc/database/db_group.md @@ -1,12 +1,32 @@ Table group =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ------- | ------------------------------------------ | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id owning this data | int(10) unsigned | NO | MUL | 0 | | -| visible | 1 indicates the member list is not private | tinyint(1) | NO | | 0 | | -| deleted | 1 indicates the group has been deleted | tinyint(1) | NO | | 0 | | -| name | human readable name of group | varchar(255) | NO | | | | +privacy groups, group info + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| visible | 1 indicates the member list is not private | boolean | NO | | 0 | | +| deleted | 1 indicates the group has been deleted | boolean | NO | | 0 | | +| name | human readable name of group | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_group_member.md b/doc/database/db_group_member.md index f8a402ef6..a544f3b0e 100644 --- a/doc/database/db_group_member.md +++ b/doc/database/db_group_member.md @@ -1,11 +1,32 @@ Table group_member -================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ----------------------------------------------------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(10) unsigned | NO | MUL | 0 | | -| gid | groups.id of the associated group | int(10) unsigned | NO | | 0 | | -| contact-id | contact.id of the member assigned to the associated group | int(10) unsigned | NO | | 0 | | +privacy groups, member info + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | --------------------------------------------------------- | ------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| gid | groups.id of the associated group | int unsigned | NO | | 0 | | +| contact-id | contact.id of the member assigned to the associated group | int unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------- | ----------------------- | +| PRIMARY | id | +| contactid | contact-id | +| gid_contactid | UNIQUE, gid, contact-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| gid | [group](help/database/db_group) | id | +| contact-id | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_gserver-tag.md b/doc/database/db_gserver-tag.md new file mode 100644 index 000000000..82b0ccc88 --- /dev/null +++ b/doc/database/db_gserver-tag.md @@ -0,0 +1,29 @@ +Table gserver-tag +=========== + +Tags that the server has subscribed + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | ---------------------------------- | ------------ | ---- | --- | ------- | ----- | +| gserver-id | The id of the gserver | int unsigned | NO | PRI | 0 | | +| tag | Tag that the server has subscribed | varchar(100) | NO | PRI | | | + +Indexes +------------ + +| Name | Fields | +| ------- | --------------- | +| PRIMARY | gserver-id, tag | +| tag | tag | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| gserver-id | [gserver](help/database/db_gserver) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_gserver.md b/doc/database/db_gserver.md index d9ec69a53..905602b3b 100644 --- a/doc/database/db_gserver.md +++ b/doc/database/db_gserver.md @@ -1,24 +1,46 @@ Table gserver -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|------------------|---------------------------|------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| url | | varchar(255) | NO | | | | -| nurl | | varchar(255) | NO | MUL | | | -| version | | varchar(255) | NO | | | | -| site_name | | varchar(255) | NO | | | | -| info | | text | NO | | NULL | | -| register_policy | | tinyint(1) | NO | | 0 | | -| registered-users |Number of registered users | int(10) | NO | | 0 | | -| poco | | varchar(255) | NO | | | | -| noscrape | | varchar(255) | NO | | | | -| network | | varchar(32) | NO | | | | -| platform | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| last_poco_query | | datetime | YES | | 0001-01-01 00:00:00 | | -| last_contact | | datetime | YES | | 0001-01-01 00:00:00 | | -| last_failure | | datetime | YES | | 0001-01-01 00:00:00 | | +Global servers + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------------- | -------------------------------------------------- | ---------------- | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| url | | varchar(255) | NO | | | | +| nurl | | varchar(255) | NO | | | | +| version | | varchar(255) | NO | | | | +| site_name | | varchar(255) | NO | | | | +| info | | text | YES | | NULL | | +| register_policy | | tinyint | NO | | 0 | | +| registered-users | Number of registered users | int unsigned | NO | | 0 | | +| directory-type | Type of directory service (Poco, Mastodon) | tinyint | YES | | 0 | | +| poco | | varchar(255) | NO | | | | +| noscrape | | varchar(255) | NO | | | | +| network | | char(4) | NO | | | | +| protocol | The protocol of the server | tinyint unsigned | YES | | NULL | | +| platform | | varchar(255) | NO | | | | +| relay-subscribe | Has the server subscribed to the relay system | boolean | NO | | 0 | | +| relay-scope | The scope of messages that the server wants to get | varchar(10) | NO | | | | +| detection-method | Method that had been used to detect that server | tinyint unsigned | YES | | NULL | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| last_poco_query | | datetime | YES | | 0001-01-01 00:00:00 | | +| last_contact | Last successful connection request | datetime | YES | | 0001-01-01 00:00:00 | | +| last_failure | Last failed connection request | datetime | YES | | 0001-01-01 00:00:00 | | +| failed | Connection failed | boolean | YES | | NULL | | +| next_contact | Next connection request | datetime | YES | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------------ | ----------------- | +| PRIMARY | id | +| nurl | UNIQUE, nurl(190) | +| next_contact | next_contact | +| network | network | Return to [database documentation](help/database) diff --git a/doc/database/db_hook.md b/doc/database/db_hook.md index 06eb84a18..0ad0981f0 100644 --- a/doc/database/db_hook.md +++ b/doc/database/db_hook.md @@ -1,12 +1,27 @@ Table hook -========== +=========== + +addon hook registry + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ---------------------------------------------------------------------------------------------------------- | ----------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| hook | name of hook | varbinary(100) | NO | | | | +| file | relative filename of hook handler | varbinary(200) | NO | | | | +| function | function name of hook handler | varbinary(200) | NO | | | | +| priority | not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order | smallint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------------ | ---------------------------- | +| PRIMARY | id | +| priority | priority | +| hook_file_function | UNIQUE, hook, file, function | -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ---------------------------------------------------------------------------------------------------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| hook | name of hook | varchar(255) | NO | MUL | | | -| file | relative filename of hook handler | varchar(255) | NO | | | | -| function | function name of hook handler | varchar(255) | NO | | | | -| priority | not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order | int(11) unsigned | NO | | 0 | | Return to [database documentation](help/database) diff --git a/doc/database/db_host.md b/doc/database/db_host.md new file mode 100644 index 000000000..4b2d4d1e5 --- /dev/null +++ b/doc/database/db_host.md @@ -0,0 +1,23 @@ +Table host +=========== + +Hostname + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------- | ---------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | tinyint unsigned | NO | PRI | NULL | auto_increment | +| name | The hostname | varchar(128) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------------ | +| PRIMARY | id | +| name | UNIQUE, name | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_inbox-status.md b/doc/database/db_inbox-status.md new file mode 100644 index 000000000..3b82cf46a --- /dev/null +++ b/doc/database/db_inbox-status.md @@ -0,0 +1,27 @@ +Table inbox-status +=========== + +Status of ActivityPub inboxes + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------------------------------ | -------------- | ---- | --- | ------------------- | ----- | +| url | URL of the inbox | varbinary(255) | NO | PRI | NULL | | +| created | Creation date of this entry | datetime | NO | | 0001-01-01 00:00:00 | | +| success | Date of the last successful delivery | datetime | NO | | 0001-01-01 00:00:00 | | +| failure | Date of the last failed delivery | datetime | NO | | 0001-01-01 00:00:00 | | +| previous | Previous delivery date | datetime | NO | | 0001-01-01 00:00:00 | | +| archive | Is the inbox archived? | boolean | NO | | 0 | | +| shared | Is it a shared inbox? | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | url | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_intro.md b/doc/database/db_intro.md index a71154a4f..426d8579d 100644 --- a/doc/database/db_intro.md +++ b/doc/database/db_intro.md @@ -1,18 +1,40 @@ Table intro =========== -| Field | Description | Type | Null | Key | Default | Extra | -|------------|------------------|------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | | int(10) unsigned | NO | | 0 | | -| fid | | int(11) | NO | | 0 | | -| contact-id | | int(11) | NO | | 0 | | -| knowyou | | tinyint(1) | NO | | 0 | | -| duplex | | tinyint(1) | NO | | 0 | | -| note | | text | NO | | NULL | | -| hash | | varchar(255) | NO | | | | -| datetime | | datetime | NO | | 0001-01-01 00:00:00 | | -| blocked | | tinyint(1) | NO | | 1 | | -| ignore | | tinyint(1) | NO | | 0 | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ---------- | ------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| fid | | int unsigned | YES | | NULL | | +| contact-id | | int unsigned | NO | | 0 | | +| knowyou | | boolean | NO | | 0 | | +| duplex | | boolean | NO | | 0 | | +| note | | text | YES | | NULL | | +| hash | | varchar(255) | NO | | | | +| datetime | | datetime | NO | | 0001-01-01 00:00:00 | | +| blocked | | boolean | NO | | 1 | | +| ignore | | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ---------- | ---------- | +| PRIMARY | id | +| contact-id | contact-id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_item-uri.md b/doc/database/db_item-uri.md new file mode 100644 index 000000000..c6d1c4c37 --- /dev/null +++ b/doc/database/db_item-uri.md @@ -0,0 +1,25 @@ +Table item-uri +=========== + +URI and GUID for items + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------------------------- | -------------- | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uri | URI of an item | varbinary(255) | NO | | NULL | | +| guid | A unique identifier for an item | varbinary(255) | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ----------- | +| PRIMARY | id | +| uri | UNIQUE, uri | +| guid | guid | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_item.md b/doc/database/db_item.md deleted file mode 100644 index d24d92bad..000000000 --- a/doc/database/db_item.md +++ /dev/null @@ -1,72 +0,0 @@ -Table item -========== - -| Field | Description | Type | Null | Key | Default | Extra | -|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| guid | A unique identifier for this item | varchar(255) | NO | MUL | | | -| uri | | varchar(255) | NO | MUL | | | -| uid | user.id which owns this copy of the item | int(10) unsigned | NO | MUL | 0 | | -| contact-id | contact.id | int(11) | NO | MUL | 0 | | -| gcontact-id | ID of the global contact | int(11) | NO | MUL | 0 | | -| type | | varchar(255) | NO | | | | -| wall | This item was posted to the wall of uid | tinyint(1) | NO | MUL | 0 | | -| gravity | | tinyint(1) | NO | | 0 | | -| parent | item.id of the parent to this item if it is a reply of some form; otherwise this must be set to the id of this item | int(10) unsigned | NO | MUL | 0 | | -| parent-uri | uri of the parent to this item | varchar(255) | NO | MUL | | | -| extid | | varchar(255 | NO | MUL | | | -| thr-parent | If the parent of this item is not the top-level item in the conversation, the uri of the immediate parent; otherwise set to parent-uri | varchar(255) | NO | | | | -| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | -| commented | Date of last comment/reply to this item | datetime | NO | | 0001-01-01 00:00:00 | | -| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | -| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | -| owner-name | Name of the owner of this item | varchar(255) | NO | | | | -| owner-link | Link to the profile page of the owner of this item | varchar(255) | NO | | | | -| owner-avatar | Link to the avatar picture of the owner of this item | varchar(255) | NO | | | | -| owner-id | Link to the contact table with uid=0 of the owner of this item | int(11) | NO | MUL | 0 | | -| author-name | Name of the author of this item | varchar(255) | NO | | | | -| author-link | Link to the profile page of the author of this item | varchar(255) | NO | | | | -| author-avatar | Link to the avatar picture of the author of this item | varchar(255) | NO | | | | -| author-id | Link to the contact table with uid=0 of the author of this item | int(11) | NO | MUL | 0 | | -| title | item title | varchar(255) | NO | | | | -| body | item body content | mediumtext | NO | | NULL | | -| app | application which generated this item | varchar(255) | NO | | | | -| verb | ActivityStreams verb | varchar(255) | NO | | | | -| object-type | ActivityStreams object type | varchar(255) | NO | | | | -| object | JSON encoded object structure unless it is an implied object (normal post) | text | NO | | NULL | | -| target-type | ActivityStreams target type if applicable (URI) | varchar(255) | NO | | | | -| target | JSON encoded target structure if used | text | NO | | NULL | | -| postopts | External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery | text | NO | | NULL | | -| plink | permalink or URL toa displayable copy of the message at its source | varchar(255) | NO | | | | -| resource-id | Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type | varchar(255) | NO | MUL | | | -| event-id | Used to link to the event.id | int(11) | NO | | 0 | | -| tag | | mediumtext | NO | | NULL | | -| attach | JSON structure representing attachments to this item | mediumtext | NO | | NULL | | -| inform | | mediumtext | NO | | NULL | | -| file | | mediumtext | NO | | NULL | | -| location | text location where this item originated | varchar(255) | NO | | | | -| coord | longitude/latitude pair representing location where this item originated | varchar(255) | NO | | | | -| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | -| private | distribution is restricted | tinyint(1) | NO | | 0 | | -| pubmail | | tinyint(1) | NO | | 0 | | -| moderated | | tinyint(1) | NO | | 0 | | -| visible | | tinyint(1) | NO | | 0 | | -| spam | | tinyint(1) | NO | | 0 | | -| starred | item has been favourited | tinyint(1) | NO | | 0 | | -| bookmark | item has been bookmarked | tinyint(1) | NO | | 0 | | -| unseen | item has not been seen | tinyint(1) | NO | | 1 | | -| deleted | item has been deleted | tinyint(1) | NO | MUL | 0 | | -| origin | item originated at this site | tinyint(1) | NO | | 0 | | -| forum_mode | | tinyint(1) | NO | | 0 | | -| last-child | | tinyint(1) unsigned | NO | | 1 | | -| mention | The owner of this item was mentioned in it | tinyint(1) | NO | | 0 | | -| network | Network from where the item comes from | varchar(32) | NO | | | | -| rendered-hash | | varchar(32) | NO | | | | -| rendered-html | item.body converted to html | mediumtext | NO | | NULL | | -| global | | tinyint(1) | NO | | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_locks.md b/doc/database/db_locks.md index 4de6fbf96..dc5371184 100644 --- a/doc/database/db_locks.md +++ b/doc/database/db_locks.md @@ -1,11 +1,26 @@ Table locks =========== -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| name | | varchar(128) | NO | | | | -| locked | | tinyint(1) | NO | | 0 | | -| pid | Process ID | int(10) unsigned | NO | | 0 | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ---------------------------- | ------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| name | | varchar(128) | NO | | | | +| locked | | boolean | NO | | 0 | | +| pid | Process ID | int unsigned | NO | | 0 | | +| expires | datetime of cache expiration | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------------ | ------------- | +| PRIMARY | id | +| name_expires | name, expires | + Return to [database documentation](help/database) diff --git a/doc/database/db_mail.md b/doc/database/db_mail.md index 623b8c9c8..460c03bf6 100644 --- a/doc/database/db_mail.md +++ b/doc/database/db_mail.md @@ -1,24 +1,61 @@ Table mail -========== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | -------------------------------------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(10) unsigned | NO | MUL | 0 | | -| guid | A unique identifier for this private message | int(10) unsigned | NO | MUL | | | -| from-name | name of the sender | varchar(255) | NO | | | | -| from-photo | contact photo link of the sender | varchar(255) | NO | | | | -| from-url | profile linke of the sender | varchar(255) | NO | | | | -| contact-id | contact.id | varchar(255) | NO | | | | -| convid | conv.id | int(11) unsigned | NO | MUL | 0 | | -| title | | varchar(255) | NO | | | | -| body | | mediumtext | NO | | NULL | | -| seen | if message visited it is 1 | varchar(255) | NO | | 0 | | -| reply | | varchar(255) | NO | MUL | 0 | | -| replied | | varchar(255) | NO | | 0 | | -| unknown | if sender not in the contact table this is 1 | varchar(255) | NO | | 0 | | -| uri | | varchar(255) | NO | MUL | | | -| parent-uri | | varchar(255) | NO | MUL | | | -| created | creation time of the private message | datetime | NO | | 0001-01-01 00:00:00 | | +private messages + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | -------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| guid | A unique identifier for this private message | varchar(255) | NO | | | | +| from-name | name of the sender | varchar(255) | NO | | | | +| from-photo | contact photo link of the sender | varchar(255) | NO | | | | +| from-url | profile linke of the sender | varchar(255) | NO | | | | +| contact-id | contact.id | varchar(255) | YES | | NULL | | +| author-id | Link to the contact table with uid=0 of the author of the mail | int unsigned | YES | | NULL | | +| convid | conv.id | int unsigned | YES | | NULL | | +| title | | varchar(255) | NO | | | | +| body | | mediumtext | YES | | NULL | | +| seen | if message visited it is 1 | boolean | NO | | 0 | | +| reply | | boolean | NO | | 0 | | +| replied | | boolean | NO | | 0 | | +| unknown | if sender not in the contact table this is 1 | boolean | NO | | 0 | | +| uri | | varchar(255) | NO | | | | +| uri-id | Item-uri id of the related mail | int unsigned | YES | | NULL | | +| parent-uri | | varchar(255) | NO | | | | +| parent-uri-id | Item-uri id of the parent of the related mail | int unsigned | YES | | NULL | | +| thr-parent | | varchar(255) | YES | | NULL | | +| thr-parent-id | Id of the item-uri table that contains the thread parent uri | int unsigned | YES | | NULL | | +| created | creation time of the private message | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------------- | -------------- | +| PRIMARY | id | +| uid_seen | uid, seen | +| convid | convid | +| uri | uri(64) | +| parent-uri | parent-uri(64) | +| contactid | contact-id(32) | +| author-id | author-id | +| uri-id | uri-id | +| parent-uri-id | parent-uri-id | +| thr-parent-id | thr-parent-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| author-id | [contact](help/database/db_contact) | id | +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| thr-parent-id | [item-uri](help/database/db_item-uri) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_mailacct.md b/doc/database/db_mailacct.md index 9f6484f81..59f34250c 100644 --- a/doc/database/db_mailacct.md +++ b/doc/database/db_mailacct.md @@ -1,20 +1,40 @@ Table mailacct -============== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------|------------------|--------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | | 0 | | -| server | | varchar(255) | NO | | | | -| port | | int(11) | NO | | 0 | | -| ssltype | | varchar(16) | NO | | | | -| mailbox | | varchar(255) | NO | | | | -| user | | varchar(255) | NO | | | | -| pass | | text | NO | | NULL | | -| reply_to | | varchar(255) | NO | | | | -| action | | int(11) | NO | | 0 | | -| movetofolder | | varchar(255) | NO | | | | -| pubmail | | tinyint(1) | NO | | 0 | | -| last_check | | datetime | NO | | 0001-01-01 00:00:00 | | +Mail account data for fetching mails + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| server | | varchar(255) | NO | | | | +| port | | smallint unsigned | NO | | 0 | | +| ssltype | | varchar(16) | NO | | | | +| mailbox | | varchar(255) | NO | | | | +| user | | varchar(255) | NO | | | | +| pass | | text | YES | | NULL | | +| reply_to | | varchar(255) | NO | | | | +| action | | tinyint unsigned | NO | | 0 | | +| movetofolder | | varchar(255) | NO | | | | +| pubmail | | boolean | NO | | 0 | | +| last_check | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_manage.md b/doc/database/db_manage.md index 4cfc1d0a1..8a2228a5e 100644 --- a/doc/database/db_manage.md +++ b/doc/database/db_manage.md @@ -1,10 +1,32 @@ Table manage -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ----- | ------------- | ------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user.id | int(11) | NO | MUL | 0 | | -| mid | | int(11) | NO | | 0 | | +table of accounts that can manage each other + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| mid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------- | +| PRIMARY | id | +| uid_mid | UNIQUE, uid, mid | +| mid | mid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| mid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_notification.md b/doc/database/db_notification.md new file mode 100644 index 000000000..ff059c344 --- /dev/null +++ b/doc/database/db_notification.md @@ -0,0 +1,45 @@ +Table notification +=========== + +notifications + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | ------------------------------------------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | YES | | NULL | | +| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | YES | | NULL | | +| type | | tinyint unsigned | YES | | NULL | | +| actor-id | Link to the contact table with uid=0 of the actor that caused the notification | int unsigned | YES | | NULL | | +| target-uri-id | Item-uri id of the related post | int unsigned | YES | | NULL | | +| parent-uri-id | Item-uri id of the parent of the related post | int unsigned | YES | | NULL | | +| created | | datetime | YES | | NULL | | +| seen | | boolean | YES | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------------- | ----------------------------------------------- | +| PRIMARY | id | +| uid_vid_type_actor-id_target-uri-id | UNIQUE, uid, vid, type, actor-id, target-uri-id | +| vid | vid | +| actor-id | actor-id | +| target-uri-id | target-uri-id | +| parent-uri-id | parent-uri-id | +| seen_uid | seen, uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| vid | [verb](help/database/db_verb) | id | +| actor-id | [contact](help/database/db_contact) | id | +| target-uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_notify-threads.md b/doc/database/db_notify-threads.md index 5c196628d..82ed225f7 100644 --- a/doc/database/db_notify-threads.md +++ b/doc/database/db_notify-threads.md @@ -1,12 +1,37 @@ Table notify-threads -==================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------------|------------------|------------------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| notify-id | | int(11) | NO | | 0 | | -| master-parent-item | | int(10) unsigned | NO | MUL | 0 | | -| parent-item | | int(10) unsigned | NO | | 0 | | -| receiver-uid | | int(11) | NO | MUL | 0 | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------------------- | --------------------------------------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| notify-id | | int unsigned | NO | | 0 | | +| master-parent-item | Deprecated | int unsigned | YES | | NULL | | +| master-parent-uri-id | Item-uri id of the parent of the related post | int unsigned | YES | | NULL | | +| parent-item | | int unsigned | NO | | 0 | | +| receiver-uid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| -------------------- | -------------------- | +| PRIMARY | id | +| master-parent-uri-id | master-parent-uri-id | +| receiver-uid | receiver-uid | +| notify-id | notify-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| notify-id | [notify](help/database/db_notify) | id | +| master-parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| receiver-uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_notify.md b/doc/database/db_notify.md index fbf0db770..250734e56 100644 --- a/doc/database/db_notify.md +++ b/doc/database/db_notify.md @@ -1,24 +1,51 @@ Table notify -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | --------------------------------- | ------------ | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| hash | | varchar(64) | NO | | | | -| type | | int(11) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| date | | datetime | NO | | 0001-01-01 00:00:00 | | -| msg | | mediumtext | YES | | NULL | | -| uid | user.id of the owner of this data | int(11) | NO | MUL | 0 | | -| link | | varchar(255) | NO | | | | -| iid | item.id | int(11) | NO | | 0 | | -| parent | | int(11) | NO | | 0 | | -| seen | | tinyint(1) | NO | | 0 | | -| verb | | varchar(255) | NO | | | | -| otype | | varchar(16) | NO | | | | -| name_cache | Cached bbcode parsing of name | tinytext | YES | | NULL | | -| msg_cache | Cached bbcode parsing of msg | mediumtext | YES | | NULL | | +notifications + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | --------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| type | | smallint unsigned | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| url | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| date | | datetime | NO | | 0001-01-01 00:00:00 | | +| msg | | mediumtext | YES | | NULL | | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| link | | varchar(255) | NO | | | | +| iid | | int unsigned | YES | | NULL | | +| parent | | int unsigned | YES | | NULL | | +| uri-id | Item-uri id of the related post | int unsigned | YES | | NULL | | +| parent-uri-id | Item-uri id of the parent of the related post | int unsigned | YES | | NULL | | +| seen | | boolean | NO | | 0 | | +| verb | | varchar(100) | NO | | | | +| otype | | varchar(10) | NO | | | | +| name_cache | Cached bbcode parsing of name | tinytext | YES | | NULL | | +| msg_cache | Cached bbcode parsing of msg | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------------- | -------------------- | +| PRIMARY | id | +| seen_uid_date | seen, uid, date | +| uid_date | uid, date | +| uid_type_link | uid, type, link(190) | +| uri-id | uri-id | +| parent-uri-id | parent-uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_oembed.md b/doc/database/db_oembed.md index 651a52e74..8304a32f4 100644 --- a/doc/database/db_oembed.md +++ b/doc/database/db_oembed.md @@ -1,11 +1,25 @@ Table oembed -============ +=========== + +cache for OEmbed queries + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------------------------ | ------------------ | ---- | --- | ------------------- | ----- | +| url | page url | varbinary(255) | NO | PRI | NULL | | +| maxwidth | Maximum width passed to Oembed | mediumint unsigned | NO | PRI | NULL | | +| content | OEmbed data of the page | mediumtext | YES | | NULL | | +| created | datetime of creation | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------------- | +| PRIMARY | url, maxwidth | +| created | created | -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | -| url | page url | varchar(255) | NO | PRI | NULL | | -| maxwidth | Maximum width passed to Oembed | int(11) | NO | PRI | 0 | | -| content | OEmbed data of the page | text | NO | | NULL | | -| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_openwebauth-token.md b/doc/database/db_openwebauth-token.md new file mode 100644 index 000000000..c330623d9 --- /dev/null +++ b/doc/database/db_openwebauth-token.md @@ -0,0 +1,33 @@ +Table openwebauth-token +=========== + +Store OpenWebAuth token to verify contacts + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | -------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id - currently unused | mediumint unsigned | NO | | 0 | | +| type | Verify type | varchar(32) | NO | | | | +| token | A generated token | varchar(255) | NO | | | | +| meta | | varchar(255) | NO | | | | +| created | datetime of creation | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_parsed_url.md b/doc/database/db_parsed_url.md index 343e5a8be..1752cd0b5 100644 --- a/doc/database/db_parsed_url.md +++ b/doc/database/db_parsed_url.md @@ -1,12 +1,29 @@ Table parsed_url -================ +=========== + +cache for 'parse_url' queries + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | --------------------------------- | ---------- | ---- | --- | ------------------- | ----- | +| url_hash | page url hash | binary(64) | NO | PRI | NULL | | +| guessing | is the 'guessing' mode active? | boolean | NO | PRI | 0 | | +| oembed | is the data the result of oembed? | boolean | NO | PRI | 0 | | +| url | page url | text | NO | | NULL | | +| content | page data | mediumtext | YES | | NULL | | +| created | datetime of creation | datetime | NO | | 0001-01-01 00:00:00 | | +| expires | datetime of expiration | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | -------------------------- | +| PRIMARY | url_hash, guessing, oembed | +| created | created | +| expires | expires | -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ---------------------------------- | ------------ | ---- | --- | ------------------- | ----- | -| url | page url | varchar(255) | NO | PRI | NULL | | -| guessing | is the "guessing" mode active? | tinyint(1) | NO | PRI | 0 | | -| oembed | is the data the result of oembed? | tinyint(1) | NO | PRI | 0 | | -| content | page data | text | NO | | NULL | | -| created | datetime of creation | datetime | NO | MUL | 0001-01-01 00:00:00 | | Return to [database documentation](help/database) diff --git a/doc/database/db_pconfig.md b/doc/database/db_pconfig.md index a4ed10a35..cf9b0d781 100644 --- a/doc/database/db_pconfig.md +++ b/doc/database/db_pconfig.md @@ -1,12 +1,32 @@ -Table pconfic -============= +Table pconfig +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|-------|-------------|------------|------|-----|---------|----------------| -| id | | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | MUL | 0 | | -| cat | | char(255) | NO | | | | -| k | | char(255) | NO | | | | -| v | | mediumtext | NO | | NULL | | +personal (per user) configuration storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | ------------------ | ---- | --- | ------- | -------------- | +| id | Primary key | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| cat | Category | varchar(50) | NO | | | | +| k | Key | varchar(100) | NO | | | | +| v | Value | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| --------- | ------------------- | +| PRIMARY | id | +| uid_cat_k | UNIQUE, uid, cat, k | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_permissionset.md b/doc/database/db_permissionset.md new file mode 100644 index 000000000..38c6fe8f3 --- /dev/null +++ b/doc/database/db_permissionset.md @@ -0,0 +1,33 @@ +Table permissionset +=========== + + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner id of this permission set | mediumint unsigned | NO | | 0 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------------------- | ------------------------------------------------------------- | +| PRIMARY | id | +| uid_allow_cid_allow_gid_deny_cid_deny_gid | uid, allow_cid(50), allow_gid(30), deny_cid(50), deny_gid(30) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_photo.md b/doc/database/db_photo.md index 2bb7473e2..b641ae459 100644 --- a/doc/database/db_photo.md +++ b/doc/database/db_photo.md @@ -1,29 +1,60 @@ Table photo =========== -| Field | Description | Type | Null | Key | Default | Extra | -| ----------- | ------------------------------------------------------ | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(10) unsigned | NO | MUL | 0 | | -| contact-id | contact.id | int(10) unsigned | NO | | 0 | | -| guid | A unique identifier for this photo | varchar(64) | NO | MUL | | | -| resource-id | | varchar(255) | NO | MUL | | | -| created | creation date | datetime | NO | | 0001-01-01 00:00:00 | | -| edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | | -| title | | varchar(255) | NO | | | | -| desc | | text | NO | | NULL | | -| album | The name of the album to which the photo belongs | varchar(255) | NO | | | | -| filename | | varchar(255) | NO | | | | -| type | image type | varchar(128) | NO | | image/jpeg | | -| height | | smallint(6) | NO | | 0 | | -| width | | smallint(6) | NO | | 0 | | -| size | | int(10) unsigned | NO | | 0 | | -| data | | mediumblob | NO | | NULL | | -| scale | | tinyint(3) | NO | | 0 | | -| profile | | tinyint(1) | NO | | 0 | | -| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | NO | | NULL | | -| allow_gid | Access Control - list of allowed groups | mediumtext | NO | | NULL | | -| deny_cid | Access Control - list of denied contact.id | mediumtext | NO | | NULL | | -| deny_gid | Access Control - list of denied groups | mediumtext | NO | | NULL | | +photo storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | ------------------------------------------------------ | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| contact-id | contact.id | int unsigned | NO | | 0 | | +| guid | A unique identifier for this photo | char(16) | NO | | | | +| resource-id | | char(32) | NO | | | | +| hash | hash value of the photo | char(32) | YES | | NULL | | +| created | creation date | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edited date | datetime | NO | | 0001-01-01 00:00:00 | | +| title | | varchar(255) | NO | | | | +| desc | | text | YES | | NULL | | +| album | The name of the album to which the photo belongs | varchar(255) | NO | | | | +| filename | | varchar(255) | NO | | | | +| type | | varchar(30) | NO | | image/jpeg | | +| height | | smallint unsigned | NO | | 0 | | +| width | | smallint unsigned | NO | | 0 | | +| datasize | | int unsigned | NO | | 0 | | +| data | | mediumblob | NO | | NULL | | +| scale | | tinyint unsigned | NO | | 0 | | +| profile | | boolean | NO | | 0 | | +| allow_cid | Access Control - list of allowed contact.id '<19><78>' | mediumtext | YES | | NULL | | +| allow_gid | Access Control - list of allowed groups | mediumtext | YES | | NULL | | +| deny_cid | Access Control - list of denied contact.id | mediumtext | YES | | NULL | | +| deny_gid | Access Control - list of denied groups | mediumtext | YES | | NULL | | +| accessible | Make photo publicly accessible, ignoring permissions | boolean | NO | | 0 | | +| backend-class | Storage backend class | tinytext | YES | | NULL | | +| backend-ref | Storage backend data reference | text | YES | | NULL | | +| updated | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------- | ------------------------------------ | +| PRIMARY | id | +| contactid | contact-id | +| uid_contactid | uid, contact-id | +| uid_profile | uid, profile | +| uid_album_scale_created | uid, album(32), scale, created | +| uid_album_resource-id_created | uid, album(32), resource-id, created | +| resource-id | resource-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_poll.md b/doc/database/db_poll.md deleted file mode 100644 index fd89b345c..000000000 --- a/doc/database/db_poll.md +++ /dev/null @@ -1,19 +0,0 @@ -Table poll -========== - -| Field | Description | Type | Null | Key | Default | Extra | -|-------|-------------|------------|------|-----|---------|----------------| -| id | | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | MUL | 0 | | -| q0 | | mediumtext | NO | | NULL | | -| q1 | | mediumtext | NO | | NULL | | -| q2 | | mediumtext | NO | | NULL | | -| q3 | | mediumtext | NO | | NULL | | -| q4 | | mediumtext | NO | | NULL | | -| q5 | | mediumtext | NO | | NULL | | -| q6 | | mediumtext | NO | | NULL | | -| q7 | | mediumtext | NO | | NULL | | -| q8 | | mediumtext | NO | | NULL | | -| q9 | | mediumtext | NO | | NULL | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_poll_result.md b/doc/database/db_poll_result.md deleted file mode 100644 index 5a732d0ad..000000000 --- a/doc/database/db_poll_result.md +++ /dev/null @@ -1,10 +0,0 @@ -Table poll_result -================= - -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|---------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| poll_id | | int(11) | NO | MUL | 0 | | -| choice | | int(11) | NO | MUL | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_post-category.md b/doc/database/db_post-category.md new file mode 100644 index 000000000..b825a8f4b --- /dev/null +++ b/doc/database/db_post-category.md @@ -0,0 +1,34 @@ +Table post-category +=========== + +post relation to categories + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------ | --------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| uid | User id | mediumint unsigned | NO | PRI | 0 | | +| type | | tinyint unsigned | NO | PRI | 0 | | +| tid | | int unsigned | NO | PRI | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------------- | +| PRIMARY | uri-id, uid, type, tid | +| uri-id | tid | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| uid | [user](help/database/db_user) | uid | +| tid | [tag](help/database/db_tag) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-content.md b/doc/database/db_post-content.md new file mode 100644 index 000000000..0addf43a3 --- /dev/null +++ b/doc/database/db_post-content.md @@ -0,0 +1,46 @@ +Table post-content +=========== + +Content for all posts + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| title | item title | varchar(255) | NO | | | | +| content-warning | | varchar(255) | NO | | | | +| body | item body content | mediumtext | YES | | NULL | | +| raw-body | Body without embedded media links | mediumtext | YES | | NULL | | +| location | text location where this item originated | varchar(255) | NO | | | | +| coord | longitude/latitude pair representing location where this item originated | varchar(255) | NO | | | | +| language | Language information about this post | text | YES | | NULL | | +| app | application which generated this item | varchar(255) | NO | | | | +| rendered-hash | | varchar(32) | NO | | | | +| rendered-html | item.body converted to html | mediumtext | YES | | NULL | | +| object-type | ActivityStreams object type | varchar(100) | NO | | | | +| object | JSON encoded object structure unless it is an implied object (normal post) | text | YES | | NULL | | +| target-type | ActivityStreams target type if applicable (URI) | varchar(100) | NO | | | | +| target | JSON encoded target structure if used | text | YES | | NULL | | +| resource-id | Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type | varchar(32) | NO | | | | +| plink | permalink or URL to a displayable copy of the message at its source | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| -------------------------- | -------------------------------------- | +| PRIMARY | uri-id | +| plink | plink(191) | +| resource-id | resource-id | +| title-content-warning-body | FULLTEXT, title, content-warning, body | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-delivery-data.md b/doc/database/db_post-delivery-data.md new file mode 100644 index 000000000..ad4ca6af3 --- /dev/null +++ b/doc/database/db_post-delivery-data.md @@ -0,0 +1,37 @@ +Table post-delivery-data +=========== + +Delivery data for items + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| postopts | External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery | text | YES | | NULL | | +| inform | Additional receivers of the linked item | mediumtext | YES | | NULL | | +| queue_count | Initial number of delivery recipients, used as item.delivery_queue_count | mediumint | NO | | 0 | | +| queue_done | Number of successful deliveries, used as item.delivery_queue_done | mediumint | NO | | 0 | | +| queue_failed | Number of unsuccessful deliveries, used as item.delivery_queue_failed | mediumint | NO | | 0 | | +| activitypub | Number of successful deliveries via ActivityPub | mediumint | NO | | 0 | | +| dfrn | Number of successful deliveries via DFRN | mediumint | NO | | 0 | | +| legacy_dfrn | Number of successful deliveries via legacy DFRN | mediumint | NO | | 0 | | +| diaspora | Number of successful deliveries via Diaspora | mediumint | NO | | 0 | | +| ostatus | Number of successful deliveries via OStatus | mediumint | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-media.md b/doc/database/db_post-media.md new file mode 100644 index 000000000..e17a04e5f --- /dev/null +++ b/doc/database/db_post-media.md @@ -0,0 +1,46 @@ +Table post-media +=========== + +Attached media + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------------- | --------------------------------------------------------- | ----------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | | NULL | | +| url | Media URL | varbinary(511) | NO | | NULL | | +| type | Media type | tinyint unsigned | NO | | 0 | | +| mimetype | | varchar(60) | YES | | NULL | | +| height | Height of the media | smallint unsigned | YES | | NULL | | +| width | Width of the media | smallint unsigned | YES | | NULL | | +| size | Media size | int unsigned | YES | | NULL | | +| preview | Preview URL | varbinary(255) | YES | | NULL | | +| preview-height | Height of the preview picture | smallint unsigned | YES | | NULL | | +| preview-width | Width of the preview picture | smallint unsigned | YES | | NULL | | +| description | | text | YES | | NULL | | +| name | Name of the media | varchar(255) | YES | | NULL | | +| author-url | URL of the author of the media | varbinary(255) | YES | | NULL | | +| author-name | Name of the author of the media | varchar(255) | YES | | NULL | | +| author-image | Image of the author of the media | varbinary(255) | YES | | NULL | | +| publisher-url | URL of the publisher of the media | varbinary(255) | YES | | NULL | | +| publisher-name | Name of the publisher of the media | varchar(255) | YES | | NULL | | +| publisher-image | Image of the publisher of the media | varbinary(255) | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ---------- | ------------------- | +| PRIMARY | id | +| uri-id-url | UNIQUE, uri-id, url | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-tag.md b/doc/database/db_post-tag.md new file mode 100644 index 000000000..7811f32e0 --- /dev/null +++ b/doc/database/db_post-tag.md @@ -0,0 +1,34 @@ +Table post-tag +=========== + +post relation to tags + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------ | --------------------------------------------------------- | ---------------- | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| type | | tinyint unsigned | NO | PRI | 0 | | +| tid | | int unsigned | NO | PRI | 0 | | +| cid | Contact id of the mentioned public contact | int unsigned | NO | PRI | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ---------------------- | +| PRIMARY | uri-id, type, tid, cid | +| tid | tid | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| tid | [tag](help/database/db_tag) | id | +| cid | [contact](help/database/db_contact) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-thread-user.md b/doc/database/db_post-thread-user.md new file mode 100644 index 000000000..3efb5a77a --- /dev/null +++ b/doc/database/db_post-thread-user.md @@ -0,0 +1,70 @@ +Table post-thread-user +=========== + +Thread related data per user + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | ------------------------------------------------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| owner-id | Item owner | int unsigned | NO | | 0 | | +| author-id | Item author | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| network | | char(4) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| received | | datetime | NO | | 0001-01-01 00:00:00 | | +| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | +| commented | | datetime | NO | | 0001-01-01 00:00:00 | | +| uid | Owner id which owns this copy of the item | mediumint unsigned | NO | PRI | 0 | | +| pinned | The thread is pinned on the profile page | boolean | NO | | 0 | | +| starred | | boolean | NO | | 0 | | +| ignored | Ignore updates for this thread | boolean | NO | | 0 | | +| wall | This item was posted to the wall of uid | boolean | NO | | 0 | | +| mention | | boolean | NO | | 0 | | +| pubmail | | boolean | NO | | 0 | | +| forum_mode | | tinyint unsigned | NO | | 0 | | +| contact-id | contact.id | int unsigned | NO | | 0 | | +| unseen | post has not been seen | boolean | NO | | 1 | | +| hidden | Marker to hide the post from the user | boolean | NO | | 0 | | +| origin | item originated at this site | boolean | NO | | 0 | | +| psid | ID of the permission set of this post | int unsigned | YES | | NULL | | +| post-user-id | Id of the post-user table | int unsigned | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------------- | -------------- | +| PRIMARY | uid, uri-id | +| uri-id | uri-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| uid | uid | +| contact-id | contact-id | +| psid | psid | +| post-user-id | post-user-id | +| commented | commented | +| uid_received | uid, received | +| uid_pinned | uid, pinned | +| uid_commented | uid, commented | +| uid_starred | uid, starred | +| uid_mention | uid, mention | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | +| psid | [permissionset](help/database/db_permissionset) | id | +| post-user-id | [post-user](help/database/db_post-user) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-thread.md b/doc/database/db_post-thread.md new file mode 100644 index 000000000..96fd0d427 --- /dev/null +++ b/doc/database/db_post-thread.md @@ -0,0 +1,43 @@ +Table post-thread +=========== + +Thread related data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------------------------------------------------------- | ------------ | ---- | --- | ------------------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| owner-id | Item owner | int unsigned | NO | | 0 | | +| author-id | Item author | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| network | | char(4) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| received | | datetime | NO | | 0001-01-01 00:00:00 | | +| changed | Date that something in the conversation changed, indicating clients should fetch the conversation again | datetime | NO | | 0001-01-01 00:00:00 | | +| commented | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| --------- | --------- | +| PRIMARY | uri-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| received | received | +| commented | commented | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-user-notification.md b/doc/database/db_post-user-notification.md new file mode 100644 index 000000000..36edd4a28 --- /dev/null +++ b/doc/database/db_post-user-notification.md @@ -0,0 +1,31 @@ +Table post-user-notification +=========== + +User post notifications + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------------- | --------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| uid | Owner id which owns this copy of the item | mediumint unsigned | NO | PRI | NULL | | +| notification-type | | tinyint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ----------- | +| PRIMARY | uid, uri-id | +| uri-id | uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post-user.md b/doc/database/db_post-user.md new file mode 100644 index 000000000..5fbc3e985 --- /dev/null +++ b/doc/database/db_post-user.md @@ -0,0 +1,86 @@ +Table post-user +=========== + +User specific post data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----------------- | --------------------------------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | | NULL | | +| parent-uri-id | Id of the item-uri table that contains the parent uri | int unsigned | YES | | NULL | | +| thr-parent-id | Id of the item-uri table that contains the thread parent uri | int unsigned | YES | | NULL | | +| external-id | Id of the item-uri table entry that contains the external uri | int unsigned | YES | | NULL | | +| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | +| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | +| gravity | | tinyint unsigned | NO | | 0 | | +| network | Network from where the item comes from | char(4) | NO | | | | +| owner-id | Link to the contact table with uid=0 of the owner of this item | int unsigned | NO | | 0 | | +| author-id | Link to the contact table with uid=0 of the author of this item | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| post-type | Post type (personal note, image, article, ...) | tinyint unsigned | NO | | 0 | | +| post-reason | Reason why the post arrived at the user | tinyint unsigned | NO | | 0 | | +| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | YES | | NULL | | +| private | 0=public, 1=private, 2=unlisted | tinyint unsigned | NO | | 0 | | +| global | | boolean | NO | | 0 | | +| visible | | boolean | NO | | 0 | | +| deleted | item has been marked for deletion | boolean | NO | | 0 | | +| uid | Owner id which owns this copy of the item | mediumint unsigned | NO | | NULL | | +| protocol | Protocol used to deliver the item for this user | tinyint unsigned | YES | | NULL | | +| contact-id | contact.id | int unsigned | NO | | 0 | | +| event-id | Used to link to the event.id | int unsigned | YES | | NULL | | +| unseen | post has not been seen | boolean | NO | | 1 | | +| hidden | Marker to hide the post from the user | boolean | NO | | 0 | | +| notification-type | | tinyint unsigned | NO | | 0 | | +| wall | This item was posted to the wall of uid | boolean | NO | | 0 | | +| origin | item originated at this site | boolean | NO | | 0 | | +| psid | ID of the permission set of this post | int unsigned | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| -------------------- | ----------------------- | +| PRIMARY | id | +| uid_uri-id | UNIQUE, uid, uri-id | +| uri-id | uri-id | +| parent-uri-id | parent-uri-id | +| thr-parent-id | thr-parent-id | +| external-id | external-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| vid | vid | +| contact-id | contact-id | +| event-id | event-id | +| psid | psid | +| author-id_uid | author-id, uid | +| author-id_received | author-id, received | +| parent-uri-id_uid | parent-uri-id, uid | +| uid_contactid | uid, contact-id | +| uid_unseen_contactid | uid, unseen, contact-id | +| uid_unseen | uid, unseen | +| uid_hidden_uri-id | uid, hidden, uri-id | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| thr-parent-id | [item-uri](help/database/db_item-uri) | id | +| external-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | +| vid | [verb](help/database/db_verb) | id | +| uid | [user](help/database/db_user) | uid | +| contact-id | [contact](help/database/db_contact) | id | +| event-id | [event](help/database/db_event) | id | +| psid | [permissionset](help/database/db_permissionset) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_post.md b/doc/database/db_post.md new file mode 100644 index 000000000..303269b1c --- /dev/null +++ b/doc/database/db_post.md @@ -0,0 +1,58 @@ +Table post +=========== + +Structure for all posts + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------- | --------------------------------------------------------------------------------- | ----------------- | ---- | --- | ------------------- | ----- | +| uri-id | Id of the item-uri table entry that contains the item uri | int unsigned | NO | PRI | NULL | | +| parent-uri-id | Id of the item-uri table that contains the parent uri | int unsigned | YES | | NULL | | +| thr-parent-id | Id of the item-uri table that contains the thread parent uri | int unsigned | YES | | NULL | | +| external-id | Id of the item-uri table entry that contains the external uri | int unsigned | YES | | NULL | | +| created | Creation timestamp. | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | Date of last edit (default is created) | datetime | NO | | 0001-01-01 00:00:00 | | +| received | datetime | datetime | NO | | 0001-01-01 00:00:00 | | +| gravity | | tinyint unsigned | NO | | 0 | | +| network | Network from where the item comes from | char(4) | NO | | | | +| owner-id | Link to the contact table with uid=0 of the owner of this item | int unsigned | NO | | 0 | | +| author-id | Link to the contact table with uid=0 of the author of this item | int unsigned | NO | | 0 | | +| causer-id | Link to the contact table with uid=0 of the contact that caused the item creation | int unsigned | YES | | NULL | | +| post-type | Post type (personal note, image, article, ...) | tinyint unsigned | NO | | 0 | | +| vid | Id of the verb table entry that contains the activity verbs | smallint unsigned | YES | | NULL | | +| private | 0=public, 1=private, 2=unlisted | tinyint unsigned | NO | | 0 | | +| global | | boolean | NO | | 0 | | +| visible | | boolean | NO | | 0 | | +| deleted | item has been marked for deletion | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------------- | ------------- | +| PRIMARY | uri-id | +| parent-uri-id | parent-uri-id | +| thr-parent-id | thr-parent-id | +| external-id | external-id | +| owner-id | owner-id | +| author-id | author-id | +| causer-id | causer-id | +| vid | vid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uri-id | [item-uri](help/database/db_item-uri) | id | +| parent-uri-id | [item-uri](help/database/db_item-uri) | id | +| thr-parent-id | [item-uri](help/database/db_item-uri) | id | +| external-id | [item-uri](help/database/db_item-uri) | id | +| owner-id | [contact](help/database/db_contact) | id | +| author-id | [contact](help/database/db_contact) | id | +| causer-id | [contact](help/database/db_contact) | id | +| vid | [verb](help/database/db_verb) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_process.md b/doc/database/db_process.md new file mode 100644 index 000000000..062e6ff22 --- /dev/null +++ b/doc/database/db_process.md @@ -0,0 +1,24 @@ +Table process +=========== + +Currently running system processes + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------- | ------------- | ---- | --- | ------------------- | ----- | +| pid | | int unsigned | NO | PRI | NULL | | +| command | | varbinary(32) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------- | +| PRIMARY | pid | +| command | command | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_profile.md b/doc/database/db_profile.md index 375e06635..4ea3b5600 100644 --- a/doc/database/db_profile.md +++ b/doc/database/db_profile.md @@ -1,48 +1,70 @@ Table profile -============= +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------|-----------------------------------------------|--------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | user.id of the owner of this data | int(11) | NO | | 0 | | -| profile-name | Name of the profile | varchar(255) | NO | | | | -| is-default | Mark this profile as default profile | tinyint(1) | NO | | 0 | | -| hide-friends | Hide friend list from viewers of this profile | tinyint(1) | NO | | 0 | | -| name | | varchar(255) | NO | | | | -| pdesc | Deprecated | varchar(255) | NO | | | | -| dob | Day of birth | varchar(32) | NO | | 0001-01-01 | | -| address | | varchar(255) | NO | | | | -| locality | | varchar(255) | NO | | | | -| region | | varchar(255) | NO | | | | -| postal-code | | varchar(32) | NO | | | | -| country-name | | varchar(255) | NO | | | | -| hometown | Deprecated | varchar(255) | NO | MUL | | | -| gender | Deprecated | varchar(32) | NO | | | | -| marital | Deprecated | varchar(255) | NO | | | | -| with | Deprecated | text | NO | | NULL | | -| howlong | Deprecated | datetime | NO | | 0001-01-01 00:00:00 | | -| sexual | Deprecated | varchar(255) | NO | | | | -| politic | Deprecated | varchar(255) | NO | | | | -| religion | Deprecated | varchar(255) | NO | | | | -| pub_keywords | | text | NO | | NULL | | -| prv_keywords | | text | NO | | NULL | | -| likes | Deprecated | text | NO | | NULL | | -| dislikes | Deprecated | text | NO | | NULL | | -| about | Profile description | text | NO | | | | -| summary | Deprecated | varchar(255) | NO | | | | -| music | Deprecated | text | NO | | NULL | | -| book | Deprecated | text | NO | | NULL | | -| tv | Deprecated | text | NO | | NULL | | -| film | Deprecated | text | NO | | NULL | | -| interest | Deprecated | text | NO | | NULL | | -| romance | Deprecated | text | NO | | NULL | | -| work | Deprecated | text | NO | | NULL | | -| education | Deprecated | text | NO | | NULL | | -| contact | Deprecated | text | NO | | NULL | | -| homepage | | varchar(255) | NO | | | | -| photo | | varchar(255) | NO | | | | -| thumb | | varchar(255) | NO | | | | -| publish | publish default profile in local directory | tinyint(1) | NO | | 0 | | -| net-publish | publish profile in global directory | tinyint(1) | NO | | 0 | | +user profiles data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | --------------------------------------------- | ------------------ | ---- | --- | ---------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner User id | mediumint unsigned | NO | | 0 | | +| profile-name | Deprecated | varchar(255) | YES | | NULL | | +| is-default | Deprecated | boolean | YES | | NULL | | +| hide-friends | Hide friend list from viewers of this profile | boolean | NO | | 0 | | +| name | | varchar(255) | NO | | | | +| pdesc | Deprecated | varchar(255) | YES | | NULL | | +| dob | Day of birth | varchar(32) | NO | | 0000-00-00 | | +| address | | varchar(255) | NO | | | | +| locality | | varchar(255) | NO | | | | +| region | | varchar(255) | NO | | | | +| postal-code | | varchar(32) | NO | | | | +| country-name | | varchar(255) | NO | | | | +| hometown | Deprecated | varchar(255) | YES | | NULL | | +| gender | Deprecated | varchar(32) | YES | | NULL | | +| marital | Deprecated | varchar(255) | YES | | NULL | | +| with | Deprecated | text | YES | | NULL | | +| howlong | Deprecated | datetime | YES | | NULL | | +| sexual | Deprecated | varchar(255) | YES | | NULL | | +| politic | Deprecated | varchar(255) | YES | | NULL | | +| religion | Deprecated | varchar(255) | YES | | NULL | | +| pub_keywords | | text | YES | | NULL | | +| prv_keywords | | text | YES | | NULL | | +| likes | Deprecated | text | YES | | NULL | | +| dislikes | Deprecated | text | YES | | NULL | | +| about | Profile description | text | YES | | NULL | | +| summary | Deprecated | varchar(255) | YES | | NULL | | +| music | Deprecated | text | YES | | NULL | | +| book | Deprecated | text | YES | | NULL | | +| tv | Deprecated | text | YES | | NULL | | +| film | Deprecated | text | YES | | NULL | | +| interest | Deprecated | text | YES | | NULL | | +| romance | Deprecated | text | YES | | NULL | | +| work | Deprecated | text | YES | | NULL | | +| education | Deprecated | text | YES | | NULL | | +| contact | Deprecated | text | YES | | NULL | | +| homepage | | varchar(255) | NO | | | | +| xmpp | | varchar(255) | NO | | | | +| photo | | varchar(255) | NO | | | | +| thumb | | varchar(255) | NO | | | | +| publish | publish default profile in local directory | boolean | NO | | 0 | | +| net-publish | publish profile in global directory | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| -------------- | ---------------------- | +| PRIMARY | id | +| uid_is-default | uid, is-default | +| pub_keywords | FULLTEXT, pub_keywords | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_profile_check.md b/doc/database/db_profile_check.md index 411da06d3..4049bd604 100644 --- a/doc/database/db_profile_check.md +++ b/doc/database/db_profile_check.md @@ -1,13 +1,35 @@ Table profile_check -=================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| uid | user.id | int(10) unsigned | NO | | 0 | | -| cid | contact.id | int(10) unsigned | NO | | 0 | | -| dfrn_id | | varchar(255) | NO | | | | -| sec | | varchar(255) | NO | | 0 | | -| expire | | int(11) | NO | | NULL | | +DFRN remote auth use + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| cid | contact.id | int unsigned | NO | | 0 | | +| dfrn_id | | varchar(255) | NO | | | | +| sec | | varchar(255) | NO | | | | +| expire | | int unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| cid | [contact](help/database/db_contact) | id | Return to [database documentation](help/database) diff --git a/doc/database/db_profile_field.md b/doc/database/db_profile_field.md new file mode 100644 index 000000000..56e8e3d0b --- /dev/null +++ b/doc/database/db_profile_field.md @@ -0,0 +1,38 @@ +Table profile_field +=========== + +Custom profile fields + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------- | ----------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | Owner user id | mediumint unsigned | NO | | 0 | | +| order | Field ordering per user | mediumint unsigned | NO | | 1 | | +| psid | ID of the permission set of this profile field - 0 = public | int unsigned | YES | | NULL | | +| label | Label of the field | varchar(255) | NO | | | | +| value | Value of the field | text | YES | | NULL | | +| created | creation time | datetime | NO | | 0001-01-01 00:00:00 | | +| edited | last edit time | datetime | NO | | 0001-01-01 00:00:00 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | +| order | order | +| psid | psid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | +| psid | [permissionset](help/database/db_permissionset) | id | + +Return to [database documentation](help/database) diff --git a/doc/database/db_push_subscriber.md b/doc/database/db_push_subscriber.md index b766ccb46..4ba50a4d1 100644 --- a/doc/database/db_push_subscriber.md +++ b/doc/database/db_push_subscriber.md @@ -1,10 +1,38 @@ Table push_subscriber -===================== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|---------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| poll_id | | int(11) | NO | MUL | 0 | | -| choice | | int(11) | NO | MUL | 0 | | +Used for OStatus: Contains feed subscribers + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------------ | --------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| callback_url | | varchar(255) | NO | | | | +| topic | | varchar(255) | NO | | | | +| nickname | | varchar(255) | NO | | | | +| push | Retrial counter | tinyint | NO | | 0 | | +| last_update | Date of last successful trial | datetime | NO | | 0001-01-01 00:00:00 | | +| next_try | Next retrial date | datetime | NO | | 0001-01-01 00:00:00 | | +| renewed | Date of last subscription renewal | datetime | NO | | 0001-01-01 00:00:00 | | +| secret | | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| -------- | -------- | +| PRIMARY | id | +| next_try | next_try | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_queue.md b/doc/database/db_queue.md deleted file mode 100644 index 6b19f02f2..000000000 --- a/doc/database/db_queue.md +++ /dev/null @@ -1,14 +0,0 @@ -Table queue -=========== - -| Field | Description | Type | Null | Key | Default | Extra | -|---------|------------------|-------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| cid | | int(11) | NO | MUL | 0 | | -| network | | varchar(32) | NO | MUL | | | -| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| last | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| content | | mediumtext | NO | | NULL | | -| batch | | tinyint(1) | NO | MUL | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_register.md b/doc/database/db_register.md index 974a2dc67..8ace3c199 100644 --- a/doc/database/db_register.md +++ b/doc/database/db_register.md @@ -1,13 +1,34 @@ Table register -============== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| -------- | ------------- | ---------------- | ---- | --- | ------------------- | --------------- | -| id | sequential ID | int(11) unsigned | NO | PRI | NULL | auto_increment | -| hash | | varchar(255) | NO | | | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| uid | user.id | int(11) unsigned | NO | | | | -| password | | varchar(255) | NO | | | | -| language | | varchar(16) | NO | | | | +registrations requiring admin approval + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| hash | | varchar(255) | NO | | | | +| created | | datetime | NO | | 0001-01-01 00:00:00 | | +| uid | User id | mediumint unsigned | NO | | 0 | | +| password | | varchar(255) | NO | | | | +| language | | varchar(16) | NO | | | | +| note | | text | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_search.md b/doc/database/db_search.md index 63d0a46b4..157d09ecb 100644 --- a/doc/database/db_search.md +++ b/doc/database/db_search.md @@ -1,10 +1,31 @@ Table search -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|-------|------------------|--------------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| uid | | int(11) | NO | MUL | 0 | | -| term | | varchar(255) | NO | MUL | | | + + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------- | ------------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| uid | User id | mediumint unsigned | NO | | 0 | | +| term | | varchar(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| -------- | ------------- | +| PRIMARY | id | +| uid_term | uid, term(64) | +| term | term(64) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_session.md b/doc/database/db_session.md index 1e87c24d0..794e49c6a 100644 --- a/doc/database/db_session.md +++ b/doc/database/db_session.md @@ -1,11 +1,26 @@ Table session -============= +=========== + +web session storage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ------ | ------------- | --------------- | ---- | --- | ------- | -------------- | +| id | sequential ID | bigint unsigned | NO | PRI | NULL | auto_increment | +| sid | | varbinary(255) | NO | | | | +| data | | text | YES | | NULL | | +| expire | | int unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------- | +| PRIMARY | id | +| sid | sid(64) | +| expire | expire | -| Field | Description | Type | Null | Key | Default | Extra | -| ------ | ------------- | ------------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment | -| sid | | varchar(255) | NO | MUL | | | -| data | | text | NO | | NULL | | -| expire | | int(10) unsigned | NO | MUL | 0 | | Return to [database documentation](help/database) diff --git a/doc/database/db_sign.md b/doc/database/db_sign.md deleted file mode 100644 index 6986613e5..000000000 --- a/doc/database/db_sign.md +++ /dev/null @@ -1,12 +0,0 @@ -Table sign -========== - -| Field | Description | Type | Null | Key | Default | Extra | -| ------------ | ------------- | ---------------- | ---- | --- | ------- | --------------- | -| id | sequential ID | int(10) unsigned | NO | PRI | NULL | auto_increment | -| iid | item.id | int(10) unsigned | NO | MUL | 0 | | -| signed_text | | mediumtext | NO | | NULL | | -| signature | | text | NO | | NULL | | -| signer | | varchar(255) | NO | | | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_storage.md b/doc/database/db_storage.md new file mode 100644 index 000000000..55911e28a --- /dev/null +++ b/doc/database/db_storage.md @@ -0,0 +1,22 @@ +Table storage +=========== + +Data stored by Database storage backend + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------------------------ | ------------ | ---- | --- | ------- | -------------- | +| id | Auto incremented image data id | int unsigned | NO | PRI | NULL | auto_increment | +| data | file data | longblob | NO | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_tag.md b/doc/database/db_tag.md new file mode 100644 index 000000000..8c742917a --- /dev/null +++ b/doc/database/db_tag.md @@ -0,0 +1,25 @@ +Table tag +=========== + +tags and mentions + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | -------------- | ---- | --- | ------- | -------------- | +| id | | int unsigned | NO | PRI | NULL | auto_increment | +| name | | varchar(96) | NO | | | | +| url | | varbinary(255) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------------- | ----------------- | +| PRIMARY | id | +| type_name_url | UNIQUE, name, url | +| url | url | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_term.md b/doc/database/db_term.md deleted file mode 100644 index d18bf1c3b..000000000 --- a/doc/database/db_term.md +++ /dev/null @@ -1,19 +0,0 @@ -Table term -========== - -| Field | Description | Type | Null | Key | Default | Extra | -|----------| ------------- |---------------------|------|-----|---------------------|----------------| -| tid | | int(10) unsigned | NO | PRI | NULL | auto_increment | -| oid | | int(10) unsigned | NO | MUL | 0 | | -| otype | | tinyint(3) unsigned | NO | MUL | 0 | | -| type | | tinyint(3) unsigned | NO | MUL | 0 | | -| term | | varchar(255) | NO | | | | -| url | | varchar(255) | NO | | | | -| aid | | int(10) unsigned | NO | | 0 | | -| uid | | int(10) unsigned | NO | MUL | 0 | | -| guid | | varchar(255) | NO | MUL | | | -| created | | datetime | NO | | 0001-01-01 00:00:00 | | -| received | | datetime | NO | | 0001-01-01 00:00:00 | | -| global | | tinyint(1) | NO | | 0 | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_thread.md b/doc/database/db_thread.md deleted file mode 100644 index 13b70b451..000000000 --- a/doc/database/db_thread.md +++ /dev/null @@ -1,33 +0,0 @@ -Table thread -============ - -| Field | Description | Type | Null | Key | Default | Extra | -|-------------|------------------|------------------|------|-----|---------------------|-------| -| iid | sequential ID | int(10) unsigned | NO | PRI | 0 | | -| uid | | int(10) unsigned | NO | MUL | 0 | | -| contact-id | | int(11) unsigned | NO | | 0 | | -| gcontact-id | Global Contact | int(11) unsigned | NO | | 0 | | -| owner-id | Item owner | int(11) unsigned | NO | MUL | 0 | | -| author-id | Item author | int(11) unsigned | NO | MUL | 0 | | -| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| edited | | datetime | NO | | 0001-01-01 00:00:00 | | -| commented | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| received | | datetime | NO | | 0001-01-01 00:00:00 | | -| changed | | datetime | NO | | 0001-01-01 00:00:00 | | -| wall | | tinyint(1) | NO | MUL | 0 | | -| private | | tinyint(1) | NO | | 0 | | -| pubmail | | tinyint(1) | NO | | 0 | | -| moderated | | tinyint(1) | NO | | 0 | | -| visible | | tinyint(1) | NO | | 0 | | -| spam | | tinyint(1) | NO | | 0 | | -| starred | | tinyint(1) | NO | | 0 | | -| ignored | | tinyint(1) | NO | | 0 | | -| bookmark | | tinyint(1) | NO | | 0 | | -| unseen | | tinyint(1) | NO | | 1 | | -| deleted | | tinyint(1) | NO | | 0 | | -| origin | | tinyint(1) | NO | | 0 | | -| forum_mode | | tinyint(1) | NO | | 0 | | -| mention | | tinyint(1) | NO | | 0 | | -| network | | varchar(32) | NO | | | | - -Return to [database documentation](help/database) diff --git a/doc/database/db_tokens.md b/doc/database/db_tokens.md index 3b3778d68..7cf9bba4c 100644 --- a/doc/database/db_tokens.md +++ b/doc/database/db_tokens.md @@ -1,13 +1,35 @@ Table tokens -============ +=========== -| Field | Description | Type | Null | Key | Default | Extra | -| ---------- | ----------- | ------------ | ---- | --- | ------- | ----- | -| id | | varchar(40) | NO | PRI | NULL | | -| secret | | text | NO | | NULL | | -| client_id | | varchar(20) | NO | | | | -| expires | | int(11) | NO | | 0 | | -| scope | | varchar(200) | NO | | | | -| uid | | int(11) | NO | | 0 | | +OAuth usage + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ----------- | ------------------ | ---- | --- | ------- | ----- | +| id | | varchar(40) | NO | PRI | NULL | | +| secret | | text | YES | | NULL | | +| client_id | | varchar(20) | NO | | | | +| expires | | int | NO | | 0 | | +| scope | | varchar(200) | NO | | | | +| uid | User id | mediumint unsigned | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| --------- | --------- | +| PRIMARY | id | +| client_id | client_id | +| uid | uid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| client_id | [clients](help/database/db_clients) | client_id | +| uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_user-contact.md b/doc/database/db_user-contact.md new file mode 100644 index 000000000..35d140cff --- /dev/null +++ b/doc/database/db_user-contact.md @@ -0,0 +1,33 @@ +Table user-contact +=========== + +User specific public contact data + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------- | ------------------ | ---- | --- | ------- | ----- | +| cid | Contact id of the linked public contact | int unsigned | NO | PRI | 0 | | +| uid | User id | mediumint unsigned | NO | PRI | 0 | | +| blocked | Contact is completely blocked for this user | boolean | YES | | NULL | | +| ignored | Posts from this contact are ignored | boolean | YES | | NULL | | +| collapsed | Posts from this contact are collapsed | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | -------- | +| PRIMARY | uid, cid | +| cid | cid | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| cid | [contact](help/database/db_contact) | id | +| uid | [user](help/database/db_user) | uid | + +Return to [database documentation](help/database) diff --git a/doc/database/db_user.md b/doc/database/db_user.md index 7033bcc89..611fb76b0 100644 --- a/doc/database/db_user.md +++ b/doc/database/db_user.md @@ -1,77 +1,75 @@ Table user -========== +=========== -| Field | Description | Type | Null | Key | Default | Extra | -|--------------------------|-----------------------------------------------------------------------------------------|---------------------|------|-----|---------------------|----------------| -| uid | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| guid | A unique identifier for this user | varchar(64) | NO | | | | -| username | Name that this user is known by | varchar(255) | NO | | | | -| password | encrypted password | varchar(255) | NO | | | | -| nickname | nick- and user name | varchar(255) | NO | MUL | | | -| email | the users email address | varchar(255) | NO | | | | -| openid | | varchar(255) | NO | | | | -| timezone | PHP-legal timezone | varchar(128) | NO | | | | -| language | default language | varchar(32) | NO | | en | | -| register_date | timestamp of registration | datetime | NO | | 0001-01-01 00:00:00 | | -| login_date | timestamp of last login | datetime | NO | | 0001-01-01 00:00:00 | | -| default-location | Default for item.location | varchar(255) | NO | | | | -| allow_location | 1 allows to display the location | tinyint(1) | NO | | 0 | | -| theme | user theme preference | varchar(255) | NO | | | | -| pubkey | RSA public key 4096 bit | text | NO | | NULL | | -| prvkey | RSA private key 4096 bit | text | NO | | NULL | | -| spubkey | | text | NO | | NULL | | -| sprvkey | | text | NO | | NULL | | -| verified | user is verified through email | tinyint(1) unsigned | NO | | 0 | | -| blocked | 1 for user is blocked | tinyint(1) unsigned | NO | | 0 | | -| blockwall | Prohibit contacts to post to the profile page of the user | tinyint(1) unsigned | NO | | 0 | | -| hidewall | Hide profile details from unkown viewers | tinyint(1) unsigned | NO | | 0 | | -| blocktags | Prohibit contacts to tag the post of this user | tinyint(1) unsigned | NO | | 0 | | -| unkmail | Permit unknown people to send private mails to this user | tinyint(1) | NO | | 0 | | -| cntunkmail | | int(11) | NO | | 10 | | -| notify-flags | email notification options | int(11) unsigned | NO | | 65535 | | -| page-flags | page/profile type | int(11) unsigned | NO | | 0 | | -| prvnets | | tinyint(1) | NO | | 0 | | -| pwdreset | | varchar(255) | NO | | | | -| maxreq | | int(11) | NO | | 10 | | -| expire | | int(11) unsigned | NO | | 0 | | -| account_removed | if 1 the account is removed | tinyint(1) | NO | | 0 | | -| account_expired | | tinyint(1) | NO | | 0 | | -| account_expires_on | timestamp when account expires and will be deleted | datetime | NO | | 0001-01-01 00:00:00 | | -| expire_notification_sent | timestamp of last warning of account expiration | datetime | NO | | 0001-01-01 00:00:00 | | -| def_gid | | int(11) | NO | | 0 | | -| allow_cid | default permission for this user | mediumtext | NO | | NULL | | -| allow_gid | default permission for this user | mediumtext | NO | | NULL | | -| deny_cid | default permission for this user | mediumtext | NO | | NULL | | -| deny_gid | default permission for this user | mediumtext | NO | | NULL | | -| openidserver | | text | NO | | NULL | | +The local users -``` -/** -* page-flags -*/ -define ( 'PAGE_NORMAL', 0 ); -define ( 'PAGE_SOAPBOX', 1 ); -define ( 'PAGE_COMMUNITY', 2 ); -define ( 'PAGE_FREELOVE', 3 ); -define ( 'PAGE_BLOG', 4 ); -define ( 'PAGE_PRVGROUP', 5 ); +Fields +------ -/** -* notify-flags -*/ -define ( 'NOTIFY_INTRO', 0x0001 ); -define ( 'NOTIFY_CONFIRM', 0x0002 ); -define ( 'NOTIFY_WALL', 0x0004 ); -define ( 'NOTIFY_COMMENT', 0x0008 ); -define ( 'NOTIFY_MAIL', 0x0010 ); -define ( 'NOTIFY_SUGGEST', 0x0020 ); -define ( 'NOTIFY_PROFILE', 0x0040 ); -define ( 'NOTIFY_TAGSELF', 0x0080 ); -define ( 'NOTIFY_TAGSHARE', 0x0100 ); -define ( 'NOTIFY_POKE', 0x0200 ); -define ( 'NOTIFY_SHARE', 0x0400 ); +| Field | Description | Type | Null | Key | Default | Extra | +| ------------------------ | --------------------------------------------------------- | ------------------ | ---- | --- | ------------------- | -------------- | +| uid | sequential ID | mediumint unsigned | NO | PRI | NULL | auto_increment | +| parent-uid | The parent user that has full control about this user | mediumint unsigned | YES | | NULL | | +| guid | A unique identifier for this user | varchar(64) | NO | | | | +| username | Name that this user is known by | varchar(255) | NO | | | | +| password | encrypted password | varchar(255) | NO | | | | +| legacy_password | Is the password hash double-hashed? | boolean | NO | | 0 | | +| nickname | nick- and user name | varchar(255) | NO | | | | +| email | the users email address | varchar(255) | NO | | | | +| openid | | varchar(255) | NO | | | | +| timezone | PHP-legal timezone | varchar(128) | NO | | | | +| language | default language | varchar(32) | NO | | en | | +| register_date | timestamp of registration | datetime | NO | | 0001-01-01 00:00:00 | | +| login_date | timestamp of last login | datetime | NO | | 0001-01-01 00:00:00 | | +| default-location | Default for item.location | varchar(255) | NO | | | | +| allow_location | 1 allows to display the location | boolean | NO | | 0 | | +| theme | user theme preference | varchar(255) | NO | | | | +| pubkey | RSA public key 4096 bit | text | YES | | NULL | | +| prvkey | RSA private key 4096 bit | text | YES | | NULL | | +| spubkey | | text | YES | | NULL | | +| sprvkey | | text | YES | | NULL | | +| verified | user is verified through email | boolean | NO | | 0 | | +| blocked | 1 for user is blocked | boolean | NO | | 0 | | +| blockwall | Prohibit contacts to post to the profile page of the user | boolean | NO | | 0 | | +| hidewall | Hide profile details from unkown viewers | boolean | NO | | 0 | | +| blocktags | Prohibit contacts to tag the post of this user | boolean | NO | | 0 | | +| unkmail | Permit unknown people to send private mails to this user | boolean | NO | | 0 | | +| cntunkmail | | int unsigned | NO | | 10 | | +| notify-flags | email notification options | smallint unsigned | NO | | 65535 | | +| page-flags | page/profile type | tinyint unsigned | NO | | 0 | | +| account-type | | tinyint unsigned | NO | | 0 | | +| prvnets | | boolean | NO | | 0 | | +| pwdreset | Password reset request token | varchar(255) | YES | | NULL | | +| pwdreset_time | Timestamp of the last password reset request | datetime | YES | | NULL | | +| maxreq | | int unsigned | NO | | 10 | | +| expire | | int unsigned | NO | | 0 | | +| account_removed | if 1 the account is removed | boolean | NO | | 0 | | +| account_expired | | boolean | NO | | 0 | | +| account_expires_on | timestamp when account expires and will be deleted | datetime | NO | | 0001-01-01 00:00:00 | | +| expire_notification_sent | timestamp of last warning of account expiration | datetime | NO | | 0001-01-01 00:00:00 | | +| def_gid | | int unsigned | NO | | 0 | | +| allow_cid | default permission for this user | mediumtext | YES | | NULL | | +| allow_gid | default permission for this user | mediumtext | YES | | NULL | | +| deny_cid | default permission for this user | mediumtext | YES | | NULL | | +| deny_gid | default permission for this user | mediumtext | YES | | NULL | | +| openidserver | | text | YES | | NULL | | -define ( 'NOTIFY_SYSTEM', 0x8000 ); -``` +Indexes +------------ + +| Name | Fields | +| ---------- | ------------ | +| PRIMARY | uid | +| nickname | nickname(32) | +| parent-uid | parent-uid | +| guid | guid | +| email | email(64) | + +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +| parent-uid | [user](help/database/db_user) | uid | Return to [database documentation](help/database) diff --git a/doc/database/db_userd.md b/doc/database/db_userd.md index 80e308475..17a81b408 100644 --- a/doc/database/db_userd.md +++ b/doc/database/db_userd.md @@ -1,9 +1,23 @@ Table userd =========== -| Field | Description | Type | Null | Key | Default | Extra | -|----------|------------------|--------------|------|-----|---------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| username | | varchar(255) | NO | MUL | NULL | | +Deleted usernames + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| -------- | ------------- | ------------ | ---- | --- | ------- | -------------- | +| id | sequential ID | int unsigned | NO | PRI | NULL | auto_increment | +| username | | varchar(255) | NO | | NULL | | + +Indexes +------------ + +| Name | Fields | +| -------- | ------------ | +| PRIMARY | id | +| username | username(32) | + Return to [database documentation](help/database) diff --git a/doc/database/db_verb.md b/doc/database/db_verb.md new file mode 100644 index 000000000..43507053b --- /dev/null +++ b/doc/database/db_verb.md @@ -0,0 +1,23 @@ +Table verb +=========== + +Activity Verbs + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ----------- | ----------------- | ---- | --- | ------- | -------------- | +| id | | smallint unsigned | NO | PRI | NULL | auto_increment | +| name | | varchar(100) | NO | | | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | id | +| name | name | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_worker-ipc.md b/doc/database/db_worker-ipc.md new file mode 100644 index 000000000..1635981d7 --- /dev/null +++ b/doc/database/db_worker-ipc.md @@ -0,0 +1,22 @@ +Table worker-ipc +=========== + +Inter process communication between the frontend and the worker + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| ----- | ------------------------- | ------- | ---- | --- | ------- | ----- | +| key | | int | NO | PRI | NULL | | +| jobs | Flag for outstanding jobs | boolean | YES | | NULL | | + +Indexes +------------ + +| Name | Fields | +| ------- | ------ | +| PRIMARY | key | + + +Return to [database documentation](help/database) diff --git a/doc/database/db_workerqueue.md b/doc/database/db_workerqueue.md index 182358a4c..a479ecbca 100644 --- a/doc/database/db_workerqueue.md +++ b/doc/database/db_workerqueue.md @@ -1,14 +1,38 @@ Table workerqueue -================= +=========== + +Background tasks queue entries + +Fields +------ + +| Field | Description | Type | Null | Key | Default | Extra | +| --------- | ------------------------------------------------------- | ---------------- | ---- | --- | ------------------- | -------------- | +| id | Auto incremented worker task id | int unsigned | NO | PRI | NULL | auto_increment | +| command | Task command | varchar(100) | YES | | NULL | | +| parameter | Task parameter | mediumtext | YES | | NULL | | +| priority | Task priority | tinyint unsigned | NO | | 0 | | +| created | Creation date | datetime | NO | | 0001-01-01 00:00:00 | | +| pid | Process id of the worker | int unsigned | NO | | 0 | | +| executed | Execution date | datetime | NO | | 0001-01-01 00:00:00 | | +| next_try | Next retrial date | datetime | NO | | 0001-01-01 00:00:00 | | +| retrial | Retrial counter | tinyint | NO | | 0 | | +| done | Marked 1 when the task was done - will be deleted later | boolean | NO | | 0 | | + +Indexes +------------ + +| Name | Fields | +| ----------------------------- | -------------------------------- | +| PRIMARY | id | +| command | command | +| done_command_parameter | done, command, parameter(64) | +| done_executed | done, executed | +| done_priority_retrial_created | done, priority, retrial, created | +| done_priority_next_try | done, priority, next_try | +| done_pid_next_try | done, pid, next_try | +| done_pid_retrial | done, pid, retrial | +| done_pid_priority_created | done, pid, priority, created | -| Field | Description | Type | Null | Key | Default | Extra | -|-----------|------------------|---------------------|------|-----|---------------------|----------------| -| id | sequential ID | int(11) | NO | PRI | NULL | auto_increment | -| parameter | | text | NO | | NULL | | -| priority | | tinyint(3) unsigned | NO | | 0 | | -| created | | datetime | NO | MUL | 0001-01-01 00:00:00 | | -| pid | | int(11) | NO | | 0 | | -| executed | | datetime | NO | | 0001-01-01 00:00:00 | | -| done | set to 1 if done | tinyint(1) | NO | | 0 | | Return to [database documentation](help/database) diff --git a/doc/de/FAQ.md b/doc/de/FAQ.md index a5356cc72..be1605df9 100644 --- a/doc/de/FAQ.md +++ b/doc/de/FAQ.md @@ -193,33 +193,54 @@ Beispiel: Friendica Support ### Gibt es Clients für Friendica? Friendica verwendet eine [Twitter/GNU Social](help/api) kompatible API. -Seit der Version 2021.06 unterstützt Friendica außerdem die Mastodon API. Das bedeutet, dass du jeden Twitter/GNU Social Client verwenden kannst in dem du den API Pfad entsprechend änderst. +Seit der Version 2021.06 unterstützt Friendica außerdem die [Mastodon API](help/API-Mastodon) die mit vielen Mastodon-Clients läuft. -Hier ist eine Liste von Clients bei denen dies möglich ist, bzw. die speziell für Friendica entwickelt werden: +Hier ist eine Liste von Clients, die speziell für Friendica entwickelt werden oder die mit Friendica kompatibel sind: -* Android - * [Friendiqa](https://git.friendi.ca/lubuwest/Friendiqa) (Gibt es im Google Playstore oder als [binary Repository](https://freunde.ma-nic.de/display/3e98eba8185a13c5bdbf3d1539646854) für F-Droid) - * [Fedilab](https://gitlab.com/tom79/mastalab) (Gibt es im F-Droid und dem Google Play Store) - * [DiCa](https://dica.mixi.cool/) (Gibt es bei Google Play) - * AndStatus - * Twidere - * Mustard and Mustard-Mod -* SailfishOS - * [Friendly](https://openrepos.net/content/fabrixxm/friendly#comment-form) - * [Husky](https://husky.fwgs.ru) - * [Subway Tooter](https://github.com/tateisu/SubwayTooter) - * [Tusky](https://tusky.app) - * [twitlatte](https://github.com/moko256/twitlatte) - * [Yuito](https://github.com/accelforce/Yuito) -* Linux - * Hotot - * Choqok -* MacOS X - * Hotot -* Windows - * [Friendica Mobile](https://www.microsoft.com/de-DE/store/p/friendica-mobile/9nblggh0fhmn?rtc=1) für Windows 10 - * Hotot +#### Android + +* [AndStatus](http://andstatus.org) ([F-Droid](https://f-droid.org/repository/browse/?fdid=org.andstatus.app), [Google Play](https://play.google.com/store/apps/details?id=org.andstatus.app)) +* [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma) +* [DiCa](https://dica.mixi.cool/) (Gibt es bei Google Play) +* [Fedi](https://play.google.com/store/apps/details?id=com.fediverse.app) +* [Fedilab](https://fedilab.app) ([F-Droid](https://f-droid.org/app/fr.gouv.etalab.mastodon), [Google Play](https://play.google.com/store/apps/details?id=app.fedilab.android)) +* [Friendiqa](https://git.friendi.ca/lubuwest/Friendiqa) (Gibt es im Google Playstore oder als [binary Repository](https://freunde.ma-nic.de/display/3e98eba8185a13c5bdbf3d1539646854) für F-Droid) +* [Husky](https://husky.fwgs.ru) +* [Roma](https://play.google.com/store/apps/details?id=tech.bigfig.roma) +* [Subway Tooter](https://github.com/tateisu/SubwayTooter) +* [Tooot](https://tooot.app/) +* [Tusky](https://tusky.app) +* [Twidere](https://dimension.im/) ([F-Droid](https://f-droid.org/repository/browse/?fdid=org.mariotaku.twidere), [Google Play](https://play.google.com/store/apps/details?id=com.twidere.twiderex), [GitHub](https://github.com/TwidereProject/Twidere-Android)) +* [twitlatte](https://github.com/moko256/twitlatte) +* [Yuito](https://github.com/accelforce/Yuito) + +#### SailfishOS + +* [Friendly](https://openrepos.net/content/fabrixxm/friendly#comment-form) + +#### iOS + +- [Amaroq](https://github.com/ReticentJohn/Amaroq/tree/master) +- [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma) +- [Fedi](https://apps.apple.com/de/app/fedi-for-pleroma-and-mastodon/id1478806281) +- [Roma](https://apps.apple.com/de/app/roma-for-pleroma-and-mastodon/id1445328699) +- [StarPterano](https://apps.apple.com/de/app/starpterano/id1436972796) +- [Stella](https://apps.apple.com/us/app/stella-for-mastodon-twitter/id921372048?l=ms) +- [Tooot](https://tooot.app/) +- [Tootle](https://apps.apple.com/de/app/tootle-for-mastodon/id1236013466) Der eingegene Hostname muss in Groß-/Kleinschreibung mit dem Hostnamen des Systems übereinstimmen. Die aktuelle Version stürzt bei Benachrichtungen bom Typ "status" ab. + +#### Linux + +* [Choqok](https://choqok.kde.org) +* [Whalebird](https://whalebird.social) +* [TheDesk](https://ja.mstdn.wiki/TheDesk) +* [Toot](https://toot.readthedocs.io/en/latest/) +* [Tootle](https://github.com/bleakgrey/tootle) + +#### Windows + +* [Friendica Mobile](https://www.microsoft.com/de-DE/store/p/friendica-mobile/9nblggh0fhmn?rtc=1) für Windows 10 Admin -------- diff --git a/doc/de/Home.md b/doc/de/Home.md index 6f7e57599..30b796115 100644 --- a/doc/de/Home.md +++ b/doc/de/Home.md @@ -54,7 +54,7 @@ Friendica - Dokumentation und Ressourcen * [Class Autoloading](help/autoloader) (EN) * [Using Composer](help/Composer) (EN) * [Code-Referenz (mit doxygen generiert - setzt Cookies)](doc/html/) -* [Twitter/GNU Social API Functions](help/api) (EN) +* [API Dokumentation](help/api) (EN) * [Translation of Friendica](help/translations) (EN) * [Run tests](help/Tests) (EN) diff --git a/mod/match.php b/mod/match.php index 29d4e086a..fcaf8b529 100644 --- a/mod/match.php +++ b/mod/match.php @@ -66,54 +66,27 @@ function match_content(App $a) $params = []; $tags = trim($profile['pub_keywords'] . ' ' . $profile['prv_keywords']); + if (DI::mode()->isMobile()) { + $limit = DI::pConfig()->get(local_user(), 'system', 'itemspage_mobile_network', + DI::config()->get('system', 'itemspage_network_mobile')); + } else { + $limit = DI::pConfig()->get(local_user(), 'system', 'itemspage_network', + DI::config()->get('system', 'itemspage_network')); + } + $params['s'] = $tags; $params['n'] = 100; - if (strlen(DI::config()->get('system', 'directory'))) { - $host = Search::getGlobalDirectory(); - } else { - $host = DI::baseUrl(); - } - - $msearch_json = DI::httpRequest()->post($host . '/msearch', $params)->getBody(); - - $msearch = json_decode($msearch_json); - - $start = $_GET['start'] ?? 0; $entries = []; - $paginate = ''; - - if (!empty($msearch->results)) { - for ($i = $start;count($entries) < 10 && $i < $msearch->total; $i++) { - $profile = $msearch->results[$i]; - - // Already known contact - if (!$profile || Contact::getIdForURL($profile->url, local_user())) { - continue; - } - - $contact = Contact::getByURLForUser($profile->url, local_user()); - if (!empty($contact)) { - $entries[] = ModuleContact::getContactTemplateVars($contact); - } + foreach ([Search::getGlobalDirectory(), DI::baseUrl()] as $server) { + if (empty($server)) { + continue; } - $data = [ - 'class' => 'pager', - 'first' => [ - 'url' => 'match', - 'text' => DI::l10n()->t('first'), - 'class' => 'previous' . ($start == 0 ? 'disabled' : '') - ], - 'next' => [ - 'url' => 'match?start=' . $i, - 'text' => DI::l10n()->t('next'), - 'class' => 'next' . ($i >= $msearch->total ? ' disabled' : '') - ] - ]; - - $tpl = Renderer::getMarkupTemplate('paginate.tpl'); - $paginate = Renderer::replaceMacros($tpl, ['pager' => $data]); + $msearch = json_decode(DI::httpRequest()->post($server . '/msearch', $params)->getBody()); + if (!empty($msearch)) { + $entries = match_get_contacts($msearch, $entries, $limit); + } } if (empty($entries)) { @@ -123,9 +96,37 @@ function match_content(App $a) $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); $o = Renderer::replaceMacros($tpl, [ '$title' => DI::l10n()->t('Profile Match'), - '$contacts' => $entries, - '$paginate' => $paginate + '$contacts' => array_slice($entries, 0, $limit), ]); return $o; } + +function match_get_contacts($msearch, $entries, $limit) +{ + if (empty($msearch->results)) { + return $entries; + } + + foreach ($msearch->results as $profile) { + if (!$profile) { + continue; + } + + // Already known contact + $contact = Contact::getByURL($profile->url, null, ['rel'], local_user()); + if (!empty($contact) && in_array($contact['rel'], [Contact::FRIEND, Contact::SHARING])) { + continue; + } + + $contact = Contact::getByURLForUser($profile->url, local_user()); + if (!empty($contact)) { + $entries[$contact['id']] = ModuleContact::getContactTemplateVars($contact); + } + + if (count($entries) == $limit) { + break; + } + } + return $entries; +} \ No newline at end of file diff --git a/src/Console/DatabaseStructure.php b/src/Console/DatabaseStructure.php index c6d708eb7..b44400c01 100644 --- a/src/Console/DatabaseStructure.php +++ b/src/Console/DatabaseStructure.php @@ -120,6 +120,7 @@ HELP; $output = ob_get_clean(); break; case "dumpsql": + DBStructure::writeStructure(); ob_start(); DBStructure::printStructure($basePath); $output = ob_get_clean(); diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index 914846590..9af6100a0 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -24,6 +24,7 @@ namespace Friendica\Database; use Exception; use Friendica\Core\Hook; use Friendica\Core\Logger; +use Friendica\Core\Renderer; use Friendica\DI; use Friendica\Model\Item; use Friendica\Model\User; @@ -159,6 +160,110 @@ class DBStructure return DI::l10n()->t('Errors encountered performing database changes: ') . $message . EOL; } + public static function writeStructure() + { + Renderer::registerTemplateEngine('Friendica\Render\FriendicaSmartyEngine'); + + $tables = []; + foreach (self::definition(null) as $name => $definition) { + $indexes = [[ + 'name' => 'Name', + 'fields' => 'Fields', + ], + [ + 'name' => '-', + 'fields' => '-', + ]]; + + $lengths = ['name' => 4, 'fields' => 6]; + foreach ($definition['indexes'] as $key => $value) { + $fieldlist = implode(', ', $value); + $indexes[] = ['name' => $key, 'fields' => $fieldlist]; + $lengths['name'] = max($lengths['name'], strlen($key)); + $lengths['fields'] = max($lengths['fields'], strlen($fieldlist)); + } + + array_walk_recursive($indexes, function(&$value, $key) use ($lengths) + { + $value = str_pad($value, $lengths[$key], $value === '-' ? '-' : ' '); + }); + + $foreign = []; + $fields = [[ + 'name' => 'Field', + 'comment' => 'Description', + 'type' => 'Type', + 'null' => 'Null', + 'primary' => 'Key', + 'default' => 'Default', + 'extra' => 'Extra', + ], + [ + 'name' => '-', + 'comment' => '-', + 'type' => '-', + 'null' => '-', + 'primary' => '-', + 'default' => '-', + 'extra' => '-', + ]]; + $lengths = [ + 'name' => 5, + 'comment' => 11, + 'type' => 4, + 'null' => 4, + 'primary' => 3, + 'default' => 7, + 'extra' => 5, + ]; + foreach ($definition['fields'] as $key => $value) { + $field = []; + $field['name'] = $key; + $field['comment'] = $value['comment'] ?? ''; + $field['type'] = $value['type']; + $field['null'] = ($value['not null'] ?? false) ? 'NO' : 'YES'; + $field['primary'] = ($value['primary'] ?? false) ? 'PRI' : ''; + $field['default'] = $value['default'] ?? 'NULL'; + $field['extra'] = $value['extra'] ?? ''; + + foreach ($field as $fieldname => $fieldvalue) { + $lengths[$fieldname] = max($lengths[$fieldname] ?? 0, strlen($fieldvalue)); + } + $fields[] = $field; + + if (!empty($value['foreign'])) { + $foreign[] = [ + 'field' => $key, + 'targettable' => array_keys($value['foreign'])[0], + 'targetfield' => array_values($value['foreign'])[0] + ]; + } + } + + array_walk_recursive($fields, function(&$value, $key) use ($lengths) + { + $value = str_pad($value, $lengths[$key], $value === '-' ? '-' : ' '); + }); + + $tables[] = ['name' => $name, 'comment' => $definition['comment']]; + $content = Renderer::replaceMacros(Renderer::getMarkupTemplate('structure.tpl'), [ + '$name' => $name, + '$comment' => $definition['comment'], + '$fields' => $fields, + '$indexes' => $indexes, + '$foreign' => $foreign, + ]); + $filename = DI::basePath() . '/doc/database/db_' . $name . '.md'; + file_put_contents($filename, $content); + } + asort($tables); + $content = Renderer::replaceMacros(Renderer::getMarkupTemplate('tables.tpl'), [ + '$tables' => $tables, + ]); + $filename = DI::basePath() . '/doc/database.md'; + file_put_contents($filename, $content); + } + public static function printStructure($basePath) { $database = self::definition($basePath, false); @@ -1206,7 +1311,7 @@ class DBStructure if ($verbose) { echo "Zero contact added\n"; } - } + } } elseif (self::existsTable('contact') && $verbose) { echo "Zero contact already added\n"; } elseif ($verbose) { @@ -1230,7 +1335,7 @@ class DBStructure if (self::existsTable('permissionset')) { if (!DBA::exists('permissionset', ['id' => 0])) { - DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); + DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); $lastid = DBA::lastInsertId(); if ($lastid != 0) { DBA::update('permissionset', ['id' => 0], ['id' => $lastid]); @@ -1265,7 +1370,7 @@ class DBStructure } elseif ($verbose) { echo "permissionset: Table not found\n"; } - + if (!self::existsForeignKeyForField('tokens', 'client_id')) { $tokens = DBA::p("SELECT `tokens`.`id` FROM `tokens` LEFT JOIN `clients` ON `clients`.`client_id` = `tokens`.`client_id` diff --git a/src/Model/Event.php b/src/Model/Event.php index c59baba9c..81e33013f 100644 --- a/src/Model/Event.php +++ b/src/Model/Event.php @@ -586,10 +586,10 @@ class Event $last_date = ''; $fmt = DI::l10n()->t('l, F j'); 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)) { // 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); diff --git a/src/Model/User.php b/src/Model/User.php index 029613b17..a615f96bb 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -391,7 +391,12 @@ class User if (!DBA::exists('user', ['uid' => $uid]) || !$repairMissing) { return false; } - Contact::createSelfFromUserId($uid); + if (!DBA::exists('profile', ['uid' => $uid])) { + DBA::insert('profile', ['uid' => $uid]); + } + if (!DBA::exists('contact', ['uid' => $uid, 'self' => true])) { + Contact::createSelfFromUserId($uid); + } $owner = self::getOwnerDataById($uid, false); } diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php index c12dd7b75..a04b4194d 100644 --- a/src/Module/Admin/Site.php +++ b/src/Module/Admin/Site.php @@ -32,6 +32,7 @@ use Friendica\Model\Contact; use Friendica\Model\User; use Friendica\Module\BaseAdmin; use Friendica\Module\Register; +use Friendica\Protocol\Relay; use Friendica\Util\BasePath; use Friendica\Util\EMailer\MailBuilder; use Friendica\Util\Strings; @@ -208,8 +209,6 @@ class Site extends BaseAdmin $worker_fastlane = !empty($_POST['worker_fastlane']); $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_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'])) : ''); @@ -418,8 +417,6 @@ class Site extends BaseAdmin DI::config()->set('system', 'worker_fastlane' , $worker_fastlane); 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_server_tags', $relay_server_tags); DI::config()->set('system', 'relay_deny_tags' , $relay_deny_tags); @@ -589,6 +586,10 @@ class Site extends BaseAdmin '$performance' => DI::l10n()->t('Performance'), '$worker_title' => DI::l10n()->t('Worker'), '$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_warning' => DI::l10n()->t('Warning! Advanced function. Could make this server unreachable.'), '$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_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_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_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".')], diff --git a/src/Module/WellKnown/XSocialRelay.php b/src/Module/WellKnown/XSocialRelay.php index 6a72a810c..6dcd65c50 100644 --- a/src/Module/WellKnown/XSocialRelay.php +++ b/src/Module/WellKnown/XSocialRelay.php @@ -35,13 +35,7 @@ class XSocialRelay extends BaseModule { $config = DI::config(); - $subscribe = $config->get('system', 'relay_subscribe', false); - - if ($subscribe) { - $scope = $config->get('system', 'relay_scope', SR_SCOPE_ALL); - } else { - $scope = SR_SCOPE_NONE; - } + $scope = $config->get('system', 'relay_scope'); $systemTags = []; $userTags = []; @@ -63,7 +57,7 @@ class XSocialRelay extends BaseModule $tagList = array_unique(array_merge($systemTags, $userTags)); $relay = [ - 'subscribe' => $subscribe, + 'subscribe' => ($scope != SR_SCOPE_NONE), 'scope' => $scope, 'tags' => $tagList, 'protocols' => [ diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index f6fd1ad13..3e6b130a3 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -68,13 +68,9 @@ class Transmitter */ public static function addRelayServerInboxes(array $inboxes = []) { - $contacts = DBA::select('apcontact', ['inbox'], - ["`type` = ? AND `url` IN (SELECT `url` FROM `contact` WHERE `uid` = ? AND `rel` = ?)", - 'Application', 0, Contact::FRIEND]); - while ($contact = DBA::fetch($contacts)) { + foreach (Relay::getList(['inbox']) as $contact) { $inboxes[$contact['inbox']] = $contact['inbox']; } - DBA::close($contacts); return $inboxes; } @@ -92,7 +88,7 @@ class Transmitter return $inboxes; } - $relays = Relay::getList($item_id, [], [Protocol::ACTIVITYPUB]); + $relays = Relay::getDirectRelayList($item_id); if (empty($relays)) { return $inboxes; } diff --git a/src/Protocol/Relay.php b/src/Protocol/Relay.php index d40ba5c33..f89dc3999 100644 --- a/src/Protocol/Relay.php +++ b/src/Protocol/Relay.php @@ -29,7 +29,6 @@ use Friendica\DI; use Friendica\Model\APContact; use Friendica\Model\Contact; use Friendica\Model\GServer; -use Friendica\Model\Item; use Friendica\Model\Post; use Friendica\Model\Search; use Friendica\Model\Tag; @@ -54,12 +53,7 @@ class Relay { $config = DI::config(); - $subscribe = $config->get('system', 'relay_subscribe', false); - if ($subscribe) { - $scope = $config->get('system', 'relay_scope', SR_SCOPE_ALL); - } else { - $scope = SR_SCOPE_NONE; - } + $scope = $config->get('system', 'relay_scope'); if ($scope == SR_SCOPE_NONE) { Logger::info('Server does not accept relay posts - rejected', ['network' => $network, 'url' => $url]); @@ -168,7 +162,7 @@ class Relay return; } - if (DBA::isResult($old)) { + if (DBA::isResult($old)) { $fields['updated'] = DateTimeFormat::utcNow(); 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 - * - * The list contains not only the official relays but also servers that we serve directly + * Return a list of servers that we serve via the direct relay * * @param integer $item_id id of the item that is sent * @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 * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - public static function getList(int $item_id, array $contacts, array $networks) + public static function getDirectRelayList(int $item_id) { $serverlist = []; - // Fetching relay servers - $serverdata = DI::config()->get("system", "relay_server"); - - 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)) { + return []; } - if (DI::config()->get("system", "relay_directly", false)) { - // We distribute our stuff based on the parent to ensure that the thread will be complete - $parent = Post::selectFirst(['uri-id'], ['id' => $item_id]); - if (!DBA::isResult($parent)) { - return; - } + // We distribute our stuff based on the parent to ensure that the thread will be complete + $parent = Post::selectFirst(['uri-id'], ['id' => $item_id]); + if (!DBA::isResult($parent)) { + return []; + } - // Servers that want to get all content - $servers = DBA::select('gserver', ['id', 'url', 'network'], ['relay-subscribe' => true, 'relay-scope' => 'all']); + // Servers that want to get all content + $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)) { $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)) { - $serverlist[$server['id']] = $server; - } - DBA::close($servers); - } } + $contacts = []; + // Now we are collecting all relay contacts foreach ($serverlist as $gserver) { // We don't send messages to ourselves @@ -304,15 +287,24 @@ class Relay if (empty($contact)) { continue; } - - if (in_array($contact['network'], $networks) && !in_array($contact['batch'], array_column($contacts, 'batch'))) { - $contacts[] = $contact; - } } 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 * diff --git a/src/Worker/Notifier.php b/src/Worker/Notifier.php index 550b3a473..e31141ea4 100644 --- a/src/Worker/Notifier.php +++ b/src/Worker/Notifier.php @@ -39,7 +39,6 @@ use Friendica\Protocol\Activity; use Friendica\Protocol\ActivityPub; use Friendica\Protocol\Diaspora; use Friendica\Protocol\OStatus; -use Friendica\Protocol\Relay; use Friendica\Protocol\Salmon; use Friendica\Util\Network; use Friendica\Util\Strings; @@ -442,12 +441,12 @@ class Notifier $batch_delivery = false; if ($public_message && !in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION]) && !$followup) { - $relay_list = []; + $participants = []; if ($diaspora_delivery && !$unlisted) { $batch_delivery = true; - $relay_list_stmt = DBA::p( + $participants_stmt = DBA::p( "SELECT `batch`, `network`, `protocol`, ANY_VALUE(`id`) AS `id`, @@ -466,17 +465,11 @@ class Notifier $owner['uid'], Contact::SHARING ); - $relay_list = DBA::toArray($relay_list_stmt); + $participants = DBA::toArray($participants_stmt); // Fetch the participation list // The function will ensure that there are no duplicates - $relay_list = Diaspora::participantsForThread($target_item, $relay_list); - - // 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]); - } + $participants = Diaspora::participantsForThread($target_item, $participants); } $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)); - $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, []); diff --git a/static/settings.config.php b/static/settings.config.php index c1c7e7bc8..e8c6d09f8 100644 --- a/static/settings.config.php +++ b/static/settings.config.php @@ -164,9 +164,13 @@ return [ // Comma separated list of tags that are rejected. 'relay_deny_tags' => '', - // relay_server (String) - // Address of the relay server where public posts should be send to. - 'relay_server' => 'https://social-relay.isurf.ca', + // relay_directly (Boolean) + // Directly transmit content to relay subscribers without using a relay server + '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) // Comma separated list of tags for the "tags" subscription. diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index 5e9941df4..3a4997842 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 2021.06-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-10 06:29+0000\n" +"POT-Creation-Date: 2021-06-15 17:22+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,26 +18,26 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" -#: include/api.php:1143 +#: include/api.php:1135 #, php-format msgid "Daily posting limit of %d post reached. The post was rejected." msgid_plural "Daily posting limit of %d posts reached. The post was rejected." msgstr[0] "" msgstr[1] "" -#: include/api.php:1157 +#: include/api.php:1149 #, php-format msgid "Weekly posting limit of %d post reached. The post was rejected." msgid_plural "Weekly posting limit of %d posts reached. The post was rejected." msgstr[0] "" msgstr[1] "" -#: include/api.php:1171 +#: include/api.php:1163 #, php-format msgid "Monthly posting limit of %d post reached. The post was rejected." msgstr "" -#: include/api.php:4534 mod/photos.php:107 mod/photos.php:211 +#: include/api.php:4526 mod/photos.php:107 mod/photos.php:211 #: mod/photos.php:639 mod/photos.php:1043 mod/photos.php:1060 #: mod/photos.php:1609 src/Model/User.php:1100 src/Model/User.php:1108 #: src/Model/User.php:1116 src/Module/Settings/Profile/Photo/Crop.php:97 @@ -1366,7 +1366,7 @@ msgstr "" msgid "Basic" msgstr "" -#: mod/events.php:577 src/Module/Admin/Site.php:587 src/Module/Contact.php:961 +#: mod/events.php:577 src/Module/Admin/Site.php:584 src/Module/Contact.php:961 #: src/Module/Profile/Profile.php:245 msgid "Advanced" msgstr "" @@ -1599,19 +1599,11 @@ msgstr "" msgid "No keywords to match. Please add keywords to your profile." msgstr "" -#: mod/match.php:105 src/Content/Pager.php:216 -msgid "first" -msgstr "" - -#: mod/match.php:110 src/Content/Pager.php:276 -msgid "next" -msgstr "" - -#: mod/match.php:120 src/Module/BaseSearch.php:117 +#: mod/match.php:93 src/Module/BaseSearch.php:117 msgid "No matches" msgstr "" -#: mod/match.php:125 +#: mod/match.php:98 msgid "Profile Match" msgstr "" @@ -2183,7 +2175,7 @@ msgstr "" #: mod/settings.php:564 mod/settings.php:662 mod/settings.php:797 #: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:87 -#: src/Module/Admin/Logs/Settings.php:82 src/Module/Admin/Site.php:582 +#: src/Module/Admin/Logs/Settings.php:82 src/Module/Admin/Site.php:579 #: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:66 #: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:189 msgid "Save Settings" @@ -3626,10 +3618,18 @@ msgstr "" msgid "Embedded content" msgstr "" +#: src/Content/Pager.php:216 +msgid "first" +msgstr "" + #: src/Content/Pager.php:221 msgid "prev" msgstr "" +#: src/Content/Pager.php:276 +msgid "next" +msgstr "" + #: src/Content/Pager.php:281 msgid "last" msgstr "" @@ -4489,33 +4489,33 @@ msgstr "" msgid "Done. You can now login with your username and password" msgstr "" -#: src/Database/DBStructure.php:64 +#: src/Database/DBStructure.php:65 #, php-format msgid "The database version had been set to %s." msgstr "" -#: src/Database/DBStructure.php:77 +#: src/Database/DBStructure.php:78 #, php-format msgid "" "The post update is at version %d, it has to be at %d to safely drop the " "tables." msgstr "" -#: src/Database/DBStructure.php:89 +#: src/Database/DBStructure.php:90 msgid "No unused tables found." msgstr "" -#: src/Database/DBStructure.php:94 +#: src/Database/DBStructure.php:95 msgid "" "These tables are not used for friendica and will be deleted when you execute " "\"dbstructure drop -e\":" msgstr "" -#: src/Database/DBStructure.php:132 +#: src/Database/DBStructure.php:133 msgid "There are no tables on MyISAM or InnoDB with the Antelope file format." msgstr "" -#: src/Database/DBStructure.php:156 +#: src/Database/DBStructure.php:157 #, php-format msgid "" "\n" @@ -4523,20 +4523,20 @@ msgid "" "%s\n" msgstr "" -#: src/Database/DBStructure.php:159 +#: src/Database/DBStructure.php:160 msgid "Errors encountered performing database changes: " msgstr "" -#: src/Database/DBStructure.php:445 +#: src/Database/DBStructure.php:550 msgid "Another database update is currently running." msgstr "" -#: src/Database/DBStructure.php:449 +#: src/Database/DBStructure.php:554 #, php-format msgid "%s: Database update" msgstr "" -#: src/Database/DBStructure.php:749 +#: src/Database/DBStructure.php:854 #, php-format msgid "%s: updating %s table." msgstr "" @@ -5234,10 +5234,10 @@ msgstr "" #: src/Module/Admin/Addons/Details.php:111 src/Module/Admin/Addons/Index.php:67 #: src/Module/Admin/Blocklist/Contact.php:78 -#: src/Module/Admin/Blocklist/Server.php:88 src/Module/Admin/Federation.php:141 +#: src/Module/Admin/Blocklist/Server.php:88 src/Module/Admin/Federation.php:159 #: src/Module/Admin/Item/Delete.php:65 src/Module/Admin/Logs/Settings.php:80 #: src/Module/Admin/Logs/View.php:64 src/Module/Admin/Queue.php:72 -#: src/Module/Admin/Site.php:579 src/Module/Admin/Summary.php:232 +#: src/Module/Admin/Site.php:576 src/Module/Admin/Summary.php:232 #: src/Module/Admin/Themes/Details.php:90 src/Module/Admin/Themes/Index.php:111 #: src/Module/Admin/Tos.php:58 src/Module/Admin/Users/Active.php:136 #: src/Module/Admin/Users/Blocked.php:137 src/Module/Admin/Users/Create.php:61 @@ -5567,26 +5567,26 @@ msgstr "" msgid "Manage Additional Features" msgstr "" -#: src/Module/Admin/Federation.php:54 +#: src/Module/Admin/Federation.php:56 msgid "Other" msgstr "" -#: src/Module/Admin/Federation.php:108 src/Module/Admin/Federation.php:268 +#: src/Module/Admin/Federation.php:118 src/Module/Admin/Federation.php:348 msgid "unknown" msgstr "" -#: src/Module/Admin/Federation.php:136 +#: src/Module/Admin/Federation.php:154 msgid "" "This page offers you some numbers to the known part of the federated social " "network your Friendica node is part of. These numbers are not complete but " "only reflect the part of the network your node is aware of." msgstr "" -#: src/Module/Admin/Federation.php:142 src/Module/BaseAdmin.php:87 +#: src/Module/Admin/Federation.php:160 src/Module/BaseAdmin.php:87 msgid "Federation Statistics" msgstr "" -#: src/Module/Admin/Federation.php:146 +#: src/Module/Admin/Federation.php:164 #, php-format msgid "" "Currently this node is aware of %d nodes with %d registered users from the " @@ -5783,275 +5783,289 @@ msgstr "" msgid "Priority" msgstr "" -#: src/Module/Admin/Site.php:69 +#: src/Module/Admin/Site.php:70 msgid "Can not parse base url. Must have at least ://" msgstr "" -#: src/Module/Admin/Site.php:123 +#: src/Module/Admin/Site.php:124 msgid "Relocation started. Could take a while to complete." msgstr "" -#: src/Module/Admin/Site.php:249 +#: src/Module/Admin/Site.php:248 msgid "Invalid storage backend setting value." msgstr "" -#: src/Module/Admin/Site.php:449 src/Module/Settings/Display.php:134 +#: src/Module/Admin/Site.php:446 src/Module/Settings/Display.php:134 msgid "No special theme for mobile devices" msgstr "" -#: src/Module/Admin/Site.php:466 src/Module/Settings/Display.php:144 +#: src/Module/Admin/Site.php:463 src/Module/Settings/Display.php:144 #, php-format msgid "%s - (Experimental)" msgstr "" -#: src/Module/Admin/Site.php:478 +#: src/Module/Admin/Site.php:475 msgid "No community page for local users" msgstr "" -#: src/Module/Admin/Site.php:479 +#: src/Module/Admin/Site.php:476 msgid "No community page" msgstr "" -#: src/Module/Admin/Site.php:480 +#: src/Module/Admin/Site.php:477 msgid "Public postings from users of this site" msgstr "" -#: src/Module/Admin/Site.php:481 +#: src/Module/Admin/Site.php:478 msgid "Public postings from the federated network" msgstr "" -#: src/Module/Admin/Site.php:482 +#: src/Module/Admin/Site.php:479 msgid "Public postings from local users and the federated network" msgstr "" -#: src/Module/Admin/Site.php:488 +#: src/Module/Admin/Site.php:485 msgid "Multi user instance" msgstr "" -#: src/Module/Admin/Site.php:516 +#: src/Module/Admin/Site.php:513 msgid "Closed" msgstr "" -#: src/Module/Admin/Site.php:517 +#: src/Module/Admin/Site.php:514 msgid "Requires approval" msgstr "" -#: src/Module/Admin/Site.php:518 +#: src/Module/Admin/Site.php:515 msgid "Open" msgstr "" -#: src/Module/Admin/Site.php:522 src/Module/Install.php:215 +#: src/Module/Admin/Site.php:519 src/Module/Install.php:215 msgid "No SSL policy, links will track page SSL state" msgstr "" -#: src/Module/Admin/Site.php:523 src/Module/Install.php:216 +#: src/Module/Admin/Site.php:520 src/Module/Install.php:216 msgid "Force all links to use SSL" msgstr "" -#: src/Module/Admin/Site.php:524 src/Module/Install.php:217 +#: src/Module/Admin/Site.php:521 src/Module/Install.php:217 msgid "Self-signed certificate, use SSL for local links only (discouraged)" msgstr "" -#: src/Module/Admin/Site.php:528 +#: src/Module/Admin/Site.php:525 msgid "Don't check" msgstr "" -#: src/Module/Admin/Site.php:529 +#: src/Module/Admin/Site.php:526 msgid "check the stable version" msgstr "" -#: src/Module/Admin/Site.php:530 +#: src/Module/Admin/Site.php:527 msgid "check the development version" msgstr "" -#: src/Module/Admin/Site.php:534 +#: src/Module/Admin/Site.php:531 msgid "none" msgstr "" -#: src/Module/Admin/Site.php:535 +#: src/Module/Admin/Site.php:532 msgid "Local contacts" msgstr "" -#: src/Module/Admin/Site.php:536 +#: src/Module/Admin/Site.php:533 msgid "Interactors" msgstr "" -#: src/Module/Admin/Site.php:549 +#: src/Module/Admin/Site.php:546 msgid "Database (legacy)" msgstr "" -#: src/Module/Admin/Site.php:580 src/Module/BaseAdmin.php:90 +#: src/Module/Admin/Site.php:577 src/Module/BaseAdmin.php:90 msgid "Site" msgstr "" -#: src/Module/Admin/Site.php:581 +#: src/Module/Admin/Site.php:578 msgid "General Information" msgstr "" -#: src/Module/Admin/Site.php:583 +#: src/Module/Admin/Site.php:580 msgid "Republish users to directory" msgstr "" -#: src/Module/Admin/Site.php:584 src/Module/Register.php:139 +#: src/Module/Admin/Site.php:581 src/Module/Register.php:139 msgid "Registration" msgstr "" -#: src/Module/Admin/Site.php:585 +#: src/Module/Admin/Site.php:582 msgid "File upload" msgstr "" -#: src/Module/Admin/Site.php:586 +#: src/Module/Admin/Site.php:583 msgid "Policies" msgstr "" -#: src/Module/Admin/Site.php:588 +#: src/Module/Admin/Site.php:585 msgid "Auto Discovered Contact Directory" msgstr "" -#: src/Module/Admin/Site.php:589 +#: src/Module/Admin/Site.php:586 msgid "Performance" msgstr "" -#: src/Module/Admin/Site.php:590 +#: src/Module/Admin/Site.php:587 msgid "Worker" msgstr "" -#: src/Module/Admin/Site.php:591 +#: src/Module/Admin/Site.php:588 msgid "Message Relay" msgstr "" -#: src/Module/Admin/Site.php:592 -msgid "Relocate Instance" +#: src/Module/Admin/Site.php:589 +msgid "" +"Use the command \"console relay\" in the command line to add or remove " +"relays." +msgstr "" + +#: src/Module/Admin/Site.php:590 +msgid "The system is not subscribed to any relays at the moment." +msgstr "" + +#: src/Module/Admin/Site.php:591 +msgid "The system is currently subscribed to the following relays:" msgstr "" #: src/Module/Admin/Site.php:593 +msgid "Relocate Instance" +msgstr "" + +#: src/Module/Admin/Site.php:594 msgid "" "Warning! Advanced function. Could make this server " "unreachable." msgstr "" -#: src/Module/Admin/Site.php:597 +#: src/Module/Admin/Site.php:598 msgid "Site name" msgstr "" -#: src/Module/Admin/Site.php:598 +#: src/Module/Admin/Site.php:599 msgid "Sender Email" msgstr "" -#: src/Module/Admin/Site.php:598 +#: src/Module/Admin/Site.php:599 msgid "" "The email address your server shall use to send notification emails from." msgstr "" -#: src/Module/Admin/Site.php:599 +#: src/Module/Admin/Site.php:600 msgid "Name of the system actor" msgstr "" -#: src/Module/Admin/Site.php:599 +#: src/Module/Admin/Site.php:600 msgid "" "Name of the internal system account that is used to perform ActivityPub " "requests. This must be an unused username. If set, this can't be changed " "again." msgstr "" -#: src/Module/Admin/Site.php:600 +#: src/Module/Admin/Site.php:601 msgid "Banner/Logo" msgstr "" -#: src/Module/Admin/Site.php:601 +#: src/Module/Admin/Site.php:602 msgid "Email Banner/Logo" msgstr "" -#: src/Module/Admin/Site.php:602 +#: src/Module/Admin/Site.php:603 msgid "Shortcut icon" msgstr "" -#: src/Module/Admin/Site.php:602 +#: src/Module/Admin/Site.php:603 msgid "Link to an icon that will be used for browsers." msgstr "" -#: src/Module/Admin/Site.php:603 +#: src/Module/Admin/Site.php:604 msgid "Touch icon" msgstr "" -#: src/Module/Admin/Site.php:603 +#: src/Module/Admin/Site.php:604 msgid "Link to an icon that will be used for tablets and mobiles." msgstr "" -#: src/Module/Admin/Site.php:604 +#: src/Module/Admin/Site.php:605 msgid "Additional Info" msgstr "" -#: src/Module/Admin/Site.php:604 +#: src/Module/Admin/Site.php:605 #, php-format msgid "" "For public servers: you can add additional information here that will be " "listed at %s/servers." msgstr "" -#: src/Module/Admin/Site.php:605 +#: src/Module/Admin/Site.php:606 msgid "System language" msgstr "" -#: src/Module/Admin/Site.php:606 +#: src/Module/Admin/Site.php:607 msgid "System theme" msgstr "" -#: src/Module/Admin/Site.php:606 +#: src/Module/Admin/Site.php:607 msgid "" "Default system theme - may be over-ridden by user profiles - Change default theme settings" msgstr "" -#: src/Module/Admin/Site.php:607 +#: src/Module/Admin/Site.php:608 msgid "Mobile system theme" msgstr "" -#: src/Module/Admin/Site.php:607 +#: src/Module/Admin/Site.php:608 msgid "Theme for mobile devices" msgstr "" -#: src/Module/Admin/Site.php:608 src/Module/Install.php:225 +#: src/Module/Admin/Site.php:609 src/Module/Install.php:225 msgid "SSL link policy" msgstr "" -#: src/Module/Admin/Site.php:608 src/Module/Install.php:227 +#: src/Module/Admin/Site.php:609 src/Module/Install.php:227 msgid "Determines whether generated links should be forced to use SSL" msgstr "" -#: src/Module/Admin/Site.php:609 +#: src/Module/Admin/Site.php:610 msgid "Force SSL" msgstr "" -#: src/Module/Admin/Site.php:609 +#: src/Module/Admin/Site.php:610 msgid "" "Force all Non-SSL requests to SSL - Attention: on some systems it could lead " "to endless loops." msgstr "" -#: src/Module/Admin/Site.php:610 +#: src/Module/Admin/Site.php:611 msgid "Hide help entry from navigation menu" msgstr "" -#: src/Module/Admin/Site.php:610 +#: src/Module/Admin/Site.php:611 msgid "" "Hides the menu entry for the Help pages from the navigation menu. You can " "still access it calling /help directly." msgstr "" -#: src/Module/Admin/Site.php:611 +#: src/Module/Admin/Site.php:612 msgid "Single user instance" msgstr "" -#: src/Module/Admin/Site.php:611 +#: src/Module/Admin/Site.php:612 msgid "Make this instance multi-user or single-user for the named user" msgstr "" -#: src/Module/Admin/Site.php:613 +#: src/Module/Admin/Site.php:614 msgid "File storage backend" msgstr "" -#: src/Module/Admin/Site.php:613 +#: src/Module/Admin/Site.php:614 msgid "" "The backend used to store uploaded data. If you change the storage backend, " "you can manually move the existing files. If you do not do so, the files " @@ -6060,202 +6074,202 @@ msgid "" "for more information about the choices and the moving procedure." msgstr "" -#: src/Module/Admin/Site.php:615 +#: src/Module/Admin/Site.php:616 msgid "Maximum image size" msgstr "" -#: src/Module/Admin/Site.php:615 +#: src/Module/Admin/Site.php:616 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "" -#: src/Module/Admin/Site.php:616 +#: src/Module/Admin/Site.php:617 msgid "Maximum image length" msgstr "" -#: src/Module/Admin/Site.php:616 +#: src/Module/Admin/Site.php:617 msgid "" "Maximum length in pixels of the longest side of uploaded images. Default is " "-1, which means no limits." msgstr "" -#: src/Module/Admin/Site.php:617 +#: src/Module/Admin/Site.php:618 msgid "JPEG image quality" msgstr "" -#: src/Module/Admin/Site.php:617 +#: src/Module/Admin/Site.php:618 msgid "" "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " "100, which is full quality." msgstr "" -#: src/Module/Admin/Site.php:619 +#: src/Module/Admin/Site.php:620 msgid "Register policy" msgstr "" -#: src/Module/Admin/Site.php:620 +#: src/Module/Admin/Site.php:621 msgid "Maximum Daily Registrations" msgstr "" -#: src/Module/Admin/Site.php:620 +#: src/Module/Admin/Site.php:621 msgid "" "If registration is permitted above, this sets the maximum number of new user " "registrations to accept per day. If register is set to closed, this setting " "has no effect." msgstr "" -#: src/Module/Admin/Site.php:621 +#: src/Module/Admin/Site.php:622 msgid "Register text" msgstr "" -#: src/Module/Admin/Site.php:621 +#: src/Module/Admin/Site.php:622 msgid "" "Will be displayed prominently on the registration page. You can use BBCode " "here." msgstr "" -#: src/Module/Admin/Site.php:622 +#: src/Module/Admin/Site.php:623 msgid "Forbidden Nicknames" msgstr "" -#: src/Module/Admin/Site.php:622 +#: src/Module/Admin/Site.php:623 msgid "" "Comma separated list of nicknames that are forbidden from registration. " "Preset is a list of role names according RFC 2142." msgstr "" -#: src/Module/Admin/Site.php:623 +#: src/Module/Admin/Site.php:624 msgid "Accounts abandoned after x days" msgstr "" -#: src/Module/Admin/Site.php:623 +#: src/Module/Admin/Site.php:624 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "" -#: src/Module/Admin/Site.php:624 +#: src/Module/Admin/Site.php:625 msgid "Allowed friend domains" msgstr "" -#: src/Module/Admin/Site.php:624 +#: src/Module/Admin/Site.php:625 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "" -#: src/Module/Admin/Site.php:625 +#: src/Module/Admin/Site.php:626 msgid "Allowed email domains" msgstr "" -#: src/Module/Admin/Site.php:625 +#: src/Module/Admin/Site.php:626 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "" -#: src/Module/Admin/Site.php:626 +#: src/Module/Admin/Site.php:627 msgid "No OEmbed rich content" msgstr "" -#: src/Module/Admin/Site.php:626 +#: src/Module/Admin/Site.php:627 msgid "" "Don't show the rich content (e.g. embedded PDF), except from the domains " "listed below." msgstr "" -#: src/Module/Admin/Site.php:627 +#: src/Module/Admin/Site.php:628 msgid "Trusted third-party domains" msgstr "" -#: src/Module/Admin/Site.php:627 +#: src/Module/Admin/Site.php:628 msgid "" "Comma separated list of domains from which content is allowed to be embedded " "in posts like with OEmbed. All sub-domains of the listed domains are allowed " "as well." msgstr "" -#: src/Module/Admin/Site.php:628 +#: src/Module/Admin/Site.php:629 msgid "Block public" msgstr "" -#: src/Module/Admin/Site.php:628 +#: src/Module/Admin/Site.php:629 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "" -#: src/Module/Admin/Site.php:629 +#: src/Module/Admin/Site.php:630 msgid "Force publish" msgstr "" -#: src/Module/Admin/Site.php:629 +#: src/Module/Admin/Site.php:630 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "" -#: src/Module/Admin/Site.php:629 +#: src/Module/Admin/Site.php:630 msgid "Enabling this may violate privacy laws like the GDPR" msgstr "" -#: src/Module/Admin/Site.php:630 +#: src/Module/Admin/Site.php:631 msgid "Global directory URL" msgstr "" -#: src/Module/Admin/Site.php:630 +#: src/Module/Admin/Site.php:631 msgid "" "URL to the global directory. If this is not set, the global directory is " "completely unavailable to the application." msgstr "" -#: src/Module/Admin/Site.php:631 +#: src/Module/Admin/Site.php:632 msgid "Private posts by default for new users" msgstr "" -#: src/Module/Admin/Site.php:631 +#: src/Module/Admin/Site.php:632 msgid "" "Set default post permissions for all new members to the default privacy " "group rather than public." msgstr "" -#: src/Module/Admin/Site.php:632 +#: src/Module/Admin/Site.php:633 msgid "Don't include post content in email notifications" msgstr "" -#: src/Module/Admin/Site.php:632 +#: src/Module/Admin/Site.php:633 msgid "" "Don't include the content of a post/comment/private message/etc. in the " "email notifications that are sent out from this site, as a privacy measure." msgstr "" -#: src/Module/Admin/Site.php:633 +#: src/Module/Admin/Site.php:634 msgid "Disallow public access to addons listed in the apps menu." msgstr "" -#: src/Module/Admin/Site.php:633 +#: src/Module/Admin/Site.php:634 msgid "" "Checking this box will restrict addons listed in the apps menu to members " "only." msgstr "" -#: src/Module/Admin/Site.php:634 +#: src/Module/Admin/Site.php:635 msgid "Don't embed private images in posts" msgstr "" -#: src/Module/Admin/Site.php:634 +#: src/Module/Admin/Site.php:635 msgid "" "Don't replace locally-hosted private photos in posts with an embedded copy " "of the image. This means that contacts who receive posts containing private " "photos will have to authenticate and load each image, which may take a while." msgstr "" -#: src/Module/Admin/Site.php:635 +#: src/Module/Admin/Site.php:636 msgid "Explicit Content" msgstr "" -#: src/Module/Admin/Site.php:635 +#: src/Module/Admin/Site.php:636 msgid "" "Set this to announce that your node is used mostly for explicit content that " "might not be suited for minors. This information will be published in the " @@ -6264,234 +6278,234 @@ msgid "" "will be shown at the user registration page." msgstr "" -#: src/Module/Admin/Site.php:636 +#: src/Module/Admin/Site.php:637 msgid "Allow Users to set remote_self" msgstr "" -#: src/Module/Admin/Site.php:636 +#: src/Module/Admin/Site.php:637 msgid "" "With checking this, every user is allowed to mark every contact as a " "remote_self in the repair contact dialog. Setting this flag on a contact " "causes mirroring every posting of that contact in the users stream." msgstr "" -#: src/Module/Admin/Site.php:637 +#: src/Module/Admin/Site.php:638 msgid "Block multiple registrations" msgstr "" -#: src/Module/Admin/Site.php:637 +#: src/Module/Admin/Site.php:638 msgid "Disallow users to register additional accounts for use as pages." msgstr "" -#: src/Module/Admin/Site.php:638 +#: src/Module/Admin/Site.php:639 msgid "Disable OpenID" msgstr "" -#: src/Module/Admin/Site.php:638 +#: src/Module/Admin/Site.php:639 msgid "Disable OpenID support for registration and logins." msgstr "" -#: src/Module/Admin/Site.php:639 +#: src/Module/Admin/Site.php:640 msgid "No Fullname check" msgstr "" -#: src/Module/Admin/Site.php:639 +#: src/Module/Admin/Site.php:640 msgid "" "Allow users to register without a space between the first name and the last " "name in their full name." msgstr "" -#: src/Module/Admin/Site.php:640 +#: src/Module/Admin/Site.php:641 msgid "Community pages for visitors" msgstr "" -#: src/Module/Admin/Site.php:640 +#: src/Module/Admin/Site.php:641 msgid "" "Which community pages should be available for visitors. Local users always " "see both pages." msgstr "" -#: src/Module/Admin/Site.php:641 +#: src/Module/Admin/Site.php:642 msgid "Posts per user on community page" msgstr "" -#: src/Module/Admin/Site.php:641 +#: src/Module/Admin/Site.php:642 msgid "" "The maximum number of posts per user on the community page. (Not valid for " "\"Global Community\")" msgstr "" -#: src/Module/Admin/Site.php:642 +#: src/Module/Admin/Site.php:643 msgid "Disable OStatus support" msgstr "" -#: src/Module/Admin/Site.php:642 +#: src/Module/Admin/Site.php:643 msgid "" "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " "communications in OStatus are public, so privacy warnings will be " "occasionally displayed." msgstr "" -#: src/Module/Admin/Site.php:643 +#: src/Module/Admin/Site.php:644 msgid "OStatus support can only be enabled if threading is enabled." msgstr "" -#: src/Module/Admin/Site.php:645 +#: src/Module/Admin/Site.php:646 msgid "" "Diaspora support can't be enabled because Friendica was installed into a sub " "directory." msgstr "" -#: src/Module/Admin/Site.php:646 +#: src/Module/Admin/Site.php:647 msgid "Enable Diaspora support" msgstr "" -#: src/Module/Admin/Site.php:646 +#: src/Module/Admin/Site.php:647 msgid "Provide built-in Diaspora network compatibility." msgstr "" -#: src/Module/Admin/Site.php:647 +#: src/Module/Admin/Site.php:648 msgid "Only allow Friendica contacts" msgstr "" -#: src/Module/Admin/Site.php:647 +#: src/Module/Admin/Site.php:648 msgid "" "All contacts must use Friendica protocols. All other built-in communication " "protocols disabled." msgstr "" -#: src/Module/Admin/Site.php:648 +#: src/Module/Admin/Site.php:649 msgid "Verify SSL" msgstr "" -#: src/Module/Admin/Site.php:648 +#: src/Module/Admin/Site.php:649 msgid "" "If you wish, you can turn on strict certificate checking. This will mean you " "cannot connect (at all) to self-signed SSL sites." msgstr "" -#: src/Module/Admin/Site.php:649 +#: src/Module/Admin/Site.php:650 msgid "Proxy user" msgstr "" -#: src/Module/Admin/Site.php:650 +#: src/Module/Admin/Site.php:651 msgid "Proxy URL" msgstr "" -#: src/Module/Admin/Site.php:651 +#: src/Module/Admin/Site.php:652 msgid "Network timeout" msgstr "" -#: src/Module/Admin/Site.php:651 +#: src/Module/Admin/Site.php:652 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "" -#: src/Module/Admin/Site.php:652 +#: src/Module/Admin/Site.php:653 msgid "Maximum Load Average" msgstr "" -#: src/Module/Admin/Site.php:652 +#: src/Module/Admin/Site.php:653 #, php-format msgid "" "Maximum system load before delivery and poll processes are deferred - " "default %d." msgstr "" -#: src/Module/Admin/Site.php:653 +#: src/Module/Admin/Site.php:654 msgid "Maximum Load Average (Frontend)" msgstr "" -#: src/Module/Admin/Site.php:653 +#: src/Module/Admin/Site.php:654 msgid "Maximum system load before the frontend quits service - default 50." msgstr "" -#: src/Module/Admin/Site.php:654 +#: src/Module/Admin/Site.php:655 msgid "Minimal Memory" msgstr "" -#: src/Module/Admin/Site.php:654 +#: src/Module/Admin/Site.php:655 msgid "" "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " "default 0 (deactivated)." msgstr "" -#: src/Module/Admin/Site.php:655 +#: src/Module/Admin/Site.php:656 msgid "Periodically optimize tables" msgstr "" -#: src/Module/Admin/Site.php:655 +#: src/Module/Admin/Site.php:656 msgid "Periodically optimize tables like the cache and the workerqueue" msgstr "" -#: src/Module/Admin/Site.php:657 +#: src/Module/Admin/Site.php:658 msgid "Discover followers/followings from contacts" msgstr "" -#: src/Module/Admin/Site.php:657 +#: src/Module/Admin/Site.php:658 msgid "" "If enabled, contacts are checked for their followers and following contacts." msgstr "" -#: src/Module/Admin/Site.php:658 +#: src/Module/Admin/Site.php:659 msgid "None - deactivated" msgstr "" -#: src/Module/Admin/Site.php:659 +#: src/Module/Admin/Site.php:660 msgid "" "Local contacts - contacts of our local contacts are discovered for their " "followers/followings." msgstr "" -#: src/Module/Admin/Site.php:660 +#: src/Module/Admin/Site.php:661 msgid "" "Interactors - contacts of our local contacts and contacts who interacted on " "locally visible postings are discovered for their followers/followings." msgstr "" -#: src/Module/Admin/Site.php:662 +#: src/Module/Admin/Site.php:663 msgid "Synchronize the contacts with the directory server" msgstr "" -#: src/Module/Admin/Site.php:662 +#: src/Module/Admin/Site.php:663 msgid "" "if enabled, the system will check periodically for new contacts on the " "defined directory server." msgstr "" -#: src/Module/Admin/Site.php:664 +#: src/Module/Admin/Site.php:665 msgid "Days between requery" msgstr "" -#: src/Module/Admin/Site.php:664 +#: src/Module/Admin/Site.php:665 msgid "Number of days after which a server is requeried for his contacts." msgstr "" -#: src/Module/Admin/Site.php:665 +#: src/Module/Admin/Site.php:666 msgid "Discover contacts from other servers" msgstr "" -#: src/Module/Admin/Site.php:665 +#: src/Module/Admin/Site.php:666 msgid "" "Periodically query other servers for contacts. The system queries Friendica, " "Mastodon and Hubzilla servers." msgstr "" -#: src/Module/Admin/Site.php:666 +#: src/Module/Admin/Site.php:667 msgid "Search the local directory" msgstr "" -#: src/Module/Admin/Site.php:666 +#: src/Module/Admin/Site.php:667 msgid "" "Search the local directory instead of the global directory. When searching " "locally, every search will be executed on the global directory in the " "background. This improves the search results when the search is repeated." msgstr "" -#: src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:669 msgid "Publish server information" msgstr "" -#: src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:669 msgid "" "If enabled, general server and usage data will be published. The data " "contains the name and version of the server, number of users with public " @@ -6499,50 +6513,50 @@ msgid "" "href=\"http://the-federation.info/\">the-federation.info for details." msgstr "" -#: src/Module/Admin/Site.php:670 +#: src/Module/Admin/Site.php:671 msgid "Check upstream version" msgstr "" -#: src/Module/Admin/Site.php:670 +#: src/Module/Admin/Site.php:671 msgid "" "Enables checking for new Friendica versions at github. If there is a new " "version, you will be informed in the admin panel overview." msgstr "" -#: src/Module/Admin/Site.php:671 +#: src/Module/Admin/Site.php:672 msgid "Suppress Tags" msgstr "" -#: src/Module/Admin/Site.php:671 +#: src/Module/Admin/Site.php:672 msgid "Suppress showing a list of hashtags at the end of the posting." msgstr "" -#: src/Module/Admin/Site.php:672 +#: src/Module/Admin/Site.php:673 msgid "Clean database" msgstr "" -#: src/Module/Admin/Site.php:672 +#: src/Module/Admin/Site.php:673 msgid "" "Remove old remote items, orphaned database records and old content from some " "other helper tables." msgstr "" -#: src/Module/Admin/Site.php:673 +#: src/Module/Admin/Site.php:674 msgid "Lifespan of remote items" msgstr "" -#: src/Module/Admin/Site.php:673 +#: src/Module/Admin/Site.php:674 msgid "" "When the database cleanup is enabled, this defines the days after which " "remote items will be deleted. Own items, and marked or filed items are " "always kept. 0 disables this behaviour." msgstr "" -#: src/Module/Admin/Site.php:674 +#: src/Module/Admin/Site.php:675 msgid "Lifespan of unclaimed items" msgstr "" -#: src/Module/Admin/Site.php:674 +#: src/Module/Admin/Site.php:675 msgid "" "When the database cleanup is enabled, this defines the days after which " "unclaimed remote items (mostly content from the relay) will be deleted. " @@ -6550,206 +6564,184 @@ msgid "" "items if set to 0." msgstr "" -#: src/Module/Admin/Site.php:675 +#: src/Module/Admin/Site.php:676 msgid "Lifespan of raw conversation data" msgstr "" -#: src/Module/Admin/Site.php:675 +#: src/Module/Admin/Site.php:676 msgid "" "The conversation data is used for ActivityPub and OStatus, as well as for " "debug purposes. It should be safe to remove it after 14 days, default is 90 " "days." msgstr "" -#: src/Module/Admin/Site.php:676 +#: src/Module/Admin/Site.php:677 msgid "Path to item cache" msgstr "" -#: src/Module/Admin/Site.php:676 +#: src/Module/Admin/Site.php:677 msgid "The item caches buffers generated bbcode and external images." msgstr "" -#: src/Module/Admin/Site.php:677 +#: src/Module/Admin/Site.php:678 msgid "Cache duration in seconds" msgstr "" -#: src/Module/Admin/Site.php:677 +#: src/Module/Admin/Site.php:678 msgid "" "How long should the cache files be hold? Default value is 86400 seconds (One " "day). To disable the item cache, set the value to -1." msgstr "" -#: src/Module/Admin/Site.php:678 +#: src/Module/Admin/Site.php:679 msgid "Maximum numbers of comments per post" msgstr "" -#: src/Module/Admin/Site.php:678 +#: src/Module/Admin/Site.php:679 msgid "How much comments should be shown for each post? Default value is 100." msgstr "" -#: src/Module/Admin/Site.php:679 +#: src/Module/Admin/Site.php:680 msgid "Maximum numbers of comments per post on the display page" msgstr "" -#: src/Module/Admin/Site.php:679 +#: src/Module/Admin/Site.php:680 msgid "" "How many comments should be shown on the single view for each post? Default " "value is 1000." msgstr "" -#: src/Module/Admin/Site.php:680 +#: src/Module/Admin/Site.php:681 msgid "Temp path" msgstr "" -#: src/Module/Admin/Site.php:680 +#: src/Module/Admin/Site.php:681 msgid "" "If you have a restricted system where the webserver can't access the system " "temp path, enter another path here." msgstr "" -#: src/Module/Admin/Site.php:681 +#: src/Module/Admin/Site.php:682 msgid "Disable picture proxy" msgstr "" -#: src/Module/Admin/Site.php:681 +#: src/Module/Admin/Site.php:682 msgid "" "The picture proxy increases performance and privacy. It shouldn't be used on " "systems with very low bandwidth." msgstr "" -#: src/Module/Admin/Site.php:682 +#: src/Module/Admin/Site.php:683 msgid "Only search in tags" msgstr "" -#: src/Module/Admin/Site.php:682 +#: src/Module/Admin/Site.php:683 msgid "On large systems the text search can slow down the system extremely." msgstr "" -#: src/Module/Admin/Site.php:684 +#: src/Module/Admin/Site.php:685 msgid "New base url" msgstr "" -#: src/Module/Admin/Site.php:684 +#: src/Module/Admin/Site.php:685 msgid "" "Change base url for this server. Sends relocate message to all Friendica and " "Diaspora* contacts of all users." msgstr "" -#: src/Module/Admin/Site.php:686 +#: src/Module/Admin/Site.php:687 msgid "RINO Encryption" msgstr "" -#: src/Module/Admin/Site.php:686 +#: src/Module/Admin/Site.php:687 msgid "Encryption layer between nodes." msgstr "" -#: src/Module/Admin/Site.php:686 src/Module/Admin/Site.php:694 +#: src/Module/Admin/Site.php:687 src/Module/Admin/Site.php:693 #: src/Module/Contact.php:562 src/Module/Settings/TwoFactor/Index.php:118 msgid "Disabled" msgstr "" -#: src/Module/Admin/Site.php:686 +#: src/Module/Admin/Site.php:687 msgid "Enabled" msgstr "" -#: src/Module/Admin/Site.php:688 +#: src/Module/Admin/Site.php:689 msgid "Maximum number of parallel workers" msgstr "" -#: src/Module/Admin/Site.php:688 +#: src/Module/Admin/Site.php:689 #, php-format msgid "" "On shared hosters set this to %d. On larger systems, values of %d are great. " "Default value is %d." msgstr "" -#: src/Module/Admin/Site.php:689 +#: src/Module/Admin/Site.php:690 msgid "Enable fastlane" msgstr "" -#: src/Module/Admin/Site.php:689 +#: src/Module/Admin/Site.php:690 msgid "" "When enabed, the fastlane mechanism starts an additional worker if processes " "with higher priority are blocked by processes of lower priority." msgstr "" -#: src/Module/Admin/Site.php:691 -msgid "Use relay servers" -msgstr "" - -#: src/Module/Admin/Site.php:691 -msgid "" -"Enables the receiving of public posts from relay servers. They will be " -"included in the search, subscribed tags and on the global community page." -msgstr "" - #: src/Module/Admin/Site.php:692 -msgid "\"Social Relay\" server" -msgstr "" - -#: src/Module/Admin/Site.php:692 -#, php-format -msgid "" -"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." -msgstr "" - -#: src/Module/Admin/Site.php:693 msgid "Direct relay transfer" msgstr "" -#: src/Module/Admin/Site.php:693 +#: src/Module/Admin/Site.php:692 msgid "" "Enables the direct transfer to other servers without using the relay servers" msgstr "" -#: src/Module/Admin/Site.php:694 +#: src/Module/Admin/Site.php:693 msgid "Relay scope" msgstr "" -#: src/Module/Admin/Site.php:694 +#: src/Module/Admin/Site.php:693 msgid "" "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." msgstr "" -#: src/Module/Admin/Site.php:694 +#: src/Module/Admin/Site.php:693 msgid "all" msgstr "" -#: src/Module/Admin/Site.php:694 +#: src/Module/Admin/Site.php:693 msgid "tags" msgstr "" -#: src/Module/Admin/Site.php:695 +#: src/Module/Admin/Site.php:694 msgid "Server tags" msgstr "" -#: src/Module/Admin/Site.php:695 +#: src/Module/Admin/Site.php:694 msgid "Comma separated list of tags for the \"tags\" subscription." msgstr "" -#: src/Module/Admin/Site.php:696 +#: src/Module/Admin/Site.php:695 msgid "Deny Server tags" msgstr "" -#: src/Module/Admin/Site.php:696 +#: src/Module/Admin/Site.php:695 msgid "Comma separated list of tags that are rejected." msgstr "" -#: src/Module/Admin/Site.php:697 +#: src/Module/Admin/Site.php:696 msgid "Allow user tags" msgstr "" -#: src/Module/Admin/Site.php:697 +#: src/Module/Admin/Site.php:696 msgid "" "If enabled, the tags from the saved searches will used for the \"tags\" " "subscription in addition to the \"relay_server_tags\"." msgstr "" -#: src/Module/Admin/Site.php:700 +#: src/Module/Admin/Site.php:699 msgid "Start Relocation" msgstr "" @@ -8881,15 +8873,15 @@ msgstr "" msgid "Show all" msgstr "" -#: src/Module/OAuth/Authorize.php:53 +#: src/Module/OAuth/Authorize.php:54 msgid "Unsupported or missing response type" msgstr "" -#: src/Module/OAuth/Authorize.php:58 src/Module/OAuth/Token.php:58 +#: src/Module/OAuth/Authorize.php:59 src/Module/OAuth/Token.php:58 msgid "Incomplete request data" msgstr "" -#: src/Module/OAuth/Authorize.php:108 +#: src/Module/OAuth/Authorize.php:106 #, php-format msgid "" "Please copy the following authentication code into your application and " diff --git a/view/templates/admin/site.tpl b/view/templates/admin/site.tpl index c44553d6d..75d9437d7 100644 --- a/view/templates/admin/site.tpl +++ b/view/templates/admin/site.tpl @@ -127,13 +127,22 @@

{{$relay_title}}

- {{include file="field_checkbox.tpl" field=$relay_subscribe}} - {{include file="field_input.tpl" field=$relay_server}} - {{include file="field_checkbox.tpl" field=$relay_directly}} + {{if $relay_list}} +

{{$relay_list_title}}

+
    + {{foreach $relay_list as $relay}} +
  • {{$relay.url}}
  • + {{/foreach}} +
+ {{else}} +

{{$no_relay_list}}

+ {{/if}} +

{{$relay_description}}

{{include file="field_select.tpl" field=$relay_scope}} {{include file="field_input.tpl" field=$relay_server_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_directly}}
diff --git a/view/templates/structure.tpl b/view/templates/structure.tpl new file mode 100644 index 000000000..f6a647b79 --- /dev/null +++ b/view/templates/structure.tpl @@ -0,0 +1,31 @@ +Table {{$name nofilter}} +=========== + +{{$comment nofilter}} + +Fields +------ + +{{foreach $fields as $field}} +| {{$field.name nofilter}} | {{$field.comment nofilter}} | {{$field.type nofilter}} | {{$field.null nofilter}} | {{$field.primary nofilter}} | {{$field.default nofilter}} | {{$field.extra nofilter}} | +{{/foreach}} + +Indexes +------------ + +{{foreach $indexes as $index}} +| {{$index.name nofilter}} | {{$index.fields nofilter}} | +{{/foreach}} + +{{if $foreign}} +Foreign Keys +------------ + +| Field | Target Table | Target Field | +|-------|--------------|--------------| +{{foreach $foreign as $key}} +| {{$key.field nofilter}} | [{{$key.targettable nofilter}}](help/database/db_{{$key.targettable nofilter}}) | {{$key.targetfield nofilter}} | +{{/foreach}} +{{/if}} + +Return to [database documentation](help/database) diff --git a/view/templates/tables.tpl b/view/templates/tables.tpl new file mode 100644 index 000000000..2bf38c9f1 --- /dev/null +++ b/view/templates/tables.tpl @@ -0,0 +1,10 @@ +Database Tables +=============== + +* [Home](help) + +| Table | Description | +|-------|-------------| +{{foreach $tables as $table}} +| [{{$table.name nofilter}}](help/database/db_{{$table.name nofilter}}) | {{$table.comment nofilter}} | +{{/foreach}} diff --git a/view/theme/frio/templates/admin/site.tpl b/view/theme/frio/templates/admin/site.tpl index 57f43cefb..69076833d 100644 --- a/view/theme/frio/templates/admin/site.tpl +++ b/view/theme/frio/templates/admin/site.tpl @@ -297,13 +297,22 @@
- {{include file="field_checkbox.tpl" field=$relay_subscribe}} - {{include file="field_input.tpl" field=$relay_server}} - {{include file="field_checkbox.tpl" field=$relay_directly}} + {{if $relay_list}} +

{{$relay_list_title}}

+
    + {{foreach $relay_list as $relay}} +
  • {{$relay.url}}
  • + {{/foreach}} +
+ {{else}} +

{{$no_relay_list}}

+ {{/if}} +

{{$relay_description}}

{{include file="field_select.tpl" field=$relay_scope}} {{include file="field_input.tpl" field=$relay_server_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_directly}}