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
Jon Chambers
76305190a2
Temporarily restore explicit service/version/environment/host tags
2023-08-17 18:30:59 -04:00
Jon Chambers
ab83990170
Send latency metrics as distributions
2023-08-17 17:10:16 -04:00
Jon Chambers
8103a22026
Submit Micrometer metrics via dogstatsd instead of the Datadog API
2023-08-17 17:01:36 -04:00
Jonathan Klabunde Tomer
1f8e4713ef
limit concurrency of async DynamoDB ops
2023-08-17 13:56:09 -07:00
Katherine Yen
ff9fe2c1be
Remove record equality test
2023-08-17 13:55:27 -07:00
Jon Chambers
7f37c8ee5e
Retire now-unused HTTP transport configuration for Datadog metric reporter
2023-08-17 16:53:53 -04:00
Jon Chambers
ed0a723fef
Include underlying exceptions when logging failures to write exit files
2023-08-17 12:32:45 -04:00
Jon Chambers
5c31ef43c9
Send an HTTP/440 response instead of an HTTP/502 if an upstream provider rejects a "send verification code" request
2023-08-17 12:15:00 -04:00
Katherine Yen
43fd8518c0
Add missing `java.util.Base64` import to ProfileController
2023-08-16 14:02:53 -07:00
Katherine Yen
19a08f01e8
Write certain profile data as bytes instead of strings to dynamo and represent those fields as byte arrays on `VersionedProfile`
2023-08-16 13:45:16 -07:00
Jon Chambers
ccd860207b
Make `MessagesManager#clear` asynchronous
2023-08-15 14:08:16 -04:00
Jon Chambers
2c835b5c51
Make message deletion from DynamoDB asynchronous
2023-08-15 14:08:16 -04:00
Jon Chambers
5caa951c61
Make `MessagesCache#clear` methods asynchronous
2023-08-15 14:08:16 -04:00
Jon Chambers
4d8c4d6693
Also delete APNs VOIP tokens when clearing APNs tokens
2023-08-15 14:08:00 -04:00
Jon Chambers
a9d0574ea8
Remove most `@Timed` annotations
2023-08-15 14:06:31 -04:00
Ravi Khadiwala
ed6a2c55eb
adjust lettuce metric denial for post-transform name
2023-08-11 09:43:41 -05:00
Ravi Khadiwala
b6ee074149
fix captcha shortening url path resolution
2023-08-10 16:01:56 -05:00
Ravi Khadiwala
f6b3500e92
remove most high cardinality lettuce metrics
2023-08-10 16:01:16 -05:00
Katherine Yen
a71dc48b9b
Prepare to read profile data stored as byte arrays
2023-08-10 14:00:35 -07:00
Katherine Yen
bc5eed48c3
Add authentication interceptor to profile gRPC service
2023-08-10 13:59:46 -07:00
Jon Chambers
2ecf3cb303
Revert "Don't immediately require PNI-associated keys for "atomic" device linking"
...
This reverts commit 4ec97cf006
.
2023-08-10 16:59:35 -04:00
Jon Chambers
bed33d042a
Revert "Require PNI-associated keys if the target account has a PNI identity key"
...
This reverts commit 1dde612855
.
2023-08-10 16:59:35 -04:00
Ravi Khadiwala
3ac7aba6b2
Add a captcha short-code expander
2023-08-09 12:41:31 -05:00
Jon Chambers
1dde612855
Require PNI-associated keys if the target account has a PNI identity key
2023-08-09 12:10:56 -04:00
Jon Chambers
4ec97cf006
Don't immediately require PNI-associated keys for "atomic" device linking
2023-08-09 12:10:56 -04:00
Jon Chambers
d51c6fd2f8
Convert `Device.Capabilities` to a record
2023-08-08 15:38:37 -04:00
Jon Chambers
d868e3075c
Retire fully-adopted device capabilities
2023-08-08 15:38:37 -04:00
Jon Chambers
ae61ee5486
Retire `AnalyzeDeviceCapabilitiesCommand`
2023-08-08 15:38:37 -04:00
Katherine Yen
58fd9ddb27
Count profile data that cannot be parsed as base64
2023-08-08 10:54:25 -07:00
Katherine Yen
a953cb33b7
Define ProfileController protobufs and setProfile endpoint
2023-08-08 10:53:11 -07:00
Jon Chambers
95b90e7c5a
Add a preliminary gRPC service for dealing with calling credentials
2023-08-08 12:46:55 -04:00
Jon Chambers
6a3ecb2881
Convert `TurnToken` to a record
2023-08-08 12:46:55 -04:00
Jon Chambers
6cf4241283
Add a reactive method for checking rate limits by UUID
2023-08-08 12:46:55 -04:00
Jon Chambers
42141e51a1
Use ACIs instead of E164s for TURN URI overrides
2023-08-08 12:46:55 -04:00
Jon Chambers
b01945ff50
Clarify parameterized tests by modifying prototype request objects; remove spurious warning suppressions
2023-08-08 10:33:29 -04:00
Jon Chambers
a131f2116f
Retire verification code storage machinery
2023-08-04 17:26:55 -04:00
Jon Chambers
625637b888
Stop checking for stored verification codes when linking devices
2023-08-04 17:26:55 -04:00
Jon Chambers
c873f62025
Produce verification tokens instead of stored verification codes for linking devices
2023-08-04 16:04:47 -04:00
Jon Chambers
43d91e5bd6
Convert `VerificationCode` to a record
2023-08-04 16:04:47 -04:00
Jon Chambers
5c4c729703
Disallow reuse of device verification tokens
2023-08-04 13:40:37 -05:00
Jon Chambers
308da3343d
Accept signed tokens in addition to randomly-generated codes for authorizing device linking
2023-08-04 13:40:37 -05:00
Chris Eager
48c7572dd5
Add CommandStopListener
2023-08-04 13:29:35 -05:00
Jon Chambers
69ea9b0296
Add a request counter tagged by client version
2023-08-04 12:16:48 -04:00
Jon Chambers
969c6884c0
Add a command for analyzing device capabilities
2023-08-04 12:14:08 -04:00
Jon Chambers
fcf311aab3
Retire the `PendingAccounts` table
2023-08-04 12:13:57 -04:00
ravi-signal
888879dfb2
Estimate message byte limit exceeded error count
2023-08-04 11:10:58 -05:00
Chris Eager
f53743d287
Add configuration for Datadog UDP transport
2023-08-02 13:54:15 -05:00
Jon Chambers
2d132128e1
Switched to a composed request object model for anonymous keys gRPC operations
2023-07-28 14:20:24 -05:00
Chris Eager
6e5ffbe7b5
Restore `aci` field to `BatchIdentityCheckRequest`
2023-07-28 14:16:48 -05:00
Ravi Khadiwala
baf98accd0
acquire lock before checking message listeners in MessagesCache
2023-07-26 16:45:53 -04:00
Ravi Khadiwala
901c950ee6
Add metrics to keyspace-notifier executor
2023-07-26 16:45:53 -04:00
Ravi Khadiwala
50ac7f9dc2
adjust messageDeletionAsyncExecutor core pool size
2023-07-26 16:45:41 -04:00
Jon Chambers
b691b8d37d
Log successful client version refreshes
2023-07-26 16:41:54 -04:00
Jon Chambers
4ead8527c8
Use `ClientReleasesManager` when deciding whether to add client version tags
2023-07-26 16:41:54 -04:00
Jon Chambers
6f4801fd6f
Add a manager class for checking "liveness" of client versions
2023-07-26 16:41:54 -04:00
Jon Chambers
10689843b0
Add a repository for client release information
2023-07-26 16:41:54 -04:00
Chris Eager
60cc0c482e
Add `@Produces` to `PUT /v1/accounts/apn`
2023-07-26 16:35:23 -04:00
Jon Chambers
e1a5105c28
Revert "Restore max concurrency when migrating pre-keys"
...
This reverts commit ed8a1ed579
.
2023-07-26 12:56:35 -04:00
Jon Chambers
ed8a1ed579
Restore max concurrency when migrating pre-keys
2023-07-26 12:34:32 -04:00
Jon Chambers
c3fd2e2284
Retry key storage attempts when migrating signed pre-keys
2023-07-26 12:34:32 -04:00
Chris Eager
872ef5d0a0
Add environment variable to toggle tcp appender
2023-07-24 13:13:13 -05:00
Chris Eager
b44599cd59
Remove unused jedis library
2023-07-24 10:54:34 -04:00
Jordan Rose
7a5dcc700e
Add support for AuthCredentialAsPni with pniAsServiceId=true
...
Update to libsignal 0.30.0, and add a new query param to
/v1/certificate/auth/group, "pniAsServiceId=true", that uses the new
encoding of PNIs in zkgroup rather than encoding PNIs the same way as
ACIs, as we have been doing.
Also includes all the adjustments for the libsignal 0.30.0 update.
2023-07-24 10:53:59 -04:00
ravi-signal
705fb93e45
Add v4 attachment controller
...
Add AttachmentControllerV4 which can be configured to generate upload
forms for a TUS based CDN
2023-07-21 12:09:45 -05:00
Jon Chambers
9df923d916
Update keys gRPC endpoint to use service identifiers
2023-07-21 13:03:01 -04:00
Chris Eager
dc1cb9093a
Remove unused code
2023-07-21 11:08:32 -05:00
Jon Chambers
e32043ae79
Remove outdated documentation
2023-07-21 10:24:17 -04:00
Jon Chambers
abb32bd919
Introduce "service identifiers"
2023-07-21 09:34:10 -04:00
Sergey Skrobotov
cf92007f66
Moving Account serialization logic to storage-specific classes
2023-07-20 14:28:07 -07:00
Jon Chambers
f5c57e5741
Make `ContestedOptimisticLockException` extend `NoStackTraceRuntimeException`
2023-07-20 11:15:08 -04:00
Jon Chambers
5627209fdd
Add a gRPC service for working with pre-keys
2023-07-20 11:10:26 -04:00
Jonathan Klabunde Tomer
0188d314ce
minor username api refinements
2023-07-19 15:12:47 -07:00
Jonathan Klabunde Tomer
67343f6bdc
accept encrypted username with confirm-username-hash requests
2023-07-19 10:54:11 -07:00
Katherine Yen
ade2e9c6cf
Define asynchronous `ProfilesManager` operations
2023-07-19 10:43:58 -07:00
Sergey Skrobotov
352e1b2249
test classes moved to same packages with components they test
2023-07-17 13:34:58 -07:00
Jon Chambers
b8d8d349f4
Control inbound message byte limits with a dynamic configuration flag
2023-07-14 16:25:33 -04:00
Jon Chambers
e87468fbe0
Add a rate limit for inbound message bytes for a given account
2023-07-14 16:25:33 -04:00
Jon Chambers
e38a713ccc
Support sub-millisecond permit regeneration durations in rate limiters
2023-07-14 16:25:33 -04:00
Jon Chambers
82ed783a2d
Introduce async account updaters
2023-07-14 16:25:19 -04:00
Jon Chambers
d17c7aaba6
Add support for clearing accounts from Redis asynchronously
2023-07-14 16:25:19 -04:00
Jon Chambers
41f61c66a3
Add public methods for fetching accounts asynchronously
2023-07-13 13:53:29 -04:00
Jon Chambers
1b7a20619e
Add tools for testing asynchronous Redis operations
2023-07-13 13:53:29 -04:00
Jon Chambers
7d19e58953
Add parallel pathways for getting accounts asyncronously to `Accounts`
2023-07-13 13:53:29 -04:00
Jon Chambers
1605676509
Store signed EC pre-keys in a dedicated table when setting signed pre-keys individually
2023-07-12 14:58:10 -04:00
Jon Chambers
a0d6146ff5
Make key deletion operations asynchronous
2023-07-12 14:58:10 -04:00
Jon Chambers
f709b00be3
Make `KeysManager` storage/retrieval operations asynchronous
2023-07-12 14:58:10 -04:00
Jonathan Klabunde Tomer
5847300290
Revert "Allow use of the token returned with spam challenges as auth for the challenge verification request"
2023-07-12 11:45:02 -07:00
Jonathan Klabunde Tomer
9aaac0eefd
don't require all devices to support PNI for PNIHW
2023-07-12 10:14:16 -07: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
Jon Chambers
adf6c751ee
Use an explicit-allow model for tagging client versions in metrics
2023-07-11 13:35:29 -04:00
Jon Chambers
c315b34395
Update formatting in `UserAgentTagUtil`
2023-07-11 13:35:29 -04:00
Jon Chambers
f592201e4c
Limit attachment controller tags to UA platform (instead of platform and version)
2023-07-11 13:35:29 -04:00
Jon Chambers
8bf5ee45ed
Filter out `command` tags from Lettuce metrics and prepend a "chat." prefix to Lettuce metric names
2023-07-11 13:35:03 -04:00
Jon Chambers
25f759dd07
Drop `ActiveUserTally`
2023-07-11 13:34:36 -04:00
Jonathan Klabunde Tomer
e5f4c17148
update openapi docs for several endpoints, notably those with PQXDH changes
...
Co-authored-by: Katherine Yen <katherine@signal.org>
2023-07-06 15:45:33 -07:00
Jonathan Klabunde Tomer
098b177bd3
Allow use of the token returned with spam challenges as auth for the challenge verification request
2023-07-06 15:25:19 -07:00
Jon Chambers
ef1a8fc50f
Use PascalCase RPC names for the registration service
2023-07-06 17:12:37 -04:00
Jon Chambers
76f2e93a2c
Reduce concurrency limit for pre-key migration task
2023-07-06 16:45:03 -04:00
Jon Chambers
25ea1df299
Limit concurrency when writing signed EC pre-keys
2023-07-06 15:51:12 -04:00
Chris Eager
5ced86af1d
Set `consistentRead=true` for registration recovery password lookup
...
This avoids a race condition (in integration test situations) where a lookup could return no results
2023-07-06 15:47:16 -04:00
Jon Chambers
62e02a49df
Log errors from single-shot account crawlers rather than printing them to stderr
2023-07-06 15:46:28 -04:00
Jon Chambers
540550d72a
Handle exceptions thrown when checking pre-key signatures
2023-07-06 15:46:11 -04:00
Jon Chambers
8cb83fb6e4
Switch to temporary registration endpoints to facilitate a change from snake_case to PascalCase
2023-07-06 15:46:00 -04:00
Jon Chambers
2c0fc8fe3e
Remove legacy methods from `RegistrationServiceClient`
2023-07-06 10:32:58 -04:00
Jon Chambers
08c7baafac
Remove legacy registration endpoints from `AccountController`
2023-07-06 10:32:58 -04:00
Jon Chambers
8edb450d73
Parallelize single-shot account crawlers
2023-07-06 10:15:16 -04:00
ravi-signal
fedeef4da5
Add an optional parameter to require atomic account creation
...
By default, if a registration request has no optional fields for atomic
account creation set, the request will proceed non-atomically. If a
client sets the `atomic` field, now such a request would be rejected.
2023-07-05 11:24:11 -05:00
Jon Chambers
b593d49399
Control signed pre-key deletion via a dynamic configuration flag to facilitate migration
2023-07-05 12:17:17 -04:00
Chris Eager
4a91fc3c3d
Set `daemon=true` for pubsub topology change event thread
2023-07-05 11:15:12 -05:00
Chris Eager
bb9605d7c3
Use RedisClient#setDefaultTimeout for a non-clustered client
2023-07-05 11:09:28 -05:00
Jon Chambers
1049326a70
Turn on Lettuce latency metrics
2023-06-30 18:20:43 -04:00
Chris Eager
457ecf145f
Add test for Redis timeouts
2023-06-30 12:55:37 -05:00
Chris Eager
bdcd055aaf
Configure Redis timeouts using TimeoutOptions and RediURI
2023-06-30 12:55:37 -05:00
Jon Chambers
30ae2037e8
Correct order of constructor arguments for `KeysManager`
2023-06-30 12:05:16 -04:00
Jon Chambers
ce4fdbfb3c
Untangle metric names for `RepeatedUseSignedPreKeyStore` subclasses
2023-06-30 10:33:24 -04:00
Jon Chambers
2d154eb0cf
Add a command to copy signed pre-keys from `Account` records to their own table
2023-06-30 10:33:24 -04:00
Jon Chambers
a3e82dfae8
Add a temporary method for storing signed EC pre-keys if and only if another key has not already been stored
2023-06-30 10:33:24 -04:00
Jon Chambers
97a7469432
Measure signed EC pre-key agreement
2023-06-30 10:33:24 -04:00
Jon Chambers
1a1defb055
Store signed EC pre-keys in a dedicated table
2023-06-30 10:33:24 -04:00
Jon Chambers
93c78b6e40
Introduce `RepeatedUseECSignedPreKeyStore`
2023-06-30 10:33:24 -04:00
Chris Eager
b852d6681d
FaultTolerantHttpClient: used managed ScheduledExecutorService for retries
2023-06-30 10:24:18 -04:00
Chris Eager
8e48ac4ede
Add `messagesCache` and `clientPresenceManager` to managed command dependencies
2023-06-30 10:24:18 -04:00
Ehren Kret
859f646c55
Correct timestamp resolution to intended integer value
2023-06-29 16:05:59 -05:00
Chris Eager
fb39b2edaf
Improve two `@Disabled` flaky tests
2023-06-29 14:56:41 -05:00
Chris Eager
c93af9e31e
Remove `MessagePersister` from WhisperServerService environment
...
Persistence is now exclusively done by a separate command.
2023-06-28 14:17:49 -05:00
Chris Eager
b81a0e99d4
Always have 0 `ApnPushNotificationScheduler` worker threads in front-end service
2023-06-28 14:17:23 -05:00
Chris Eager
f8fefe2e5e
Remove `AccountCrawler` (and `doPeriodicWork`) from `WhisperServerService`
2023-06-28 14:16:07 -05:00
Jon Chambers
f26bc70b59
Add a basic, prototype authentication interceptor for gRPC services
2023-06-27 10:21:11 -04:00
Jon Chambers
b5fd131aba
Add an abstract base class for single-shot account crawls
2023-06-27 10:18:35 -04:00
Jon Chambers
06997e19e0
Add a method for iterating across all accounts
2023-06-27 10:18:35 -04:00
Jon Chambers
97710540c0
Use `Timer.Sample` throughout `Experiment`
2023-06-27 10:18:20 -04:00
Jon Chambers
c78c109577
Drop a disused endpoint for fetching the caller's own signed pre-key
2023-06-27 10:16:39 -04:00
Jonathan Klabunde Tomer
8d995e456e
initial grpc service code in chat
2023-06-26 17:10:13 -07:00
Ehren Kret
cc3cab9c88
Add server time to remote config fetch
...
Enable clients to very roughly adjust some actions for clock skew by
providing current server time in the remote config fetch.
2023-06-21 17:11:35 -05:00
Jon Chambers
0122b410be
Include push notification urgency in push latency metrics
2023-06-21 15:10:26 -04:00
Jon Chambers
2ddd2b9476
Convert `PushRecord` to a `record` and make `PushType` non-optional
2023-06-21 15:10:26 -04:00
Jon Chambers
a768498250
Record general message delivery latency
2023-06-21 15:10:14 -04:00
Sergey Skrobotov
a45aadae16
Cleaning up references to the legacy format from the rate limiters lua script
2023-06-21 15:09:46 -04:00
Chris Eager
98578b18aa
Update to dynamodb-lock-client 1.2.0
2023-06-21 15:08:40 -04:00
Chris Eager
6d81f69785
Start and stop all lifecycle-managed objects in `CrawlAccountsCommand`
2023-06-17 10:17:46 -05:00
Chris Eager
7dce183170
Add worker thread pool to PushFeedbackProcessor
2023-06-16 11:36:28 -05:00
Chris Eager
f1962a03ef
Parameterize worker thread count in CrawlAccountsCommand
2023-06-16 11:36:28 -05:00
Chris Eager
befd336372
Remove static Remote Config auth tokens
2023-06-15 12:11:20 -05:00
Chris Eager
8501e61eb1
Set maxThreads = minThreads on command thread pools
2023-06-15 12:11:10 -05:00
Jon Chambers
ae489e5a52
Log account ages when identity keys change
2023-06-15 13:10:35 -04:00
Chris Eager
13afdbda97
Report system resource metrics from background tasks
2023-06-14 16:48:23 -05:00
Jon Chambers
9cfd88a23f
Move turn secret to static configuration
2023-06-14 10:47:17 -04:00
Jon Chambers
13456bad3a
Update date math with JSR310 types
2023-06-14 10:47:17 -04:00
Jon Chambers
45be85c5ef
Update formatting and resolve warnings/suggestions
2023-06-14 10:47:17 -04:00
Jonathan Klabunde Tomer
861dc0d021
reject message sends that have the same device more than once
2023-06-13 09:49:50 -07:00
Chris Eager
128d709c99
Additional counters and timers for WebSocket connections
2023-06-13 11:46:15 -05:00
Jon Chambers
e8f01be8ef
Inject version bytes if missing from existing EC pre-keys
2023-06-09 11:41:51 -04:00
Jon Chambers
7f1ee015d1
Treat blank strings as null pre-keys
2023-06-09 10:39:16 -04:00
Jon Chambers
17aa5d8e74
Use strongly-typed pre-keys
2023-06-09 10:08:49 -04:00
Jon Chambers
b27334b0ff
Treat blank strings as null identity keys
2023-06-09 10:08:18 -04:00
Jon Chambers
7fc6b1e802
Count invalid pre-keys
2023-06-09 09:25:31 -04:00
Jon Chambers
8ec6a24a2d
Fix a metric name/tag set
2023-06-08 12:34:27 -04:00
Jon Chambers
234707169e
Represent identity keys as `IdentityKey` instances
2023-06-08 11:36:58 -04:00
Jon Chambers
1c8443210a
Check for missing version bytes in invalid identity keys
2023-06-08 09:56:21 -04:00
g1a55er
aaf43a592f
Replace reserved "notification" key with "newMessageAlert"
2023-06-08 09:53:31 -04:00
Jon Chambers
2b08742c0a
Create separate key stores for different kinds of pre-keys
2023-06-06 17:08:26 -04:00
Jon Chambers
cac04146de
Identify specific cases with invalid identity keys
2023-06-06 17:08:01 -04:00
ravi-signal
2b266c7beb
Validate registration ids for new accounts
2023-06-06 11:08:54 -04:00
Jonathan Klabunde Tomer
099932ae68
ApnPushNotifcationScheduler: always run worker thread at least once
2023-06-06 11:04:44 -04:00
Jon Chambers
8579babde6
Count instances where an account's identity key could not be interpreted as an `IdentityKey`
2023-06-06 11:01:25 -04:00
Jon Chambers
9c93d379a8
Fix a sneaky merge conflict
2023-06-05 12:38:35 -04:00
Jon Chambers
085c7a67c8
Refactor account locks/deleted account manager
2023-06-05 12:30:44 -04:00
Sergey Skrobotov
e6917d8427
minor cleanup, docs, and integration tests for username API
2023-06-02 10:35:07 -07:00
Sergey Skrobotov
47cc7fd615
username links API
2023-06-02 10:26:14 -07:00