Commit graph

195 commits

Author SHA1 Message Date
Jesse Wierzbinski 3d3e64edab
feat(api): Implement rate limiting
Some checks failed
CodeQL Scan / Analyze (javascript-typescript) (push) Failing after 42s
Build Docker Images / lint (push) Successful in 31s
Build Docker Images / check (push) Successful in 1m3s
Build Docker Images / tests (push) Failing after 6s
Build Docker Images / build (server, Dockerfile, ${{ github.repository_owner }}/server) (push) Has been skipped
Build Docker Images / build (worker, Worker.Dockerfile, ${{ github.repository_owner }}/worker) (push) Has been skipped
Deploy Docs to GitHub Pages / build (push) Failing after 13s
Mirror to Codeberg / Mirror (push) Failing after 0s
Deploy Docs to GitHub Pages / Deploy (push) Has been skipped
Nix Build / check (push) Failing after 33m18s
2025-03-27 20:12:00 +01:00
Jesse Wierzbinski 58b4d7454f
refactor(api): ♻️ Serve frontend from static files instead of proxying another process 2025-03-27 18:51:22 +01:00
Jesse Wierzbinski 65e2e19ff1
refactor(api): ♻️ Properly reuse error messages and schemas 2025-03-24 14:42:09 +01:00
Jesse Wierzbinski 7112a66e4c
refactor: Refactor tests to not use module mocks, so bun test can be used
Some checks failed
CodeQL Scan / Analyze (javascript-typescript) (push) Failing after 45s
Build Docker Images / lint (push) Successful in 27s
Build Docker Images / check (push) Successful in 1m7s
Build Docker Images / tests (push) Failing after 6s
Build Docker Images / build (server, Dockerfile, ${{ github.repository_owner }}/server) (push) Has been skipped
Build Docker Images / build (worker, Worker.Dockerfile, ${{ github.repository_owner }}/worker) (push) Has been skipped
Deploy Docs to GitHub Pages / build (push) Failing after 12s
Mirror to Codeberg / Mirror (push) Failing after 0s
Deploy Docs to GitHub Pages / Deploy (push) Has been skipped
Nix Build / check (push) Failing after 32m31s
2025-03-23 04:12:28 +01:00
Jesse Wierzbinski ec506241f0
test(api): Remove old tests and introduce new, better ones
Some checks failed
CodeQL Scan / Analyze (javascript-typescript) (push) Failing after 6s
Build Docker Images / lint (push) Successful in 50s
Build Docker Images / check (push) Successful in 1m24s
Build Docker Images / tests (push) Failing after 8s
Build Docker Images / build (server, Dockerfile, ${{ github.repository_owner }}/server) (push) Has been skipped
Build Docker Images / build (worker, Worker.Dockerfile, ${{ github.repository_owner }}/worker) (push) Has been skipped
Deploy Docs to GitHub Pages / build (push) Failing after 15s
Mirror to Codeberg / Mirror (push) Failing after 0s
Deploy Docs to GitHub Pages / Deploy (push) Has been skipped
Nix Build / check (push) Failing after 33m5s
2025-03-23 03:34:17 +01:00
Jesse Wierzbinski 8d1af1b0cd
refactor(api): 🔥 Remove old @versia/client version 2025-03-22 18:04:47 +01:00
Jesse Wierzbinski 3fe07a79b8
refactor(api): ♻️ Move all client schema code to new package 2025-03-22 02:34:03 +01:00
Jesse Wierzbinski 52602c3da7
chore: ⬆️ Upgrade dependencies
Some checks failed
CodeQL Scan / Analyze (javascript-typescript) (push) Failing after 56s
Build Docker Images / lint (push) Failing after 10s
Build Docker Images / check (push) Failing after 11s
Build Docker Images / tests (push) Failing after 6s
Build Docker Images / build (server, Dockerfile, ${{ github.repository_owner }}/server) (push) Has been skipped
Build Docker Images / build (worker, Worker.Dockerfile, ${{ github.repository_owner }}/worker) (push) Has been skipped
Deploy Docs to GitHub Pages / build (push) Failing after 5s
Mirror to Codeberg / Mirror (push) Failing after 1s
Deploy Docs to GitHub Pages / Deploy (push) Has been skipped
Nix Build / check (push) Failing after 5s
2025-03-16 17:01:07 +01:00
Jesse Wierzbinski 6622ee9020
refactor(federation): ♻️ Move Versia Note URIs to /notes, instead of /objects 2025-02-17 23:31:39 +01:00
Jesse Wierzbinski ed9ffe34f4
feat(federation): ⬆️ Upgrade to Versia 0.5 2025-02-17 13:07:43 +01:00
Jesse Wierzbinski 54fd81f076
refactor(config): ♻️ Redo config structure from scratch, simplify validation code, improve checks, add support for loading sensitive data from paths 2025-02-15 02:47:29 +01:00
Jesse Wierzbinski 6a810529bc
refactor(api): 🏷️ Finish OpenAPI documentation refactor 2025-02-14 17:49:34 +01:00
Jesse Wierzbinski 1856176de5
refactor(api): 🏷️ Port almost all remaining v1 endpoints to OpenAPI 2025-02-14 16:44:32 +01:00
Jesse Wierzbinski 247a8fbce3
refactor(api): 🏷️ Port more misc endpoints to use new schemas
Some checks failed
Mirror to Codeberg / Mirror (push) Failing after 0s
2025-02-13 02:34:44 +01:00
Jesse Wierzbinski e3e285571e
refactor(api): 🏷️ Port all /api/v1/accounts to use new schemas
Some checks failed
Mirror to Codeberg / Mirror (push) Failing after 0s
2025-02-13 01:31:15 +01:00
Jesse Wierzbinski a0ce18337a
refactor(api): 🏷️ Use more new schemas 2025-02-12 23:33:07 +01:00
Jesse Wierzbinski bff1c5f734
refactor(api): 🏷️ Begin porting all code over to new schemas 2025-02-12 23:25:22 +01:00
Jesse Wierzbinski fda1167234
feat(api): 🏷️ Finish porting full Mastodon API to OpenAPI 2025-02-12 23:04:44 +01:00
Jesse Wierzbinski 264e2fe8ac
feat(api): 🏷️ Port Role and CustomEmoji OpenAPI schemas
Some checks failed
Mirror to Codeberg / Mirror (push) Failing after 1s
2025-02-11 18:22:39 +01:00
Jesse Wierzbinski 7c622730dc
feat(api): 🏷️ Port Status OpenAPI schemas from Mastodon API docs 2025-02-05 22:49:07 +01:00
Jesse Wierzbinski 2aeada4904
feat(api): 🏷️ Port Account OpenAPI schemas from Mastodon API docs 2025-02-05 21:49:39 +01:00
Jesse Wierzbinski 76d1ccc859
refactor(api): ♻️ Use URL literal instead of strings 2025-02-01 16:32:18 +01:00
Jesse Wierzbinski 9ba6237f13
refactor(media): ♻️ Massively simplify media pipeline with Bun.S3 2025-01-29 17:21:40 +01:00
Jesse Wierzbinski ba431e2b11
refactor(database): ♻️ Make user avatar and header into a Media instead of plaintext 2025-01-28 19:07:55 +01:00
Jesse Wierzbinski bc961b70bb
refactor(database): 🔥 Simplify media management code 2025-01-28 18:06:33 +01:00
Jesse Wierzbinski cf1104d762
refactor(database): ♻️ Make emojis use a Media instead of just rawdogging the URI 2025-01-28 17:43:43 +01:00
Jesse Wierzbinski 3216fc339a
refactor(database): ♻️ Move Note <-> Media relations to a many-to-many model instead of one-to-many 2025-01-23 20:36:09 +01:00
Jesse Wierzbinski 9c30dacda7
refactor(database): ♻️ Use ContentFormat to store media data 2025-01-23 19:37:17 +01:00
Jesse Wierzbinski 2f61cd8f0a
refactor(database): 🚚 Rename "Attachment" to "Media" 2025-01-23 16:08:42 +01:00
Jesse Wierzbinski c4339e64bd
chore: ⬆️ Upgrade Bun to 1.2.0 2025-01-23 15:28:16 +01:00
Jesse Wierzbinski b086e65404
refactor(worker): Move blurhash processing to worker 2025-01-06 19:45:32 +01:00
Jesse Wierzbinski 80b874e5fb
refactor(api): Move media processing to background job 2025-01-06 19:21:57 +01:00
Jesse Wierzbinski 0e9db83279
style: 🚨 Run Biome 2025-01-02 04:52:30 +01:00
Jesse Wierzbinski 3484b1e1a1
fix(api): 🐛 Improve notification text 2025-01-02 04:49:36 +01:00
Jesse Wierzbinski 1c543723fb
fix(api): 🐛 Use aesgcm, not aes128gcm during push notifications
Mastodon's server hates aes128gcm
2025-01-02 04:36:28 +01:00
Jesse Wierzbinski bedc25bacf
fix(api): 🐛 Properly await notification result 2025-01-02 04:27:52 +01:00
Jesse Wierzbinski cde2836982
fix(api): 👽 Ignore what the Mastodon docs say, they're wrong 2025-01-02 04:13:12 +01:00
Jesse Wierzbinski 5d64ecd04f
fix(api): 🐛 Switch base64 version to base64url in subscriptions 2025-01-02 04:02:29 +01:00
Jesse Wierzbinski ea0afdaf22
fix(api): 🐛 Make validation on push subscription more lax 2025-01-02 03:53:38 +01:00
Jesse Wierzbinski 59cf4e384a
fix(api): 🐛 Correctly calculate user based on token 2025-01-02 03:36:54 +01:00
Jesse Wierzbinski 7b3158c102
fix(api): 🚑 Fix incorrect builds
Everything under api/ should be a route, or it messes up bundling
2025-01-02 02:55:56 +01:00
Jesse Wierzbinski d839c274b1
feat(api): Finish push notification delivery 2025-01-02 02:45:40 +01:00
Jesse Wierzbinski d096ab830c
feat(api): Add initial Push Notifications support 2025-01-02 01:29:33 +01:00
Jesse Wierzbinski fbfd237f27
refactor(api): ♻️ Throw ApiError instead of returning error JSON 2024-12-30 18:00:23 +01:00
Jesse Wierzbinski c14621ee06
refactor(api): 🔥 Simplify oauth authorize handler 2024-12-30 16:47:48 +01:00
Jesse Wierzbinski f67fed12e0
feat(database): Add Reaction database class 2024-12-18 20:01:26 +01:00
Jesse Wierzbinski 4fdb96930f
fix(api): 🐛 Fetch media content-type from data, instead of doing naive guesses 2024-12-16 23:57:21 +01:00
Jesse Wierzbinski e293bd280d
fix(api): 🐛 Fix duplicated mentions, general refactorings 2024-12-09 15:30:18 +01:00
Jesse Wierzbinski 0ae9cfe26c
refactor(federation): ♻️ More federation logic cleanup 2024-12-09 15:01:19 +01:00
Jesse Wierzbinski 83399ba5f1
refactor(database): ♻️ Simplify User and Note logic further 2024-12-09 13:50:46 +01:00
Jesse Wierzbinski a8541bdc44
refactor(database): ♻️ Simplify Note and User federation logic 2024-12-09 13:36:15 +01:00
Jesse Wierzbinski cbbf49905b
fix(federation): 🐛 Fix remote emojis being incorrectly marked as local 2024-12-09 13:11:23 +01:00
Jesse Wierzbinski 2743528727
fix(api): 🐛 Fix emoji editing always making the emoji non-global 2024-12-07 11:12:17 +01:00
Jesse Wierzbinski 91da99c934
feat(federation): Handle instances not existing 2024-12-02 15:07:05 +01:00
Jesse Wierzbinski ca42df1dfd
fix(api): 🐛 Properly include global field in API emojis 2024-11-29 21:49:41 +01:00
Jesse Wierzbinski eb405d33cd
fix(api): 🐛 Don't use null in Role properties 2024-11-28 10:54:44 +01:00
Jesse Wierzbinski 49c53de99e
feat(api): Overhaul Role API, add ability to edit roles and assign/unassign them from any user 2024-11-26 15:27:39 +01:00
Jesse Wierzbinski 49a301663a
feat(federation): Use instance messaging to send errors to remote instance 2024-11-25 23:14:42 +01:00
Jesse Wierzbinski a037448ebb
refactor(federation): ♻️ Remove Response return semantics from inbox worker 2024-11-25 23:11:17 +01:00
Jesse Wierzbinski 1b98381242
feat: Split off queue workers into a separate worker process 2024-11-25 21:54:31 +01:00
Jesse Wierzbinski c899f12893
feat(federation): Prioritize delivery to instance inbox, and use delivery queue in more places 2024-11-25 20:50:55 +01:00
Jesse Wierzbinski 7a73a1a24e
feat(federation): Store remote instance shared inbox and extensions as well 2024-11-25 20:37:00 +01:00
Jesse Wierzbinski 8a920218ea
feat(federation): Add queue to note delivery 2024-11-25 11:29:48 +01:00
Jesse Wierzbinski 3e19b11609
refactor: 🔊 Fix duplicate logs 2024-11-24 23:13:29 +01:00
Jesse Wierzbinski 005a3a2721
fix(federation): 🚑 Don't always try to use instance key when an instance is not the request signer 2024-11-24 23:01:47 +01:00
Jesse Wierzbinski 34370a082a
refactor(federation): ♻️ Make Instance updateFromRemote non-static 2024-11-24 22:48:34 +01:00
Jesse Wierzbinski 8b23eb888d
refactor(cli): ♻️ Rewrite instance fetch command to refetch instances instead 2024-11-24 22:45:41 +01:00
Jesse Wierzbinski c59ebef851
feat(federation): Add more debugging to inbox processing 2024-11-24 22:17:45 +01:00
Jesse Wierzbinski b333ecc816
refactor(federation): 🔊 Add more logging to some federation logic 2024-11-24 22:01:14 +01:00
Jesse Wierzbinski b320ddf3ae
refactor(federation): ♻️ Queue all incoming inbox processing events 2024-11-24 21:35:59 +01:00
Jesse Wierzbinski 259fba17a7
fix(federation): 🐛 Make an empty allowed_ip list for bridge correctly allow any IP 2024-11-24 16:54:24 +01:00
Jesse Wierzbinski b55237cdc8
refactor(federation): ♻️ Allow ActivityPub bridge requests to omit all signature headers, including x-signed-by 2024-11-24 16:40:23 +01:00
Jesse Wierzbinski 80b5184d6a
test(api): 🐛 Fix S3 tests 2024-11-24 16:32:05 +01:00
Jesse Wierzbinski 59b069ce2c
fix(api): 🐛 Specify content-type when uploading to S3 2024-11-24 13:16:52 +01:00
Jesse Wierzbinski ace6921447
refactor(federation): ♻️ Correctly handle bridge requests and instance signatures in user inboxes 2024-11-23 23:02:18 +01:00
Jesse Wierzbinski 8444ff5741
fix(federation): 🐛 Use correct URL for bridge queries 2024-11-22 22:17:25 +01:00
Jesse Wierzbinski 569ba8bf2d
fix(api): 🔒 Correctly put all URIs in profiles through proxy 2024-11-22 15:06:46 +01:00
Jesse Wierzbinski 9682cd0f99
fix(api): 🔒 Correctly check for note ownership when editing 2024-11-19 17:26:14 +01:00
Jesse Wierzbinski 06a8dd1c0a
refactor: 📝 Move documentation to a custom VitePress site 2024-11-10 15:24:34 +01:00
Jesse Wierzbinski 3ec5118771
refactor(plugin): ♻️ Move plugin loading to PluginLoader class 2024-11-10 13:08:26 +01:00
Jesse Wierzbinski 93ebeba368
Revert "refactor(database): ♻️ Correctly use @versia/kit imports everywhere"
This reverts commit 2f94884d37.
2024-11-04 15:20:53 +01:00
Jesse Wierzbinski 2f94884d37
refactor(database): ♻️ Correctly use @versia/kit imports everywhere 2024-11-04 15:06:23 +01:00
Jesse Wierzbinski 02c3c9d0bf
refactor: 🏷️ Move all types that represent ORM abstractions to ORM class static properties 2024-11-04 14:58:17 +01:00
Jesse Wierzbinski e732a3df03
refactor(database): ♻️ Move Notifications to their own ORM abstractions 2024-11-04 10:43:30 +01:00
Jesse Wierzbinski 845041e4db
refactor(database): ♻️ Move Token to its own ORM abstraction, optimize familiar_followers route 2024-11-03 17:45:21 +01:00
Jesse Wierzbinski c1dcdc78ae
refactor: ♻️ Always use explicit types in every function 2024-11-02 00:43:33 +01:00
Jesse Wierzbinski 54cea29ce9
refactor: 🚨 Always explicitely state member accessibility 2024-11-01 21:20:12 +01:00
Jesse Wierzbinski 7a73b8db91
refactor(database): 🚚 Only import ORM table data from @versia/kit 2024-11-01 21:05:54 +01:00
Jesse Wierzbinski 2f8b85a299
refactor(database): 🚚 Only import ORM abstractions from @versia/kit 2024-11-01 20:57:16 +01:00
Jesse Wierzbinski f26493140f
refactor(federation): ♻️ Move incoming federation handling to custom class 2024-11-01 20:42:32 +01:00
Jesse Wierzbinski 7638a094f4
refactor(api): 🔥 Remove unused function 2024-10-28 12:31:46 +01:00
Jesse Wierzbinski 0a31b7a8f6
feat(federation): Implement inbound federation of likes and like deletion 2024-10-24 19:08:28 +02:00
Jesse Wierzbinski f494f76f82
feat(federation): Federate likes and unlikes 2024-10-24 17:31:39 +02:00
Jesse Wierzbinski 5a26bdf2f8
refactor(database): 🚚 Move Likes to our custom ORM 2024-10-24 17:20:00 +02:00
Jesse Wierzbinski e52e230ce3
refactor(database): 🚚 Move database ORM code to classes/database
The old directory, packages/database-interface, was confusingly named so it was better to move it here
2024-10-24 16:28:38 +02:00
Jesse Wierzbinski 9e96eca032
refactor(database): ♻️ Move Applications to our custom ORM 2024-10-23 17:56:47 +02:00
Jesse Wierzbinski f26ab0f0e6
feat(plugin): Add override settings to plugin loading 2024-10-06 15:55:15 +02:00
Jesse Wierzbinski b53307c824
refactor: 🚚 Explicitely add extensions to all imports 2024-10-04 15:22:48 +02:00
Jesse Wierzbinski 2537e3cd48
refactor: 🚨 Make more class methods static 2024-10-03 19:02:13 +02:00
Jesse Wierzbinski 835cdc3f18
refactor: 🚨 Make class methods that don't use this static 2024-10-03 13:51:19 +02:00