Commit graph

845 commits

Author SHA1 Message Date
Johann150 808ad2a505
server: HTTP signature requires date header
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
The default of the library used is to require either of the "date" or
"x-date" headers. It does not seem sensible to pass on this default.
It may be to fix federation with another software but that software
should be considered broken, and it does not seem reasonable to
potentially get an outdated signature just to fix federation with some
buggy software.
2023-04-13 11:04:35 +02:00
Johann150 340874c252
BREAKING server: remove mediaIds parameter
All checks were successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This parameter is a duplicate of fileIds and was marked as deprecated
before. This removes that parameter and therefore simplifies the API
endpoint's schema.

Changelog: Removed
2023-04-10 15:07:44 +02:00
Johann150 079a9e29ce
server: replace IRC with issue tracker as preferred feedback
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
The IRC channel is not a reliable means of communication for feedback
because I don't use it (regularly).
2023-04-01 15:10:12 +02:00
Johann150 1472c21cb6
activitypub: properly handle all scopes for renotes
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This was not implemented because of concerns raised in
https://github.com/misskey-dev/misskey/issues/8261
about Mastodon incorrectly interpreting the scope on renotes.
However this bug seems to be fixed so it can now be implemented.

See also https://github.com/misskey-dev/misskey/pull/10291

Co-authored-by: Kagami Sascha Rosylight <saschanaz@outlook.com>
2023-03-31 07:59:20 +02:00
Johann150 e9f68e65b7
server: fix rate limit for adding reactions
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
Adding a reaction may delete a previous reaction to the same note,
thus consequently this needs to be in the rate limiting group if this
happens. Otherwise the rate limit can be circumvented.

Changelog: Fixed
2023-03-28 22:50:04 +02:00
Johann150 48405fba3b
server: fix rate limit error propagation
Changelog: Fixed
2023-03-28 22:49:58 +02:00
Johann150 1171567db2
server: remove unused API parameters
Changelog: Removed
2023-03-28 19:36:10 +02:00
Johann150 6179b2e5f0
server: add pagination to file attachment timeline
As a side effect this also makes the notes appear in chronological order.

Changelog: Changed
2023-03-27 20:46:26 +02:00
Johann150 134c3b43e6
implement filtering and sorting in drive
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
The `sort` parameter for /api/drive/show is now more unified with
other endpoints which use +createdAt for sort instead of +created.

closes #109

Changelog: Added
2023-03-26 12:03:43 +02:00
Johann150 68f9e3e0dd
server: change pagination of drive/show endpoint
This changes the pagination of the drive/show API endpoint to use the
offset variant of pagination and allows to specify a sorting.

closes #362
2023-03-26 11:05:55 +02:00
Johann150 94d1cf75aa
server: unify drive object types in database
Minor adjustment: The 'name' columns have the same max length.

Major adjustment: Rename both columns to be "parentId" and update
all references of this name in the backend. API parameters are not
changed, since that would be an unnecessary breaking change.
2023-03-26 11:05:55 +02:00
Johann150 701054b86e
replace NBSP with SP
All checks were successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
How did this get here in the first place?
2023-03-26 10:57:12 +02:00
Johann150 c1f7ad0c14
server: add movedTo to packed user 2023-03-23 21:45:59 +01:00
Johann150 e78069d904
server: implement moveTo property on actors
Co-authored-by: Mary Strodl <ipadlover8322@gmail.com>
Co-authored-by: amybones <amy@spookygirl.boo >
2023-03-23 21:43:50 +01:00
Johann150 910976a55b
server: implement receiving Move activities
For now only creates notifications.
2023-03-23 21:10:15 +01:00
Johann150 3c2092935c
server: add object hint to resolvePerson 2023-03-23 21:10:14 +01:00
Johann150 3311bd866b
add move notification type 2023-03-23 21:10:08 +01:00
Johann150 f1d7357e75
server: fix undefined variable in getOneApId
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This is a fixup for commit 48fd543d0f.

closes #365
2023-03-22 18:30:56 +01:00
Johann150 d3fbe5e382
BREAKING server: refactor streaming API data structures
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
Since looking up a channel by ID should be the most often needed use
case, the data structure is now more optimized towards this. The code
is also simplified by using optional chaining where possible.

In this vein, the server will now enforce that channel IDs are unique
and not reused.

Changelog: Changed
2023-03-19 12:39:57 +01:00
Johann150 7e4148880b
server: improve comments in streaming API 2023-03-19 11:09:56 +01:00
Johann150 ed9b9210a9
server: remove some casting to any 2023-03-19 10:45:57 +01:00
Johann150 742fa37e2b
server: show worker mode in process name
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
Changelog: Added
2023-03-19 09:39:33 +01:00
Johann150 32beda4344
server: improve error message for invalidating follows
This error was broken out to be a separate error code and message.

