Jon Chambers
6a3ecb2881
Convert `TurnToken` to a record
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
Jon Chambers
69ea9b0296
Add a request counter tagged by client version
2023-08-04 12:16:48 -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
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
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
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
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
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
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
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
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
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
457ecf145f
Add test for Redis timeouts
2023-06-30 12:55:37 -05: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
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
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
Jon Chambers
0122b410be
Include push notification urgency in push latency metrics
2023-06-21 15:10:26 -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
7dce183170
Add worker thread pool to PushFeedbackProcessor
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
Jon Chambers
9cfd88a23f
Move turn secret to static configuration
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
234707169e
Represent identity keys as `IdentityKey` instances
2023-06-08 11:36:58 -04:00
Jon Chambers
2b08742c0a
Create separate key stores for different kinds of pre-keys
2023-06-06 17:08:26 -04:00
ravi-signal
2b266c7beb
Validate registration ids for new accounts
2023-06-06 11:08:54 -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
Jonathan Klabunde Tomer
ecd207f0a1
Check structural validity of prekeys at upload time
2023-05-31 14:29:39 -07:00
Chris Eager
d1e38737ce
Support ID token at `PUT /v1/config` and `DELETE /v1/config`
2023-05-30 10:28:28 -05:00
Jon Chambers
91805caa9a
Finalize rate limit unit inversion
2023-05-26 14:17:30 -04:00
Jon Chambers
184969336e
Allow `RateLimiterConfig` to accept either a leak rate per minute or a permit regeneration duration
2023-05-26 11:37:06 -04:00
Jon Chambers
d832eaa759
Represent identity keys as byte arrays
2023-05-26 10:12:22 -04:00
Jon Chambers
217b68a1e0
Represent pre-key public keys and signatures as byte arrays in DAOs
2023-05-26 09:58:38 -04:00
Jon Chambers
a5f853c67a
Change inactive account age threshold from 365 to 180 days
2023-05-26 08:23:19 -04:00
Jonathan Klabunde Tomer
1ab6bff54e
add `@Produces` annotations to a few methods in DeviceController
2023-05-25 09:57:06 -05:00
Jon Chambers
b034a088b1
Add support for "atomic" device linking/activation
2023-05-19 16:13:37 -04:00
Jon Chambers
8ce2b04fe4
Discard test device codes
2023-05-19 15:57:14 -04:00
Chris Eager
a3c37aed47
Remove obsolete field from `SecureValueRecovery2Configuration`
2023-05-19 15:57:01 -04:00
Jon Chambers
fa8f19fd43
Group atomic account creation operations
2023-05-19 15:56:45 -04:00
Jon Chambers
d3e0ba6d44
Prepare to read pre-keys stored as byte arrays
2023-05-19 15:56:13 -04:00
Jon Chambers
300ac16cf1
Handle "transport not allowed" responses from the registration service
2023-05-19 15:55:53 -04:00
Chris Eager
3e53884979
Add `MessagePersisterServiceCommand`
2023-05-18 15:37:54 -05:00
Chris Eager
6043c1a4e8
Add `ScheduledApnPushNotificationSenderServiceCommand`
2023-05-18 11:44:01 -05:00
Jon Chambers
66a619a378
Allow for atomic account creation and activation
2023-05-18 09:51:13 -04:00
Katherine Yen
9450f88c8c
Add annotation to catch empty request body
2023-05-17 14:28:41 -07:00
Sergey Skrobotov
287e2fa89a
Moving secret values out of the main configuration file
2023-05-17 11:25:59 -07:00
Chris Eager
8d1c26d07d
Add `CrawlAccountsCommand`
2023-05-17 12:22:49 -05:00
Jonathan Klabunde Tomer
caae27c44c
PQXDH endpoints for chat server
2023-05-16 14:34:33 -07:00
Ravi Khadiwala
8c42199baf
Add svr2 credentials to RegistrationLockFailure responses
...
Add an svr2 credential to 423 responses for:
- PUT v2/accounts/number
- POST v1/registration
Also add some openapi annotations to those endpoints
2023-05-12 11:02:32 -05:00
Chris Eager
281b91a59a
Remove obsolete `ContactDiscoveryWriter`
2023-05-10 14:01:09 -05:00
Jon Chambers
a83fd1d3fe
Include request method as a request counter dimension
2023-05-09 15:17:46 -05:00
Jon Chambers
cb72e4f426
Simplify request counter
2023-05-09 15:17:46 -05:00
Jon Chambers
1057bd7e1f
Resolve warnings/suggestions throughout `ProfileControllerTest`
2023-05-09 10:32:32 -04:00
Katherine Yen
c309afc04b
Displace client presence when existing account reregisters
2023-05-05 11:31:18 -07:00
Katherine Yen
7ba86b40aa
Create call link credential endpoint
2023-05-04 14:33:45 -07:00
Katherine Yen
b2b0aee4b7
Call link auth credential
2023-05-04 14:17:01 -07:00
Jon Chambers
919cc7e5eb
Update libsignal to 0.23
2023-05-04 14:10:51 -07:00
Jonathan Klabunde Tomer
e38911b2c5
Always check prekey signatures when new prekeys are uploaded
2023-05-04 11:31:45 -07:00
Chris Eager
bc68b67cdf
account crawler: remove obsolete accelerated mode
2023-05-04 11:27:16 -05:00
Chris Eager
42a9f1b3e4
account crawler: remove `set*Dynamo` methods
2023-05-04 11:27:16 -05:00
ravi-signal
08333d5989
Implement /v2/backup/auth/check
2023-05-04 11:23:33 -05:00
Ravi Khadiwala
0e0c0c5dfe
return 400 instead of 503 for bad verification session-id
2023-05-04 09:22:51 -07:00
Chris Eager
57b6c10dd1
Remove obsolete dynamic configuration
2023-05-03 13:20:44 -05:00
Jon Chambers
3ee5ac4514
Fix a late-breaking merge conflict
2023-05-02 16:12:26 -04:00
Jon Chambers
12b58a31a1
Retire integration with legacy contact discovery system
2023-05-02 15:57:03 -04:00
Chris Eager
487b5edc75
Handle potentially null payment method when canceling subscription
2023-05-01 13:42:05 -05:00
Jonathan Klabunde Tomer
47ad5779ad
new /v2/accounts endpoint to distribute PNI key material without changing phone number
2023-04-21 12:20:57 -07:00
Katherine Yen
4fb89360ce
Allow registration via recovery password for reglock enabled accounts
2023-04-20 09:21:04 -07:00
Jon Chambers
dd27e3b0c8
Convert attachment descriptors to records
2023-04-19 17:00:34 -04:00
Jon Chambers
1083d8bde0
Remove the legacy group credential endpoint
2023-04-19 17:00:14 -04:00
Jon Chambers
d1eb247d8c
Clarify the purpose of an `addListener` method
2023-04-18 12:04:54 -04:00
Jon Chambers
fd5e9ea016
Drop the old (and now unused!) `redis-dispatch` module
2023-04-18 12:04:54 -04:00
Jon Chambers
11829d1f9f
Refactor provisioning plumbing to use Lettuce
2023-04-18 12:04:54 -04:00
Katherine Yen
c485d317fb
Mock apnPushNotificationScheduler
2023-04-17 10:55:15 -07:00
Katherine Yen
350682b83a
Lock account and send notification when someone passes phone verification but fails reglock
2023-04-17 10:30:36 -07:00
ravi-signal
0fe6485038
Add a configuration to make rate limiters fail open
2023-04-14 13:08:14 -05:00
ravi-signal
8847cb92ac
Don't block when scheduling background apns pushes
2023-04-10 13:51:36 -05:00
Chris Eager
2697872bdd
Use Apache StringUtils#join
2023-04-05 09:51:30 -05:00
Ravi Khadiwala
7b331edcde
Separate username and signature truncation fields
2023-04-05 09:51:00 -05:00
Katherine Yen
e4da59c236
Generic credential auth endpoint for call links
2023-04-04 10:28:35 -07:00
Jonathan Klabunde Tomer
48ebafa4e0
DynamoDBExtension refactor and helpers for our schema ( #1327 )
...
There's a lot of boilerplate involved in setting up a DynamoDBExtension, and some tests were creating several extensions
rather than one with several tables, which is probably slower than it has to be.
This change adds a new DynamoDbExtensionSchema class in which we can define the Dynamo schema for tests, and refactors
DynamoDbExtension to make it easy to instantiate a single extension with all the tables one wants (and no more, both to
minimize test startup time and to ensure we explicitly test our dependencies and lack thereof).
Tests requiring a DynamoDbExtension with a table schema that's not part of the normal Signal schema can instantiate a
DynamoDbExtension.RawSchema instead.
Test timings are unaffected, at least on my machine. Before:
```[INFO] service ............................................ SUCCESS [01:18 min]```
After:
```[INFO] service ............................................ SUCCESS [01:18 min]```
Co-authored-by: Jonathan Klabunde Tomer <jkt@viola.signal.org>
2023-04-03 13:08:43 -07:00
Jonathan Klabunde Tomer
391b070cff
KeysController: return correct number of unsigned prekeys
...
When GET /v2/keys was orignally added in b263f47
, prekeys were stored in
Postgres, with a user's unsigned and signed keys together in the same table.
Therefore GET /v2/keys subtracted one from the count returned by storage.
In d4d9403
, we changed to a different storage schema, with unsigned prekeys in
one DynamoDB table and unsigned prekeys in the accounts Dynamo table.
Unfortunately, GET /v2/keys was not changed to stop subtracting one from the
count of prekeys in the keys table at the same time. This commit fixes that.
2023-04-03 14:32:45 -04:00
gram-signal
781cd0ca3f
Truncate SVR2 IDs to 16 bytes rather than 10.
2023-03-30 17:19:18 -06:00
Chris Eager
3ccfeb490b
Add retry after exceptions during a cluster topology change event callback
2023-03-29 11:41:19 -05:00
Chris Eager
0cc84131de
Add `enabled` to SVR2 configuration
2023-03-29 11:40:21 -05:00
Chris Eager
4fa08fb189
Add secure value recovery 2 to `AccountsManager#delete()`
2023-03-29 11:40:21 -05:00
Chris Eager
2a551d1d41
Add `SecureValueRecovery2Client`
2023-03-29 11:40:21 -05:00
Chris Eager
391aa9c518
Wrap runtime exceptions during WebSocket auth into AuthenticationException
2023-03-29 10:08:55 -05:00
Chris Eager
f5c62a3d85
Migrate from bounded elastic to dedicated executor for message delivery
2023-03-22 12:57:44 -05:00
Chris Eager
6075d5137b
Add `/v2/accounts/data_report`
2023-03-22 12:57:21 -05:00
ravi-signal
890293e429
change v1/challenge response for invalid captcha
2023-03-21 17:38:30 -05:00
Ravi Khadiwala
ee53260d72
Add filter-provided captcha score thresholds
2023-03-21 17:34:58 -05:00
Ravi Khadiwala
a8eb27940d
Add per-action captcha site-key configuration
...
- reject captcha requests without valid actions
- require specific site keys for each action
2023-03-21 17:34:58 -05:00
Katherine Yen
a3a7d7108b
Change reglock expiration check to be > 0 instead of >= 0
2023-03-21 12:46:35 -07:00
Jon Chambers
35606a9afd
Send "account already exists" flag when creating registration sessions
2023-03-20 15:18:55 -04:00
Chris Eager
292f69256e
Refactor WebSocket message sending error and completion to subscriber from “doOn…”
2023-03-17 12:42:57 -05:00
Sergey Skrobotov
c14ef7e6cf
migrate token bucket redis record format from json to hash: phase 2
2023-03-16 09:15:22 -07:00
Sergey Skrobotov
483e444174
migrate token bucket redis record format from json to hash: phase 1
2023-03-15 16:01:06 -07:00
Sergey Skrobotov
ebf8aa7b15
fixing embedded redis based tests
2023-03-15 13:56:40 -07:00
Sergey Skrobotov
4c85e7ba66
Moving RateLimiter logic to Redis Lua and adding async API
2023-03-13 14:50:26 -07:00
Katherine Yen
46fef4082c
Add metrics for registration lock flow
2023-03-09 09:07:21 -08:00
Ravi Khadiwala
c06313dd2e
Drop tagging for legacy user agents
2023-03-09 10:43:45 -06:00
Ravi Khadiwala
59bc2c5535
Add by-action captcha score config
...
Enable setting different captcha score thresholds for different captcha
actions via configuration
2023-03-09 10:43:16 -06:00
Chris Eager
437bc1358b
Use server timestamp for queue score
2023-03-06 11:31:11 -06:00
Chris Eager
179f3df847
Allow `DisabledPermittedAuthenticatedAccount` at `/v1/accounts/me`
2023-03-03 13:17:17 -06:00
Chris Eager
8a889516b0
Improve `LoggingUnhandledExceptionMapper` combination with `CompletionExceptionMapper`
2023-03-03 13:17:07 -06:00
Chris Eager
ef2cc6620e
Add `@Produces` annotation for validation error response
2023-02-27 16:33:18 -06:00
Sergey Skrobotov
b9b4e3fdd8
Adding a uniform configuration for all json/yaml mapper use cases: part 1
2023-02-23 16:38:48 -08:00
Sergey Skrobotov
7529c35013
Rate limiters code refactored
2023-02-23 10:49:06 -08:00
erik-signal
378b32d44d
Add missing token field to OutgoingMessageEntity
2023-02-23 11:18:07 -05:00
Chris Eager
35286f838e
Add `/v1/verification`
2023-02-22 14:27:05 -06:00
Jon Chambers
e1ea3795bb
Reuse registration sessions if possible when requesting pre-auth codes
2023-02-22 12:45:26 -05:00
erik-signal
95237a22a9
Relax validation to allow null reporting tokens.
2023-02-22 11:06:51 -05:00
Katherine Yen
11c93c5f53
Keep username hash during reregistration
2023-02-21 09:07:30 -08:00
Jon Chambers
b59b8621c5
Add reporter platform as a reported message dimension
2023-02-17 16:44:13 -05:00
Chris Eager
44c61d9a58
Allow updates if the profile already has a payment address
2023-02-17 16:44:01 -05:00
Katherine Yen
c03060fe3c
Phone number discoverability update endpoint
2023-02-10 11:52:51 -08:00
Chris Eager
c16006dc4b
Add `PUT /v2/account/number`
2023-02-10 12:09:03 -06:00
Sergey Skrobotov
8fc465b3e8
removing redundant logic in new registration flow
2023-02-09 09:06:48 -08:00
Chris Eager
e23386ddc7
Remove unused JUnit extension from test
2023-02-09 09:05:11 -08:00
Jon Chambers
0f17d63774
Add tests for `ProvisioningController`
2023-02-09 09:04:52 -08:00
Katherine Yen
4fc3949367
Add zkproof validation in username flow
2023-02-09 09:02:53 -08:00
Sergey Skrobotov
7558489ad0
Registration Recovery Password support in `/v1/registration`
2023-02-08 13:20:23 -08:00
Katherine Yen
4a3880b5ae
`usernameHashes` on reserve request can't be null
2023-02-07 08:44:04 -08:00
Chris Eager
a4a45de161
Add `/v1/registration`
2023-02-06 16:11:59 -06:00
Chris Eager
358a286523
Use `java.util` Hex and Base64 codecs
2023-02-06 12:16:59 -06:00
Sergey Skrobotov
8afe917a6c
Registration recovery passwords store and manager
2023-02-03 16:33:03 -08:00
Katherine Yen
24f515ccb4
Revert "Revert "Stored hashed username""
2023-02-02 11:20:44 -08:00
Katherine Yen
c98b54ff15
Revert "Stored hashed username"
2023-02-01 14:31:44 -08:00
Katherine Yen
d93d50d038
Stored hashed username
2023-02-01 12:08:25 -08:00
Sergey Skrobotov
8d0e23bde1
AuthenticationCredentials name changed to SaltedTokenHash
2023-01-30 15:45:24 -08:00
Sergey Skrobotov
dc8f62a4ad
`/v1/backup/auth/check` endpoint added
2023-01-30 15:39:42 -08:00
Jon Chambers
cd4a4b1dcf
Retire `VoiceVerificationController`
2023-01-30 16:28:14 -05:00
Jon Chambers
38a0737afb
Retire `ReportSpamTokenHandler` interface in favor of `ReportedMessageListener`
2023-01-30 16:27:54 -05:00
Jon Chambers
4a2768b81d
Add spam report token support to `ReportedMessageListener`
2023-01-30 16:27:54 -05:00
Jon Chambers
00e08b8402
Simplify parsing/validation of spam report tokens
2023-01-30 16:27:54 -05:00
erik-signal
a89e30fe75
Clarify naming around spam filtering.
2023-01-27 11:40:33 -05:00
Sergey Skrobotov
c934405a3e
fixing config field names
2023-01-25 17:28:03 -08:00
Sergey Skrobotov
eb499833c6
refactoring of ExternalServiceCredentialGenerator
2023-01-25 15:20:28 -08:00
Chris Eager
dd98f7f043
Support changing just the currency of an existing subscription
2023-01-25 15:14:17 -06:00
Chris Eager
e8978ef91c
Add tests for `SubscriptionController#setSubscriptionLevel`
2023-01-25 15:14:17 -06:00
erik-signal
ab26a65b6a
Introduce spam report tokens
2023-01-19 11:13:43 -05:00
Chris Eager
f361f436d8
Support PayPal for recurring donations
2023-01-17 12:20:17 -06:00
Chris Eager
e6ab97dc5a
Update enabled-required authenticator metrics
2023-01-13 14:05:56 -06:00
Chris Eager
b8967b75c6
Update dropwizard to 2.0.34
2023-01-13 12:17:39 -06:00
Fedor Indutny
96b753cfd0
Add an extra kb to max sticker size
2023-01-13 12:07:45 -06:00
Jon Chambers
5a89e66fc0
Convert `AccountIdentityResponse` to a record
2023-01-13 12:36:17 -05:00
Jon Chambers
b4a143b9de
Convert `RegistrationLockFailure` to a record
2023-01-13 12:36:02 -05:00
Jon Chambers
050035dd52
Convert `ExternalServiceCredentials` to a record
2023-01-13 12:36:02 -05:00
Jon Chambers
7018062606
Explicitly create registration sessions
2023-01-09 15:27:07 -05:00
Jon Chambers
9e1485de0a
Assume stored verification codes will always have a session ID instead of a verification code
2023-01-09 15:27:07 -05:00
Jon Chambers
4e358b891f
Retire `StoredVerificationCode#twilioVerificationSid`
2023-01-09 15:27:07 -05:00
Chris Eager
b02b00818b
Remove `Subscriptions.PCI` attribute
2023-01-04 11:31:46 -06:00
Chris Eager
010f88a2ad
Remove `Subscriptions.C` attribute
2023-01-04 11:31:46 -06:00
Jon Chambers
a60450d931
Convert `UserCapabilities` to a record
2022-12-21 16:26:07 -05:00
Katherine Yen
cb5d3840d9
Add paymentActivation capability
2022-12-20 09:20:42 -08:00
Fedor Indutny
9aceaa7a4d
Introduce ArtController
2022-12-19 11:58:16 -08:00
Ravi Khadiwala
65ad3fe623
Add hCaptcha support
2022-12-16 11:28:30 -06:00
Katherine Yen
26f5ffdde3
Enable case-sensitive usernames
2022-12-13 07:59:37 -08:00
Chris Eager
2f21e930e2
Add `minimum` one-time donation amont to validation error map
2022-12-06 16:21:15 -06:00
Sergey Skrobotov
9cf2635528
some accounts classes refactorings
2022-12-05 09:30:40 -08:00
Chris Eager
2ecbb18fe5
Add support for one-time PayPal donations
2022-12-01 18:11:35 -06:00
Chris Eager
df8fb5cab7
Move messages cache stale discard to a separate scheduler
2022-12-01 18:09:28 -06:00
katherine-signal
99ad211c01
Enforce minimum amount by currency for one time donations
2022-11-28 11:44:59 -08:00
katherine-signal
fb4ed20ff5
Remove groups v2 capability
...
* wip removing groups v2 capabilities
* comments
* finish removing groups v2 references
* hardcode gv1migration flag on user capability, remove other references
2022-11-21 09:31:47 -08:00
Jon Chambers
cb50b44d8f
Allow the account cleaner to operate on multiple accounts in parallel
2022-11-18 11:15:00 -05:00
Jon Chambers
2881c0fd7e
Allow the account cleaner to act on all accounts in a crawled chunk
2022-11-18 11:15:00 -05:00
Chris Eager
483fb0968b
Use badge name in level configuration for one-time donations
2022-11-18 11:05:23 -05:00
Jon Chambers
e8ee4b50ff
Retire the legacy "abusive hosts" system in favor of newer tools
2022-11-18 10:54:25 -05:00
Chris Eager
4f8aa2eee2
Mark flaky test `@Disabled`
2022-11-17 13:23:42 -06:00
Chris Eager
397d3cb45a
Add consolidated subscription configuration API
2022-11-16 12:27:00 -06:00
Chris Eager
986545a140
Set `error_if_incomplete` for subscription payment behavior
2022-11-16 12:08:21 -06:00
Sergey Skrobotov
836307b0c7
adding a metric for ipv4/ipv6 requests count
2022-11-15 11:17:01 -08:00
Sergey Skrobotov
c32067759c
refactoring: use constants for header names
2022-11-15 11:16:49 -08:00
Chris Eager
f41bdf1acb
Make `MessagesController#getPendingMessages` fully async
2022-11-11 13:19:57 -06:00
Chris Eager
77d691df59
Always use reactived message processing in `WebSocketConnection`
2022-11-11 13:14:39 -06:00
Jon Chambers
a01f96e0e4
Temporarily disable account freezing on contention
2022-11-10 18:53:58 -05:00
Jon Chambers
d3f0ab8c6d
Introduce an alternative exchange rate data provider
2022-11-10 10:25:06 -05:00
erik-signal
80a3a8a43c
Lock account when number owner lacks registration lock.
2022-11-09 14:03:09 -05:00
Chris Eager
e0178fa0ea
Move additional handling of `MessagesManager#delete` to executor
2022-11-03 13:02:25 -05:00
Jon Chambers
afda5ca98f
Add a test for checking push challenge tokens
2022-11-03 11:14:59 -05:00
Chris Eager
fbf6b9826e
tests: only call `SQLite.setLibraryPath` once
2022-11-03 11:08:43 -05:00
Chris Eager
bd69905f2e
Remove obsolete donation endpoint
2022-11-02 11:29:03 -05:00
Chris Eager
aa829af43b
Handle expected case of empty flux in message deletion
2022-10-31 12:29:25 -05:00
Chris Eager
c10fda8363
Use reactive streams for WebSocket message queue
...
Initially, uses `ExperimentEnrollmentManager` to do a safe rollout.
2022-10-31 10:35:37 -05:00
Jon Chambers
74d65b37a8
Discard old Twilio machinery and rely entirely on the stand-alone registration service
2022-10-28 10:40:37 -04:00
sergey-signal
5868d9969a
minor changes to utility classes ( #1127 )
2022-10-25 08:48:56 -07:00
erik-signal
90490c9c84
Clean up the TestClock code a bit more.
2022-10-21 15:27:15 -04:00
Chris Eager
8ea794baef
Add additional handling for nullable field in recurring donation record
2022-10-21 12:56:39 -05:00
erik-signal
fe60cf003f
Clean up testing with clocks.
2022-10-21 12:39:47 -04:00
Chris Eager
b711288faa
Run GitHub Action in a container
2022-10-18 16:59:35 -05:00
Jon Chambers
0120a85c39
Allow HTTP clients to trust multiple certificates to support certificate rollover
2022-10-18 11:17:47 -04:00
Jon Chambers
a41d047f58
Retire `CertificateExpirationGauge` in favor of other expiration monitoring tools
2022-10-18 11:17:47 -04:00
Jon Chambers
0a64e31625
Check verification codes for changing phone numbers against the stand-alone registration service when possible
2022-10-18 11:17:15 -04:00
erik-signal
a7d5d51fb4
Improve testing of MultiRecipientMessageProvider
2022-10-17 16:50:39 -04:00