Chris Eager
195f23c347
Add `/v1/accounts` and `/v2/keys` to the WebSocket
2024-01-02 15:51:57 -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
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
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
Katherine
a37acd1f42
Add ttl for braintree writes to onetime donation table
2023-12-15 13:37:35 -05: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
Katherine
3548c3df15
Calculate onetime badge expiration from payment success timestamp
2023-12-14 15:39:46 -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
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
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
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
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
Jonathan Klabunde Tomer
4efda89358
multisend cleanup
2023-12-07 12:23:02 -08:00
Jon Chambers
a843780f68
Add a (failing!) test for device-linking
2023-12-07 13:27:26 -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
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
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
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
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
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
01fde4f9ca
Require PNI-associated registration IDs for new devices
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
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
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
521900c048
Always require atomic account creation
2023-11-27 09:52:57 -05:00
Jonathan Klabunde Tomer
cb1fc734c2
report exceptions in fanned-out sends of multi-recipient messages
2023-11-20 10:46:26 -08:00
Chris Eager
84b56ae1b2
Upgrade to dropwizard 3.0
2023-11-16 17:57:48 -06:00
Jonathan Klabunde Tomer
8f7bae54fe
When persisting messages fails due to a full queue in DynamoDB, automatically unlink one device to free up room.
...
Co-authored-by: Chris Eager <79161849+eager-signal@users.noreply.github.com>
2023-11-15 17:15:17 -08:00
Jonathan Klabunde Tomer
7764185c57
return explicit Response rather than Void from async controllers with no expected body content
2023-11-14 21:57:25 -08:00
Katherine
d4ef2adf0a
Remove low priority attempt login notification workaround for old iOS clients
2023-11-13 12:06:55 -05:00
Jonathan Klabunde Tomer
a83378a44e
add an option to replace username ciphertext without rotating the link handle
2023-11-13 09:01:54 -08:00
ravi-signal
a4a4204762
Allow re-registered accounts to reclaim their usernames
2023-11-13 10:41:23 -06:00
Katherine
71e4351743
Add `sepaMaximumEuros` field to subscription configuration
2023-11-10 09:13:51 -08:00
Sergey Skrobotov
db63ff6b88
gRPC validations
2023-11-03 11:30:48 -07:00
Jonathan Klabunde Tomer
d47ff9b7c7
don't make empty transactions
2023-11-02 16:20:19 -07:00
Chris Eager
2bc4412d66
Encapsulate device ID in ProvisioningAddress
2023-11-02 11:48:10 -05:00
Chris Eager
6a428b4da9
Convert Device.id from `long` to `byte`
2023-11-02 11:48:10 -05:00
Jonathan Klabunde Tomer
7299067829
Don't attempt to update PNI PQ prekeys for disabled devices
2023-11-01 16:55:55 -07:00
Ravi Khadiwala
6b38b538f1
Add ArchiveController
...
Adds endpoints for creating and managing backup objects with ZK
anonymous credentials.
2023-10-30 14:02:19 -05:00
Chris Eager
ba139dddd8
Use all devices when checking limit
2023-10-30 12:40:06 -05:00
Jon Chambers
54bc3bce96
Add an authentication-required gRPC service for working with accounts
2023-10-25 14:47:20 -04:00
Jon Chambers
e4de6bf4a7
Only update devices that aren't already disabled
2023-10-24 15:29:03 -04:00
Katherine Yen
6f166425fe
Fix bank mandate test
2023-10-20 16:19:31 -04:00
Jon Chambers
744eb58071
Discard old chunk-based account crawler machinery
2023-10-20 16:09:17 -04:00
Jon Chambers
9d47a6f41f
Introduce a reactive push notification feedback processor
2023-10-20 16:09:17 -04:00
Jonathan Klabunde Tomer
fd19299ae0
Accept a captcha score threshold for challenges from the spam filter
2023-10-20 09:09:22 -07:00
Jon Chambers
f0ab52eb5d
Rename "master device" to "primary device"
2023-10-20 10:52:13 -04:00
Jon Chambers
6441d5838d
Clear username links in the same transaction when clearing username hashes
2023-10-20 10:51:50 -04:00
Jon Chambers
ac0c8b1e9a
Introduce a canonical constant for UAK length
2023-10-20 10:50:44 -04:00
Katherine
5990a100db
Add charge failure details to `/v1/subscription/boost/receipt_credential` 402 response
2023-10-19 10:21:26 -07:00
Jon Chambers
bc35278684
Drop the old `AccountCleaner`
2023-10-19 10:34:24 -04:00
Jon Chambers
c3c7329ebb
Add a single-shot command for removing expired accounts
2023-10-19 10:34:24 -04:00
Jon Chambers
0100f0fcc9
Migrate a username links test from `AccountsTest` to `AccountsManagerUsernameIntegrationTest`
2023-10-18 10:20:48 -04:00
Jon Chambers
601e9eebbd
Implement an anonymous account service for looking up accounts
2023-10-18 10:14:52 -04:00
Jon Chambers
eaa868cf06
Add a remote address interceptor to base gRPC tests
2023-10-18 10:14:52 -04:00
Katherine Yen
b2ff016cc1
Add back story ratelimiter with counter but do not enforce
2023-10-17 12:22:17 -04:00
Jon Chambers
33b4f17945
Make username-related operations asynchronous
2023-10-17 12:21:52 -04:00
Jon Chambers
ae976ef8d6
Retire legacy Secure Value Recovery plumbing
2023-10-13 15:32:41 -04:00
Katherine
c6b4e2b71d
Support iDEAL
2023-10-12 09:54:05 -07:00
Katherine
e1aa734c40
Define endpoint to get localized bank mandate text
2023-10-05 09:53:33 -07:00
Jon Chambers
bb7e0528c4
Make account deletion an asynchronous operation
2023-10-04 10:44:50 -04:00
Katherine
c43e0b54f2
Exclude `SEPA_DEBIT` as a supported payment method for certain iOS client versions
2023-10-03 11:34:52 -07:00
Chris Eager
8c7975d89a
Clear presence only if the connection’s displacement listener is still present
2023-10-03 11:42:25 -05:00
Katherine
7821a3cd61
Accommodate PayPal with SEPA changes
2023-09-28 10:28:17 -07:00
Katherine
a00c2fcfdb
Support SEPA
2023-09-28 08:26:01 -07:00
Chris Eager
8d1135a2a3
Refine `RegistrationController` logic
...
Local device transfer on iOS uses the `409` status code to prompt the
transfer UI. This needs to happen before sending a `423` and locking
an existing account, since the device transfer
includes the local device database verbatim.
2023-09-25 15:54:31 -05:00