* Fix error when trying to delete user with uploaded images
`{"error":"database_error","description":"Database Error: Error while interacting with the database: error returned from database: update or delete on table \"users\" violates foreign key constraint \"uploaded_images_owner_id_fkey\" on table \"uploaded_images\""}`
* Update certain things to use Ghost instead of deleting entirely
* Fix mistake
* Create base shared instance migration and initial routes
* Fix build
* Add version uploads
* Add permissions field for shared instance users
* Actually use permissions field
* Add "public" flag to shared instances that allow GETing them without authorization
* Add the ability to get and list shared instance versions
* Add the ability to delete shared instance versions
* Fix build after merge
* Secured file hosting (#3784)
* Remove Backblaze-specific file-hosting backend
* Added S3_USES_PATH_STYLE_BUCKETS
* Remove unused file_id parameter from delete_file_version
* Add support for separate public and private buckets in labrinth::file_hosting
* Rename delete_file_version to delete_file
* Add (untested) get_url_for_private_file
* Remove url field from shared instance routes
* Remove url field from shared instance routes
* Use private bucket for shared instance versions
* Make S3 environment variables fully separate between public and private buckets
* Change file host expiry for shared instances to 180 seconds
* Fix lint
* Merge shared instance migrations into a single migration
* Replace shared instance owners with Ghost instead of deleting the instance
* chore(clippy): enable and fix many stricter lints
These ensure that the codebase uses more idiomatic, performant, and
concise language constructions.
* chore: make non-Clippy compiler warnings also deny by default
* Put all ID types in the labrinth::models::ids, and reduce code duplication with them
* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB
* Run sqlx prepare
---------
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
* Fixes error when an admin tries transferring project ownership
* Fixes error when trying to delete a user when they previously have a transaction
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
* Fix not being able to connect to local friends socket
* Start basic work on tunneling protocol and move some code into a common crate
* Commonize message serialization logic
* Serialize Base62Ids as u64 when human-readability is not required
* Move ActiveSockets tuple into struct
* Make CI run when rust-common is updated
CI is currently broken for labrinth, however
* Fix theseus-release.yml to reference itself correctly
* Implement Labrinth side of tunneling
* Implement non-friend part of theseus tunneling
* Implement client-side except for socket loop
* Implement the socket loop
Doesn't work though. Debugging time!
* Fix config.rs
* Fix deadlock in labrinth socket handling
* Update dockerfile
* switch to workspace prepare at root level
* Wait for connection before tunneling in playground
* Move rust-common into labrinth
* Remove rust-common references from Actions
* Revert "Update dockerfile"
This reverts commit 3caad59bb474ce425d0b8928d7cee7ae1a5011bd.
* Fix Docker build
* Rebuild Theseus if common code changes
* Allow multiple connections from the same user
* Fix test building
* Move FriendSocketListening and FriendSocketStoppedListening to non-panicking TODO for now
* Make message_serialization macro take varargs for binary messages
* Improve syntax of message_serialization macro
* Remove the ability to connect to a virtual socket, and disable the ability to listen on one
* Allow the app to compile without running labrinth
* Clippy fix
* Update Rust and Clippy fix again
---------
Co-authored-by: Jai A <jaiagr+gpg@pm.me>