Age | Commit message (Collapse) | Author |
|
* Switch from deprecated ClusterWS/cws to ws package
Fixes #15184
Co-authored-by: Edho Arief <me@nanaya.pro>
* Make bufferutil and utf-8-validate optional dependencies
Co-authored-by: Edho Arief <me@nanaya.pro>
|
|
* eslint --fix
* fix consistent-return
* fix promise/catch-or-return
* ignore import rule
|
|
invalidation (#15111)
Fix #14816
|
|
|
|
|
|
connection (#14524)
|
|
(#14135)
Fixes #14131
Our `mastodon:setup` task defaults to a blank password rather than the
absence of password, but some versions of Redis reject blank password
authentication when authentication is possible without a password.
The Ruby code only uses the Redis password when it's not blank, so
do the same for the node.js part.
|
|
|
|
* Add remote only to public timeline
* Fix code style
|
|
* Send output on the server-sent events stream immediately so the client sees that it was successfully opened even if it doesn't have any messages.
Fix transparent SSE streaming for the public:local and hashtag:local stream types.
* Tell caches to never store server-sent events.
|
|
|
|
|
|
* Check OAuth token scopes in the streaming API
* Use Sec-WebSocket-Protocol instead of query string to pass WebSocket token
Inspired by https://github.com/kubevirt/kubevirt/issues/1242
|
|
|
|
Fix #10223
|
|
* Fix SSL configuration regression in streaming API
Fix #10223
* Fix code style issues and integrate #10219
* Fix dumb thing
|
|
* config: add DB_SSLMODE for managed/remote PG
* streaming: set PG sslmode, defaults to prefer
|
|
|
|
Previously, the server would attempt taking port/socket in worker
process, and if it was taken, fail, which made the master process
create a new worker. This led to really high CPU usage if the
streaming API was started when the port or socket were not
available.
Now, before clustering (forking) into worker processes, a test
server is created and then removed to check if it can be done.
|
|
* Add check for missing tag param in streaming API
Fixes error:
```
TypeError: Cannot read property 'toLowerCase' of undefined
at app.get (.../streaming/index.js:493:50)
```
* Fix code style issues
|
|
* Add conversations API
* Add web UI for conversations
* Add test for conversations API
* Add tests for ConversationAccount
* Improve web UI
* Rename ConversationAccount to AccountConversation
* Remove conversations on block and mute
* Change last_status_id to be a denormalization of status_ids
* Add optimistic locking
|
|
GET /api/v1/streaming/health
Answers with OK. Fix #8337
|
|
* Support UNIX domain socket for streaming service without using PORT
The use of UNIX domain socket for streaming service was not officially supported,
but it was made unofficial to use by setting a path to PORT.
From now on, SOCKET will be used just like setting for puma.
* Hundle relative path
|
|
|
|
|
|
* Added a timeline for Direct statuses
* Lists all Direct statuses you've sent and received
* Displayed in Getting Started
* Streaming server support for direct TL
* Changes to match other timelines in 2.0
|
|
database (#7168)
|
|
connection (#6009)
|
|
|
|
On an unhandled worker exception, we should log the exception
and exit with nonzero status, instead of letting workers
silently fail and restarting them in an endless loop.
Note: we previously tried to handle the `'error'` signal.
That's not a signal Node fires; my patch traps `'uncaughtException'`,
which is what the code was _trying_ to do.
|
|
* make it possible to stream public timelines without authorization
* Fix
* Make eslint allow `value == null`
* Remove redundant line
* Improve style and revert .eslintrc.yml
* Fix streamWsEnd
* Show IP address instead of (anonymous user)
* Add missing semicolon
|
|
|
|
* Add structure for lists
* Add list timeline streaming API
* Add list APIs, bind list-account relation to follow relation
* Add API for adding/removing accounts from lists
* Add pagination to lists API
* Add pagination to list accounts API
* Adjust scopes for new APIs
- Creating and modifying lists merely requires "write" scope
- Fetching information about lists merely requires "read" scope
* Add test for wrong user context on list timeline
* Clean up tests
|
|
|
|
|
|
|
|
|
|
* Restore streaming API output format
Regression from #4090
* Remove whitespace
|
|
|
|
|
|
|
|
* more free pgconfig for streaming by .env
* fix wrong default values
* database.yml read ENV as same as streaming server
|
|
(#3913)
* Fix errorMiddleware
* Add "eslint-disable-line no-unused-vars"
|
|
|
|
|
|
by using Array.prototype.indexOf instead
|
|
(#3278)
* Add redis key "subscribed:timeline:#{account.id}" to indicate active streaming API listeners exists.
* Add endpoint for notification only stream.
* Run PushUpdateWorker only for users uses Streaming API now.
* Move close hander streamTo(Http/Ws) -> stream(Http/Ws)End (Deal with #3370)
* Add stream type for stream start log message.
|
|
* Return 401 for an authentication error on WebSocket
* Use upgradeReq instead of a custom object
|
|
* Don't stream toots from users who have blocked the recipient user
This filter was already applied on the `/api/v1/timelines/public` API, but
not yet for the Streaming API.
* Boosted status' account_id doesn't need for filtering in streaming/index.js
This filtering is only for public/hashtag timelines, but boosts already filtered on FanOutOnWriteService because those timelines don't show boosts.
|
|
|