Jon Chambers
48ada8e8ca
Clarify roles/responsibilities of components in the message-handling pathway
2025-01-31 10:24:50 -05:00
Katherine
3ceaa8bd20
Remove authentication via query parameters for websocket upgrade requests
2025-01-15 14:06:46 -05:00
ravi-signal
68f27be7cd
Add opt-in timeouts to provisioning websocket
2024-12-18 18:45:53 -06:00
Chris Eager
ea75c39b58
Use MRM shared data views
2024-11-19 15:31:31 -06:00
Chris Eager
ecbb2f1399
Updates for org.apache.commons.lang3.RandomStringUtils deprecations
2024-11-15 14:11:41 -06:00
Jon Chambers
a843f1af6c
Rename PubSubClientEventManager to WebSocketConnectionEventManager
2024-11-11 15:30:26 -05:00
Jon Chambers
6a1f4906c5
Retire the legacy message availability system
2024-11-07 12:09:21 -05:00
Jon Chambers
ef716aacc2
Shift authority for message availability to the pub/sub event system
2024-11-07 11:55:47 -05:00
Jon Chambers
1c167ec150
Retire the legacy client presence system
2024-11-06 14:57:27 -05:00
Jon Chambers
8c984cbf42
Introduce and evaluate a client presence manager based on sharded pub/sub
2024-11-05 15:51:29 -05:00
Jon Chambers
100955a7db
Migrate WebSocket duration instrumentation to OpenWebSocketCounter
2024-10-02 14:02:03 -05:00
Jon Chambers
3ed142d0a9
Introduce OpenWebSocketCounter
2024-10-01 14:17:17 -04:00
Jon Chambers
26503dffdf
Use a consistent provisioning address
2024-10-01 13:34:37 -04:00
Chris Eager
11601fd091
Multi-recipient message views
...
This adds support for storing multi-recipient message payloads and recipient views in Redis, and only fanning out on delivery or persistence. Phase 1: confirm storage and retrieval correctness.
2024-09-04 13:58:20 -05:00
Jon Chambers
f09cc03164
Detect message delivery loops
2024-08-30 16:27:21 -04:00
Jon Chambers
659ac2c107
Generalize push notification scheduler and add support for delayed "new messages" notifications
2024-08-16 16:16:55 -04:00
Jon Chambers
0075e94a42
Rename AuthenticatedAccount to AuthenticatedDevice
2024-08-14 12:44:48 -04:00
Jon Chambers
3b405a53d0
Move "push notifications on close" logic to WebSocketConnection
2024-08-14 12:24:49 -04:00
Jonathan Klabunde Tomer
f12a6ff73f
Remove migration paths for lazy message deletion
2024-07-23 14:07:19 -07:00
Jonathan Klabunde Tomer
01743e5c88
Delete messages lazily on account and device deletion to prevent timeouts when deleting accounts/devices with large queues
2024-06-04 12:16:43 -07:00
Ravi Khadiwala
40639f70f4
Fix flaky MessageMetricsTest
...
Make the MeterRegistry in MessageMetrics configurable
2024-05-16 13:39:17 -05:00
Chris Eager
a302275187
Use a single cluster instance in MessagesCache
2024-04-16 12:04:18 -05:00
Ravi Khadiwala
26ffa19f36
Lifecycle management for Account objects reused accross websocket requests
2024-02-22 12:05:32 -06:00
Chris Eager
a74438d1ee
Add test for concurrent in-flight outbound messages on WebSocket queue processing
...
This also elevates the implicit default concurrency (via reactor’s `Queues.SMALL_BUFFER_SIZE`) to be explicit.
2023-11-27 14:37:46 -06:00
Chris Eager
6a428b4da9
Convert Device.id from long to byte
2023-11-02 11:48:10 -05:00
Sergey Skrobotov
d0fdae3df7
Enable header-based auth for WebSocket connections
2023-09-25 12:14:40 -07:00
Jon Chambers
4ead8527c8
Use ClientReleasesManager when deciding whether to add client version tags
2023-07-26 16:41:54 -04:00
Jon Chambers
abb32bd919
Introduce "service identifiers"
2023-07-21 09:34:10 -04:00
Jon Chambers
6db97f5541
Standardize client tag version handling; add client version tags to delivery latency metrics
2023-07-11 13:35:29 -04:00
Chris Eager
fb39b2edaf
Improve two @Disabled flaky tests
2023-06-29 14:56:41 -05:00
Chris Eager
128d709c99
Additional counters and timers for WebSocket connections
2023-06-13 11:46:15 -05:00
Jon Chambers
d1eb247d8c
Clarify the purpose of an addListener method
2023-04-18 12:04:54 -04:00
Jonathan Klabunde Tomer
48ebafa4e0
DynamoDBExtension refactor and helpers for our schema ( #1327 )
...
There's a lot of boilerplate involved in setting up a DynamoDBExtension, and some tests were creating several extensions
rather than one with several tables, which is probably slower than it has to be.
This change adds a new DynamoDbExtensionSchema class in which we can define the Dynamo schema for tests, and refactors
DynamoDbExtension to make it easy to instantiate a single extension with all the tables one wants (and no more, both to
minimize test startup time and to ensure we explicitly test our dependencies and lack thereof).
Tests requiring a DynamoDbExtension with a table schema that's not part of the normal Signal schema can instantiate a
DynamoDbExtension.RawSchema instead.
Test timings are unaffected, at least on my machine. Before:
```[INFO] service ............................................ SUCCESS [01:18 min]```
After:
```[INFO] service ............................................ SUCCESS [01:18 min]```
Co-authored-by: Jonathan Klabunde Tomer <jkt@viola.signal.org >
2023-04-03 13:08:43 -07:00
Chris Eager
3ccfeb490b
Add retry after exceptions during a cluster topology change event callback
2023-03-29 11:41:19 -05:00
Chris Eager
391aa9c518
Wrap runtime exceptions during WebSocket auth into AuthenticationException
2023-03-29 10:08:55 -05:00
Chris Eager
f5c62a3d85
Migrate from bounded elastic to dedicated executor for message delivery
2023-03-22 12:57:44 -05:00
Chris Eager
292f69256e
Refactor WebSocket message sending error and completion to subscriber from “doOn…”
2023-03-17 12:42:57 -05:00
Sergey Skrobotov
c32067759c
refactoring: use constants for header names
2022-11-15 11:16:49 -08:00
Chris Eager
77d691df59
Always use reactived message processing in WebSocketConnection
2022-11-11 13:14:39 -06:00
Chris Eager
e0178fa0ea
Move additional handling of MessagesManager#delete to executor
2022-11-03 13:02:25 -05:00
Chris Eager
c10fda8363
Use reactive streams for WebSocket message queue
...
Initially, uses `ExperimentEnrollmentManager` to do a safe rollout.
2022-10-31 10:35:37 -05:00
Jon Chambers
a53a85d788
Refactor scheduled APNs notifications in preparation for future development
2022-08-12 10:47:49 -04:00
Chris Eager
65da844d70
Small test cleanup
2022-08-09 15:32:44 -05:00
Jon Chambers
6f0faae4ce
Introduce common push notification interfaces/pathways
2022-08-03 10:07:53 -04:00
Chris Eager
55df593561
Clean up MessageAvailabilityListener if the websocket client is closed
2022-08-02 08:35:16 -07:00
Chris Eager
a06a663b94
Use the envelope’s destination UUID for receipt source UUID
2022-08-02 08:34:20 -07:00
Chris Eager
3d2f7e731f
Remove Envelope.source
2022-08-02 08:34:20 -07:00
Jon Chambers
d0e3fb1901
Unconditionally write messages to the messages table as envelopes
2022-08-01 10:44:27 -04:00
Jon Chambers
04287c5073
Optionally write messages as envelopes to the messages table
2022-07-29 11:10:50 -04:00
Jon Chambers
3636626e09
Make Envelope the main unit of currency when working with stored messages
2022-07-29 10:59:02 -04:00