docs/developer/database.md

103 lines
3.0 KiB
Markdown
Raw Normal View History

# Database Values
The following is a description of the various database tables and attributes. (This document is not yet complete).
## `accesstokens`
Filled when someone logs in with the API.
## `appcontent`
Populated when the About and Privacy page are edited.
## `appmigrations`
## `collectionattributes`
Used for additional properties on collections.
## `collectionkeys`
## `collectionpasswords`
## `collectionredirects`
## `collections`
Table that contains collections (i.e. "Blogs").
* `id`: *int(6)*. **Primary Key**. Blog id. Instance specific.
* `alias`: *varchar(100)*. Blog identifier based on the blogs title when created.
* `title`: *varchar(255*. **Cannot be null**. Blog name.
* `description`: *varchar(160)*. **Cannot be null**. User defined description of blog.
* `style_sheet`: *text*. CSS stylesheet data goes here.
* `script`: *text*. **Currently unused.**
* `format`: *varchar(8)*. User defined format (`blog`, `novel`, or `notebook`).
* `privacy`: *tinyint(1)*. **Cannot be null**. 0=Unlisted. 2=Private. 4=Password Protected.
* `owner_id`: *int(6)*. **Cannot be null**. The id of the user that published this collection.
* `view_count`: *int(6)*. **Cannot be null**. How many views this collection has.
## `posts`
Table that contains data for posts within collections.
* `id`: **Primary Key.** *Char(16)*. Randomly generated id.
* `slug`: *varchar(100)*. Identifier for post. Smartly generated based on post content, favoring: Title > Text > Id.
* `modify_token`: *char(32)*.
* `text_appearance`: *char(4)*. **Cannot be null**. Font class (Serif=`norm`, Sans-serif=`sans`, Monospace=`wrap`)
* `language`: *char2*. The posts language.
* `rtl`: *tinyint(1)*. Value is 1 if language is right to left (e.g. Arabic). Otherwise null.
* `privacy`: **Not currently used.**
* `owner_id`: *int(6)*. Id of the author. Id is instance-specific.
* `collection_id`: *int(6)*. Id of the blog. Id is instance-specific.
* `pinned_position`: *tinyint(1)*. The order the post is "pinned" (zero-indexed). Null if not pinned.
* `created`: *timestamp*. **Cannot be null**. Time and date of first publish
* `updated`: *timestamp*. **Cannot be null**. Time and date of last edit
* `view_count`: *int(6)*. **Cannot be null**. How many views this post has.
* `title`: *varchar(160)*. **Cannot be null**. Title, if author created one (may be empty string).
* `content`: *text*. **Cannot be null**. The content of the post in plain text.
## `remotefollows`
## `remoteuserkeys`
## `remoteusers`
## `userattributes`
## `userinvites`
## `users`
Table that contains user data.
* `id`: *int(6)*. **Primary Key**. User id. Instance specific.
* `username`: *varchar(100)*. **Cannot be null**. Chosen username.
* `password`: *char(60)*. **Cannot be null**. Salted and hashed password.
* `email`: *varbinary(255)*. Email (null if not given by user).
* `created`: *datetime*. **Cannot be null**. Date and time account was created.
## `usersinvited`