Commit graph

284 commits

Author SHA1 Message Date
Brendan Allan 5ceb27c95f
Update Prisma (#441) 2022-10-27 01:56:18 -07:00
Jamie Pine 3a3ec6251f Merge branch 'main'
Conflicts:
	packages/interface/src/screens/settings/library/LibraryGeneralSettings.tsx
2022-10-23 18:43:27 -07:00
jake 0c7aed5f86
[ENG-258] Key Manager and Crypto Crate Improvements (#423)
* add base keymanager structs/functions

* change md/pvm `new()` to prevent useless re-hashing

* update lockfile

* update keymanager

* cleanup code, make things easier to understand

* move md and pvm construction to the header

* update pvm ser/de

* update metadata ser/de

* additional API changes, update example

* formatting and clippy

* update examples

* move `impl` to associated files

* formatting+clippy

* add more keymanager functionality

* add docs

* wrap `master_password` as an option

* add `sd-crypto` crate as a dependency to `core`

* add key manager to `LibraryContext`

* rename `id` -> `uuid`

* add more keymanager functions

* add `set_master_password()` function

* function to see if keymanager has master password

* update schema

* add default bool to schema

* populate keystore on SD startup

* clippy+formatting

* implement requested changes

* remove unwrap

* fmt, clippy, remove ser/de derives

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-10-23 03:47:41 -07:00
Brendan Allan 61cb749c07 remove openssl from core 2022-10-22 05:43:39 +08:00
Jamie Pine c4226f0e7a Merge branch 'eng-259-identify-objectkind'
Conflicts:
	apps/landing/package.json
	apps/landing/vite.config.ts
	packages/interface/src/AppLayout.tsx
	packages/interface/src/components/explorer/Explorer.tsx
	packages/interface/src/components/explorer/ExplorerTopBar.tsx
	packages/ui/src/ContextMenu.tsx
	pnpm-lock.yaml
2022-10-20 22:49:15 -07:00
Oscar Beaumont aae3da9b8a 🎉 Fix core on Android 2022-10-18 20:57:17 +08:00
Oscar Beaumont 1a8581d44f upgrade rspc + fix reactivity + add in disabled Normi code 2022-10-18 04:45:37 +08:00
jake 4cd2dde35c
CAS ID Improvements (#413)
* remove `ring` dependency and use `sha2` instead

* use BLAKE3 and include full file checksum

* update schema comments
2022-10-13 15:31:47 -07:00
jake b5c571541e
[ENG-256] Crypto Crate Refinements (#410)
* add experimental preview media support

* clippy+formatting

* add support for mk/pvm nonces

* fix cursor positioning+size deserialization bug

* clippy+formatting

* cleanup code and add `decrypt_preview_media()`

* update comment

* remove `Mode` from `Keyslot`

* use little-endian `usize` for media length

* remove memory objects

* remove mode enum

* add `.zeroize()` to `Protected<>`

* remove `Mode` ser/de

* refactor, remove `Mode`, add helper functions

* formatting

* remove unused error

* update comments/docs

* comments, fix large files, insane performance

* doc updates and fix decrypt zeroize

* revert to 1048576 byte `BLOCK_SIZE`

* `Keyslot` and `PreviewMedia` constructors now handle encryption

* add metadata item with associated functions

* update comments, clean up useless items

* add metadata support within the header

* remove stray 128 in length calcs

* include metadata in header ser/de

* fmt+clippy

* rework keyslot decryption

* formatting

* api changes, code cleanup

* docs for `stream.rs`

* massive documentation re-write

* mark expensive doc test as ignore

* minor api tweaks

* add examples

* formatting+linting

* finalise documentation and add more examples

* formatting
2022-10-13 15:25:42 -07:00
Oscar Beaumont c0b51bcd4a update rspc to version with fixed httpz rev
Main was broken because it was pulling httpz from main and I have been refactoring it.
2022-10-13 15:03:43 +08:00
Jamie Pine b94d2ed736
(hotfix) p2p preventing compile 2022-10-08 11:30:17 -07:00
jake d236b28f84
[ENG-250] Crypto Library (#400)
* add crypto crate with some functionality

* formatting

* add `argon2id` parameter levels

* add descriptive comments

* add stream decryption objects

* add `StreamEncryptor` struct

* add `StreamDecryptor`

* general cleanup

* add `thiserror` and error handling

* add header structs

* add basic serialization functionality

* advance serialization

* finish serialization

* clean up serialization and use `impl`

* finalise deserialization

* add stream helper functions and remove old code

* add AAD creation and retrieval

* add important comment

* add `ChaCha20Rng` as a CSPRNG

* cleanup and crate-wide clippy lints

* apply nursery lints

* add in-memory encryption objects

* rename `utils` to `objects`

* move (de)serialization rules to separate file

* add header-write helper function

* add password hash helper function

* add `decrypt_master_key` function

* cleanup, formatting, linting

* move keyslots to separate file, and rename them

* add basic comments

* remove `secrecy` dependency and import `protected`

* add `to_array` helper function

* `sd_crypto` -> `sd-crypto`

* remove manual drops

* add clippy allows

* add `new()` for `Keyslot` and `FileHeader`

* remove license

* zeroize read buffer on error

* magic bytes are now `ballapp`

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2022-10-07 07:31:40 -07:00
Jamie Pine 900ee618ce
Merge branch 'main' of https://github.com/spacedriveapp/spacedrive 2022-10-06 18:10:08 -07:00
Jamie Pine e402fc52b7
sd extensions crate
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-10-06 18:10:03 -07:00
Oscar Beaumont 75c4680b43 Merge remote-tracking branch 'origin/main' into merge-p2p-code 2022-10-07 05:56:05 +08:00
Oscar Beaumont d7fddc83f7 fix major bugs in p2p PR 2022-10-07 05:51:40 +08:00
Oscar Beaumont 598ba38a9d merge in P2P code 2022-10-07 05:32:45 +08:00
Oscar Beaumont dec2697740 Fix mobile + upgrade Expo + even newer rspc 2022-10-06 21:07:46 +08:00
Oscar Beaumont 20523a94c9 upgrade workspace dependencies 2022-10-06 14:03:58 +08:00
Brendan Allan e5359f042d please formatter 2022-10-05 12:14:04 +08:00
Brendan Allan 45ff212e97 merge main into update-rspc-and-more 2022-10-05 12:01:50 +08:00
Brendan Allan b827e024ba update lockfile 2022-10-05 10:20:04 +08:00
Brendan Allan a634727e1b merge meain into update-rspc-and-more 2022-10-05 10:11:52 +08:00
Brendan Allan 162f3d7782
Improve CI Speed (#398)
* use different cache

* cache prisma client in rustfmt

* cleanup prettier config

* build server image in sub-action

* server image + prisma client custom actions

* remove lefthoook checks that are in ci

* fix build-server-image

* rename Clippy job

* rename build core job

* use custom rust caching action

* fix rust cache shared key

* cleanup custom action job names

* remove platform check in clippy ci

* setup pnpm in clippy ci

* update mobile package name

* make ios compiling conditional

* use pnpm cache

* run clippy in release

* force use release for all jobs
2022-10-04 18:45:54 -07:00
Brendan Allan 723058e060 merge main into update-rspc-and-more 2022-10-05 08:58:03 +08:00
Brendan Allan 0821ef575a update pcr version 2022-10-05 04:20:59 +08:00
Brendan Allan ed06e3051e
[ENG-84] Sync library (#394)
* new sql lib stuff

* add sync stuff + rename all crates

* build sd-core

* add sync/example/dist to source

* fix sync example in monorepop

* appease clippy

* update lockfile

* update commit hooks

* fix typescript

* fix typescript build

* please rustfmt
2022-10-04 05:25:12 -07:00
Brendan Allan 66dd9aa28b
move prisma schema and migrations to /core (#392)
* move prisma schema and migrations to /core

* fix prisma updates
2022-10-04 02:32:46 -07:00
Oscar Beaumont 60e228ec94 upgrade rspc 2022-10-02 01:16:11 +08:00
Jamie Pine 317ed2d7b0
removed stray dependency causing build issue 2022-09-29 21:24:42 -07:00
Jamie Pine 3e8c33d1c0
Added crates folder (#389)
* restructure core for crates folder

- improve naming consistency
- added placeholder files for near future code
- added docs

* - removed all typescript from core
- moved rspc bindings to client

* remove useless git ignore & rustfmt
2022-09-29 21:02:29 -07:00
Oscar Beaumont bb40110e6e
Eng 243 documentation on landing (#386)
* Updated roadmap

* Color timeline to show where we are up to

* roadmap improvements

* roadmap changes

* docs init

* progress on docs

* support metadata (name & ordering)

* fix prod build

* fix lock

* fix perender

* docs progress

* added "slots" to markdown parser

* refactor to support sections

* more docs progress

* fixes

* added empty docs

* killer opening paragraph

* fix Heroicon imports & page rendering

* tweaks

* next doc

* fix build

* fix ssg failure

* fix prod build for REAL

it was the bubbles

* fix next doc api

* it's the bubbles

* wip: docs mobile

* doc nav tweak

* doc menu ui

* fix next doc in pre-render

* react-borger-menu

* fix build

* fix height and padding

* mobile docs nav styles

* oooh super cool transition

* fix button state glitch + big headings

* refactor layout

* docs mobile nav bar style

* fix min width & height

* Merge remote-tracking branch 'refs/remotes/origin/main'

Conflicts:
	docs/architecture/spaces.md
	docs/developers/architecture/spaces.md

* placeholder docs

* correct pre styles + env setup guide

* search coming soon

* docs cleanup

* resolved cargo

* reorder docs + add image

Co-authored-by: Lu Hill <email@lewie.me>
Co-authored-by: Jamie Pine <ijamespine@me.com>
2022-09-27 19:48:42 -07:00
Brendan Allan fe497ce104 make rust 1.64 requirement more concrete 2022-09-27 12:28:32 +08:00
Ericson "Fogo" Soares 6fd620087b
Video thumbnails (#376)
* Preparing some scaffolding for video thumbnails

* Implemented thumbnail generation for videos
* Propagating errors of `Node` creation
* Using ffmpeg feature gate

* Introducing ffmpegthumbnailer-rs as a subcrate on core

* - rename to thumbnailer
- fix explorer thumbnail bug
- add more supported video types
- re-fix explorer performance

* remove nested licence

Co-authored-by: Jamie Pine <ijamespine@me.com>
2022-09-24 01:21:13 -07:00
Brendan Allan 1bf315c4db
Use feature gated database branch of PCR (#387)
use feature gating branch of pcr
2022-09-22 23:40:15 -07:00
Brendan Allan 6e07435a15
Use PCR for migrations (#385)
* use pcr migrations branch

* use 0.6.2 branch with migrations

* use latest prisma stuff

* allow force reset of db in dev

* remove .spacedrive file

* update rspc in apps/server

* use rspc 0.0.5 in all crates

* add os to prisma client cache key

* add runner os to clippy prisma cache
2022-09-22 00:50:21 -07:00
maxichrome 119b8176f2 Merge remote-tracking branch 'origin/main' into use-rust-shortcuts 2022-09-14 15:59:59 -05:00
Oscar Beaumont dd04625a4f properly shutdown the core when using server 2022-09-14 19:02:11 +08:00
maxichrome 5dbc4325b1 update cargo crates 2022-09-13 19:04:58 -05:00
Oscar Beaumont 2fda5b9ca6
Better db migrations (#381)
* use prisma migration engine for migrations

* squash migrations + remove excessive logging
2022-09-08 15:57:07 -07:00
Brendan Allan 459a44b7ac utilise include instead of with for type safety 2022-09-07 04:09:57 +08:00
Oscar Beaumont 4427065658 Upgraded rspc with libraries + upgrade PCR 0.6.0 2022-09-06 22:08:19 +08:00
Ericson "Fogo" Soares 25c111a8bf
Introducing Indexer rules (#363)
* Introducing indexer rules for the indexer job
* Solving a minor race condition at `Worker::spawn`
* Many refactors at database accesses with prisma
* Documenting some features of indexer rules

* Updating to new prisma rev

* Updating photo

* Some documentation tweaks

* fix note editing

* Implementing some requested changes
* Fixing unit tests on walk function
* Using rsps::Error::with_cause instead of new

* Introducing a compoung unique key between `node_id` and `local_path` at `locations` table

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-09-01 16:38:26 -07:00
Oscar Beaumont 1e1bd81c94 settings keyboard shortcut + fix Tauri menu items 2022-08-30 13:49:29 +08:00
Oscar Beaumont c7441d1d64
Rustify mobile (#361)
* Refactor navigation flow & types

* Remove drawer screen wrapper

* Remove DrawerItem + cleanup

* Switch to JS Stack Nav & header animations

* [WIP] Spacedrive core on Android & IOS

* Update Podfile and cleanup Contributing guide.

* Remove @sd/core from mobile

* File Modal

* Prettify File Modal & Add date-fns

* IOS subscriptions

* Update package versions

* Custom header for stack screens

* android subscriptions

* Animate Drawer button & template for Search screen

* Search header

* Fix Search icon being weird

* Merge branch 'main' into rustify-mobile

* fix rspc dep + setup script for mobile

* Less margin on header

* Move shared assets & drawer logo for mobile

* support for IOS simulator

* add type safe rspc hooks to mobile

* Cleanup PR & Update packages

* Updated bindings from main

* Update lefthook.yml

* Remove `tag` folder from core
The `tag` folder came back from the dead. Maybe it got confused in merge conflict?

* update pnpm lockfile + fix tsc errors

* fix asset import

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2022-08-29 04:59:09 -07:00
Brendan Allan 2c375ce27a use latest prisma-client-rust 2022-08-19 07:41:08 +08:00
Oscar Beaumont ea92af57f8
Move Rust backend to rspc (#345)
* move Rust backend to rspc

* move server to Axum + remove parts of old bridge

* move frontend over to @rspc/client

* move core to rspc + update deps

* fix Typescript errors + upgrade deps

* document invalidate_query! macro

* general cleanup + upgrade to PCR 0.6.0

* prisma error handling

* upgrade to rspc 0.0.4

* update vite-plugin-ssr

* fix typescript

* fix builds

* put landing page app name back

* hardcode ffmpeg version on Windows

* rename 'command' to 'mutation' to line up with react-query terminology

* upgrade rspc to v0.0.5 + fix types

* use shared ffmpeg binaries

* general Typescript cleanup

* fix clippy workflow failing due to tauri proc-macro

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-08-03 08:36:03 -07:00
Ericson "Fogo" Soares 85e5eec993
Resumable Jobs + Lefthook Integration (#344)
* Introducing Lefthook for git hooks automation
* TypeScript typechecking and linting
* Rust formatting and linting
* Spellchecking (also corrected spell errors in some files)
* Check links in md files

* Introducing resumable jobs
* Abstractions to pause and resume jobs automatically when application exits and is started
* Changing database to use Bytes for UUID fields
* Changing uuid fields on core to use uuid::Uuid instead of String
* Updating some dependencies and introducing msg_pack serialization to save job state on database

* Fixing some clippy warnings

* Fixing a regression introduced on identifier job, doing too much db accesses concurrently
2022-07-27 00:06:34 -07:00
Ericson Fogo Soares 75a8b49661 Merging with main 2022-07-11 18:21:50 -03:00
Oscar Beaumont c685ce5fe9
Library manager (#258) 2022-07-10 19:05:24 -07:00
Ericson Fogo Soares ef2f60ff33 Fixing Clippy warnings
* Using tokio on all filesystem operations
* Some minor tweaks to be more consistent on paths between &str, AsRef<Path> and PathBuf
* Using logging instead of println
2022-06-28 22:56:49 -03:00
Jamie Pine d11b9d0f15 (chore): added better loggin 2022-06-21 22:53:07 -07:00
Jamie Pine dd77aabc47 (fix) dropdown ui tweak + identifier code comments + add log 2022-06-21 21:31:39 -07:00
Oscar Beaumont f8de1a81bf
fix @rpath/libswiftCore.dylib error + etc (#255)
update Tauri + fix `@rpath/libswiftCore.dylib` error + make Typechecks pass
2022-06-18 17:00:57 -07:00
maxichrome 498da6a73e
[macOS] native sidebar blur effect (#239)
* wip rust bindings

* wip rust bindings

* attempt raw objc for window blur -- still nothing

* some minor blurring success...

* Fix macOS sidebar blur

* darken sidebar

* lock to dark theme

* remove commented, unused window-blur lines

* remove xcode user state

* ADD SWIFT WINDOW CODE

* refactor: use swift window code

* remove stupid cas warning

* add webview swift util for reload

* remove objc and cocoa

* remove old unused swift build fix

* simplify swift package fn calls

* enumify app theme

* fix main content view not expanding

* fix sidebar folder item layout

* fix swift version requirement

* fix landing package json

* landing tweaks

* sidebar style tweaks for macOS

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
Co-authored-by: Jamie Pine <ijamespine@me.com>
2022-06-15 13:53:42 -07:00
Oscar Beaumont d7c070b7cb
Static Generate Landing (#245)
* Wrote blog

* feat: implement new team page

* refactor: reusable link comp

* chore: update images

* perf: compress images

* refactor: update link

* refactor: update icons, remove white border in favor or rounded corners, add investors

* changes to roles

* team changes

* refactor: add a few changes

* style: slightly better styling

* update team images paths

* use proper image element

* update haris to match team style + keep constant

* improve team member styling

* use vite import pattern

* team tweaks

* fix brendan crop

* fix text and gradient color to match brand colors

* engineer not developer!!!

* add annoucement banner since this can not be merged until post annoucement anyway

* fade in stuff

* better copy

* better haris.jpg

* style: slight update to styling

* Update apps/landing/src/pages/team.tsx

* update my image

* chore: remove unused log

* Update team.tsx

* use incorp'd name everywhere

* update team credits

* hoist headings in credits

* consistent marketing copy in cargo

* fix types

* style tweaks

* blog updates

* blog title tweaks

* fix demo

* jj said lets round it up

* vite-plugin-ssr & ssg

* delete old landing + prerender

* don't use vite-plugin-vercel

* make deploy.sh executable

* add ncc

* treat as static site

Co-authored-by: Lu Hill <email@lewie.me>
Co-authored-by: Benjamin Akar <benjaminakar2001@gmail.com>
Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
Co-authored-by: xPolar <50601857+xPolar@users.noreply.github.com>
2022-06-14 16:54:15 -07:00
maxichrome 099d4a5ba6
add debug menu items 2022-06-10 21:55:25 -05:00
Oscar Beaumont a6551e8380 remove anyhow
We are using `thiserror` instead.
2022-05-30 22:54:21 +08:00
Oscar Beaumont 6e0c944d2e remove unused code + cleanup Rust imports 2022-05-30 22:26:59 +08:00
Oscar Beaumont 562efe3c6b build(deps): update dependencies across workspace 2022-05-30 20:45:37 +08:00
Jamie Pine 49c25531d6 fixed explorer 2022-05-28 22:23:50 -07:00
Brendan Allan d164db7fc3 cleanup + update to prisma-client-rust 0.5.0
still waiting to rebase for changes to identifier
2022-05-26 16:17:46 +08:00
Jamie Pine 5175dcbbfb database fixes 2022-05-22 22:28:33 -07:00
Jamie Pine 363bdaeacd remove migration history (#173), fix incorect name 2022-05-22 22:02:18 -07:00
maxichrome 77a2888377
use native window controls on macOS 2022-05-11 01:59:03 -05:00
Jamie Pine eee8efb99a added semi functional statistics, working macos traffic lights 2022-04-27 19:15:55 -07:00
Oscar Beaumont d834fe3b2c feature gated p2p + update deps + pushed bindings 2022-04-27 17:22:26 +08:00
Jamie Pine 93d80233d7 server transport via websocket
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-04-23 06:50:17 -07:00
Jamie Pine 40cc780ec1 added unique file identifier 2022-04-23 01:12:35 -07:00
Brendan Allan 8a91e2f05d
Basic CI (#12)
* ci:

* ci: run ci on ci branch

* ci: update pnpm version

* ci: Standardise naming

* ci: update lockfile

* ci: install ffmpeg on unix ci

* ci: run codegen prep before build

* ci: add libavutil to ubuntu dependencies

* ci: add libavutil-dev to ubuntu dependencies

* ci: dependencies

* ci: fix ubuntu dependencies

* ci: only build frontend with desktop

* ci: setup cmake and vcpkg for windows

* ci: install ffmpeg on windows

* ci: fix windows ffmpeg install

* ci: fix conditional windows ci commands

* ci: remove vcpkg from windows

* ci: optimizations

* ci: use custom rust cache version
2022-04-22 02:26:03 +08:00
Jamie Pine 4c4325619f server start, landing tweaks 2022-04-20 23:35:48 -07:00
Jamie Pine 5c08c211ca upgrade to latest prisma-client-rust 2022-04-20 02:25:50 -07:00
Jamie Pine ea86486212 fixes, abolish underscores, folder restructure 2022-04-14 14:52:35 -07:00
Jamie Pine 1b103877b8 Merge branch 'main' of https://github.com/spacedriveapp/spacedrive 2022-04-14 13:49:39 -07:00
Jamie Pine cabc00d5dd ffmpeg progress 2022-04-14 13:46:54 -07:00
Brendan Allan d4abf9e38f feat: update prisma-client-rust 2022-04-15 04:04:35 +08:00
Jamie Pine fc1ccc3800 sync engine + big schema changes 2022-04-12 00:05:58 -07:00
Jamie Pine 9728b6ae49 debug + derive dep 2022-04-11 21:46:57 -07:00
Oscar Beaumont af9d435086
fix: react-query working in production builds + fix Linux compilation issue 2022-04-09 02:19:27 +08:00
Jamie Pine 118a35835a explorer upgrades
- file navigation works
- thumbnails display
2022-04-08 02:44:57 -07:00
Jamie Pine b121f0fed6 restructure project files layout 2022-03-31 17:41:17 -07:00
Jamie Pine 4acd8ca078 fixed indexer database write
- fixed job history query
2022-03-30 04:25:40 -07:00
Jamie Pine f635dea04f fix missing dependencies & revert color change 2022-03-30 02:37:03 -07:00
Oscar Beaumont 417e2bda1a
add Cargo workspace & fix Prisma 2022-03-30 16:14:50 +08:00
Renamed from apps/desktop/src-tauri/Cargo.lock (Browse further)