From f4e8043cd6776a21ccdc51614b796f0f3f190531 Mon Sep 17 00:00:00 2001 From: Jamie Pine <32987599+jamiepine@users.noreply.github.com> Date: Mon, 23 Jan 2023 14:31:20 -0800 Subject: [PATCH] Just some more docs (#462) * docs init * small tweaks --- docs/company/legal/privacy.md | 1 + docs/developers/architecture/database.md | 16 ++++++++++++++-- docs/developers/architecture/explorer.md | 14 ++++++++++++-- docs/developers/architecture/extensions.md | 2 +- docs/developers/architecture/libraries.md | 7 ++++++- docs/developers/architecture/spaces.md | 2 +- docs/developers/clients/cli.md | 4 ++++ docs/developers/clients/rust.md | 7 +++++++ docs/developers/prerequisites/welcome.md | 2 ++ docs/product/getting-started/introduction.md | 4 +++- docs/product/getting-started/terminology.md | 19 +++++++++++++++++++ 11 files changed, 70 insertions(+), 8 deletions(-) diff --git a/docs/company/legal/privacy.md b/docs/company/legal/privacy.md index da833ae4c..37c0ea268 100644 --- a/docs/company/legal/privacy.md +++ b/docs/company/legal/privacy.md @@ -1,3 +1,4 @@ # Privacy Policy _This page has yet to be written out in full. Please check back later!_ + diff --git a/docs/developers/architecture/database.md b/docs/developers/architecture/database.md index db564c97a..61c5edb26 100644 --- a/docs/developers/architecture/database.md +++ b/docs/developers/architecture/database.md @@ -1,7 +1,19 @@ --- -index: 4 +index: 10 --- # Database -prisma client rust, sqlite, migrations, backup +### Schema + +Our data schema is defined using Prisma, you can [view it on GitHub](https://github.com/spacedriveapp/spacedrive/blob/main/core/prisma/schema.prisma). +![A cool screenshot of the Spacedrive schema](/schema.webp) + +### Prisma Client Rust +We use Prisma Client Rust as a database ORM, it allows us to use Prisma to define our schema and generate migrations based on modifications to that schema. +### Migrations +Migrations are run by the Prisma migration engine on app launch. +### Database file +The databases file is SQLite and can be opened in any SQL viewer. + +![A Spacedrive library database file open in Table Plus](/database-table-plus.webp) diff --git a/docs/developers/architecture/explorer.md b/docs/developers/architecture/explorer.md index d6769f3bb..2775502cd 100644 --- a/docs/developers/architecture/explorer.md +++ b/docs/developers/architecture/explorer.md @@ -1,7 +1,17 @@ --- -index: 10 +index: 4 --- # Explorer -using the interface, features + +### Grid view + +### List View + +### Columns View +### Media View + +### Timeline View + +### Configuration \ No newline at end of file diff --git a/docs/developers/architecture/extensions.md b/docs/developers/architecture/extensions.md index 258b0ec1a..74b098791 100644 --- a/docs/developers/architecture/extensions.md +++ b/docs/developers/architecture/extensions.md @@ -4,4 +4,4 @@ index: 10 # Extensions -extended functionality of Spacedrive +Extensions are planned but nothing is yet set in stone. \ No newline at end of file diff --git a/docs/developers/architecture/libraries.md b/docs/developers/architecture/libraries.md index 7323fabc8..8c9d62771 100644 --- a/docs/developers/architecture/libraries.md +++ b/docs/developers/architecture/libraries.md @@ -4,4 +4,9 @@ index: 1 # Libraries -A library is the database that Spacedrive stores all file structures and metadata. It can be synchronized with other [Nodes]() +A library is the database that Spacedrive stores all file structures and metadata. It can be synchronized with other [Nodes](). + +To learn how data is synchronized check out the documentation on [Sync](/docs/developers/architecture/sync). + +Libraries can be encrypted with a passphrase set by the user. + diff --git a/docs/developers/architecture/spaces.md b/docs/developers/architecture/spaces.md index 618399ff8..bced47286 100644 --- a/docs/developers/architecture/spaces.md +++ b/docs/developers/architecture/spaces.md @@ -1,5 +1,5 @@ --- -index: 3 +index: 5 --- # Spaces diff --git a/docs/developers/clients/cli.md b/docs/developers/clients/cli.md index e8a524f9d..0a244e9ba 100644 --- a/docs/developers/clients/cli.md +++ b/docs/developers/clients/cli.md @@ -1,3 +1,7 @@ --- index: 10 --- + +# CLI + +A CLI is planned, it would allow a user or application to connect and control a running Spacedrive node on a local or remote system. \ No newline at end of file diff --git a/docs/developers/clients/rust.md b/docs/developers/clients/rust.md index e69de29bb..1e7af65cd 100644 --- a/docs/developers/clients/rust.md +++ b/docs/developers/clients/rust.md @@ -0,0 +1,7 @@ +--- +index: 10 +--- + +# Rust + +This doc should just show how to import the core and use it in a Rust context. \ No newline at end of file diff --git a/docs/developers/prerequisites/welcome.md b/docs/developers/prerequisites/welcome.md index 71b5d9cfa..37d830b7f 100644 --- a/docs/developers/prerequisites/welcome.md +++ b/docs/developers/prerequisites/welcome.md @@ -7,3 +7,5 @@ index: 0 ```rust pub struct DeveloperDocumentation; ``` + +This documentation is a work in progress, you will find unfinished or empty sections. \ No newline at end of file diff --git a/docs/product/getting-started/introduction.md b/docs/product/getting-started/introduction.md index 49abbc9cf..7299f0069 100644 --- a/docs/product/getting-started/introduction.md +++ b/docs/product/getting-started/introduction.md @@ -3,7 +3,9 @@ name: Introduction index: 0 --- -# Welcome to Spacedrive +# Meet Spacedrive + +![image](/app-ui-explorer.webp) Spacedrive is a cross-platform file manager. It connects your devices together to help you organize files from anywhere. diff --git a/docs/product/getting-started/terminology.md b/docs/product/getting-started/terminology.md index 96a0c1f7f..e955b835c 100644 --- a/docs/product/getting-started/terminology.md +++ b/docs/product/getting-started/terminology.md @@ -4,3 +4,22 @@ index: 0 --- # Terminology +Some useful Spacedrive related terminology. + +### `Library` +A Library is the database that powers Spacedrive, all metadata and directory structures are saved in the Library. Libraries can be synced between devices and a user can have multiple libraries loaded in the Spacedrive app at once. [Learn more →](/docs/developers/architecture/libraries) + + +### `Object` +Objects are a fancy name for files, we call them Objects because we identify them uniquely based on a cryptographic hash of the contents. Objects in Spacedrive can come in a wide variety of kinds to provide a broad range of context. [Learn more →](/docs/developers/architecture/objects) + +### `Location` +Locations are places Spacedrive will look for files, usually a directory on a mounted volume, but could also be a cloud service. [Learn more →](/docs/developers/architecture/locations) + + +### `Node` +A Node is a device or server running the Spacedrive core. Nodes can host libraries and communicate with other Nodes to sync data. [Learn more →](/docs/developers/architecture/nodes) + + +### `Preview Media` +Preview media refers to highly compressed image or video content for an Object, it is generated by Spacedrive and synced between your devices. [Learn more →](/docs/developers/architecture/preview-media)