Truman Gao and aecsocket
2c53e1240e
feat: add analytics fetch users mapping ( #6439 )
...
* feat: add users mapping
* remove skip_serialize_if
---------
Co-authored-by: aecsocket <43144841+aecsocket@users.noreply.github.com >
2026-06-22 15:06:12 +00:00
aecsocket
b7d097d74d
Batch incremental search event consumption ( #6468 )
...
* Batch incremental search event consumption
* fmt
* fix
2026-06-22 14:54:02 +00:00
aecsocket
0a0ef1ce81
Fix account deletion deleting incorrect report threads ( #6465 )
2026-06-22 14:27:31 +00:00
Sychic
b188bbf617
fix(maven): return requested file extension ( #6455 )
...
* fix(maven): return requested file extension
closes #2428 , #2663
why was this hard coded lol
* fix(maven): handle other file types properly
2026-06-21 13:09:14 +00:00
Michael H.
79ce1adf9d
chore: kebab-case topic name
2026-06-21 14:42:24 +02:00
aecsocket
c6ef10e798
Incremental search indexing ( #6453 )
...
* wip: initial kafka support
* wip: kafka search queue
* wip: kafka consumer
* wip: create/delete docs
* reindexing works
* reindex in more places
* also incrementally update server pings
* cleanup
* tombi
* fix ci
* update tombi
* prepare
* fix ci
* fix
* fix PLEASE
* 🙏
* add route to force reindex project
2026-06-21 10:03:20 +00:00
aecsocket
be65589e4d
Allow v2 version creation route to accept environment ( #6454 )
...
* Allow v2 version creation route to accept environment
* fix
2026-06-20 19:30:32 +00:00
aecsocket
ac5daad280
Tiltify API query backoff ( #6447 )
...
* Tiltify API querying backoff
* fix backoff
* fix clippy
* fix2
2026-06-19 19:02:22 +00:00
aecsocket
50b2b9567c
Fix token separators in game version search ( #6435 )
...
* Fix token separators in game version search
* fix
2026-06-19 15:50:02 +00:00
Truman Gao
e0ea14226e
feat: add dawn launcher user agent ( #6441 )
...
* feat: add dawn launcher user agent
* rename to Dawn
2026-06-19 14:31:47 +00:00
aecsocket
d33f00d2b1
Tighten URL slug validation ( #6442 )
...
* Tighten URL slug validation
* slug sanitization in frontend
2026-06-19 13:52:24 +00:00
aecsocket
b3257a0614
Allow revenue analytics to bucket by user ID ( #6428 )
...
* adjust
* convert to sqlx macros
* Allow users on a team to see rev splits of other users
* prepare
* clarify comment
2026-06-18 12:12:56 +00:00
aecsocket
336050f4df
Clear owned projects cache when deleting an org with projects ( #6429 )
2026-06-17 19:24:44 +00:00
aecsocket
2bb1ef775c
Serve stale Tiltify data if API is not available ( #6427 )
2026-06-17 14:58:07 +00:00
aecsocket
64e17c7c1b
Include compatible dependencies field in project search ( #6366 )
...
* include compatible dependency projects field
* fix
2026-06-11 20:18:44 +00:00
Calum H.
c082594825
fix: underscored users not searchable ( #6362 )
2026-06-11 19:27:28 +00:00
aecsocket
d2a66bb2b0
Allow searching by project dependencies ( #6350 )
...
* Allow searching by project dependencies
* change field name
* use query macro
2026-06-10 17:30:03 +00:00
Calum H.
543d25e2d6
feat: use discord_id from discord sso for role grant ( #6326 )
...
* feat: properly use labrinth's linked discord accts sso for discord bot
* Update email for fixture user in SQL insert
Signed-off-by: Calum H. <calum@modrinth.com >
* fix: rev changes
* fix: copy on email
* fix: lint
* fix: rev
* fix: lint
---------
Signed-off-by: Calum H. <calum@modrinth.com >
2026-06-09 17:33:07 +00:00
aecsocket
bc5a761312
Add analytics meta for downloading dependent projects ( #6318 )
...
* Send dependent mod info to backend
* Parse meta from query
* condense dependent_on and modpack
* Analytics dependents response
2026-06-09 15:47:52 +00:00
Calum H. and sychic
58ad58f958
feat: user search ( #6302 )
...
* feat: user search
* refactor: use sqlx macro
* refactor: better name for escaped query
* style: cleanup unused import
* chore: update sqlx query cache
* fix: tests
---------
Co-authored-by: sychic <47618543+Sychic@users.noreply.github.com >
2026-06-03 19:38:24 +00:00
Calum H. and Sychic
5e7d4cc838
fix: notifs not live ( #6299 )
...
* fix: notifs not live
* Update apps/labrinth/src/routes/internal/external_notifications.rs
Co-authored-by: Sychic <47618543+Sychic@users.noreply.github.com >
Signed-off-by: Calum H. <hendersoncal117@gmail.com >
* fix: fmt
---------
Signed-off-by: Calum H. <hendersoncal117@gmail.com >
Co-authored-by: Sychic <47618543+Sychic@users.noreply.github.com >
2026-06-03 13:00:12 +00:00
Calum H.
3c051f5b1d
feat: add notifs onto friends ws temporarily ( #6290 )
...
* feat: add notifs onto friends ws temporarily
* fix: lint + styling
* fix: regressions
2026-06-02 19:47:37 +00:00
Calum H. and sychic
6ee5e4df19
feat: access labrinth backend ( #6284 )
...
* feat: redirect `/hosting` to archon
* feat: server invite notification type
* feat: direct email notification endpoint
* feat: revoke notification endpoint
* feat: specify users to remove notifications from
* refactor: insert notifications before sending emails
* refactor: rename endpoint
* refactor: remove archon redirect
* style: mark field unused
* feat: dedup external notifications
* feat: add server invite email templates
* style: remove unnecessary format
---------
Co-authored-by: sychic <47618543+Sychic@users.noreply.github.com >
2026-06-02 16:34:04 +00:00
aecsocket
d61397097c
Tilitfy webhook changes ( #6267 )
...
* Tilitfy webhook changes
* add env
* fix
2026-06-02 15:14:02 +02:00
aecsocket
c3a58aba9e
Fix clickhouse URI, country filtering ( #6247 )
...
* Switch to bind for long params
* Country filtering
* prepare
* playtime preservation
2026-06-01 16:11:44 +00:00
aecsocket
cc8d556448
Expose user campaign donation info ( #6266 )
...
expose extra donation info for users
2026-05-31 15:18:40 +00:00
Calum H.
71286f7b2b
fix: incorrect webhook schema for tiltify ( #6260 )
...
fix:
2026-05-31 01:11:22 +02:00
aecsocket
c29973ec1a
Pride 26 campaign backend integration ( #6254 )
...
* wip: pride 2026 webhooks and stuff
* setup webhook and link to user
* fix up code
* improve donation resolution
* Pride 26 campaign
* idempotency
* wip: tiltify
* fix
* redis caching
* add num donators
* fix
* Revert openapi
* Prepare
* improve oauth token gen code
2026-05-30 19:21:33 +00:00
aecsocket
67e1743d6c
Flatten facets response format, remove detailed route ( #6244 )
...
* Flatten facets response format
* delete test file
2026-05-29 23:22:08 +02:00
aecsocket
62cedab6dd
Analytics faceting fixes ( #6243 )
2026-05-29 22:46:51 +02:00
aecsocket
99611d22c7
Filter out invalid loaders in analytics, fix query bug ( #6241 )
...
* should fix bucketing query bug
* Filter out invalid loaders, fix query bug
* fixes
2026-05-29 12:46:59 -07:00
aecsocket
527f2f800b
Analytics faceting return count, improve performance ( #6229 )
2026-05-28 17:58:19 +00:00
aecsocket
ec49a3b051
Move all-projects route to specific user scope ( #6220 )
...
* Move all-projects route to specific user scope
* ci
* ci flaky test
* fmt
2026-05-28 14:41:57 +00:00
aecsocket
64edf2ddeb
Improve analytics performance, analytics faceting ( #6180 )
...
* fix uri too long
* all projects route for user
* analytics facet fetching
* cache download source regexes
* filtering
* prepare
* Split up analytics metrics into separate modules
* prepare
* fix ci
2026-05-27 00:01:13 +00:00
aecsocket
5727e156ed
Fetch project analytics events on analytics get ( #6143 )
...
* Fetch project analytics events
* fix
* post-query ua bucketing
* fmt
2026-05-22 18:32:33 +00:00
aecsocket
71dee4de40
Add modpacks with external files filter to moderation queue ( #6155 )
...
* simplify query
* make it a tristate
* external deps count
2026-05-21 20:21:54 +00:00
aecsocket
f106dc580f
Restrict what tokens can be used for auth init flows ( #6137 )
2026-05-19 15:45:58 +00:00
aecsocket
244c263e40
Implement analytics marker events ( #6090 )
...
* Analytics events
* prepare
* change route prefix
* update route return
* Add mod launcher analytics
* more UA strings
* fix ci
* caching on analytics events
* Return parent modpack versions for playtime queries
* sqlx prepare
* fmt
* dummy fixtures
2026-05-19 13:06:04 +00:00
François-Xavier Talbot
b72bc18a6b
Add moderator notes to users & organizations ( #6094 )
...
* Moderator notes
* Use macros
* Improve queries
* Query cache
* Accept missing If-Match if no existing note
* Undo v2 compat changes
* Fix tests
* Remove CONSTRAINT CHECK on moderation_notes
* Respect 1-indexing on moderation_notes.version default in DB migration
* Remove double Option
* .body("") -> .finish()
* .remove() -> .get().clone()
* cloned
* Review comments
* moderation_notes everywhere
2026-05-16 16:30:36 +00:00
aecsocket
cee942dcef
Fix file version updates not considering visibility ( #6105 )
2026-05-16 16:18:18 +00:00
aecsocket
e5bbd9d409
Remove non-Typesense search backends, add default env vars ( #6082 )
...
* Remove non-Typesense search backends, add default env vars
* shear
* remove some default keys
2026-05-13 17:15:37 +00:00
aecsocket
1ddbae40b7
Re-enable summary weight in search ( #5871 )
...
* re-enable summary weighting in search
* prioritize tokens/drop tokens thresh
2026-05-12 12:14:45 +00:00
aecsocket
ca1b36efde
Analytics request loader and game version validation ( #6064 )
...
* Analytics request loader and game version validation
* tweak agents
* factor tags into its own util
* lock cache refresh to avoid cache stampede
* Make analytics fields opptional
2026-05-11 14:45:50 +00:00
aecsocket
a5417e0851
Fix new analytics backend bucketing and revenue ( #6052 )
...
* Fix analytics backend QA items
* cargo prepare
2026-05-10 10:57:24 +00:00
Michael H.
22415a4cc6
fix: check edited member, not editor, for org owner permission guard ( #6024 )
...
fix: check edited member, not editor, for org owner permission guard (#1400 )
2026-05-07 14:59:05 +00:00
aecsocket
e8dc3c3150
Add update download reason to analytics ( #6023 )
...
* Add download reason to analytics
* mark modpack updates as actual updates in analytics
* fmt
2026-05-07 13:07:20 +00:00
aecsocket
2f311643a0
Expose new analytics data in backend route ( #5982 )
...
* Expose more analytics data in backend
* Adjust fetch analytics body
* fix
* fix
2026-05-04 16:33:26 +00:00
Prospector and aecsocket
e13a89dd72
External projects moderator database ( #5692 )
...
* Begin external projects moderator database frontend
* add copy link button
* begin project page permissions settings
* MEL database backend routes
* include filename in external files
* Hook up frontend external license page to backend
* more work on user-facing external projects stuff
* put user-facing stuff behind feature flag
* prepr
* clippy
---------
Co-authored-by: aecsocket <aecsocket@tutanota.com >
2026-05-04 16:31:37 +00:00
Calum H.
8a72ee9968
fix(backend): moderation locking logic fix ( #5979 )
...
* fix(backend): moderation locking logic fix
* fix: clippy
2026-05-03 18:29:05 +00:00
Michael H.
678f8049e3
fix: labrinth memory leaks ( #5980 )
2026-05-03 20:01:56 +02:00