Changelog: Changed
2023-03-16 20:42:02 +01:00
Johann150 d6837814d9
Merge branch 'drive-api-combined'
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
Reviewed-on: #297
2023-03-13 19:30:24 +01:00
syuilo 1274af05a4
remove unused instance settings
All checks were successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-03-12 16:28:07 +01:00
Johann150 6a17dcf4de
server: refactor to group deletion deliveries
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
The `quiet` argument has been removed from `deleteNote` (or `deleteNotes`
respectively) since it was not used anywhere and it does not seem a good
idea to not update statistics in some cases.

This should also fix an issue where cascade deletions mean that statistics
are not properly updated or streaming clients not properly informed of
deletions. This case was seemingly not considered before, even though
there was some handling for cascade deleted notes.

This is going to improve how cascade deletion impacts the delivery queue,
because cascade-deleted notes will now be grouped for delivery.

Changelog: Fixed
2023-03-12 12:37:20 +01:00
Johann150 383ea40704
server: add function to deliver multiple activities to a relay 2023-03-11 22:23:42 +01:00
Johann150 e52cf25489
server: use named export for deleteNote 2023-03-11 09:54:46 +01:00
Johann150 1bce487965
activitypub: allow to group elements for delivery 2023-03-11 09:42:14 +01:00
Johann150 78c93c5539
server: clean up activitypub deliver code 2023-03-11 09:42:14 +01:00
Johann150 2164fda2fb
server: do AP sent statistics in request function 2023-03-11 09:42:05 +01:00
Johann150 ee2860e894
improve docs
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-03-03 23:36:15 +01:00
Johann150 a750c7ad57
server: remove unused avgColor attribute from types 2023-03-03 21:36:21 +01:00
Johann150 5aa5344f2e
docs: fix schema definitions
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-03-03 21:12:44 +01:00
Johann150 e2063f4ff9
fix: correctly parse quotes
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-02-24 23:47:50 +01:00
Johann150 57e4971214
Revert "server: fix return of visibilityQuery function"
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This reverts commit 32f4bee5e8.

It is the right thing to do in theory, but it doesn't work.
I hate typeorm.
2023-02-21 21:16:28 +01:00
Johann150 32f4bee5e8
server: fix return of visibilityQuery function
All checks were successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-02-21 21:04:38 +01:00
Johann150 c8731333ba
server: add new deepl languages
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
DeepL now also supports Norwegian (Bokmål) and Korean.

Ref: https://www.deepl.com/en/blog/welcome-korean-and-norwegian
Changelog: Added
2023-02-21 18:24:29 +01:00
Johann150 0a7352eda9
server: add diagnostics for failing visibility
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-02-20 21:08:58 +01:00
Johann150 c777c2ed04
fix: perform visibility query in second stage 2023-02-20 21:08:58 +01:00
Johann150 8f5952bb7d
server: handle note visibility in SQL
This allows to check visibility recursively, which should hopefully
solve problems with timelines not showing up properly.

Changelog: Changed
2023-02-20 21:08:47 +01:00
Johann150 73d546372e
refactor: replace import paths containing ../ in API server
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This is a big one...
2023-02-19 23:36:15 +01:00
Johann150 bfd1adf761
BREAKING server: restructure endpoints related to user administration
- `admin/abuse-user-reports` -> `admin/reports/list`
- `admin/delete-all-files-of-a-user` -> `admin/users/delete-all-files`
- `admin/resolve-abuse-user-report` -> `admin/reports/resolve`
- `admin/accounts/create` -> `admin/users/create`
- `admin/accounts/delete` -> `admin/users/delete`
- `admin/show-user` -> `admin/users/show`
- `admin/show-users` -> `admin/users`
- `admin/silence-user` -> `admin/users/silence`
- `admin/suspend-user` -> `admin/users/suspend`
- `admin/unsilence-user` -> `admin/users/unsilence`
- `admin/unsuspend-user` -> `admin/users/unsuspend`
- `admin/reset-password` -> `admin/users/reset-password`

Changelog: Changed
2023-02-19 23:36:13 +01:00
Johann150 41aa5cd18f
fix typo
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
2023-02-19 23:32:36 +01:00
Johann150 17c9a9374d
fixup: server: parse quote tag syntax
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This is a fixup for commit 5893a44ff5.
2023-02-19 19:41:11 +01:00
Johann150 3e9dd7957d
server: dont error on generating empty RSS feed
Changelog: Fixed
2023-02-18 17:43:27 +01:00
Johann150 bf445964b5
improve documentation for fetch-rss endpoint
Changelog: Fixed
2023-02-15 20:42:24 +01:00
Johann150 c9d395961e
server: refactor packing User 2023-02-11 19:17:11 +01:00
Johann150 3a7e8cfe50
server: check instance description length limit
Changelog: Fixed
2023-02-11 19:16:28 +01:00
Johann150 b8796cb1fa
activitypub: remove _misskey_votes property
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
This is a duplication of `replies.totalItems` and seems unnecessary,
it is even only parsed by Misskey if the afforementioned property is
not available.

Changelog: Removed
2023-02-11 17:49:12 +01:00