Jon Chambers
dce391a248
Add support for setting PNI-associated registration IDs and identity keys when changing numbers
2022-07-26 15:19:27 -04:00
Jon Chambers
6754ec5e10
Pass disconnection reason (if known) to clients
2022-07-13 15:30:03 -04:00
Jon Chambers
1ba00a66eb
Pass the reason for displacement to presence displacement listeners
2022-07-13 15:30:03 -04:00
Jon Chambers
92d36b725f
Allow presence keys to expire if not periodically renewed
2022-07-13 11:28:55 -04:00
Jon Chambers
4e131858ca
Generalize scope of and expand size of websocket scheduled executor service
2022-07-13 11:28:55 -04:00
Fedor Indutny
d31ddb72f3
Optimize message deletion by skipping lookup
2022-05-18 13:02:21 -07:00
Jon Chambers
53f17c2baa
Drop the legacy message and relay fields from message entities
2022-03-24 10:50:49 -04:00
Jon Chambers
9b9edbae0e
Drop DeadLetterHandler (which is functionally unused)
2022-03-08 10:03:06 -05:00
Chris Eager
3e777df86c
Timeout sendNextMessagePage after 5 minutes
2021-12-20 11:31:11 -08:00
Chris Eager
346c7cd743
Remove null-check of destination UUID
2021-12-20 11:31:11 -08:00
Jon Chambers
606ddd8a9b
Populate destination UUID for messages delivered via websocket
2021-12-02 12:17:08 -05:00
Chris Eager
c0756e9c60
Attempt an orderly websocket close on displacement before a hard disconnect
2021-11-23 11:36:32 -07:00
Chris Eager
5a99708f56
Update some deprecated usages
2021-11-16 15:56:13 -07:00
Jon Chambers
3398955c1a
Add basic support for phone number identifiers
2021-11-09 10:23:08 -05:00
Chris Eager
3e5087e60b
Remove obsolete ephemeral queue handling
2021-09-29 10:31:39 -07:00
Jon Chambers
09519ae942
Only retry websocket sending if the client is still connected
2021-09-20 14:24:07 -04:00
Fedor Indutny
383d744bd8
Log the error message when retrying queue send
2021-09-16 18:03:42 -04:00
Jon Chambers
c2ba8ab562
Identify receipt destinations by UUID instead of e164
2021-09-16 10:47:03 -04:00
Fedor Indutnyy
41735ed40e
Introduce queueDrainRetry counter metric
2021-09-16 10:30:19 -04:00
Fedor Indutnyy
703405b874
Start WebSocket before registering its presence
2021-08-27 16:41:07 -04:00
Chris Eager
a7443a9ece
Don’t persist ephemeral messages; clear ephemeral field when sending to clients
2021-08-25 11:17:00 -05:00
Chris Eager
31022aeb79
Use refreshing AuthenticatedAccount for @Auth
2021-08-11 14:52:25 -05:00
Jon Chambers
331ff83cd5
Drop legacy PIN-based registration lock plumbing
2021-07-29 11:51:14 -04:00
Jon Chambers
e3afcae7d3
Gather data to verify safety of retiring legacy reglock system.
2021-07-01 10:58:47 -04:00
Ehren Kret
164fc40990
Rename receipt type and add new client-to-client plaintext type for decryption error receipts
2021-05-28 11:33:44 -05:00
Chris Eager
00c9023e74
Include server GUID when sending messages over websocket
2021-05-14 17:10:15 -05:00
Jon Chambers
6196856a7c
Use the JDK-provided Base64 encoder/decoder.
2021-04-26 18:17:03 -04:00
Sanket.Ghenand@tomtom.com
37bda0b035
remove unused imports
2021-04-13 11:44:59 -05:00
Jon Chambers
089b6b1644
Retry attempts to get messages after a delay; close connections after a finite number of retries.
2021-03-22 10:32:25 -04:00
Jon Chambers
7509520883
Make sure to release the semaphore even if something goes wrong getting messages.
2021-03-22 10:32:25 -04:00
Jon Chambers
ec783133c1
Close websockets if anything seems fishy at init time; register close handlers early.
2021-02-18 13:20:19 -05:00
Jon Chambers
635f669a32
Count slow queue drain events by platform.
2021-02-12 15:43:50 -05:00
Ehren Kret
be8a1acca9
Remove message database from the codebase ( #395 )
...
* Remove message database from the codebase
* Remove unused ExperimentEnrollmentManager in test
* Be more stylish
2021-02-11 10:50:03 -06:00
Jon Chambers
9cd121c8f6
Record initial queue drain times faceted by client platform.
2021-02-09 19:21:46 -05:00
Jon Chambers
bee9b61831
Record a distribution of initial queue depths broken down by platform.
2021-02-08 16:06:21 -05:00
Ehren Kret
9936b2967e
Don't use signaling key anymore
...
Signaling key was deprecated over 2 years ago. It's time for it to go.
2021-02-08 09:45:33 -06:00
Ehren Kret
0dcb4b645c
Build Dynamo DB backed Message Store ( #358 )
...
* Work in progress...
* Finish first pass draft of MessagesDynamoDb
* Use begins_with everywhere for destination device id
* Remove now unused methods
* First basic test built
* Add another test case
* Remove comment
* Verify more of the message contents
* Ensure all methods are tested
* Integrate MessagesDynamoDb into the MessagesManager
This change plugs the MessagesDynamoDb class into the live serving
flow in MessagesManager.
Tests are not yet as comprehensive for this big a change as they
should be, but they now compile and pass so checkpointing here with a
commit.
* Put DynamoDB before RDBS when deleting specific messages
* Extract method
* Make aws sdk version into a property
* Rename clientBuilder
* Discard messages with no GUID
* Unify batching logic into one function
* Comment on the source of the value in this constant
* Inline method
* Variable name swizzle
* Add timers to all public methods
* Add missing return statements
* Reject messages that are too large with response code 413
* Add configuration to control dynamo DB timeouts
* Set server timestamp from the ReceiptSender
* Change to shorter key names to optimize IOPS
* Fix tests broken by changing column names
* Fix broken copyright template output
* Remove copyright template error text
* Add experiments to control use of dynamo and rds in message storage
* Specify instance profile credentials for the dynamic configuration manager
* Use property for aws sdk version
* Switch dynamo to instance profile credentials
* Add metrics to the batch write loop
* Use placeholders in logging
2021-02-03 10:03:19 -06:00
Jon Chambers
d2fcf68381
Record the status message when clients reject websocket messages.
2020-12-23 12:29:15 -05:00
Ehren Kret
ebf332a8c9
Record delivery duration excluding noise from non-primary devices ( #311 )
...
* Record delivery duration excluding noise from non-primary devices
* Extract method
2020-12-21 10:28:39 -06:00
Jon Chambers
0de3a400eb
Record unsuccessful server-to-client requests in more detail.
2020-12-10 17:01:46 -05:00
Jon Chambers
92fde83b3a
Discard oversized messages bound for desktop clients via websockets.
2020-12-07 15:03:35 -05:00
Jon Chambers
103b49ec45
Record the number of non-success responses from clients when sending messages via websockets.
2020-11-10 11:47:57 -05:00
Jon Chambers
4815434dd7
Record the platforms of clients that are getting displaced.
2020-11-10 11:45:12 -05:00
Ehren Kret
604287244f
Update copyright statement on all source files
...
IntelliJ Copyright Profile used to automate this.
2020-11-04 11:55:35 -05:00
Ehren Kret
26870d134f
Set source UUID when delivering envelopes from message cache/db on websocket
2020-10-28 12:38:32 -04:00
Jon Chambers
05d9ec673e
Send push notifications if websockets close before all messages are delivered
2020-10-27 16:02:55 -04:00
Jon Chambers
df847431eb
Measure total bytes written to websockets and failed send attempts.
2020-10-20 17:22:30 -04:00
Jon Chambers
99f488d48f
Drop websocket connection names (unused for a while now).
2020-10-19 11:24:35 -04:00
Jon Chambers
05929871c9
Rename PushSender to MessageSender and add docs.
2020-10-19 11:24:35 -04:00
Jon Chambers
7e14a0bc30
Drop pub/sub operations from WebsocketConnection.
2020-09-23 14:51:02 -04:00