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
Chris Eager
0f5c62ade5
Set max threads = min threads on command executor services
2023-10-27 09:26:32 -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
3d92e5b8a9
Explicitly stop and start managed dependencies
2023-10-24 16:50:02 -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
Chris Eager
cf2353bcf9
Remove InstrumentedExecutorService wrapping
2023-10-20 15:14:35 -05: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
9c053e20da
Drop `Util#isEmpty`/`Util#nonEmpty` in favor of `StringUtils`
2023-10-20 12:04:15 -04:00
Jon Chambers
19d7b5c65d
Drop `Util#wait`
2023-10-20 12:04:15 -04:00
Jon Chambers
7b9d8829da
Remove entirely unused `Util` methods
2023-10-20 12:04:15 -04:00
Jon Chambers
f0ab52eb5d
Rename "master device" to "primary device"
2023-10-20 10:52:13 -04:00
Jon Chambers
e8cebad27e
Avoid modifying original `Account` instances when constructing JSON for updates
2023-10-20 10:51:50 -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
8ec062fbef
Define an endpoint to set the default payment method for iDEAL subscriptions
2023-10-19 10:29:40 -07: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
6fd1c84126
Make command namespace available to subclasses
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
0cdc32cf65
Really REALLY fix instrumentation for re-registration of recently-deleted accounts
2023-10-18 10:15:03 -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
Jon Chambers
f55504c665
Add utility methods for rate-limiting by remote address
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
e310a3560b
Remove unused configuration for the legacy Secure Backup Service
2023-10-17 12:21:14 -04:00
Jon Chambers
162b27323e
Fix instrumentation for re-registration of recently-deleted accounts
2023-10-17 12:20:58 -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
Jon Chambers
33c8bbd0ce
Trim stale capabilities from the profiles gRPC service
2023-10-12 12:52:32 -04:00
Jon Chambers
f2a3b8dba4
Treat APNs team/key IDs as secrets so they can change atomically with the key itself
2023-10-12 12:52:13 -04:00
Katherine
207ae6129b
Add `paymentMethod` and `paymentProcessing` fields to `GET /v1/subscription/{subscriberId}` endpoint
2023-10-10 09:56:50 -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
Jonathan Klabunde Tomer
010eadcd10
UnlinkDeviceCommand improvements
2023-10-03 15:14:02 -07: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
6522b74e20
Remove obsolete metrics
2023-10-03 11:42:25 -05:00
Chris Eager
8c7975d89a
Clear presence only if the connection’s displacement listener is still present
2023-10-03 11:42:25 -05:00
Chris Eager
407070c9fc
Unsubscribe from keyspace notifications only if queue still maps to the listener
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
Jonathan Klabunde Tomer
9cd21d1326
count ItemCollectionSizeLimitExceededExceptions persisting messages
2023-09-27 10:58:28 -07:00
Jonathan Klabunde Tomer
aaba95f9b8
return `null` for empty username hash in AccountIdentityResponse
2023-09-27 10:58:04 -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
Jon Chambers
f9fabbedce
Convert `SubscriptionController` request/response entities to records
2023-09-25 12:32:49 -07:00
Chris Eager
16012e6ffe
Remove obsolete `ManagedPeriodicWork`
2023-09-25 12:15:17 -07:00
Jon Chambers
d10a132b0c
Remove unused methods in `SubscriptionController`
2023-09-25 12:14:56 -07:00
Sergey Skrobotov
0b3af7d824
gRPC API for external services credentials service
2023-09-25 12:14:49 -07:00
Sergey Skrobotov
d0fdae3df7
Enable header-based auth for WebSocket connections
2023-09-25 12:14:40 -07:00
Chris Eager
0e989419c6
Add metric for late removal of message availability and displacement listeners
2023-09-19 12:04:24 -05:00
ravi-signal
0fa8276d2d
retry hCaptcha errors
...
Co-authored-by: Jon Chambers <63609320+jon-signal@users.noreply.github.com>
2023-09-14 16:07:35 -05:00
Ravi Khadiwala
b594986241
Set an idle timeout on registration gRPC client
2023-09-14 16:06:49 -05:00
Sergey Skrobotov
9f3ffa3707
gRPC API for payments service
2023-09-14 11:12:00 -07:00
Jonathan Klabunde Tomer
8e598c19dc
don't attempt to update KEM prekeys if we have no PQ-enabled devices
2023-09-14 11:11:22 -07:00
Katherine
2601d6e906
Convert some fields on `CreateProfileRequest` and `VersionedProfileResponse` to byte arrays
2023-09-13 14:00:03 -07:00
Jon Chambers
f0544fab89
Update recently-deleted accounts table transactionally as part of account mutations
2023-09-13 16:02:19 -04:00
Jon Chambers
1b9bf01ab1
Absorb `DeletedAccounts` into `Accounts`
2023-09-13 16:02:19 -04:00
Katherine
cbc3887226
Define identity key check endpoint in keys anonymous service
2023-09-11 11:57:00 -07:00
Jon Chambers
2b764c2abd
Don't allow callers to unlink their primary device
2023-09-11 14:29:48 -04:00
Jon Chambers
845fc338d7
Add a (failing) test for removing primary devices from accounts
2023-09-11 14:29:48 -04:00
Sergey Skrobotov
977243ebfd
DRY gRPC tests, refactor error mapping
2023-09-08 17:12:08 -07:00
Chris Eager
29ca544c95
Revert "Set `suppressCancel=true` in `Mono.fromFuture`"
...
This reverts commit 8348263fab
.
2023-09-07 17:03:33 -05:00
Ravi Khadiwala
94b41d3a2c
Fixup default rate limits
...
A previous refactor left the default rate limits off by a factor of 60.
2023-09-07 16:07:42 -05:00
Chris Eager
92bb783cbb
Use static exception instance when a connection is closed
2023-09-07 16:06:16 -05:00
Chris Eager
8348263fab
Set `suppressCancel=true` in `Mono.fromFuture`
2023-09-07 16:06:03 -05:00
Ravi Khadiwala
5934b7344a
Remove unused captcha configuration
2023-09-07 11:16:32 -05:00
Chris Eager
a9a2e40fed
Move `onErrorResume` to individual `sendMessage` `Mono`
2023-09-07 11:15:57 -05:00
Chris Eager
656326355a
Invert `String.equals()` to prevent `NullPointerException`
2023-09-07 11:14:36 -05:00
Chris Eager
b89e2e5355
Propagate certain subscription processor errors to client responses
2023-09-06 15:57:14 -05:00
Chris Eager
2d187abf13
Handle WebSocket sendMessage errors with onErrorResume
2023-09-06 15:53:01 -05:00
Chris Eager
ecd6b0174a
Add timeouts to crawl chunk `join()`s
2023-08-31 15:03:19 -05:00
Chris Eager
a1e534a515
Add default request timeout to FaultTolerantHttpClient
2023-08-31 15:03:19 -05:00
Sergey Skrobotov
ebbe19ba63
Add missing copyright headers and reorder some imports
2023-08-30 16:07:53 -07:00
Katherine Yen
6a37b73463
Profile gRPC: Define `getExpiringProfileKeyCredential` endpoint
2023-08-30 14:56:43 -07:00
Katherine Yen
dd18fcaea2
Profile gRPC: Define `getVersionedProfile` endpoint
2023-08-30 14:47:11 -07:00
Katherine Yen
5afc058f90
Profile gRPC: Define `getUnversionedProfile` endpoint
2023-08-30 14:24:43 -07:00
Jon Chambers
5e221fa9a3
Tests for validation of Kyber keys on PNI change/key distribution events
...
Co-authored-by: Jonathan Klabunde Tomer <jkt@signal.org>
2023-08-30 14:07:33 -07:00
Jon Chambers
0e0cb4d422
Drop the non-normalized account crawler
2023-08-30 13:55:41 -04:00
Jonathan Klabunde Tomer
9577d552c6
pass challenge type to rate limit reset listeners
2023-08-29 15:19:49 -07:00
Chris Eager
093f17dce2
Update to stripe-java 23.1.1
2023-08-29 15:18:16 -07:00
Jon Chambers
6089f49b9c
Add a gRPC interceptor for getting client addresses
2023-08-29 15:18:06 -07:00
Sergey Skrobotov
cfb910e87e
Adding copyright headers to proto files
2023-08-28 14:39:33 -07:00
Chris Eager
d338ba5152
Convert some KeysController methods return `CompletableFuture`s
2023-08-24 11:59:28 -05:00
Chris Eager
f181397664
Add test for round-trip AccountsManager JSON serialization
2023-08-24 11:18:01 -05:00
Chris Eager
708f23a2ee
Remove deprecated identity key and signed pre-key methods
2023-08-24 11:18:01 -05:00
Chris Eager
7536b75508
Remove unused test fixtures
2023-08-24 11:06:11 -05:00
Jonathan Klabunde Tomer
7237ae6c54
check that pq last-resort prekeys, if submitted, match device list
2023-08-24 09:04:29 -07:00
Sergey Skrobotov
ca05753a3e
adding 400 response documentation to the API call
2023-08-23 13:20:07 -07:00
Jon Chambers
754f71ce00
Add a gRPC service for working with devices
2023-08-22 16:31:02 -05:00
Jon Chambers
619b05e56c
Add utility a method for requiring authentication with the account's primary device
2023-08-22 16:31:02 -05:00
Jon Chambers
8b13826949
Convert `DeviceInfo` and `DeviceInfoList` to a record
2023-08-22 16:31:02 -05:00
Jon Chambers
a96ee57c7e
Defer asynchronous actions when deriving `Mono` instances from futures
2023-08-22 16:28:02 -05:00
Jon Chambers
ff1ef90a6d
Defer actions taken after rate limit checks
2023-08-22 16:28:02 -05:00
Ravi Khadiwala
17d48b95ac
keep lettuce metrics; strip remote tags
2023-08-18 16:28:19 -05:00
Chris Eager
eeea97e2fe
Return a single OAuth2 credentials JSON
2023-08-18 16:16:31 -05:00