Katherine
bd57c1c7e7
Introduce configurable way to ignore SVR errors in the account deletion flow
2024-09-13 10:57:09 -04:00
ravi-signal
b666b66160
Add missing `@Valid` annotations
2024-09-13 10:54:32 -04:00
ameya-signal
8bafb1a641
Update code style in `MessageController.sendMessage()`
2024-09-13 10:53:40 -04:00
Chris Eager
42d4574213
Update field names in HCaptchaResponse
2024-09-13 10:53:23 -04:00
Alex Konradi
9ef6f8aec9
Add a metric for requests of ZKC auth credentials
2024-09-13 10:53:04 -04:00
Jon Chambers
556eec649d
Add platform and push token presence dimensions to account creation metrics
2024-09-06 12:37:23 -05:00
Ameya Lokare
e160025cfc
Clean up OpenAPI annotations on PUT /v1/challenge
...
* Remove 413 response since we no longer send it
* Add missing 428 response for when invalid captcha is submitted
2024-09-06 10:36:02 -07:00
Chris Eager
0602149c52
Skip removeRecipientViewFromMrmData pipeline if there are no keys
2024-09-06 12:35:03 -05:00
Chris Eager
ad17c6e40d
Wait for MRM experiment mono to complete before returning default message
2024-09-05 18:02:33 -05:00
Chris Eager
b95a766888
For ephemeral messages, remove recipient view from shared MRM data if recipient is offline
2024-09-05 18:02:33 -05:00
Chris Eager
a0770db179
Add timer to removeRecipientViewFromMrmData
2024-09-05 18:02:33 -05:00
Ameya Lokare
d6acfa56c2
Add platform tag to invalid HCaptcha reason metric
2024-09-04 15:28:36 -07:00
Chris Eager
11601fd091
Multi-recipient message views
...
This adds support for storing multi-recipient message payloads and recipient views in Redis, and only fanning out on delivery or persistence. Phase 1: confirm storage and retrieval correctness.
2024-09-04 13:58:20 -05:00
Chris Eager
d78c8370b6
Add timer to removeByGuid script
2024-09-03 12:33:39 -04:00
Jon Chambers
46e0f5da74
Fix swapped placeholders in a log message
2024-08-30 17:01:11 -04:00
Jon Chambers
f09cc03164
Detect message delivery loops
2024-08-30 16:27:21 -04:00
Jon Chambers
4c628b1cd9
Change the range for the "notify idle devices without messages" job to 30–45 days
2024-08-30 16:24:39 -04:00
Chris Eager
5122271750
Configure keyspace notifications in LocalFaultTolerantRedisClusterFactory
2024-08-30 13:00:31 -05:00
ravi-signal
7df978390f
Add playProductId to backup level configuration
2024-08-30 12:59:09 -05:00
ravi-signal
564dba3053
Add `playbilling` endpoint to `/v1/subscriptions`
2024-08-30 12:50:18 -05:00
Ravi Khadiwala
3b4d445ca8
Don't try to update a cancelled stripe subscription
2024-08-30 12:47:26 -05:00
ravi-signal
176a15dace
Add GooglePlayBillingManager
2024-08-28 14:22:37 -05:00
Jonathan Klabunde Tomer
a049eda7e6
remove configuration for no-longer-used "metrics" redis cluster
2024-08-21 14:49:05 -07:00
Katherine
9eafa118d5
Return key transparency protobufs encoded as base64 strings
2024-08-21 17:08:06 -04:00
Katherine
8699d94de6
Give mock devices unique IDs when testing whether a capability is supported
2024-08-21 11:40:02 -04:00
Katherine
4c0a5ac3b2
Add `versionedExpirationTimer` capability
2024-08-21 11:39:43 -04:00
Ameya Lokare
7cbbf73cc9
Add registration recovery checker
2024-08-19 11:43:19 -07:00
Jon Chambers
0b1ec1e50b
Make push notification senders available via `CommandDependencies`
2024-08-16 16:52:07 -04:00
Jon Chambers
659ac2c107
Generalize push notification scheduler and add support for delayed "new messages" notifications
2024-08-16 16:16:55 -04:00
Jon Chambers
5892dc71fa
Allow linked devices to unlink themselves via the gRPC API
2024-08-16 16:14:13 -04:00
Jon Chambers
fc3e547dce
Remove an obsolete client version check when changing phone numbers
2024-08-16 16:14:00 -04:00
Ravi Khadiwala
e4f9f949f0
Serialize subscription errors as json
2024-08-15 18:30:48 -05:00
Fedor Indutny
7605462d48
Allow device to unlink itself
2024-08-15 13:54:07 -05:00
Ravi Khadiwala
fd10b9723d
Add source length validation on backup media copy
2024-08-15 13:52:50 -05:00
Ravi Khadiwala
6cdfb7ab63
Reject authenticated one-time donation requests
2024-08-15 13:51:55 -05:00
Ravi Khadiwala
e5fdab1bc8
Return 400 if a client specifies paypal where it's not supported
2024-08-15 13:49:25 -05:00
Katherine
2aa1eee29d
Align chat endpoints with "distinguished key" changes in key transparency service
2024-08-15 14:35:15 -04:00
Ravi Khadiwala
97e566d470
Move common subscription management out of controller
2024-08-15 13:29:26 -05:00
ravi-signal
a8eaf2d0ad
Group one-time donation methods together
2024-08-15 13:25:09 -05:00
Ravi Khadiwala
b5f9564e13
Validate that sourceAttachments are valid base64 strings
2024-08-14 17:36:30 -05:00
Jon Chambers
0075e94a42
Rename `AuthenticatedAccount` to `AuthenticatedDevice`
2024-08-14 12:44:48 -04:00
Katherine
1ea9e38fea
Use a separate virtual executor instead of the one used for async jersey tasks
2024-08-14 12:28:16 -04:00
Jon Chambers
3b405a53d0
Move "push notifications on close" logic to `WebSocketConnection`
2024-08-14 12:24:49 -04:00
Katherine
84c329e911
Key transparency `search` and `monitor` endpoints
2024-08-12 13:14:42 -07:00
Ravi Khadiwala
acdf37561f
Count requests that supply auth to boost endpoints
2024-08-12 13:40:58 -05:00
Jon Chambers
9128d4cc49
Correct a counter name
2024-08-12 14:39:31 -04:00
Jon Chambers
206e97d374
Use queries instead of scans when fetching experiment samples (again)
2024-08-12 14:39:22 -04:00
Jon Chambers
ecf7e60d98
Add an experiment for sending push notifications to idle devices that DO have pending messages
2024-08-07 16:41:19 -04:00
Ravi Khadiwala
68ddc070ca
Count old version authentication tokens
2024-08-07 15:41:08 -05:00
Ravi Khadiwala
096bb8e6e5
Remove deprecated SubscriptionController methods
2024-08-06 16:09:44 -05:00
Jon Chambers
1af8bb494e
Generalize "is idle?" check in idle device notification scheduler
2024-08-05 15:19:39 -04:00
Jon Chambers
46d04d9d1a
Add a command to schedule notifications for idle devices without messages
2024-08-05 15:19:39 -04:00
Jon Chambers
c0ca4ffbcc
Retire "notify idle devices without messages" push notification experiment
2024-08-05 15:19:39 -04:00
Jon Chambers
8c61d45206
Tune the "finish push notification experiment" command
2024-08-05 15:02:24 -04:00
Katherine
0e4625ef88
Migrate to `429` for all ratelimit responses
2024-08-05 12:02:11 -07:00
Ravi Khadiwala
10d559bbb5
Return backup info at `/v1/subscription/configuration`
...
- Return the free tier media duration and storage allowance for backups
- Add openapi annotations
- Update default media storage allowance
2024-08-02 14:08:00 -05:00
Jonathan Klabunde Tomer
65b2892de5
Simplify unlink-device-on-full-DB process
2024-08-02 12:03:43 -07:00
Chris Eager
6fa6c3c81c
Ensure multi-recipient messages are addressed to ACI service IDs
2024-08-01 12:31:27 -05:00
Chris Eager
e4ffc932a9
Check for IdentityType.PNI in OptionalAccess#verify
2024-08-01 12:31:27 -05:00
Jon Chambers
822092044b
Add a method to check for the presence of persisted messages, skipping the cache
2024-07-31 10:50:47 -04:00
Jon Chambers
f1c153f39f
Log max concurrency when starting/finishing experiments
2024-07-31 10:50:31 -04:00
Jon Chambers
7e62dc64dc
Replace `filterWhen` with `flatMap`
2024-07-31 10:50:31 -04:00
Jon Chambers
2104a60703
Also check legacy parittion keys for message presence
2024-07-31 10:50:19 -04:00
Jon Chambers
97785fa570
Remove unused metrics and arguments
2024-07-31 10:50:19 -04:00
Chris Eager
9341fe9584
Add `endpoint` tag and `story` to auth type tag values
2024-07-31 09:38:14 -05:00
Ravi Khadiwala
3a582721cf
Throw error for oversized inbound noise messages
2024-07-30 11:25:09 -05:00
Ravi Khadiwala
3d96d73169
Break up large outbound noise messages
2024-07-30 11:25:09 -05:00
Ravi Khadiwala
542422b7b8
Replace XX/NX handshakes with IK/NK
2024-07-30 11:25:09 -05:00
Jon Chambers
56ada7f0e9
Add a "dry run" mode for the "start push notification experiment" command
2024-07-30 12:19:00 -04:00
Jon Chambers
56fdebde75
Check for cached/persisted messages in parallel
2024-07-30 12:18:46 -04:00
Jon Chambers
4ee67064bb
Remove a pair of unused methods
2024-07-30 12:18:34 -04:00
Jon Chambers
045ec9689d
Introduce a job scheduler and experiment for sending notifications to idle devices
2024-07-29 11:16:53 -04:00
Jon Chambers
4ebad2c473
Add a framework for running experiments to improve push notification reliability
2024-07-25 11:36:05 -04:00
Jonathan Klabunde Tomer
1fe6dac760
read old new key and new new key
2024-07-24 07:44:44 -07:00
Jonathan Klabunde Tomer
f12a6ff73f
Remove migration paths for lazy message deletion
2024-07-23 14:07:19 -07:00
Chris Eager
6eed458ceb
Use server timestamp for delivery duration metrics
2024-07-18 12:22:59 -05:00
Jon Chambers
54fb0a6acb
Add a general job scheduler
2024-07-18 13:22:31 -04:00
Jon Chambers
5147d9cb6d
Mark old attachment endpoints as `@Deprecated`
2024-07-17 15:01:44 -04:00
Jon Chambers
37369929f3
Retire `PushLatencyManager`
2024-07-17 15:01:23 -04:00
Jon Chambers
4f10014902
Add an "is primary" dimension to message latency measurements
2024-07-17 15:01:08 -04:00
Ravi Khadiwala
0ef3e00ba7
Use non-legacy rate limit error in BackupAuthManager
2024-07-11 16:39:11 -05:00
Chris Eager
a63e0e0390
Remove unused RateLimiters
2024-07-11 16:37:55 -05:00
Jon Chambers
5e8a0b2cfa
Introduce a utility class for finding reasonable times to send push notifications
2024-07-11 17:36:54 -04:00
Chris Eager
eac75aad03
Add distribution of multi-recipient message recipient counts
2024-07-09 15:04:47 -05:00
Chris Eager
b05fbc2102
Add metric for group send token adoption
2024-07-09 15:04:12 -05:00
Jon Chambers
6d166fdfc5
Return futures from "send push notification" operations
2024-07-08 15:36:17 -04:00
Ravi Khadiwala
2e36673702
Add warn log if changeNumber messages fail
2024-07-08 15:28:08 -04:00
ravi-signal
0c81ffe8b7
Count unregistered APNS tokens with a recent update
2024-07-08 15:27:48 -04:00
Jon Chambers
02b9ceb4c7
Discard APNs tokens if the APNs server reports that the token is expired
2024-07-08 15:27:23 -04:00
Chris Eager
775889c0b6
Remove deprecated PUT /v2/keys/signed endpoint
2024-07-08 15:26:26 -04:00
Chris Eager
98f2cdaf5a
Reduce DynamoDB test client API timeouts
2024-07-08 15:26:11 -04:00
Jon Chambers
ff5cc3cb4f
Avoid duplicate metric registry configuration in commands
2024-07-08 15:25:16 -04:00
Jon Chambers
ebecb1caec
Throw an exception if metric registries are configured more than once
2024-07-08 15:25:16 -04:00
Jon Chambers
73e0aea85c
Retire `Device#hasMessageDeliveryChannel()`
2024-06-26 14:46:39 -04:00
Ameya Lokare
ec009a2bba
Pass AccountAndAuthenticatedDeviceHolder to spam filter
2024-06-26 11:32:49 -07:00
Jon Chambers
1959c059ed
Rename `AuthEnablementRefreshRequirementProvider` to `LinkedDeviceRefreshRequirementProvider`
2024-06-25 11:57:25 -04:00
Jon Chambers
2d1610b075
Stop monitoring device "enabled" state changes from auth enablement refresh requirement provider
...
Device enabled states no longer affect anything at an authentication level
2024-06-25 11:57:25 -04:00
Jon Chambers
2f76738b50
Expire APNs tokens if they haven't been updated since the expiration timestamp
2024-06-25 11:53:23 -04:00
Jon Chambers
1cf174a613
Include "token invalidation timestamp" in push notification responses
2024-06-25 11:53:23 -04:00
Jon Chambers
d743454d07
Store updated APNs tokens unconditionally
2024-06-25 11:53:23 -04:00
Jon Chambers
1cd16eaa08
Delete FCM tokens immediately if FCM reports that they're no longer active
2024-06-25 11:53:23 -04:00
Jon Chambers
90e622b307
Require that message bundles include all linked devices
2024-06-25 11:51:09 -04:00
Jon Chambers
cb5cd64c05
Gracefully handle `NotPushRegisteredException`
2024-06-25 11:23:16 -04:00
Jon Chambers
d306cafbcc
Allow, but do not require, message delivery to devices without active delivery channels
2024-06-25 09:53:31 -04:00
Jon Chambers
dbeba4f173
Reduce "delete after idle" time for accounts from 180 days to 120 days
2024-06-24 15:20:35 -04:00
Jon Chambers
86f83635bc
Document a missing "capability downgrade" response
2024-06-24 15:20:06 -04:00
Jon Chambers
fceda00d83
Consider all device when checking device capabilities
2024-06-24 15:20:06 -04:00
Jon Chambers
9b7af00cf5
Add methods to test whether a device may have unread messages
2024-06-24 15:19:48 -04:00
Chris Eager
f5de4d7b71
Update various library dependencies
2024-06-24 14:16:05 -05:00
Chris Eager
1134df88e2
Remove obsolete "recaptcha"
2024-06-24 14:15:27 -05:00
ravi-signal
4aadabfac0
Make copy/delete streaming friendly
2024-06-20 16:00:09 -05:00
Katherine
0414da8c32
Add delete sync capability
2024-06-12 13:54:06 -04:00
Jon Chambers
155450380e
Fix weird indentation
2024-06-12 13:53:48 -04:00
Jon Chambers
09bc4ef1d6
Measure sizes of group messages
2024-06-12 13:53:48 -04:00
Jon Chambers
3aa4d8713c
Switch to a remote-aggregated distribution for message size metrics
2024-06-12 13:53:48 -04:00
Jon Chambers
5fc926271f
Remove a metrics tag for "has spam reporting token"
2024-06-12 13:53:33 -04:00
Katherine
f435b612c9
Remove stale `pni`, `pnp`, and `giftBadges` capabilities
2024-06-12 13:42:18 -04:00
Jon Chambers
6a14bf70e0
Extend push token removal grace period from 3 days to 14
2024-06-10 17:16:49 -04:00
Jon Chambers
138b368951
Add an explicit "incorrect password" authentication failure reason
2024-06-10 17:16:32 -04:00
Jon Chambers
0871d6ebc1
Add a log filter for spurious warnings about unsupported channel options
2024-06-10 17:16:10 -04:00
Jon Chambers
2f55747601
Remove expiration check from `Device#isEnabled()`
2024-06-07 10:39:11 -07:00
Jonathan Klabunde Tomer
b376458963
include deleted-messages counter on both message deletion paths
2024-06-07 10:24:42 -07:00
Jon Chambers
64ac22a918
Resolve warnings/suggestions throughout `MessageControllerTest`
2024-06-06 14:11:44 -04:00
Alan Liu
ffb81e4ff7
Retrieve Cloudflare Turn Credentials from Cloudflare
2024-06-05 12:03:40 -04:00
Jonathan Klabunde Tomer
01743e5c88
Delete messages lazily on account and device deletion to prevent timeouts when deleting accounts/devices with large queues
2024-06-04 12:16:43 -07:00
ravi-signal
afa1899dc9
Add a require.proto presence annotation
2024-06-03 14:07:02 -05:00
Ravi Khadiwala
cea2abcf6e
Fix some accidentally sync async methods
2024-06-03 14:07:02 -05:00
Jonathan Klabunde Tomer
c7d1ad56ff
support local-filesystem-based dynamic config for tests
2024-05-31 15:25:47 -07:00
ravi-signal
a5f490cc53
return nonzero exit code when check-dynamic-config fails
2024-05-30 16:21:51 -05:00
ravi-signal
abe29fa6ee
document gRPC error strategy
2024-05-30 16:20:34 -05:00
Chris Eager
f6d1e566e7
Add validation annotations to DynamicExperimentEnrollmentConfiguration
2024-05-24 09:11:48 -04:00
Jon Chambers
9ec4f0b2f5
Gracefully handle proxy protocol messages at the beginning of TCP connections
2024-05-24 09:11:19 -04:00
Chris Eager
7286e724dc
Add SIGNAL_SERVER_CONFIG override to LocalWhisperServerService
2024-05-23 12:08:48 -05:00
Jon Chambers
e59a1e9efd
Add support for TLS 1.2 for the benefit of load balancers performing health checks
2024-05-23 08:31:23 -04:00
Jon Chambers
097bedcb9b
Add a health check handler to the Noise-over-WebSocket pipeline
2024-05-22 14:46:05 -04:00
Jon Chambers
907ff89011
Use complete certificate chains from the TLS keystore
2024-05-22 12:38:29 -04:00
Chris Eager
08faa0c009
Only register metrics for connections to upstream nodes
2024-05-22 11:17:52 -05:00
Ravi Khadiwala
dd4759487b
Specify `AuthCheckResponseV3` serialization
2024-05-22 09:42:05 -04:00
Jon Chambers
7980da9ce5
Set client public keys in the scope of a pessimistic account lock
2024-05-22 09:40:48 -04:00
Jon Chambers
0e43524dac
Remove client public keys when deleting accounts/devices
2024-05-22 09:40:48 -04:00
Jon Chambers
c5c5f642e8
Configure and instantiate a Noise-over-WebSocket tunnel
2024-05-22 09:37:25 -04:00
Jon Chambers
e096c608ee
Make Noise-over-WebSocket component names more consistent
2024-05-22 09:37:25 -04:00
Jon Chambers
9a2bfe1180
Add a plaintext mode to the Noise-over-WebSocket server for local testing
2024-05-22 09:25:28 -04:00
ravi-signal
ce1c5be940
Add svr3 share-set store/retrieve
2024-05-17 10:45:18 -05:00
Ravi Khadiwala
1182d159aa
Move command boilerplate into a base class
2024-05-17 10:44:58 -05:00
Ravi Khadiwala
7d95926f02
Add a crawler for backup usage metrics
2024-05-17 10:38:00 -05:00
Jon Chambers
101ecf342f
Remove now-unused rate limiters
2024-05-16 16:56:42 -05:00
Jon Chambers
4efba94662
Add an API endpoint for storing public keys
2024-05-16 17:53:16 -04:00
Ravi Khadiwala
1855d661e8
Add maximum length to ProvisioningMessage
2024-05-16 16:47:47 -05:00
Ravi Khadiwala
438abc4cf9
Remove unused entity
2024-05-16 16:47:47 -05:00