aecsocket
ad3edf541b
Replace MaxMind with CloudFlare headers ( #4934 )
...
* Replace MaxMind with CloudFlare headers
* Remove MaxMind env vars
* Fix test harness
2025-12-30 16:49:49 +00:00
François-Xavier Talbot
9924faab84
Fix tech rev rejection query ( #4963 )
2025-12-29 21:06:47 +00:00
aecsocket
cace1a54cd
Fix tech review query routes ( #4946 )
2025-12-21 09:23:21 +00:00
aecsocket
39f2b0ecb6
Technical review queue ( #4775 )
...
* chore: fix typo in status message
* feat(labrinth): overhaul malware scanner report storage and routes
* chore: address some review comments
* feat: add Delphi to Docker Compose `with-delphi` profile
* chore: fix unused import Clippy lint
* feat(labrinth/delphi): use PAT token authorization with project read scopes
* chore: expose file IDs in version queries
* fix: accept null decompiled source payloads from Delphi
* tweak(labrinth): expose base62 file IDs more consistently for Delphi
* feat(labrinth/delphi): support new Delphi report severity field
* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors
* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types
* chore: run `cargo sqlx prepare`
* chore: fix typo on frontend generated state file message
* feat: update to use new Delphi issue schema
* wip: tech review endpoints
* wip: add ToSchema for dependent types
* wip: report issues return
* wip
* wip: returning more data
* wip
* Fix up db query
* Delphi configuration to talk to Labrinth
* Get Delphi working with Labrinth
* Add Delphi dummy fixture
* Better Delphi logging
* Improve utoipa for tech review routes
* Add more sorting options for tech review queue
* Oops join
* New routes for fetching issues and reports
* Fix which kind of ID is returned in tech review endpoints
* Deduplicate tech review report rows
* Reduce info sent for projects
* Fetch more thread info
* Address PR comments
* fix ci
* fix postgres version mismatch
* fix version creation
* Implement routes
* fix up tech review
* Allow adding a moderation comment to Delphi rejections
* fix up rebase
* exclude rejected projects from tech review
* add status change msg to tech review thread
* cargo sqlx prepare
* also ignore withheld projects
* More filtering on issue search
* wip: report routes
* Fix up for build
* cargo sqlx prepare
* fix thread message privacy
* New tech review search route
* submit route
* details have statuses now
* add default to drid status
* dedup issue details
* fix sqlx query on empty files
* fixes
* Dedupe issue detail statuses and message on entering tech rev
* Fix qa issues
* Fix qa issues
* fix review comments
* typos
* fix ci
* feat: tech review frontend (#4781 )
* chore: fix typo in status message
* feat(labrinth): overhaul malware scanner report storage and routes
* chore: address some review comments
* feat: add Delphi to Docker Compose `with-delphi` profile
* chore: fix unused import Clippy lint
* feat(labrinth/delphi): use PAT token authorization with project read scopes
* chore: expose file IDs in version queries
* fix: accept null decompiled source payloads from Delphi
* tweak(labrinth): expose base62 file IDs more consistently for Delphi
* feat(labrinth/delphi): support new Delphi report severity field
* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors
* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types
* chore: run `cargo sqlx prepare`
* chore: fix typo on frontend generated state file message
* feat: update to use new Delphi issue schema
* wip: tech review endpoints
* wip: add ToSchema for dependent types
* wip: report issues return
* wip
* wip: returning more data
* wip
* Fix up db query
* Delphi configuration to talk to Labrinth
* Get Delphi working with Labrinth
* Add Delphi dummy fixture
* Better Delphi logging
* Improve utoipa for tech review routes
* Add more sorting options for tech review queue
* Oops join
* New routes for fetching issues and reports
* Fix which kind of ID is returned in tech review endpoints
* Deduplicate tech review report rows
* Reduce info sent for projects
* Fetch more thread info
* Address PR comments
* fix ci
* fix ci
* fix postgres version mismatch
* fix version creation
* Implement routes
* feat: batch scan alert
* feat: layout
* feat: introduce surface variables
* fix: theme selector
* feat: rough draft of tech review card
* feat: tab switcher
* feat: batch scan btn
* feat: api-client module for tech review
* draft: impl
* feat: auto icons
* fix: layout issues
* feat: fixes to code blocks + flag labels
* feat: temp remove mock data
* fix: search sort types
* fix: intl & lint
* chore: re-enable mock data
* fix: flag badges + auto open first issue in file tab
* feat: update for new routes
* fix: more qa issues
* feat: lazy load sources
* fix: re-enable auth middleware
* feat: impl threads
* fix: lint & severity
* feat: download btn + switch to using NavTabs with new local mode option
* feat: re-add toplevel btns
* feat: reports page consistency
* fix: consistency on project queue
* fix: icons + sizing
* fix: colors and gaps
* fix: impl endpoints
* feat: load all flags on file tab
* feat: thread generics changes
* feat: more qa
* feat: fix collapse
* fix: qa
* feat: msg modal
* fix: ISO import
* feat: qa fixes
* fix: empty state basic
* fix: collapsible region
* fix: collapse thread by default
* feat: rough draft of new process/flow
* fix labrinth build
* fix thread message privacy
* New tech review search route
* feat: qa fixes
* feat: QA changes
* fix: verdict on detail not whole issue
* fix: lint + intl
* fix: lint
* fix: thread message for tech rev verdict
* feat: use anim frames
* fix: exports + typecheck
* polish: qa changes
* feat: qa
* feat: qa polish
* feat: fix malic modal
* fix: lint
* fix: qa + lint
* fix: pagination
* fix: lint
* fix: qa
* intl extract
* fix ci
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
Co-authored-by: Calum H. <contact@cal.engineer >
2025-12-20 11:43:04 +00:00
François-Xavier Talbot
8fb38ba0f2
Remove tag="type" on PaymentRequestMetadata ( #4931 )
...
This would conflict with the flattened kind: PaymentRequestMetadataKind
enum, which itself is internally tagged with "type", leading to two
"type" fields being serialized, confusing the deserializer.
Deserialization would fail, be silenced in the stripe webhook and lead
to the incorrect region being assigned to a server.
2025-12-19 00:52:43 +01:00
aecsocket
9ad01723a2
Fix optional file type upload validation ( #4924 )
2025-12-18 19:18:05 +00:00
Prospector
5bbc3872f3
Revert "Use alt CDN URL when request header is passed ( #4921 )" ( #4923 )
...
This reverts commit 609e3896eb .
2025-12-18 18:40:27 +00:00
aecsocket
8d894541e8
Add affiliate code revenue analytics ( #4883 )
...
* Add affiliate code revenue analytics
* clean up some error handling
* Add conversions to affiliate code analytics
* Only include affiliate subscriptions which have an associated successful charge
* wip: affiliate code clicks
* affiliate code click ingest route
* Add affiliate code clicks to analytics
* add new cols
2025-12-18 18:02:49 +00:00
aecsocket
dc16a65b62
Improve support for non-USD Tremendous gift cards ( #4887 )
...
* Improve support for non-USD Tremendous gift cards
* add forex info to tremendous payout methods
* fix: partially fix DEV-535
* feat: wip
* eur/usd to usd/eur
* feat: better denom picking
* feat: qa changes
* fix: intl
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer >
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com >
2025-12-18 18:02:29 +00:00
aecsocket
609e3896eb
Use alt CDN URL when request header is passed ( #4921 )
...
* Use alt CDN URL when request header is passed
* Modify version routes to use alt CDN
2025-12-17 18:12:29 +00:00
aecsocket
ddcc14d99f
Add details to Mural API errors ( #4886 )
2025-12-11 12:49:59 +00:00
aecsocket
9aa06fbc26
Fix Mural payout status syncing ( #4853 )
...
* Fix Mural payout status syncing
* Make Mural payout code more resilient
* prepare sqlx
* fix test
2025-12-08 20:34:41 +00:00
aecsocket
cea5cfa4ab
Add new optional file types ( #4854 )
...
* Add new optional file types
* Fix build
* Add signature file type
---------
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com >
2025-12-06 23:45:10 +00:00
Prospector
16a6f7b352
Modrinth Hosting rebrand ( #4846 )
...
* Modrinth Hosting rebranding
* fix capitalization issue
* fix issues
2025-12-03 22:15:36 +00:00
aecsocket
79c2633011
Fix slug/project ID collisions ( #4844 )
...
* wip: tool to create project with id
* fix
* fix id/slug collision for orgs
2025-12-03 00:30:18 +00:00
aecsocket
783aaa6553
Add revenue split to affiliate codes v2 ( #4672 )
...
* wip: affiliate payouts again
* Implement affiliate payout queue
* Deactivate subscription affiliations on cancellation
* Remove a test that never compiled in the first place
* Update sqlx cache
* address some PR comments
* more comments
* wip: handle refund charges
* cargo sqlx prepare
* Address PR comments
* cargo sqlx prepare
2025-12-02 00:01:24 +00:00
aecsocket
dfe087df20
Enforce 2dp on payout withdrawals ( #4829 )
...
* fix mural withdraw amount
* Enforce 2dp on all payout logic
2025-11-27 10:03:34 +00:00
aecsocket
31417a2aa1
more logging on sync payouts task ( #4814 )
2025-11-23 21:48:15 +01:00
aecsocket
2f0ef07944
Add logging and change limit of Mural payouts task ( #4798 )
2025-11-19 12:38:30 +00:00
François-Xavier Talbot
e837d9fa30
Add route to reprocess a refund charge's tax record ( #4791 )
2025-11-18 11:36:55 +00:00
aecsocket
089cca60ce
Fix PayPal SSO OAuth callback ( #4758 )
...
* Maybe fix PayPal SSO
* cargo sqlx prepare
* maybe works
* Attempt 2 of fixing
* Fix vue
* Try adding more logging to flow
2025-11-16 21:49:48 +00:00
aecsocket
c27f787c91
Task to retroactively update Mural statuses ( #4769 )
...
* Task to retroactively update Mural statuses
* cargo sqlx prepare
* wip: add tests
* Prepare
* Fix up test
* start on muralpay mock
* Move mocking to muralpay crate
2025-11-13 18:16:41 +00:00
aecsocket
98b4970680
Store method ID for payouts ( #4752 )
...
* Store method ID for payouts
* Fixes
2025-11-10 16:41:06 +00:00
aecsocket
9706f1597b
Supporting documents for Mural payouts ( #4721 )
...
* wip: gotenberg
* Generate and provide supporting docs for Mural payouts
* Correct docs
* shear
* update cargo lock because r-a complains otherwise
* Remove local Gotenberg queue and use Redis instead
* Store platform_id in database correctly
* Address PR comments
* Fix up CI
* fix rebase
* Add timeout to default env vars
2025-11-08 23:27:31 +00:00
aecsocket
f8a5a77daa
Expose test utils to Labrinth dependents ( #4703 )
...
* Expose test utils to Labrinth dependents
* Feature gate `labrinth::test`
* Unify db migrators
* Expose `NotificationBuilder::insert_many_deliveries`
* Add logging utils to common crate
* Remove unused console-subscriber layer
* fix CI
2025-11-08 20:26:24 +00:00
aecsocket
608ab988f0
Fetch more data for moderation endpoints ( #4727 )
...
* Moderation endpoints fetch ownership data
* fix up endpoint configs
* add some docs
2025-11-07 18:50:29 +00:00
aecsocket
cb47bc97c7
Logging hotfix for canceling Mural payout requests ( #4730 )
...
* Logging hotfix for canceling payout requests
* Remove Tombi CI step for now
2025-11-07 12:07:10 +01:00
François-Xavier Talbot
7437a833ef
Fix payout notifications ( #4707 )
...
* Add limit to payouts_values_notifications synchronizer
* Set payout notification threshold to $1
* Fix formatting
* Query cache
2025-11-05 19:43:59 +00:00
aecsocket
23d098eee5
Fix error chain logging and withdrawal fees ( #4718 )
...
* Log Labrinth errors properly
* Tweak how we do Tremendous fees
* Fix maths for Tremendous fees
2025-11-04 17:50:54 -08:00
aecsocket
6e47de06bb
Address withdrawal QA changes ( #4711 )
...
* Add Mural to balance monitoring
* Add back Visa prepaid Tremendous cards
* cargo sqlx prepare
2025-11-04 16:40:15 +00:00
aecsocket
2d218d79c6
Mural fixes ( #4709 )
2025-11-04 01:12:30 +01:00
François-Xavier Talbot
92698e4bb5
Update tax change notification timings ( #4706 )
2025-11-03 22:15:16 +00:00
aecsocket
17f395ee55
Mural Pay integration ( #4520 )
...
* wip: muralpay integration
* Basic Mural Pay API bindings
* Fix clippy
* use dotenvy in muralpay example
* Refactor payout creation code
* wip: muralpay payout requests
* Mural Pay payouts work
* Fix clippy
* add mural pay fees API
* Work on payout fee API
* Fees API for more payment methods
* Fix CI
* Temporarily disable Venmo and PayPal methods from frontend
* wip: counterparties
* Start on counterparties and payment methods API
* Mural Pay multiple methods when fetching
* Don't send supported_countries to frontend
* Add countries to muralpay fiat methods
* Compile fix
* Add exchange rate info to fees endpoint
* Add fees to premium Tremendous options
* Add delivery email field to Tremendous payouts
* Add Tremendous product category to payout methods
* Add bank details API to muralpay
* Fix CI
* Fix CI
* Remove prepaid visa, compute fees properly for Tremendous methods
* Add more details to Tremendous errors
* Add fees to Mural
* Payout history route and bank details
* Re-add legacy PayPal/Venmo options for US
* move the mural bank details route
* Add utoipa support to payout endpoints
* address some PR comments
* add CORS to new utoipa routes
* Immediately approve mural payouts
* Add currency support to Tremendous payouts
* Currency forex
* add forex to tremendous fee request
* Add Mural balance to bank balance info
* Add more Tremendous currencies support
* Transaction payouts available use the correct date
* Address my own review comment
* Address PR comments
* Change Mural withdrawal limit to 3k
* maybe fix tremendous gift cards
* Change how Mural minimum withdrawals are calculated
* Tweak min/max withdrawal values
---------
Co-authored-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
2025-11-03 14:19:46 -08:00
aecsocket
b7f0988399
Decouple project deletion from thread deletion ( #4673 )
...
* Decouple project deletion from thread deletion
* Allow a thread to exist without a project
* attempt 2
* Modify migration to set orphaned threads' mods to NULL instead of removing constraint entirely
* Use mod PAT for mod threads
2025-10-31 19:04:01 +00:00
aecsocket
bcc36362be
Expose utilities for setting up the database ( #4657 )
...
* Expose utilities for setting up the database
* Expose migrator directly
* Make some test utils publicly accessible
* expose migrator
* more test fixture utils
* more test fixture utils
* more test fixture utils
* fix
* fix lint
2025-10-30 10:10:25 +00:00
aecsocket
ab886a5ea8
Fix CORS ( #4610 )
2025-10-24 18:27:44 +00:00
aecsocket
03b0eba695
Add utoipa Swagger UI support ( #4602 )
...
* Add utoipa Swagger UI support
* remove unused code
* remove unused code
* consistency with trailing slash
2025-10-24 14:44:50 +00:00
aecsocket
707ff2146b
Update appropriate rows when removing a user ( #4597 )
...
* Update appropriate rows when removing a user
* Update sqlx cache
* Delete rows from payouts_values_notifications instead of make ghost user
2025-10-24 14:19:53 +00:00
François-Xavier Talbot
f375913c62
Adjust some values in tax-related tasks ( #4598 )
...
* Adjust some values for tax processing
* chore: query cache, clippy, fmt
2025-10-21 15:55:54 +00:00
François-Xavier Talbot
977de0e18a
Fix MaxMind ( #4595 )
...
* add maxmind to app data
* add back maxmind account id check
2025-10-21 00:24:47 +02:00
François-Xavier Talbot
c379e4b173
admin/credit: don't credit unprovisioned subscriptions ( #4594 )
...
* Remove pointless sorting
* Filter subscriptions by labrinth's provisioned state
2025-10-20 20:31:20 +00:00
François-Xavier Talbot
eeed4e572d
Credit subscriptions ( #4575 )
...
* Implement subscription crediting
* chore: query cache, clippy, fmt
* Improve code, improve query for next open charge
* chore: query cache, clippy, fmt
* Move server ID copy button up
* Node + region crediting
* Make it less ugly
* chore: query cache, clippy, fmt
* Bugfixes
* Fix lint
* Adjust migration
* Adjust migration
* Remove billing change
* Move DEFAULT_CREDIT_EMAIL_MESSAGE to utils.ts
* Lint
* Merge
* bump clickhouse, disable validation
* tombi fmt
* Update cargo lock
2025-10-20 17:35:44 +00:00
François-Xavier Talbot
79502a19d6
bump clickhouse, disable validation ( #4593 )
...
* bump clickhouse, disable validation
* tombi fmt
2025-10-20 17:30:28 +00:00
François-Xavier Talbot
3dbfd69bdd
Fix clickhouse ( #4592 )
2025-10-20 19:07:23 +02:00
aecsocket
24bec6baba
Fix MaxMind ( #4590 )
2025-10-20 15:58:31 +00:00
François-Xavier Talbot
8a30b7978d
Support ctoken_ in PATCH subscription ( #4578 )
2025-10-20 10:03:20 +00:00
François-Xavier Talbot
4b17eb5d35
Gotenberg/PDF gen implementation ( #4574 )
...
* Gotenberg/PDF gen implementation
* Security, PDF type enum, propagate client
* chore: query cache, clippy, fmt
* clippy fixes + tombi
* Update env example, add GOTENBERG_CALLBACK_URL
* Remove test code
* Fix .env, docker-compose
* Update purpose of payment
* Add internal networking guards to gotenberg webhooks
* Fix error
* Fix lint
2025-10-19 23:56:26 +00:00
François-Xavier Talbot
7796273529
Clearer error on TIN mismatch ( #4579 )
...
* Clearer error on TIN mismatch
* Remove ctoken code (how did that end up there)
* polish: frontend for TIN/SSN mismatch
* fix: lint
* polish: only banner + change text
* fix: logic
* fix: lint
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer >
2025-10-19 21:03:21 +00:00
aecsocket
fa7d1d7942
Use new MaxMind env vars on Labrinth ( #4573 )
...
* Bring in modrinth-maxmind
* integrate modrinth-maxmind into labrinth
* Fix CI
2025-10-18 18:38:19 +00:00
François-Xavier Talbot
5db5bf4c4c
Changes to handling of refunds in Anrok ( #4556 )
...
* Use negations, track transaction version/accounting time, use original charge accounting time in refunds
* query cache
* chore: query cache, clippy, fmt
* Fix tax drift calculation
* Fix migration
* Increase update_tax_transactions rate
2025-10-17 15:57:36 +00:00