Chris Eager
ad6b99be6a
Dispatch client presence operations after device deletion to a dedicated executor
2023-12-22 10:51:17 -06:00
Chris Eager
b9dd9fc47d
Reduce fan-out by processing a single stream of expired linked devices
2023-12-22 10:51:06 -06:00
Chris Eager
637792c6d4
Move `RemoveExpiredLinkedDevicesCommand` error handling for more accurate metrics
2023-12-21 16:06:41 -06:00
Jon Chambers
4d1bca2d97
Dispatch client presence operations after account deletion to a dedicated executor
2023-12-21 13:40:49 -05:00
Chris Eager
f33a2eba50
Add buffer + shuffle and configurable concurrency to `RemoveExpiredLinkedDevicesCommand`
2023-12-21 11:14:02 -06:00
Jon Chambers
5d6bea5ec9
Clear Redis cache entries strictly after removing accounts from DynamoDB
2023-12-21 12:08:03 -05:00
Jon Chambers
057d1f07a8
Remove bulk "set repeated-use signed pre-keys" methods because they were only ever used for single devices
2023-12-21 12:07:42 -05:00
Jon Chambers
95bb9a9780
Log signed pre-key retrieval errors and mismatches
2023-12-20 14:55:12 -05:00
Chris Eager
06c391cbf6
Add counter for failed account updates to RemoveExpiredLinkedDevicesCommand
2023-12-20 13:51:28 -06:00
Chris Eager
d90dff95b1
Move MeterRegistry#close calls to after the lifecycle has fully stopped
2023-12-20 13:51:16 -06:00
Ravi Khadiwala
ca47a7b663
handle new RegistrationService proto error
2023-12-19 18:19:26 -06:00
Jonathan Klabunde Tomer
9d3d4a3698
Add phone-number-sharing field to versioned profile
...
Co-authored-by: Katherine <katherine@signal.org>
2023-12-19 11:20:04 -08:00
Chris Eager
3b509bf820
Add command to remove expired linked devices
2023-12-19 13:11:26 -06:00
Jon Chambers
5b7f91827a
Remove signed pre-keys transactionally when removing devices
2023-12-19 14:11:05 -05:00
Chris Eager
06800043a9
Set TLS keystore password in secondary persistent services
2023-12-15 13:39:58 -06:00
Chris Eager
3090de56b8
Set TLS keystore password from secrets configuration
2023-12-15 12:47:27 -06:00
Katherine
a37acd1f42
Add ttl for braintree writes to onetime donation table
2023-12-15 13:37:35 -05:00
Jonathan Klabunde Tomer
43f17414ff
Make key-setting methods asynchronous again
2023-12-14 16:49:16 -08:00
Jon Chambers
b259eea8ce
Refactor/clarify account creation/reclamation process
2023-12-14 16:48:57 -08:00
Katherine
9cfc2ba09a
Persist onetime donation payment success timestamps for Braintree transactions
2023-12-14 16:48:29 -08:00
Chris Eager
bb347999ce
Propagate another subscription processor error to clients
2023-12-14 15:40:08 -05:00
Katherine
3548c3df15
Calculate onetime badge expiration from payment success timestamp
2023-12-14 15:39:46 -05:00
Jon Chambers
1167d0ac2e
Make key-setting methods synchronous
2023-12-13 17:49:55 -05:00
Jon Chambers
f738bc97e7
Revert "Retire the "migrate signed pre-keys" command"
...
This reverts commit c7cc3002d5
.
2023-12-13 17:49:55 -05:00
Jon Chambers
3f9edfe597
Revert "Treat the stand-alone signed pre-keys table as the source of truth for signed pre-keys"
...
This reverts commit feb933b4df
.
2023-12-13 17:49:55 -05:00
Jon Chambers
a024949311
Revert "Retire "migrate signed pre-keys" configuration"
...
This reverts commit 44145073f1
.
2023-12-13 17:49:55 -05:00
Jon Chambers
609c901867
Refactor key-fetching to be reactive
2023-12-13 12:46:48 -05:00
Jon Chambers
4ce060a963
Count wildcard "get keys" requests by platform
2023-12-13 12:46:48 -05:00
Jon Chambers
c4ca0fee40
Synchronize access to `responseItems` when assembling a "get keys" response
2023-12-13 12:46:48 -05:00
Chris Eager
8d4acf0330
Remove `ForkJoinPool.managedBlock` in favor of async updates
2023-12-13 10:18:04 -05:00
Jon Chambers
28a981f29f
Assume that all devices have signed pre-keys
2023-12-13 10:17:51 -05:00
Jon Chambers
c29113d17a
Reject requests with missing device capabilities
2023-12-12 11:37:44 -05:00
Katherine
951f978447
Use start of subscription period as fallback timestamp
2023-12-12 11:34:44 -05:00
Jon Chambers
07899f35bd
Return `DeviceController#linkDevice` to synchronous processing
2023-12-12 11:34:23 -05:00
Katherine
3cbbf37468
Use payment success timestamp to calculate recurring donation badge expiration
2023-12-12 10:01:20 -05:00
Jon Chambers
6c7a3df5ae
Retire non-atomic device-linking pathways
2023-12-12 09:53:51 -05:00
Jon Chambers
2054ab2771
Revert "Count requests with missing device capabilities"
...
This reverts commit 6cdf8ebd2c
.
2023-12-12 09:53:51 -05:00
Jon Chambers
44145073f1
Retire "migrate signed pre-keys" configuration
2023-12-12 09:53:34 -05:00
Jon Chambers
feb933b4df
Treat the stand-alone signed pre-keys table as the source of truth for signed pre-keys
2023-12-11 11:39:54 -05:00
Jon Chambers
c7cc3002d5
Retire the "migrate signed pre-keys" command
2023-12-11 11:07:00 -05:00
xiaolou86
049b901d63
Fix typos
2023-12-09 10:04:12 -05:00
Jon Chambers
3cf1b92dfc
Do not set one-time pre-keys if the lists of new keys are empty
2023-12-08 14:03:08 -05:00
Jon Chambers
5b0fcbe854
Always expose sequential fluxes to account crawlers
2023-12-08 13:43:42 -05:00
Jon Chambers
cca747a1f6
Treat transaction conflicts during transactional account updates as contested optimistic locks
2023-12-08 12:13:23 -05:00
Jon Chambers
417d99a17e
Check story rate limits in parallel
2023-12-08 12:13:08 -05:00
Jon Chambers
e9708b9259
Use random UUIDs throughout `MessageControllerTest`
2023-12-08 12:13:08 -05:00
Jon Chambers
e5d3be16b0
Fetch destination accounts in parallel when sending multi-recipient messages
2023-12-08 12:13:08 -05:00
Jordan Rose
2ab3c97ee8
Replace MultiRecipientMessage parsing with libsignal's implementation
...
Co-authored-by: Jonathan Klabunde Tomer <jkt@signal.org>
2023-12-08 11:52:47 -05:00
Jon Chambers
f20d3043d6
Process key migrations sequentially to better control concurrency
2023-12-07 21:42:49 -05:00
Jonathan Klabunde Tomer
4efda89358
multisend cleanup
2023-12-07 12:23:02 -08:00
Jon Chambers
1fb88271e5
Invalidate cache entries for accounts after successfully adding devices
2023-12-07 13:27:26 -05:00
Jon Chambers
a843780f68
Add a (failing!) test for device-linking
2023-12-07 13:27:26 -05:00
Jon Chambers
5ad83da4e0
Remove the now-unused admin logger
2023-12-07 12:58:43 -05:00
Jon Chambers
50d92265ea
Add devices to accounts transactionally
2023-12-07 11:19:40 -05:00
Chris Eager
e084a9f2b6
Remove PUT/DELETE methods from RemoteConfigController
2023-12-07 10:54:19 -05:00
Jon Chambers
664f9f36e1
Use padded base64 encoding for outbound device names
2023-12-07 10:53:56 -05:00
Jon Chambers
4c9efdb936
Revert "Revert "Represent device names as byte arrays""
...
This reverts commit 45848e7bfe
.
2023-12-07 10:53:56 -05:00
Jon Chambers
45848e7bfe
Revert "Represent device names as byte arrays"
...
This reverts commit 5ae2e5281a
.
2023-12-06 17:05:04 -05:00
Ravi Khadiwala
4fa10e5783
Fix NPE in request metrics when a finished request is missing a response
2023-12-06 15:11:41 -05:00
Ravi Khadiwala
fc0bc85f4d
Add some extra request validation to `/v1/archives/keys`
2023-12-06 15:11:27 -05:00
Jon Chambers
5ae2e5281a
Represent device names as byte arrays
2023-12-06 15:10:45 -05:00
Jon Chambers
34a943832a
Align push notification types and delivery priorities
2023-12-06 12:40:16 -05:00
Jon Chambers
db17693ba7
Revert "Temporarily make registration challenge notifications "noisy""
...
This reverts commit 9069c5abb6
.
2023-12-06 12:40:16 -05:00
Jon Chambers
6cdf8ebd2c
Count requests with missing device capabilities
2023-12-06 10:40:50 -05:00
Ravi Khadiwala
072b470f46
Be more specific about encodings in /v1/archive docs
2023-12-06 10:40:20 -05:00
Ravi Khadiwala
78b2df2ecc
Use long instead of int for epoch seconds
2023-12-06 10:40:06 -05:00
Jon Chambers
00e72a30c9
Assume all accounts have primary devices
2023-12-06 10:28:19 -05:00
Jon Chambers
df421e0182
Update signed pre-keys in transactions
2023-12-05 14:20:16 -05:00
Jon Chambers
ede9297139
Disallow identity key changes
2023-12-05 14:14:24 -05:00
Jon Chambers
85383fe581
Remove an unused "store keys" method
2023-12-05 14:14:24 -05:00
Jon Chambers
4cca7aa4bd
Normalize identity types throughout `KeysController`
2023-12-05 14:14:24 -05:00
Jon Chambers
e2037dea6c
Rename `PreKeyState` to `SetKeysRequest`
2023-12-05 14:14:24 -05:00
Jon Chambers
f10f772e94
Convert `PreKeyState` to a record
2023-12-05 14:14:24 -05:00
Jon Chambers
9ecfe15ac4
Use multiline strings for `PreKeyState` documentation
2023-12-05 14:14:24 -05:00
Jon Chambers
5f0726af8a
Perform cleanup operations before overwriting an existing account record
2023-12-05 12:18:09 -05:00
Ravi Khadiwala
331bbdd4e6
replace deprecated apache RandomUtils
2023-12-05 10:48:18 -06:00
Jon Chambers
37e3bcfc3e
Move "remove device" logic into `AccountsManager`
2023-12-05 11:44:58 -05:00
Jon Chambers
4f42c10d60
Disallow sync messages to PNIs
2023-12-05 11:44:27 -05:00
Jonathan Klabunde Tomer
20392a567b
Revert "multisend cleanup"
...
This reverts commit c03249b411
.
2023-12-01 14:39:31 -08:00
Jonathan Klabunde Tomer
c03249b411
multisend cleanup
2023-11-30 15:50:36 -08:00
gram-signal
22e6584402
Add auth controller for SVR3 to /v3/backup.
2023-11-30 15:50:21 -08:00
Jon Chambers
aa23a5422a
Don't modify registration IDs from the "set account attributes" endpoint
2023-11-29 16:56:47 -05:00
Jon Chambers
01fde4f9ca
Require PNI-associated registration IDs for new devices
2023-11-29 16:56:47 -05:00
Jon Chambers
3980dec123
Revert "Add metrics to check presence of PNI-associated registration IDs"
...
This reverts commit 1da3f96d10
.
2023-11-29 16:56:47 -05:00
Jon Chambers
c97f837f45
Revert "Instrument registration ID changes via the "set account attributes" endpoint"
...
This reverts commit 8fbc1dac74
.
2023-11-29 16:56:47 -05:00
Chris Eager
9c54d2407b
Update tests
2023-11-29 15:48:24 -06:00
Chris Eager
a027c4ce1f
Conditionally use `request.remoteAddr` instead of `X-Forwarded-For`
2023-11-29 15:48:24 -06:00
Chris Eager
b1fd025ea6
Use EpochSecondSerializer for UserRemoteConfigList.serverEpochTime
2023-11-29 15:47:10 -06:00
Jonathan Klabunde Tomer
a05a230085
use Account-specific json serializer when reserving username hash
2023-11-29 13:40:06 -08:00
Jon Chambers
8fbc1dac74
Instrument registration ID changes via the "set account attributes" endpoint
2023-11-29 10:26:41 -05:00
Katherine
f46842c6c9
Validate registration IDs
2023-11-28 15:43:35 -08:00
ravi-signal
202dd8e92d
Add copy endpoint to ArchiveController
...
Co-authored-by: Jonathan Klabunde Tomer <125505367+jkt-signal@users.noreply.github.com>
Co-authored-by: Chris Eager <79161849+eager-signal@users.noreply.github.com>
2023-11-28 11:45:41 -06:00
Jon Chambers
1da3f96d10
Add metrics to check presence of PNI-associated registration IDs
2023-11-28 12:26:15 -05:00
Chris Eager
5f6fe4d670
Add `NoneHealthResponder` to replace default responder
2023-11-27 14:38:47 -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
Jon Chambers
c8033f875d
Create accounts transactionally
2023-11-27 09:57:43 -05:00
Jon Chambers
07c04006df
Avoid blocking calls in async account updates
2023-11-27 09:57:43 -05:00
Jon Chambers
521900c048
Always require atomic account creation
2023-11-27 09:52:57 -05:00
Jon Chambers
9069c5abb6
Temporarily make registration challenge notifications "noisy"
2023-11-22 10:25:59 -05:00
Jon Chambers
ff7a5f471b
Always use "conserve power" priority for challenge notifications
2023-11-21 17:58:32 -05:00