Commit graph

339 commits

Author SHA1 Message Date
Jesse Wierzbinski b755fc5d62
refactor(api): ♻️ Move more API routes to new OpenAPI format 2024-09-15 14:28:47 +02:00
Jesse Wierzbinski 2e41bfeee4
chore: ⬆️ Upgrade dependencies 2024-09-14 17:32:32 +02:00
Jesse Wierzbinski 5d2aa82247
feat(api): Add response logging 2024-09-04 22:52:43 +02:00
Jesse Wierzbinski d51bae52c6
refactor(plugin): ♻️ Move parts of OpenID logic to plugin 2024-08-29 20:32:04 +02:00
Jesse Wierzbinski 69d7d50239
refactor(api): ♻️ Remove old redirect() and response() in favour of Hono's builtins 2024-08-28 17:01:56 +02:00
Jesse Wierzbinski f9023893af
refactor: 🚚 Point everything to the new GitHub org 2024-08-27 21:40:42 +02:00
Jesse Wierzbinski bcbc9e6bf1
refactor(api): ♻️ Refactor more routes into OpenAPI-compatible formats 2024-08-27 18:55:02 +02:00
Jesse Wierzbinski b0b750c05d
refactor(api): ♻️ Convery more routes to use OpenAPI 2024-08-27 17:40:58 +02:00
Jesse Wierzbinski 1ab1c68d36
refactor(api): 🚚 Refactor authentication middleware and implement some OpenAPI routes 2024-08-27 17:20:36 +02:00
Jesse Wierzbinski bec60fbf96
refactor(api): 🔥 Remove Glitch-FE explicit support 2024-08-27 16:45:05 +02:00
Jesse Wierzbinski cea0544686
fix(federation): 🏷️ Correctly make InstanceMetadata description a string 2024-08-27 15:51:41 +02:00
Jesse Wierzbinski fbb845f7f8
refactor(federation): 🚚 Move old function to User 2024-08-27 15:50:14 +02:00
Jesse Wierzbinski fbe86043b7
refactor(api): ♻️ Replace old client library with new version (@versia/client) 2024-08-26 19:40:15 +02:00
Jesse Wierzbinski 42e198ca0e
chore(federation): 👽 Finish initial Versia Working Draft 4 update 2024-08-26 19:27:40 +02:00
Jesse Wierzbinski c3fa867e74
chore(federation): 👽 Initial Versia Working Draft 4.0 support 2024-08-26 19:06:49 +02:00
Jesse Wierzbinski bc0943c569
feat(database): Implement read replicas for database 2024-08-26 18:04:22 +02:00
Jesse Wierzbinski 832f72160f
refactor: 🚚 Use more Versia branding and assets 2024-08-24 15:34:49 +02:00
Jesse Wierzbinski 771097d037
refactor: 🚚 Begin rebranding to Versia Server 2024-08-19 15:16:01 +02:00
Jesse Wierzbinski 64cef5c6d6
fix: 🐛 Fix incorrect path in import 2024-08-19 14:49:36 +02:00
Jesse Wierzbinski 4a1ad9dd96
refactor: 🔥 Remove old config-manager symlink 2024-08-19 14:43:54 +02:00
DevMiner d2113e349f fix(federation): unfollows don't send Undos to the followee 2024-08-02 17:53:29 +02:00
Jesse Wierzbinski 3baac85cf7
refactor: ♻️ Rewrite relationship system 2024-07-27 20:46:19 +02:00
Jesse Wierzbinski 627afffdb2
fix(federation): ✏️ Correct typo causing incorrect URIs 2024-07-26 21:29:37 +02:00
Jesse Wierzbinski 903415161e
fix(federation): 🐛 Fix issues with note federation URIs 2024-07-26 21:19:41 +02:00
Jesse Wierzbinski 92a80d97c2
fix(federation): 🐛 Force add content-type http header 2024-07-26 20:35:26 +02:00
Jesse Wierzbinski 385bdc13da
fix(federation): 🐛 Send correct headers in inbox requests 2024-07-26 19:51:08 +02:00
Jesse Wierzbinski 558ae72c82
fix(federation): 🐛 Fix new notes being federated to ALL remote users, regardless of visibility 2024-07-26 19:21:03 +02:00
Jesse Wierzbinski 2f823317c2
refactor(federation): 🔥 Remove old code and simplify federation requests 2024-07-26 18:51:39 +02:00
Jesse Wierzbinski ad9ed2598c
refactor(federation): ⬆️ Refactor code to use v2.2 of federation SDK 2024-07-26 18:07:11 +02:00
Jesse Wierzbinski 1216e278e8
fix(federation): 🐛 Fix some errors not being ignored properly 2024-07-26 17:20:37 +02:00
Jesse Wierzbinski 6ae13265fa
feat(federation): Make server actor available on /users/actor 2024-07-26 00:32:33 +02:00
Jesse Wierzbinski bc25896ed8
feat(config): 🧑‍💻 Add custom tracing URL support to Sentry config 2024-07-26 00:02:48 +02:00
Jesse Wierzbinski 7d1522cc1e
feat(config): Add JSON schema for config 2024-07-25 23:51:00 +02:00
Jesse Wierzbinski 5a52ac005b
fix(federation): 🚑 Don't re-parse response as JSON when FederationRequester has done so already 2024-07-24 19:25:14 +02:00
Jesse Wierzbinski 0bc6a89706
feat(api): Add more Sentry logging 2024-07-24 19:04:00 +02:00
Jesse Wierzbinski daba8e8178
refactor(federation): ♻️ Refactor code to use less fetch calls and instead use FederationRequester 2024-07-24 18:52:30 +02:00
Jesse Wierzbinski 833f261392
fix(config): 🚑 Add default value for Sentry config 2024-07-24 18:15:33 +02:00
Jesse Wierzbinski 5061735da7
feat: Add Sentry support 2024-07-24 18:10:29 +02:00
Jesse Wierzbinski 8213ca62e0
chore: ⬆️ Upgrade @lysand-org/federation to latest 2024-07-23 00:13:46 +02:00
Jesse Wierzbinski 42ff591e48
fix(federation): 🐛 Fix fetching of ActivityPub users not working anymore 2024-07-17 15:37:36 +02:00
Jesse Wierzbinski be881f18cd
feat(api): Add new endpoint to get a user by its username 2024-07-17 14:02:29 +02:00
Jesse Wierzbinski cc8a97ae79
fix(config): 🐛 Make bridge url default to undefined, not "" 2024-07-16 23:36:36 +02:00
Jesse Wierzbinski f2c9814171
fix(config): 🐛 Ensure bridge config is optional 2024-07-16 23:33:11 +02:00
Jesse Wierzbinski aae99c804a
fix(federation): 🐛 Don't try to fetch from ActivityPub instances if no bridge is configured 2024-07-16 23:30:52 +02:00
Jesse Wierzbinski ff315af230
feat(federation): Add ActivityPub bridge support with CLI command 2024-07-16 23:29:20 +02:00
Jesse Wierzbinski 57b295ccf2
fix(cli): 🐛 Don't federate changes to remote users, initialize search indexer on all CLI commands 2024-06-29 22:55:50 -10:00
Jesse Wierzbinski cea9452127
refactor(federation): ♻️ Replace WebFinger code with @lysand-org/federation logic, add new debug command 2024-06-29 22:24:10 -10:00
Jesse Wierzbinski 38c8ea24a9
refactor(federation): 🔥 Remove some old SQL queries for Instances 2024-06-29 21:08:03 -10:00
Jesse Wierzbinski f2b0de779b
refactor: ♻️ Store instance federation protocol in database, refactor fetcher 2024-06-29 20:58:39 -10:00
Jesse Wierzbinski 19c15f7e96
refactor: ♻️ Replace Meilisearch with Sonic 2024-06-28 23:40:44 -10:00
Jesse Wierzbinski 106e34848a
refactor(api): 🏷️ Replace API types with those from @lysand-org/client 2024-06-28 20:36:15 -10:00
Jesse Wierzbinski faf829437d
refactor: ♻️ Rewrite media management code 2024-06-28 20:10:02 -10:00
Jesse Wierzbinski d09f74e58a
refactor: 🚚 Rename functions, move getUrl to Attachment 2024-06-28 17:50:56 -10:00
Jesse Wierzbinski bc8220c8f9
refactor: ♻️ Replace logging system with @logtape/logtape 2024-06-26 13:11:39 -10:00
Jesse Wierzbinski 51cbb22eb0
fix(config): 🐛 Allow empty proxy address (in case config value isn't set) 2024-06-25 18:00:03 -10:00
Jesse Wierzbinski b8b822e553
feat(config): Add support for HTTP proxies on outgoing requests 2024-06-25 17:13:40 -10:00
Jesse Wierzbinski 0ecb65de29
refactor: ♻️ Move config checker code into its own file 2024-06-25 16:30:51 -10:00
Jesse Wierzbinski 8a774fa05d
refactor(plugin): ♻️ Use enum instead of strings 2024-06-21 23:44:21 -10:00
Jesse Wierzbinski 98f8ec071c
feat(plugin): Initialize new plugin system 2024-06-21 18:22:53 -10:00
Jesse Wierzbinski 70cd00cfa8
refactor(federation): ⬆️ Use @lysand-org/federation v2.0.0 2024-06-19 13:21:02 -10:00
Jesse Wierzbinski de9dca5735
feat(config): Add option to never convert vector images 2024-06-16 01:39:16 -10:00
Jesse Wierzbinski 6ef3a854d9
feat(api): Allow animated media to be uploaded 2024-06-16 01:15:49 -10:00
Jesse Wierzbinski c764cc044d
fix: 🚑 Sleep process instead of exiting it on error
Avoids Docker's auto-restart policy from causing infinite reboots and hanging the system
2024-06-13 23:44:46 -10:00
Jesse Wierzbinski b7f8f6689e
fix(config): 🐛 Fix crashes with default config values 2024-06-13 23:29:41 -10:00
Jesse Wierzbinski edbe6e45b2
fix: 🐛 Fix incorrect docs, make exit code 0 instead of 1 2024-06-13 23:26:20 -10:00
Jesse Wierzbinski 99f14ba114
feat(api): Automatically register user when connecting with OIDC profile not already existing 2024-06-13 23:05:04 -10:00
Jesse Wierzbinski 8f9472b221
feat(api): Implement Challenges API 2024-06-13 22:03:51 -10:00
Jesse Wierzbinski 00fd751c2a
fix(federation): 🐛 Fix mention URIs in Lysand Notes being empty string for local users 2024-06-13 11:53:41 -10:00
Jesse Wierzbinski 0359ba13c4
fix(api): 🛂 Don't automatically remove trailing slashes from OIDC issuer URLs 2024-06-13 11:33:07 -10:00
Jesse Wierzbinski c3271ba264
docs: 📝 More work on JSDoc 2024-06-12 22:52:03 -10:00
Jesse Wierzbinski 527137f279
chore: ⬆️ Upgrade dependencies 2024-06-12 20:39:53 -10:00
Jesse Wierzbinski 83275be536
refactor: ⚰️ Remove dead code and useless files 2024-06-12 20:34:17 -10:00
Jesse Wierzbinski d301d4da09
refactor(api): 🎨 Don't use node:crypto for random strings 2024-06-12 19:38:26 -10:00
Jesse Wierzbinski d8cb1d475b
refactor(api): 🎨 Refactor emojis into their own class 2024-06-12 18:52:01 -10:00
Jesse Wierzbinski c61f519a34
refactor(api): 🎨 Refactor complex functions into smaller ones 2024-06-12 18:16:59 -10:00
Jesse Wierzbinski a1e02d0d78
refactor: 🚨 Turn every linter rule on and fix issues (there were a LOT :3) 2024-06-12 16:26:43 -10:00
Jesse Wierzbinski 2e98859153
refactor(database): ♻️ Move Attachment into its own class 2024-06-12 15:03:57 -10:00
Jesse Wierzbinski 5565bf00de
refactor(database): 🎨 Improve database handlers to have more consistent naming and methods 2024-06-12 14:45:07 -10:00
Jesse Wierzbinski b17b2be683
fix(api): 🔒 Properly proxy role icons through media proxy 2024-06-11 18:57:04 -10:00
Jesse Wierzbinski efe202ea27
feat(api): Add Lysand roles to user accounts 2024-06-11 14:29:59 -10:00
Jesse Wierzbinski ffcf01e3cd
feat(api): Add TOS and Privacy Policy support 2024-06-11 09:55:40 -10:00
Jesse Wierzbinski b3bace4d53
fix(api): 🛂 Fix incorrect redirect URI passed to external OIDC providers, normalize issuer URL 2024-06-10 15:58:51 -10:00
Jesse Wierzbinski d2f5aaf114
fix(api): 🐛 Add default role with default permissions in roles API 2024-06-09 16:14:36 -10:00
Jesse Wierzbinski 11369649c0
fix(api): 🐛 Give correct URI/URL values for notes in API 2024-06-09 15:17:03 -10:00
Jesse Wierzbinski 4902f078a8
feat(api): Add permissions to every route and permission config 2024-06-07 18:57:29 -10:00
Jesse Wierzbinski 19823d8eca
feat(api): Add Roles API 2024-06-07 17:31:17 -10:00
Jesse Wierzbinski e229c30a9f
chore: 📦 Use NPM version of @lysand-org/federation 2024-06-07 15:33:00 -10:00
Jesse Wierzbinski 8f09ea4c60
feat(federation): Add support for federation of note editing 2024-06-05 21:04:52 -10:00
Jesse Wierzbinski 3e94a9d491
fix(api): 🐛 Fix incorrect editing of note attachments (when attachments are removed) 2024-06-05 20:35:56 -10:00
Jesse Wierzbinski 88ad7178bf
feat(federation): Federate note deletions 2024-06-05 19:25:49 -10:00
Jesse Wierzbinski 431bc9c715
fix(federation): 🐛 Add missing SQL AND 2024-06-05 19:15:10 -10:00
Jesse Wierzbinski 0eee4a1f20
fix(federation): 🐛 Don't try to federate to local users 2024-06-05 19:12:23 -10:00
Jesse Wierzbinski 32cb0ea733
fix(federation): 🐛 Fix profile edits not being federated 2024-06-05 19:08:34 -10:00
Jesse Wierzbinski 4c22b0edcc
feat(federation): Federate user profile changes to other instances 2024-06-05 18:58:28 -10:00
Jesse Wierzbinski f8196f72f9
feat(federation): Add user refetching, support for Undo in federation 2024-06-05 18:49:06 -10:00
Jesse Wierzbinski f87bcbd0da
chore: ⚰️ Remove dead code and unused imports 2024-05-28 15:14:24 -10:00
Jesse Wierzbinski 0706541546
refactor: 🚚 Add slash to typescript path shortcuts 2024-05-28 14:59:49 -10:00
Jesse Wierzbinski fbe0e35587
refactor(federation): ♻️ Refactor inbox code to use new package builtins 2024-05-28 14:36:15 -10:00
Jesse Wierzbinski fbc0c2c586
chore: 📦 Replace bun-types with @types/bun 2024-05-28 13:58:38 -10:00
Jesse Wierzbinski ddaa7269ba
chore: 📦 Add submodule to lysand-api, for feature testing 2024-05-28 13:49:24 -10:00
Jesse Wierzbinski eab61b38f1
feat(federation): Add bridge tokens, federation request debugging 2024-05-21 14:59:03 -10:00
Jesse Wierzbinski 673b7d0bae
fix(api): 🐛 Automatically rewrite http to https in federation 2024-05-17 11:42:42 -10:00
Jesse Wierzbinski 7a591a024e
feat(federation): Add bridge support to Lysand 2024-05-17 07:56:13 -10:00
Jesse Wierzbinski a603b602e6
fix(federation): 🐛 Fix multiple incorrect outputs in federation routes 2024-05-17 07:39:59 -10:00
Jesse Wierzbinski 24288c95b5
feat(api): Implement password resets 2024-05-16 22:27:41 -10:00
Jesse Wierzbinski d4e1c0d95d
fix(api): 🐛 Fix incorrect OAuth2 linking logic 2024-05-16 20:58:27 -10:00
Jesse Wierzbinski 2db4f25ba6
feat(config): Allow frontend route customization and forcing OIDC 2024-05-16 18:05:06 -10:00
Jesse Wierzbinski b1216a43f2
refactor(api): ♻️ Change route names, improve API endpoints to be more consistent with Mastodon API 2024-05-16 15:49:59 -10:00
Jesse Wierzbinski 6fdc8b2b9a
fix(build): 🐛 More shenanigans?? 2024-05-15 17:25:27 -10:00
Jesse Wierzbinski 2b5b82b465
fix: 🐛 Fix all TypeScript issues 2024-05-15 17:07:34 -10:00
Jesse Wierzbinski 023b80f411
fix(build): 🐛 Changed the CI test config so it is valid 2024-05-15 16:50:07 -10:00
Jesse Wierzbinski fb31375b74
refactor(config): 🔥 Replace config validation with Zod 2024-05-15 16:37:25 -10:00
Jesse Wierzbinski 093337dd4f
refactor(federation): 🔥 Remove old types and federation code 2024-05-14 14:38:30 -10:00
Jesse Wierzbinski 5fd6a4e43d
feat(federation): Replace old types and federation validators with @lysand-org/federation 2024-05-14 14:35:13 -10:00
Jesse Wierzbinski e502a2d8c8
fix(federation): 🐛 Fix missing regex error message 2024-05-13 11:35:36 -10:00
Jesse Wierzbinski 5e87f85851
refactor(federation): 🦺 Update Lysand object validatio to be stricter 2024-05-13 11:33:39 -10:00
Jesse Wierzbinski 29d7b09677
fix(api): 🐛 Deleting emojis now removes them from object storage 2024-05-12 16:52:19 -10:00
Jesse Wierzbinski 9ad0f88ff2
fix(api): 🐛 Local media uploader: don't error out when a file has already been uploaded 2024-05-12 16:18:07 -10:00
Jesse Wierzbinski 303928f960
refactor(api): 🔥 Refactor media uploader code 2024-05-12 14:30:27 -10:00
Jesse Wierzbinski 6859ab5775
fix(api): 🐛 Fix incorrect ancestor order in note context endpoint 2024-05-11 16:44:00 -10:00
Jesse Wierzbinski 8fedd1a07d
feat(api): Add new admin emoji API 2024-05-11 15:27:28 -10:00
Jesse Wierzbinski e48f57a3d8
perf(database): Improve performance when fetching timelines by fetching all data in a single SQL query 2024-05-08 13:19:53 -10:00
Jesse Wierzbinski 3c3814a3c1
fix(api): 🐛 Fix favourited attribute not being correct on serialized API notes 2024-05-08 11:51:47 -10:00
Jesse Wierzbinski 5fcbcd0f07
fix(api): 🐛 Fix bug where likes wouldn't appear on API notes 2024-05-08 10:57:42 -10:00
Jesse Wierzbinski fc06b35c09
feat(cli): Add new CLI commands, move to project root 2024-05-08 00:10:14 +00:00
Jesse Wierzbinski 06c30b8af2
feat(cli): ♻️ Begin new CLI rewrite with oclif 2024-05-07 07:41:02 +00:00
Jesse Wierzbinski 7b05a34cce
refactor: 🔥 Remove dead code 2024-05-07 03:13:37 +00:00
Jesse Wierzbinski 826a260e90
refactor(api): ♻️ Move to Hono for HTTP 2024-05-06 07:16:33 +00:00
Jesse Wierzbinski f006efbfb2
fix(api): 🔥 Remove pleroma attribute on users 2024-05-05 10:55:40 -10:00
Jesse Wierzbinski ead34b818f
feat(api): 🔒 Make all media be proxied through an internal proxy 2024-05-04 19:13:23 -10:00
Jesse Wierzbinski 154f17ab12
refactor(api): 📦 Change sanitizer from DOMPurify to xss 2024-05-02 17:20:24 -10:00
Jesse Wierzbinski aee47e6df4
fix(api): 🚑 Fix using an incorrect email or password giving weird errors 2024-04-28 13:47:14 -10:00
Jesse Wierzbinski 48f2fa1b94
chore: 📦 Update dependencies and Bun 2024-04-27 21:38:42 -10:00
Jesse Wierzbinski de0214c77e
fix(api): 🐛 Fix quote serialization in API again 2024-04-27 20:15:08 -10:00
Jesse Wierzbinski e8632caeac
fix(api): 🐛 Fix incorrect quote API serialization 2024-04-27 20:08:01 -10:00
Jesse Wierzbinski a45a4b3652
fix(api): 🐛 Fix issues with quotes not being serialized to API properly 2024-04-26 11:18:37 -10:00
Jesse Wierzbinski 1b7b71eaec
refactor(api): 🎨 Refactor request parser 2024-04-25 08:50:30 -10:00
Jesse Wierzbinski cde106a5db
feat(api): Add profile fields with emojis and Markdown to users 2024-04-24 18:37:55 -10:00
Jesse Wierzbinski 9e9998ea82
refactor(api): 🎨 Move createLocalUser to a static method of User 2024-04-24 17:48:39 -10:00
Jesse Wierzbinski 9d70778abd
refactor(api): 🎨 Move User methods into their own class similar to Note 2024-04-24 17:40:27 -10:00
Jesse Wierzbinski 5dd6ea4d10
feat(frontend): Add Cache-Control header to frontends served 2024-04-21 22:37:34 -10:00
Jesse Wierzbinski d892ff68fd
chore: 📦 Update packages, scripts and run linting 2024-04-17 23:04:07 -10:00
Jesse Wierzbinski 5cb48b2f3b
feat(api): Make Lysand a full OAuth2/OpenID Connect provider as well as still Mastodon compatible 2024-04-17 22:42:12 -10:00
Jesse Wierzbinski 633e92d4e9
feat: Allow specifying custom TLS certificate, key and CA 2024-04-17 15:53:42 -10:00
Jesse Wierzbinski a37e8e92c5
feat(api): Implement filters API v2 (with some routes missing) 2024-04-17 13:47:03 -10:00
Jesse Wierzbinski 88b3ec7b43
refactor(database): 🎨 Update database and schema names to be clearer 2024-04-16 20:36:01 -10:00
Jesse Wierzbinski 9081036c6d
refactor(database): 🎨 Refactor note handling into its own class instead of separate functions 2024-04-16 18:09:21 -10:00
Jesse Wierzbinski 2998cb4deb
fix(frontend): 🐛 Fix incorrect branding on glitch-soc 2024-04-16 11:36:45 -10:00
Jesse Wierzbinski 895826a5f8
fix(frontend): 🐛 Fix missing Lysand branding on glitch-fe 2024-04-16 07:24:57 -10:00
Jesse Wierzbinski 214f4d5a3e
refactor(frontend): 🎨 Make code look better 2024-04-15 22:15:52 -10:00