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
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
Chris Eager
f17de58a71
Change `ScheduledApnPushNotificationSenderServiceCommand` to extend `ServerCommand`
2023-05-30 10:14:33 -05:00
Chris Eager
dd552e8e8f
Change `MessagePersisterServiceCommand` to extend `ServerCommand`
2023-05-30 10:14:33 -05:00
Chris Eager
18480e9d18
Move metrics registry `environment.manage()` to utility
2023-05-30 10:14:33 -05:00
Chris Eager
7ffccd9c3a
Initialize metrics in `ScheduledApnPushNotificationSenderServiceCommand`
2023-05-26 16:41:17 -05:00
Chris Eager
0edd99e9cf
Initialize metrics in `MessagePersisterServiceCommand`
2023-05-26 16:41:17 -05:00
Chris Eager
defdc14d5e
Initialize metrics in `CrawlAccountsCommand`
2023-05-26 16:41:17 -05:00
Chris Eager
5dcf8edd38
Factor metrics registry intialization to a utility
2023-05-26 16:41:17 -05:00
Jon Chambers
91805caa9a
Finalize rate limit unit inversion
2023-05-26 14:17:30 -04:00
Jon Chambers
48d39dccbd
Fix rate limit division errors
2023-05-26 13:13:02 -04:00
Chris Eager
e7bc8bd6b9
Consistently use AWS credentials providers from `WhisperServerService`
2023-05-26 12:45:38 -04:00
Jon Chambers
f513dc0398
Invert rate limit units in default configurations
2023-05-26 11:37:06 -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
Chris Eager
1534f1aa6a
Add web identity token AWS SDK credentials provider
2023-05-26 11:07:41 -04:00
Chris Eager
cd8f74e60b
Add support for environment-dependent secondary OAuth2 credentials JSON
2023-05-26 11:07:30 -04:00
Jon Chambers
d832eaa759
Represent identity keys as byte arrays
2023-05-26 10:12:22 -04:00
Jon Chambers
796863341d
Revert "Count identity keys that are present, but can't be parsed as base64"
...
This reverts commit 024dd02628a7d989424273501528b52fe18c3ee9.
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
4a8ad3103c
Actually write pre-keys as byte arrays
2023-05-26 08:23:54 -04:00
Jon Chambers
a5f853c67a
Change inactive account age threshold from 365 to 180 days
2023-05-26 08:23:19 -04:00
Jon Chambers
70b54e227e
Count the prevalence of keys stored as strings or as bytes
2023-05-25 10:04:38 -05:00
Jonathan Klabunde Tomer
1ab6bff54e
add `@Produces` annotations to a few methods in DeviceController
2023-05-25 09:57:06 -05:00
Chris Eager
c2317e8493
Start the dynamic configuration manager in dependent commands
2023-05-25 09:52:01 -05:00
Jon Chambers
b034a088b1
Add support for "atomic" device linking/activation
2023-05-19 16:13:37 -04:00
Jon Chambers
ae7cb8036e
Factor `DeviceActivationRequest` out into its own record
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
c9a9409b9a
Count identity keys that are present, but can't be parsed as base64
2023-05-19 15:56:27 -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
Katherine Yen
34d77e73ff
Fix integer division in call link ratelimit leak rate
2023-05-16 14:34:06 -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
Katherine Yen
7395b5760a
Remove unused call link config
2023-05-12 11:01:42 -05:00
Jon Chambers
d2baa8b8fb
Stop sending API keys to the registration service
2023-05-10 15:28:12 -04:00
Chris Eager
281b91a59a
Remove obsolete `ContactDiscoveryWriter`
2023-05-10 14:01:09 -05:00
Jon Chambers
2be2b4ff23
Authenticate with the registration service using OIDC identity tokens in addition to shared API keys
2023-05-10 14:59:07 -04: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
Chris Eager
3214852a41
Fix `401` on `/v1/keepalive`
2023-05-09 15:08:03 -05:00
Jon Chambers
1057bd7e1f
Resolve warnings/suggestions throughout `ProfileControllerTest`
2023-05-09 10:32:32 -04:00
Jonathan Klabunde Tomer
33903553ab
reinstate per-{path,status,platform,is-websocket} request counters
2023-05-09 09:49:20 -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
Ravi Khadiwala
59ebe65643
Add counter to /v2/attachments
2023-05-04 09:22:18 -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
Jonathan Klabunde Tomer
be176f98ad
metric for take-prekey yielding an empty result
2023-05-02 13:03:49 -07:00
Jon Chambers
12b58a31a1
Retire integration with legacy contact discovery system
2023-05-02 15:57:03 -04:00
Jon Chambers
8d468d17e3
Add a temporary counter for profile key credential types
2023-05-02 15:56:19 -04:00
Chris Eager
e135d50d82
Add counter for `ContactDiscoverWriter` updates
2023-05-01 13:42:14 -05: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
6dfdbeb7bb
Check for no-op APNs token changes
2023-04-19 17:01:01 -04:00
Jon Chambers
d0ccbd5526
Simplify a check for no-op FCM token changes
2023-04-19 17:01:01 -04:00
Jon Chambers
031ee57371
Convert "set push token" request objects to records
2023-04-19 17:01:01 -04:00
Jon Chambers
2043678739
Remove the `removeSignalingKey` API endpoint
2023-04-19 17:00:47 -04: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
Sergey Skrobotov
a553093046
integration tests initial setup
2023-04-13 11:12:34 -07:00
Katherine Yen
61af1ba029
Clean up prohibited username references
2023-04-10 15:21:02 -07:00
ravi-signal
8847cb92ac
Don't block when scheduling background apns pushes
2023-04-10 13:51:36 -05:00
Chris Eager
33a6577b6e
Decrease message delivery executor thread count to 20
2023-04-07 10:56:23 -05:00
Chris Eager
23d5006f70
Add prefix to executor metric names
2023-04-05 09:51:53 -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
05b43a878b
Register unlink device command
2023-03-21 17:35:57 -05:00
Chris Eager
fe9c3982a1
Remove prepended username from `/v2/backup/auth` response
2023-03-21 17:35:42 -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
Jon Chambers
2052e62c01
Use a purpose-specific method when checking verification codes via the legacy registration API
2023-03-20 15:18:38 -04:00
Chris Eager
292f69256e
Refactor WebSocket message sending error and completion to subscriber from “doOn…”
2023-03-17 12:42:57 -05:00
ravi-signal
fbdcb942e8
Add unlink user command
2023-03-16 11:17:36 -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
Jon Chambers
a04fe133b6
Fix a typo in a method name
2023-03-15 16:01:14 -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
Katherine Yen
7c52be2ac1
Bump old registration default ratelimiter to match Bravo
2023-03-15 09:44:02 -07:00
Katherine Yen
2683f1c6e7
Encode username hash to base64 string without padding
2023-03-13 15:35:27 -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
Jon Chambers
7de5c0a27d
Keep counts of open websockets by client platform
2023-03-03 13:16:24 -06:00
Chris Eager
71d234e1e4
Update default rate limiter config
2023-03-02 10:27:07 -06:00
Chris Eager
b5fb33e21e
Remove unused metrics
2023-03-02 10:14:58 -06:00
Chris Eager
db198237f3
Expand `try`-`finally` scope of deleted accounts reconciliation lock
2023-02-28 12:42:18 -06:00
Chris Eager
d0ccae129a
Remove obsolete metric
2023-02-27 16:33:34 -06:00
Chris Eager
ecbef9c6ee
Add micrometer metrics to RateLimiter
2023-02-27 16:33:27 -06:00
Chris Eager
ef2cc6620e
Add `@Produces` annotation for validation error response
2023-02-27 16:33:18 -06:00
ravi-signal
b8f363b187
Add documentation to challenge controller
2023-02-24 17:41:15 -06:00
Sergey Skrobotov
c3f4956ead
OpenAPI support
2023-02-24 13:03:30 -08:00
Chris Eager
047f4a1c00
Update metric name
2023-02-24 13:07:07 -06:00
Sergey Skrobotov
41c0fe9ffa
Adding a uniform configuration for all json/yaml mapper use cases: part 2
2023-02-24 09:28:55 -08:00
Sergey Skrobotov
6edb0d49e9
Adding a uniform configuration for all json/yaml mapper use cases: bugfix
2023-02-23 20:01:32 -08: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
Jon Chambers
6ee9c6ad46
Remove deprecated registration service response fields
2023-02-23 12:41:56 -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
e1fcd3e3f6
Remove Lettuce command latency recorder
2023-02-23 10:17:31 -06:00
Chris Eager
d7ad8dd448
Add micrometer timer to `FaultTolerantPubSubConnection`
2023-02-23 10:17:24 -06:00
Chris Eager
859f2302a9
Remove unused metrics
2023-02-23 10:17:24 -06:00
Chris Eager
a6d11789e9
Add `ClosedChannelException` to expected errors
2023-02-23 10:17:16 -06:00
Chris Eager
43f83076fa
Update to reactor 3.5.3
2023-02-23 10:16:57 -06:00
erik-signal
71c0fc8d4a
Improve metrics around spam report tokens.
2023-02-22 15:43:44 -05:00
Chris Eager
1f4f926ce6
Add platform tag to subscription receipt metrics
2023-02-22 14:31:30 -06: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
Jon Chambers
7561622bc8
Log cases where we fall back to a no-op spam-reporting token provider
2023-02-14 12:35:56 -05:00
Jon Chambers
b041566aba
Simplify construction of spam reporting token providers
2023-02-14 12:35:56 -05:00
Jon Chambers
cb72158abc
Add the presence of spam reporting tokens as a dimension
2023-02-14 12:35:21 -05:00
Jon Chambers
5c432d094f
Fix a typo in a metric name
2023-02-14 12:34:48 -05:00
Chris Eager
24ac48b3b1
Update counter name
2023-02-10 14:54:02 -06: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
ce689bdff3
Use `DisabledPermittedAuthenticatedAccount` at `DELETE /v1/accounts/me`
2023-02-09 09:05:29 -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
7c3f429c56
Update E164 constraint message
2023-02-08 13:22:00 -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
Jon Chambers
448365c7a0
Preserve legacy registration API error handling
2023-01-31 15:45:23 -05: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
gram-signal
a01fcdad28
Add in controller for SVR2 auth.
2023-01-27 09:15:52 -07:00
Chris Eager
2a99529921
Remove old badge strings
2023-01-26 09:23:11 -06: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
Jon Chambers
4ce85fdb19
Treat "check code" exceptions as `false` for legacy API compatibility
2023-01-25 14:39:29 -05:00
Jon Chambers
035ddc4834
Fix a mistake where we're looking for verification codes in place that hasn't been deployed yet (but will be soon!)
2023-01-25 11:43:06 -05:00
Chris Eager
c2f40b8503
Remove duplicate code
2023-01-25 11:09:23 -05:00
Jon Chambers
cf738a1c14
Look for registration service errors in response bodies in addition to status responses
2023-01-25 10:49:36 -05:00
erik-signal
52d40c2321
Add metrics for spam report tokens received.
2023-01-24 10:25:40 -05:00
erik-signal
ab26a65b6a
Introduce spam report tokens
2023-01-19 11:13:43 -05:00
Jon Chambers
1c1714b2c2
Clarify a counter name
2023-01-17 17:13:06 -05:00
Jon Chambers
accb017ec5
Use a longer expiration window for quantile calculation
2023-01-17 17:13:06 -05:00
Chris Eager
304782d583
Use processor from SubscriptionProcessorManager for issued receipts
2023-01-17 16:12:03 -06:00
Chris Eager
f361f436d8
Support PayPal for recurring donations
2023-01-17 12:20:17 -06:00
Dimitris Apostolou
9a06c40a28
Fix typos
2023-01-13 16:05:06 -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
Chris Eager
74d9849472
Update badge strings
2023-01-13 12:08:05 -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
Ehren Kret
4044a9df30
stop warning about lack of syntax specification during proto generation
2023-01-09 12:20:07 -06:00
Ehren Kret
5a7b675001
import cleanup on controllers package
2023-01-09 12:20:07 -06:00
Ehren Kret
3be4e4bc57
remove unused exception type
2023-01-09 12:20:07 -06:00
Chris Eager
5de51919bb
Remove `Subscriptions.PCI`
2023-01-05 12:02:34 -06: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
60edf4835f
Add a `pni` capability to `UserCapabilities`
2022-12-21 16:26:07 -05:00
Jon Chambers
a60450d931
Convert `UserCapabilities` to a record
2022-12-21 16:26:07 -05:00
erik-signal
d138fa45df
Handle edge cases of Math.abs on integers.
2022-12-20 12:25:04 -05:00
Katherine Yen
2c2c497c12
Define reregistrationIdleDays DistributionSummary with custom expiry
2022-12-20 09:21:24 -08: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
Katherine Yen
636c8ba384
Add metric for distribution of account idle time at reregistration
2022-12-16 13:50:29 -08:00
Ravi Khadiwala
65ad3fe623
Add hCaptcha support
2022-12-16 11:28:30 -06:00
Chris Eager
24ac32e6e6
Add `PayPalExperienceProfileInput.userAction`
2022-12-13 10:03:58 -06:00
Katherine Yen
26f5ffdde3
Enable case-sensitive usernames
2022-12-13 07:59:37 -08:00
Jon Chambers
a883426402
Simplify account cleaner
2022-12-06 16:21:25 -06:00
Chris Eager
2f21e930e2
Add `minimum` one-time donation amont to validation error map
2022-12-06 16:21:15 -06:00
Chris Eager
5fb158635c
Use existing `WebApplicationException` entity, if available
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
d0e7579f13
Revert transaction descriptor
2022-12-01 18:52:45 -06: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
ae57853ec4
Simplify deletion reason reporting
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
e883d727fb
Note deprecation of localized string
2022-11-16 12:09: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
erik-signal
1d1e3ba79d
Add metric to track newly-locked accounts.
2022-11-10 12:55:08 -05:00
Jon Chambers
2c9c50711f
Avoid reading from a stale `Account` after a contested reglock event
2022-11-10 12:41:50 -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
e6e6eb323d
Update metric name
2022-11-08 11:15:42 -06:00
Chris Eager
681a5bafb4
Update `MessagesManager#getMessagesForDevice`
...
- add `subscribeOn()`
- use `CompletableFuture` for consistency
2022-11-08 09:38:52 -06:00
Chris Eager
5bec89ecc8
Measure individual message timeouts
2022-11-08 09:37:37 -06:00
Chris Eager
69ed0edb74
Revert "Add more detailed queue processing rate metrics"
...
This reverts commit bbbab4b8a4
.
2022-11-08 09:35:39 -06:00
Chris Eager
ad5925908e
Change dispatch queues to `LinkedBlockingQueue`s
2022-11-04 11:08:17 -05:00
Chris Eager
d186245c5c
Move all receipt sending work to executor
2022-11-04 11:08:06 -05:00
Chris Eager
bbbab4b8a4
Add more detailed queue processing rate metrics
2022-11-04 11:06:38 -05:00
Chris Eager
f83080eb8d
Update metric name
2022-11-03 14:50:20 -05:00
Chris Eager
e0178fa0ea
Move additional handling of `MessagesManager#delete` to executor
2022-11-03 13:02:25 -05:00
Chris Eager
c6a79ca176
Enable metrics on messages fluxes
2022-11-03 13:02:25 -05:00
Chris Eager
6426e6cc49
Enable reactor Schedulers metrics
2022-11-03 13:02:25 -05:00
Chris Eager
b13cb098ce
lettuce: set `publishOnScheduler` to `true`
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
eb57d87513
Remove message listener key only after successfully unsubscribing
2022-11-03 11:09:11 -05:00
Chris Eager
fbf6b9826e
tests: only call `SQLite.setLibraryPath` once
2022-11-03 11:08:43 -05:00
Chris Eager
a01b29a6bd
set off_session=true for subscription updates
2022-11-02 14:34:26 -05:00
Chris Eager
102992b095
Set `off_session=true` when creating subscriptions
2022-11-02 11:30:29 -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
Jon Chambers
91626dea45
Count accounts rather than devices that are stories-capable
2022-10-25 16:36:05 -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
erik-signal
0c357bc340
Add metrics tracking story capability adoption.
2022-10-20 12:25:03 -04:00
Chris Eager
b711288faa
Run GitHub Action in a container
2022-10-18 16:59:35 -05:00
Jon Chambers
e7048aa9cf
Allow the reconciliation client to trust multiple CA certificates to facilitate certificate rotation
2022-10-18 11:17:47 -04: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
Jon Chambers
8088b58b3b
Clarify default value for `includeE164`
2022-10-18 11:16:06 -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
Jon Chambers
3c655cdd5a
Migrate to "regionCode" instead of "region" to avoid tag name conflicts
2022-10-05 15:15:46 -04:00
Jon Chambers
83ab926f96
Add a dimension for story messages
2022-10-05 15:15:22 -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
c82c2c0ba4
Add country tag to twilio failures
2022-09-30 12:03:46 -05:00
Ravi Khadiwala
6e595a0959
add an optionals utility and fix push challenge metric
2022-09-30 12:02:47 -05:00
Ravi Khadiwala
a79d709039
Return 403 when a push challenge is incorrect
2022-09-30 12:02:47 -05:00
Ravi Khadiwala
07ed765250
Update abusive message filter and filter account creates
2022-09-20 14:52:18 -05:00
Ravi Khadiwala
2e497b5834
Fix operator order in metric calculation
2022-09-15 14:04:18 -05:00
Ravi Khadiwala
61b3cecd17
Fix missing increment on recaptcha counter
2022-09-14 17:07:26 -05:00
Ravi Khadiwala
a4a666bb80
Add metrics for recaptcha reasons
2022-09-14 16:00:11 -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
e25252dc69
Remove unused exception
2022-09-12 11:19: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
8199e0d2d5
Set resource field on log entry
2022-09-07 19:37:26 -05:00
Ehren Kret
7d171a79d7
Remove redundant @NotNull annotation
2022-09-07 19:37:26 -05:00
Ehren Kret
3b99bb9e78
Log remote config delete events
2022-09-07 19:37:26 -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
gram-signal
cb6cc39679
Ignore null identity key.
2022-08-29 13:26:49 -06:00
Jon Chambers
b6bf6c994c
Remove a spurious `@Nullable` annotation
2022-08-26 15:22:23 -04:00
Jon Chambers
3bb4709563
Add CLDR region as a dimension
2022-08-26 12:41:51 -04: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
Jon Chambers
e72d1d0b6f
Stop reading attribute-based messages from the messages table
2022-08-22 13:37:39 -07:00
Ravi Khadiwala
1891622e69
Zero-pad discriminators less than initial width
2022-08-22 13:36:38 -07:00
Chris Eager
628a112b38
Include country code for verify failure
2022-08-19 12:21:05 -07:00
Jon Chambers
50f5d760c9
Use existing tagging tools for keepalive counters
2022-08-16 13:16:19 -07:00
Jon Chambers
7292a88ea3
Record table performance metrics around reported messages
2022-08-16 13:15:30 -07:00
Jon Chambers
07cb3ab576
Add a "sealed sender" dimension to the sent message counter
2022-08-16 13:11:12 -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
Jon Chambers
4d78437fe4
Add a country code dimension to the non-normalized number counter
2022-08-10 15:03:01 -04:00
Jon Chambers
2bfe2c8ff8
Add an "urgent" dimension to the "sent messages" counter
2022-08-10 15:00:46 -04: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
147917454f
Measure the depth of the queue for the FCM executor
2022-08-04 15:53:26 -04:00
Jon Chambers
39562775d9
Use a fixed-size thread pool for sending FCM notifications
2022-08-04 15:37:22 -04:00
Jon Chambers
4a0ef1f834
Measure the time taken to send APNs push notifications
2022-08-04 10:43:07 -04:00
Jon Chambers
85b16b674d
Measure the time taken to send FCM push notifications
2022-08-04 10:43:07 -04:00
Jon Chambers
ab5d8ba120
Use `ApiFutures#addCallback` for FCM futures
2022-08-04 10:43:07 -04:00
Jon Chambers
28076335e0
Generate APNs payloads using a payload builder
2022-08-04 10:37:30 -04: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
8956e1e0cf
Check for null FCM error codes
2022-08-02 17:29:31 -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
1175ff5867
Log cause when queue processing hits max retries
2022-08-02 08:36:16 -07: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
Chris Eager
2575372639
Add missing `increment()` to displacement counter
2022-08-02 08:30:54 -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
d385838dc1
Add methods to convert `IncomingMessage`/`OutgoingMessageEntity` instances into `Envelope` entities
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
c4c5397b44
Convert group credential redemption time to a `long`
2022-07-28 10:08:25 -04:00
Jon Chambers
6b6f9b2405
Add PNI to `GroupCredentials` responses that contain `AuthCredentialWithPni` instances
2022-07-28 10:08:25 -04:00
Jon Chambers
7d4a8d03a4
Mark old group credential getter as `@Deprecated`
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
aa36dc95ef
Add `MicrometerCommandLatencyRecorder` to Redis clusters
2022-07-27 14:23:14 -07: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
Chris Eager
4cfcdb0c96
editorconfig formatting
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
98760b631b
Don't wrap "change number" arguments in `Optional`
2022-07-27 10:55:37 -04:00
Jon Chambers
d00aa1e77a
Fix an inconsistent check for the presence/absence of "change number" arguments
2022-07-27 10:55:37 -04: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
Antonin Tritz
c252118cfc
External links in comments from http to https
2022-07-26 15:17:58 -04:00
Chris Eager
e9fd32de79
Only attempt to unsubscribe if the queue name is not null
2022-07-26 10:20:10 -07:00
Chris Eager
bc02fe3831
Only unsubscribe from keyspace notifications if the node has the slot
2022-07-26 09:21:50 -07:00
Jon Chambers
d290aad27b
Associate source/destination country codes for reported messages
2022-07-14 09:31:12 -04:00
Jon Chambers
6754ec5e10
Pass disconnection reason (if known) to clients
2022-07-13 15:30:03 -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
Jon Chambers
4e131858ca
Generalize scope of and expand size of websocket scheduled executor service
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
42fd29d38b
Update badge description text to remove boost & sustainer language
2022-06-21 13:36:12 -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
Ehren Kret
cc8dda28cc
Simplify logic for batching bulk identity check request
2022-06-20 10:28:20 -05:00
Ehren Kret
d31550d444
Only wrap Base64 decode with the exception catch
2022-06-20 09:42:33 -05:00
Ehren Kret
51f37350eb
Because one shouldn't take the size of null things
2022-06-17 15:03:25 -05:00
Ehren Kret
ecfa161da8
Validate the request
2022-06-17 14:32:38 -05:00
Ehren Kret
e3778c17ea
Use POST not GET for request requiring body
2022-06-17 14:31:15 -05:00
Ehren Kret
cbc95415b7
Add endpoint to batch check identity keys
2022-06-17 12:20:30 -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
95d0293a96
Remove unused counter
2022-05-25 16:57:01 -05:00
Ehren Kret
f5a2efb57c
Clarify hidden static method call
2022-05-25 16:51:12 -05:00
Ehren Kret
e4b9ae4eee
Clear up warnings
2022-05-25 16:50:58 -05:00
Ehren Kret
bc1ac5a37f
Remove unused fields
2022-05-25 16:50:43 -05:00
Ehren Kret
96ac56faac
Remove unused import
2022-05-25 16:38:11 -05:00
Ehren Kret
f0bc444388
Remove unused timer
2022-05-25 16:37:51 -05:00
Ravi Khadiwala
8584f47d95
Add more metrics to createAccount captcha
2022-05-25 15:50:11 -04:00
Jon Chambers
f6235b8c08
Check for newly-expired accounts before previously-expired accounts for metric accuracy
2022-05-25 15:49:54 -04:00
Jon Chambers
d452e90470
Move `AccountCleaner` into its own crawler
2022-05-25 15:46:18 -04:00
Jon Chambers
418a869451
Increase max deletions per chunk to 256
2022-05-25 14:19:04 -04: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
Ehren Kret
c38572307d
Remove unused imports
2022-05-20 10:20:45 -07:00
Fedor Indutny
20902df122
Fix ZRANGE arguments in get_items.lua
2022-05-19 12:14:02 -07:00
Fedor Indutny
d31ddb72f3
Optimize message deletion by skipping lookup
2022-05-18 13:02:21 -07:00
Jon Chambers
75c92eaa93
Drop high-cardinality distribution summaries
2022-05-11 14:26:38 -04: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
058caadf4f
Use BigDecimal#compareTo for numeric equality testing
2022-04-29 14:20:09 -05:00
Ehren Kret
7b7d309105
Apply stripe conversion factor to gift badge amount check
2022-04-29 13:48:10 -05:00
Ehren Kret
63be7b93ce
Record level on boost payment intent
2022-04-29 12:06:15 -05:00
Ehren Kret
578ea12b59
Add gift badges to user capabilities
2022-04-29 11:08:36 -05:00
Ehren Kret
364e59be57
Add shape to duration to ensure it's render as an integer
2022-04-29 10:14:39 -05:00
Ehren Kret
fece4dac9e
Add duration to boost badges
...
Lets clients know how long the badge will last for after purchase.
2022-04-29 10:14:39 -05:00
Ehren Kret
ce85c1aabc
Add name and description for gift badge
2022-04-29 10:14:39 -05:00
Ehren Kret
0ac2ce5e72
Add gift badge to the level output for boost badges
2022-04-29 10:14:39 -05:00
Ehren Kret
391c800bf5
Add gift configuration to subscription controller
2022-04-29 10:14:39 -05:00
Ehren Kret
f6471cf8f9
Add gift configuration source
2022-04-29 10:14:39 -05:00
Jon Chambers
1eaff753a6
Count "forbidden identity key change" events
2022-04-22 15:53:43 -04:00
Ehren Kret
c29d5de1eb
Refactor two more switch statements to new switch style
2022-04-19 13:39:38 -05:00
Ehren Kret
d94c171d63
Use new style switch statement
2022-04-19 13:35:26 -05:00
Ehren Kret
53203dbcef
Refactor common pattern for checking Account capabilities
2022-04-19 10:33:54 -05:00
Ehren Kret
9e66f8ac11
Add gift badges device capability
2022-04-19 10:33:54 -05:00
Ehren Kret
796fb3b4cd
Refactor Device#equals method
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
Ehren Kret
355996bafc
Add outcome type to subscription information endpoint
2022-04-08 12:31:31 -05:00