* Begin external projects moderator database frontend
* add copy link button
* begin project page permissions settings
* MEL database backend routes
* include filename in external files
* wip: when uploading a version file, fetch its overrides as a list
* wip: override license checks
* improve FileHost ref counting
* file host read capability
* scan files when inserting version file
* add dependency sha1 field
* clean up version files
* wip: attributions
* update s3 file host
* attribution scanning basic works
* works
* insert attribution info after resolving
* add routes
* remove dep sha1 stuff
* prepr
* wip: override file sources
* add files_missing_attributions to versions
* return extended version info + attributed at/by
* hook up frontend to backend (mostly)
* expose version date published
* withholding version visibility
* frontend work
* prepr
* use api-client for img upload
* moar frontend
* prepr
* Add schema to attribution resolution and Flame project results
* sqlx prepare
* changes
* remove feature flag, fix optional proof images
* fix schema
* fmt
* fix deletion and file fetch
* prepare
* fix admonition
* update frontend stuff to new schema
* prepr
* attribution on dependencies
* fixes
* sqlx prepare
* fixes
* routes
* fix routes
* Version grandfathering
* prepare
* wip: bulk routes
* pushing what i've got rn
* include link in NoPermission
* change hash insert to bulk route
* query flame even if entry in MEL
* delete file with weird name
* Prioritise putting override files in existing groups even with ExternalLicense
* fix how hex bytes are handled in route
* feat: coolbot moderation changes (#6215)
* Update moderator checklist
* move permissions stage order
* Updated nagContext.versions to v3, added nag for permissions
* Update permissions.vue default messages
* prepr
---------
Co-authored-by: coolbot100s <76798835+coolbot100s@users.noreply.github.com>
* QA
* prepr
* should group by project
* return attribution resolution correctly
* updated by moderator info
* Track what moderator reviewed an attribution moderation status
* default deser FMA field
* new version page
* clean up fetching + add a couple missing features
* qa items
* prepr
* provide moderation package stuff with DI
* format?
* don't redact moderated_at
* move supplementary resources
* Reorganize moderation messages.
* Quick replies for external content permissions.
* prepare
* QA
* allow exempting projects
* Ignore Flame projects which 404
* fix ci
* fix cross project attribution stuff
* Fix permission error
* change what files get cscanned
* add more logging
* QA Jun 22
* fix
* idempotency
* Expose route for rescanning
* update blog link
---------
Co-authored-by: aecsocket <aecsocket@tutanota.com>
Co-authored-by: coolbot100s <76798835+coolbot100s@users.noreply.github.com>
Co-authored-by: aecsocket <43144841+aecsocket@users.noreply.github.com>
* wip: add v2 docs, routes to config, paths
* fix up path prefixes
* fix leading slashes
* fix slash route
* fix more slashes
* wip: full utopification of v2
* convert last few v2 routes to utoipa
* Harden minecraft-server-play analytics
* Verify based on mc token
* Fail for non-server projects
* Nitpicks and factor out HTTP client
* Allow passing old minecraft_uuid field for clients
* Remove server play analytics test since it relies on auth against Minecraft API which I don't want to mock :(
* Switch to using hasJoined for uuid validation
* Fix formatting
* Fix sessionserver status code
* Ensure profile name and queried username matches
* replace some wrap_request_errs with internal errs
* add HTTP client into web::Data
* short timeout on client-side session join query
* further fixes
* sqlx prepare
* fix clippy
---------
Co-authored-by: Creeperkatze <178587183+Creeperkatze@users.noreply.github.com>
Co-authored-by: aecsocket <aecsocket@tutanota.com>
* Switch to nightly + cranelift
* Fail on warnings only in CI
* Fix check errors
* Don't use mold on Linux to fix CI
* Pin nightly toolchain and add default rustup components
* Fix another CI thing
* PR comment
* feat(labrinth): rework v3 side types to a single `environment` field
This field is meant to be able to represent the existing v2 side type
information and beyond, in a way that may also be slightly easier to
comprehend.
* chore(labrinth/migrations): use proper val for `HAVING` clause
* feat(labrinth): add `side_types_migration_review_status` field to projects
* 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>
* Update some Labrinth dependencies
* Update some Labrinth dependencies
* Update some Labrinth dependencies
* Update zip in Labrinth
* Update itertools in Labrinth
* Update validator in labrinth
* Update thiserror in labrinth
* Update rust_decimal, redis, and deadpool-redis in labrinth
* Update totp-rs and spdx in labrinth
* Update maxminddb and tar in labrinth
* Update sentry and sentry-actix in labrinth
* Update image in labrinth
* Update lettre in labrinth
* Update derive-new and rust_iso3166 in labrinth
* Update async-stripe and json-patch in labrinth
* Update clap and iana-time-zone in labrinth
* Update labrinth to Rust 2024
* Cargo fmt
* Just do a full cargo update
* Update daedelus to Rust 2024
* Update daedelus_client to Rust 2024
* Set the formatting edition to 2024
* Fix formatting
IntelliJ messed up my formatting