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
Chris Eager
378d7987a8
device capabilities: prevent `stories` downgrade
2022-10-17 15:25:13 -04:00
erik-signal
3e0baf82a4
Filter unknown UUIDs for /multi_recipient&story=true.
2022-10-13 15:33:51 -04:00
erik-signal
17a3c90286
Add "urgent" query parameter to /v1/messages/multi_recipient endpoint.
2022-10-11 11:10:11 -04:00
Chris Eager
6341770768
Update `SubscriptionManager` to store processor+customerId in a single attribute and a map
...
- add `type` query parameter to `/v1/subscription/{subscriberId}/create_payment_method`
2022-10-07 14:26:17 -05:00
Jon Chambers
d2fa00f0c6
Add experiment to test standalone registration service
2022-10-06 15:42:53 -04:00
erik-signal
d6c9652a70
Fix internal server error when sending stories to unknown recipient.
2022-10-06 13:53:57 -04:00
erik-signal
544e4fb89a
Adjust routing for stories.
2022-10-05 12:20:42 -04:00
erik-signal
966c3a8f47
Add routing for stories.
2022-10-05 10:44:50 -04:00
Ravi Khadiwala
a79d709039
Return 403 when a push challenge is incorrect
2022-09-30 12:02:47 -05:00
Ravi Khadiwala
2e497b5834
Fix operator order in metric calculation
2022-09-15 14:04:18 -05:00
Ravi Khadiwala
c14621a09f
Add metrics for captcha scores
2022-09-14 16:00:11 -05:00
Ravi Khadiwala
d0a8899daf
Change discriminator seperator and default width
2022-09-14 15:53:15 -05:00
Chris Eager
8b65c11e1e
Update batch check entities from two optional fields to a single field
2022-09-12 11:19:01 -05:00
Chris Eager
320c5eac53
Add support for PNIs at `v1/profile/identity_check/batch`
2022-09-09 10:55:34 -05:00
Ehren Kret
abd0f9630c
Create GCP Logging implementation of AdminEventLogger
2022-09-07 19:37:26 -05:00
Ehren Kret
a4508ec84f
Add new event logging module
2022-09-07 19:37:26 -05:00
Ravi Khadiwala
4032ddd4fd
Add reserve/confirm for usernames
2022-09-07 11:49:49 -05:00
Chris Eager
4c677ec2da
Remove deprecated /v1/attachments
2022-09-07 11:48:16 -05:00
Chris Eager
c05692e417
Update deprecated `CircuitBreakerConfig` usage
2022-09-07 11:47:15 -05:00
gram-signal
ae1edf3c5c
Remove experiment associated with auth1->auth2 rollout.
2022-08-31 12:10:46 -06:00
gram-signal
b17f41c3e8
Check if dashes work in dynamic configuration keys.
2022-08-29 15:51:37 -06:00
gram-signal
08db4ba54b
Update authentication to use HKDF_SHA256.
2022-08-29 14:20:47 -06:00
Jon Chambers
b280c768a4
Allow signup captchas to target CLDR two-letter region codes
2022-08-26 12:41:51 -04:00
Chris Eager
616513edaf
Remove unused jdbi dependency
2022-08-25 13:40:46 -07:00
Chris Eager
38b77bb550
Update libphonenumber to 8.12.54
2022-08-25 13:40:32 -07:00
Ravi Khadiwala
1891622e69
Zero-pad discriminators less than initial width
2022-08-22 13:36:38 -07:00
Chris Eager
27b749abbd
Filter expired items from Dynamo
2022-08-16 13:09:47 -07:00
Chris Eager
27f67a077c
Add metrics for report-verification-succeeded response
2022-08-16 13:08:16 -07:00
Ravi Khadiwala
393e15815b
Rename secondary account key namespace for usernames
2022-08-15 10:51:52 -05:00
Ravi Khadiwala
a7f1cd25b9
Remove UAK normalization code
...
All accounts now have UAKs in top-level attributes
2022-08-15 10:47:52 -05:00
Ravi Khadiwala
953cd2ae0c
Revert "Delete any leftover usernames in the accounts db"
...
This reverts commit a44c18e9b7
.
Old username cleanup is finished.
2022-08-15 10:45:38 -05:00
ravi-signal
a84a7dbc3d
Add support for generating discriminators
...
- adds `PUT accounts/username` endpoint
- adds `GET accounts/username/{username}` to lookup aci by username
- deletes `PUT accounts/username/{username}`, `GET profile/username/{username}`
- adds randomized discriminator generation
2022-08-15 10:44:36 -05:00
Chris Eager
24d01f1ab2
Revert "device capabilities: prevent `stories` downgrade"
...
This reverts commit 1c67233eb0
.
2022-08-12 14:21:27 -05:00
Chris Eager
06eb890761
Improve e164 normalization check by re-parsing without country code
2022-08-12 10:52:55 -07:00
Chris Eager
6d0345d327
Clean up Util
2022-08-12 10:52:55 -07:00
Chris Eager
1c67233eb0
device capabilities: prevent `stories` downgrade
2022-08-12 10:51:16 -07:00
Jon Chambers
b4281c5a70
Send non-urgent push notifications with lower priority
2022-08-12 11:06:31 -04:00
Jon Chambers
5f6b66dad6
Add support for scheduling background push notifications
2022-08-12 10:57:59 -04:00
Jon Chambers
c2be0af9d9
Refactor `ApnPushNotificationSchedulerTest` to use a `Clock`
2022-08-12 10:57:59 -04:00
Jon Chambers
a53a85d788
Refactor scheduled APNs notifications in preparation for future development
2022-08-12 10:47:49 -04:00
Ravi Khadiwala
a44c18e9b7
Delete any leftover usernames in the accounts db
...
The account username field should not currently be populated
2022-08-11 16:23:51 -05:00
Chris Eager
65da844d70
Small test cleanup
2022-08-09 15:32:44 -05:00
Chris Eager
5275c27ee1
Fix incorrect test Javadoc
2022-08-09 13:06:15 -07:00
Chris Eager
390580a19d
Count cases when the a message’s destination UUID doesn’t match the account’s PNI
2022-08-09 13:06:15 -07:00
Jon Chambers
9e9333424f
Retire `RetryingApnsClient`
2022-08-04 09:59:18 -04:00
Jon Chambers
6f0faae4ce
Introduce common push notification interfaces/pathways
2022-08-03 10:07:53 -04:00
Jon Chambers
0a6d724f2c
Remove `GCMSender`
2022-08-02 17:31:35 -04:00
Jon Chambers
c9ae991aa3
Add an experiment to allow a phased transition from the old GCM API to the current FCM API
2022-08-02 15:34:09 -04:00
Jon Chambers
421d594507
Introduce an `FcmSender`
2022-08-02 15:34:09 -04:00
Jon Chambers
9c03f2e468
Add support for receiving, storing, and returning `urgent` flags on messages
2022-08-02 12:05:23 -04:00
Chris Eager
55df593561
Clean up `MessageAvailabilityListener` if the websocket client is closed
2022-08-02 08:35:16 -07:00
Chris Eager
a06a663b94
Use the envelope’s destination UUID for receipt source UUID
2022-08-02 08:34:20 -07:00
Chris Eager
3d2f7e731f
Remove `Envelope.source`
2022-08-02 08:34:20 -07:00
Jon Chambers
faa6e8324a
Fix a test issue where we were ignoring some test parameters
2022-08-01 11:02:33 -04:00
Jon Chambers
d0e3fb1901
Unconditionally write messages to the messages table as envelopes
2022-08-01 10:44:27 -04:00
Jon Chambers
04287c5073
Optionally write messages as envelopes to the messages table
2022-07-29 11:10:50 -04:00
Jon Chambers
0c76fdd36c
Read bare envelopes from the messages table if possible
2022-07-29 11:10:50 -04:00
Jon Chambers
3636626e09
Make `Envelope` the main unit of currency when working with stored messages
2022-07-29 10:59:02 -04:00
Jon Chambers
3e0919106d
Add a method to build an `OutgoingMessageEntity` from an `Envelope`
2022-07-29 10:59:02 -04:00
Jon Chambers
e28f1e8ceb
Remove the unused `destination` property from `IncomingMessage`
2022-07-29 10:59:02 -04:00
Jon Chambers
3d875f1ce5
Convert incoming/outgoing message entities to records
2022-07-29 10:59:02 -04:00
Jon Chambers
6b6f9b2405
Add PNI to `GroupCredentials` responses that contain `AuthCredentialWithPni` instances
2022-07-28 10:08:25 -04:00
Jon Chambers
e9119da040
Retire the (unused!) binary message format
2022-07-28 09:59:00 -04:00
Chris Eager
a6f9409a39
Remove dynamic configuration feature flags; add `DynamicMessagePersisterConfiguration`
2022-07-27 14:19:10 -07:00
Chris Eager
41a113e22c
Stop queue persistence attempt if items aren’t removed from cache
2022-07-27 14:19:10 -07:00
Ravi Khadiwala
36050f580e
Handle duplicate device ids more gracefully
2022-07-27 11:15:32 -05:00
Jon Chambers
dce391a248
Add support for setting PNI-associated registration IDs and identity keys when changing numbers
2022-07-26 15:19:27 -04:00
Jon Chambers
1ba00a66eb
Pass the reason for displacement to presence displacement listeners
2022-07-13 15:30:03 -04:00
Jon Chambers
1dd7d33e23
Simplify `Device` entity
2022-07-13 13:55:20 -04:00
Jon Chambers
e200548e35
Introduce an account change validator
2022-07-13 12:24:39 -04:00
Jon Chambers
fdf7b69996
Remove a temporary workaround for incorrect envelope types from iOS clients
2022-07-13 11:30:52 -04:00
Jon Chambers
92d36b725f
Allow presence keys to expire if not periodically renewed
2022-07-13 11:28:55 -04:00
Ravi Khadiwala
a45d95905e
Be permissive in account-create accept-language
...
Currently, if we fail to parse a user's accept-language in account
creation, creation will fail. While it's a suboptimal experience to get
a verify code in the wrong language, it might be better than not being
able to sign up at all.
2022-07-13 11:22:31 -04:00
Ehren Kret
0fdfdabf2a
merge GroupController into CertificateController
2022-07-01 13:04:24 -05:00
Jon Chambers
a25e967978
Remove spurious mocking
2022-07-01 12:26:22 -05:00
Jon Chambers
38e30c7513
Allow callers to get an expiring profile key credential
2022-07-01 12:26:22 -05:00
Jon Chambers
e38e5fa17d
Allow callers to request a combined group auth credential
2022-07-01 12:26:22 -05:00
Ehren Kret
bf6d3aa324
Fix batching issue that was causing duplication in large queries
2022-06-20 12:41:10 -05:00
Ehren Kret
023ccc6563
Add a unit test for the batch identity check endpoint
2022-06-20 12:32:31 -05:00
Ehren Kret
da49db5b9e
Move batch identity checks off the common fork join pool
2022-06-20 11:07:33 -05:00
Ravi Khadiwala
327eb0219d
Bypass account registration captcha on test devices
2022-06-13 15:01:46 -07:00
gram-signal
a853748303
Revert "Update ChangeNumber to allow reset of registration IDs."
...
This reverts commit 7001ad1445
.
2022-06-09 11:51:50 -06:00
gram-signal
7001ad1445
Update ChangeNumber to allow reset of registration IDs.
2022-06-02 16:37:32 -06:00
Ravi Khadiwala
5cfb133f79
Use redis for abusive hosts autoblock
...
Also delete postgres dependencies that we no longer need
2022-05-31 10:08:10 -05:00
Ehren Kret
5df24edebf
Remove all unused imports remaining in project
2022-05-25 17:15:20 -05:00
Ehren Kret
f5a2efb57c
Clarify hidden static method call
2022-05-25 16:51:12 -05:00
Jon Chambers
cf89e2215c
Fully delete already-expired accounts
2022-05-25 14:19:04 -04:00
Jon Chambers
a4ca1ef1a8
Move `AccountCleanerTest` out of the `test` package; reduce visibility of test-only fields
2022-05-25 14:19:04 -04:00
Fedor Indutny
d31ddb72f3
Optimize message deletion by skipping lookup
2022-05-18 13:02:21 -07:00
Chris Eager
0445adcac3
Conclude `ReportMessageManager` ACI migration
2022-05-11 11:26:24 -07:00
gram-signal
06dd4c5026
Derive username from ACI for CDS{H,I} ( #989 )
...
* Derive username from ACI for CDS{H,I}
* Update sample YAML.
2022-05-02 08:41:38 -06:00
Ehren Kret
391c800bf5
Add gift configuration to subscription controller
2022-04-29 10:14:39 -05:00
Ehren Kret
d94c171d63
Use new style switch statement
2022-04-19 13:35:26 -05:00
Ehren Kret
9e66f8ac11
Add gift badges device capability
2022-04-19 10:33:54 -05:00
gram-signal
473ecbdf2d
Allow primary to set and provide new signed prekeys for linked devices ( #950 )
2022-04-15 12:39:47 -06:00
Chris Eager
7b3703506b
Remove number from `ReportMessageManager#store`
2022-04-13 16:41:32 -04:00
Jon Chambers
5816f76bbe
Add support for getting (limited) profiles by phone number identifier
2022-04-13 16:27:57 -04:00
Jon Chambers
3dc0d0bb92
Revert "Revert "Replace curve25519-java with libsignal-server""
...
This reverts commit c06a5ac96c
.
2022-03-29 12:24:45 -04:00
Jon Chambers
2bb8f92af1
Revert "Revert "Replace zkgroup with libsignal-server""
...
This reverts commit fa3a9570d6
.
2022-03-29 12:24:45 -04:00
Chris Eager
77fd01bd9f
Accept source ACI at `/v1/messages/report`
2022-03-25 14:27:09 -07:00