* begin better onboarding
* added input and altered text
* better router & text + database icon
Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
* work on privacy screen + radio buttons
* fix video extension bug and alter screens
* add pending schema and location manager helper
* functional onboarding
* added secure temp store and started creating library loading screen
* fix secure temp keystore + api
* better onboarding
* added location settings and some overview concept, all WIP
* fix switch
* prep
* fix location router
* added backend settings
* attempted to fix form
* begin indexer rules editor, plus tweaks
* indexer rules coming soon
* fix onboarding img size
* cleanup
* clone is needed here, but clippy no like
* sike
* whole bunch of fixes
* clippy + ts
* Removing some TODOs from api/libraries.rs and fixing db size calculation
* moved object kind to client, added half functionality for appearance settings
* fix RadioGroup helper
* fix type issues
* cargo fmt
* fix creating library error handling + invalidate location list on update
* forgot to switch back to onError
* Invalidating getStatistics query on library creation and introducing the concept of waiting for a job on FileCopierJob
* F* cargo fmt
* fix RadioGroup interactivity
* wipe all migrations
* put back COLLATE NOCASE on extension columns
* update core.ts
* remove unused device component
* fix typeerror in mobile
---------
Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* update crypto MSRV
* rename `keychain` to `keyring`
* make a start on the keymanager unlock refactor/keychain integration
* update routes
* update bindings
* add const identifiers
* add UI/front-end support for unlocking KM with OS keychains
* remove SK from lib creation dialog
* update query name
* add keyring functions
* attempt to update `change_master_password()` to use the keychain
* cleanup, fix master password change ui, better secret key in keyring detection
* cleanup TS a little
* add route for getting secret key from keyring
* update bindings
* update var names + show secret key in keys settings
* add `react-qr-code` and option to view the secret key (if it's in the OS keyring)
* allow copying SK to clipboard
* add `key_type` so we're not reliant on specific UUIDs for root/verification key handling
* clippy
* fix mobile typecheck
* fix typecheck, fix typo and tweak balloon hash parameters
* minor cleanup + typo fix
* use newtype structs
* WIP type refactoring (major readability boost!)
* update `use`
* add tokio `sync` feature
* too many structs? idk
* more cleanup
* add `generate` and `Nonce`
* `Nonce` and `Key` typesafety (beautiful)
* clippy + cleanup
* update code & examples
* fix bug & remove `ProtectedVec` as it looked out of place
* use `Key`
* add a query invalidation to make the UI extremely responsive
* ci pls work
* remove `keyringHasSk` route
* add wip storedkey versioning
* storedkey versioning! (not pretty, but it never will be)
* add version to `StoredKey` and re-gen migrations to handle serde
* use `serde` for interacting with the DB + handle errors
* add blake3, `derive_key()` and clean up code
* fix a couple of things from the previous commit
* add context strings for root/file key derivation
* add salt to schema
* update refs of `salt` to `content_salt` within the keyslot
* cleanup code and add kdf salt to the keyslot
* rename salt to content salt in examples
* cleanup header code + remove dead code
* implement key derivation for keyslots
* gen new migrations that contain a salt column
* keymanager refactor (code is very idiomatic now) - needs thorough testing
* further cleanup
* clippy
* add a master password context string
* use key derivation for deriving keys from the root key
* update to use new code and remove `match` from `en/decrypt_bytes()`
* clippy
* use less unwraps in library manager code
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* Introducing location online/offline checks and location relink
* Some initial drafts for location watchers
* Location metadata relink and add library
* Many improvements at job system
Now using prisma batching at identifier job
Removing blocking I/O from extension subcrate
Implementing lazy generation of thumbnails
New current directory identifier job to be used on light rescans
* Some optimizations on identifier and object validator jobs
* merge jamie's identifier PR
* fully repaired identifier job
* properly hooked up object kind
* inspector fix
* fix video badge
* small improvements to libraries settings
* identifier and inspector improvements
* fix feature flags and hook up context menu location utilities
* BETTER CONTEXT MENU x100
* test-files
* style tweaks
* new icon designs
* manifest
* fix thumbnails on web
* media data
* New Location Watcher and some minor fixes
* disable broken media_data extractor, wip
* wip
* function name fix
* Fixing pnpm prep and some warnings
* Solving a race condition beetween indexer job and FS event handlerSome other minor warnings
* Generating thumbnails on watcher
* Remove event handler on watcher
* Some initial works on modify events and other small fixes
* File update event
* Trying to be more generic with used events and some tests to validate our assumptions
* Turning on location metadata file
* Introducing core unit tests on CI pipeline
* Submiting new unit test assumptions to validate on windows CI
* Fixing unit tests
* Fixing unit tests again
* Fixing unit tests
* Fixing unit tests for macos
* Fixing unit tests for macos again
* New structure for platform dependent event handling
Implementing event handlers for Linux and MacOS
* minor fixes + rustfmt + clippy
* Windows event handling
* Introducing a feature gate to only use location watching on desktop app for now
* Putting more stuff behind feature gates to avoid warnings
* Adding feature to cargo test on CI
* Changing some debug logs to trace logs and removing Jamie specific stuff
* Make location removal from manager less async
* fix build when "location-watcher" feature disabled
* fix types + clippy
* make location manager non-static
* remove uses of `to_string_lossy`
* more invalidate_query calls
* Expose `library_ctx` directly to avoid needless clones
* New materialized_path handling for directories
* Removing cascade delete between file_path and object
- Some other minor stuff
* remove unused `CurrentDirFileIdentifierJob`
Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* add keys router
* make progress on keymanager integration
* make name non-negotiable
* hyphenate encryption algorithm names
* Revert "make name non-negotiable"
This reverts commit 9c0f51329e.
* add some more keymanager queries
* add master password and default key routes
* add newly registered key to db + fmt
* clippy, formatting and `updateKeyName` route
* add automount to schema+automount keys where `true`
* update bindings
* working key add/mount
* working keylist
* mounted keys show first
* cleanup code
* add comments, code cleanup, more functions
* unmount all keys button
* comment and keymanager `clear_master_password()`
* add no keys available message
* fix unmount button
* use dashmap for concurrency
* fix missing keylist issue and add invalidate query macro
* set correct RSPC types
* statically set master password (TEMPORARILY)
* add remove key function within the keymanager
* key dropdown menu and impl
* formatting
* allow `option_if_let_else`
* add comment about key stats
* add additional comment
* rpsc error handling for the keys route
* fix rspc errors with an impl
* crypto crate errors to `sd-crypto::Error`
* remove `map_err`
* use custom result type
* cargo fmt
* clippy
* fix builds
* remove `Error::MutexLock`
* fix unnecessary unwrap
* mutex error handling (buggy for some reason)
* clean default key logic
* fix default key clearing
* allow a key to be removed without bugs
* implement requested changes
* use a single `useMemo`
* update schema with defaults
* re-generate migrations
* use rust enums in TS
* remove dead code
* remove mutate expansion
* read key list from keymanager, not prisma
* add "Default" key marker and cleanup TS
* rustfmt
* remove dead code
* 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
* Tag queries + Identifier bug fix
- added empty pages for docs
- added non-functional "New Library" button to sidebar
- to accomplish above, moved dialog logic to component folder
- fixed Identifier bug where location id was not considered in the orphan files query, meaning it would attempt to identify many non-existent paths and fail to create the legitimate ones
* (fix) maintain file item aspect ratio in grid view
(fix) get tag query + get all tags
* codegen
* resurrected context menu
* fix window flash
* remove location based thumb sorting + update react on landing
* add is_archived to location
* improved context menu
* assign tag + refactor explorer store
Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
* assign/unassign tags from context menu
* fix lint
* keep context menu open on tag change
* fix brendan feedback + merge main
* fix type
* codegen
* style changes
* revert windows size and xcode proj
* remove outdated doc
* coming sooooooon
* updated release notes
* release notes
* dashes > dots
* clean up docs
* more docs!
* restore entitlements
* remove unused util
* regenerated migrations post merge
- some additional error handling added to migration runner, needs more work!
* refactor explorer to support tags
* fix error and revert explorer bg color
* put it in a box they said
* revert location id store removal
* upgrade hero icons + style tweaks
Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
* 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>
* 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>
* 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
* CRUD for tags.
* Implement tags query in open.rs and make some changes to CRUD.
* Tag update.
* Hopefully working get tags.
* added node config + spaces schema
* add missing routes
* begin tag ui
* renaming query names to better fit convention
* tags progress
* tag edit
* fix delete tag description
Co-authored-by: xPolar <polar@polar.blue>