Jon Chambers
100955a7db
Migrate WebSocket duration instrumentation to `OpenWebSocketCounter`
2024-10-02 14:02:03 -05:00
Chris Eager
68814813c3
Add timestamp header to all responses
2024-10-02 14:01:19 -05:00
Jon Chambers
92698efd39
Remove machinery for setting/storing APNs VOIP tokens
2024-10-01 14:17:39 -04:00
Jon Chambers
b693cb98d0
Remove recurring background VOIP notification machinery
2024-10-01 14:17:39 -04:00
Jon Chambers
3ed142d0a9
Introduce `OpenWebSocketCounter`
2024-10-01 14:17:17 -04:00
Jon Chambers
581e61a85b
Count open provisioning WebSockets
2024-10-01 14:17:17 -04:00
Jon Chambers
764b200289
Clarify open websocket gauge name
2024-10-01 14:17:17 -04:00
Jon Chambers
26503dffdf
Use a consistent provisioning address
2024-10-01 13:34:37 -04:00
Jon Chambers
b284e95394
Clarify `ProvisioningAddress` field naming
2024-10-01 12:59:58 -04:00
Jon Chambers
b2211de8d8
Retire `ProvisioningAddress` and `WebsocketAddress`
2024-10-01 12:59:58 -04:00
Ameya Lokare
1bb0eb0e70
Integer comparison of captcha scores
2024-10-01 08:42:12 -07:00
Jon Chambers
0a1161048f
Document `ProvisioningController` and `ProvisioningConnectListener`
2024-10-01 11:40:40 -04:00
Ameya Lokare
7a6ce00fed
Add senderType tag to sendMessageLatency timer
...
This will allow us to differentiate between sealed vs unsealed sends
latency
2024-09-27 17:35:20 -04:00
Jon Chambers
c0aa9ced8d
Temporarily disable AWS SDK instrumentation
2024-09-27 17:34:46 -04:00
Jon Chambers
6b36df3f8f
Remove unused imports/loggers
2024-09-27 17:34:46 -04:00
Jon Chambers
df3caeb04a
Expand the scope of the "notify idle devices" job to cover short-idle devices WITH messages
2024-09-27 16:30:51 -04:00
Jon Chambers
0e267509da
Add a method for checking for persisted urgent messages
2024-09-27 16:30:51 -04:00
Jon Chambers
bbe41278ed
Drop an unused `hasCachedMessages` method
2024-09-27 16:30:51 -04:00
Jon Chambers
d91a6b0c38
Retire the "notify idle devices with messages" experiment
2024-09-27 16:30:51 -04:00
Chris Eager
ab2e6bb9a3
Use Mono.share() for mrmMessageMono
2024-09-26 14:48:06 -05:00
Chris Eager
513f19370a
Add Experiment#compareMonoResult
2024-09-26 14:48:06 -05:00
Chris Eager
e20a4c1f77
Refactor ProcessScheduledJobsServiceCommand to dispose of processing jobs on shutdown
2024-09-26 14:12:12 -05:00
Jon Chambers
946a486c4b
Add metric publishers to DynamoDB clients
2024-09-26 15:00:10 -04:00
Jon Chambers
78b40397f9
Simplify metric publisher lifecycles
2024-09-26 15:00:10 -04:00
Jon Chambers
48e8d1c12f
Add comments and constants to clarify the structure of metric collections
2024-09-26 15:00:10 -04:00
Jon Chambers
b115e95da4
Add an AWS SDK metric publisher
2024-09-26 15:00:10 -04:00
Chris Eager
ab0892cc41
Set executor shutdown time in ProcessScheduledJobsServiceCommand
2024-09-26 13:57:20 -05:00
Chris Eager
e25291c74c
Move MRM content parsing outside of “withBinaryClusterReactive”
2024-09-26 13:57:02 -05:00
Ravi Khadiwala
0e552bd602
Cancel play subscriptions when replacing them
2024-09-26 13:56:10 -05:00
Ameya Lokare
e9b3e15556
Return report spam token from spam check instead of separate call
2024-09-26 11:53:40 -07:00
Ravi Khadiwala
237d0fd4e2
remove HTTP layer exceptions from Stripe/Braintree managers
2024-09-24 17:22:38 -05:00
Ravi Khadiwala
50bd30fb1f
Fix cancelAtPeriodEnd calculation
2024-09-24 17:14:08 -05:00
Ravi Khadiwala
9fb4e2d272
set billingCycleAnchor in play billing responses
2024-09-24 17:14:08 -05:00
Jon Chambers
3e51366921
Narrow selection criterial for "notify idle devices with messages" experiment
2024-09-23 16:01:44 -04:00
Jonathan Klabunde Tomer
2d184b1ab6
return user's own username link handle in /whoami response
2024-09-23 12:46:10 -07:00
adel-signal
befcdf55fe
Balance TURN routing options across datacenters
2024-09-23 12:43:43 -07:00
Ravi Khadiwala
ba12d39121
URLEncode shortCode paths
2024-09-23 14:43:15 -05:00
Ravi Khadiwala
bf0f553ced
Don't return 204s as exceptions
...
The jersey LoggingExceptionMapper automatically adds an entity to
WebApplicationExceptions. Jersey's HTTP server later strips the body on
204 responses, but our custom WebSocketResourceProvider does not
2024-09-23 14:43:04 -05:00
Jon Chambers
315fc00eac
Lazily evaluate jobs to give max concurrency meaningful "teeth"
2024-09-23 08:43:44 -05:00
Jonathan Klabunde Tomer
c47141ffda
yield json errors from 500s in sendMultiRecipientMessage
2024-09-19 12:36:52 -07:00
Jon Chambers
6c8566db60
Align "allocate device" and "verify device" default rate limits
2024-09-19 14:59:06 -04:00
Jonathan Klabunde Tomer
aa60fae3b1
install RateLimitByIpFilter in soft-enforcement mode
2024-09-18 15:38:21 -07:00
Ravi Khadiwala
8cb9c60a3c
Relax configured currency checks
2024-09-17 14:27:11 -05:00
Ameya Lokare
dd7a20a774
Log IOException from assessCaptcha
2024-09-17 12:01:13 -07:00
Chris Eager
374fe087bc
Use destination service ID from the envelope when removing views from shared MRM data
2024-09-16 13:19:11 -05:00
Chris Eager
11691c3122
Update fields in HCaptchaResponse
...
This reverts commit 8d129b10ca
.
2024-09-16 13:12:36 -05:00
Chris Eager
8d129b10ca
Revert "Update field names in HCaptchaResponse"
...
This reverts commit 42d4574213
.
2024-09-13 15:28:42 -05:00
Katherine
d6e03f50b9
Fix bug in ignoring svr errors in account deletion flow
2024-09-13 12:28:31 -04:00
Chris Eager
f60c9f2a15
Use destination service ID from the envelope when looking up in shared MRM data
2024-09-13 11:21:18 -05:00
Chris Eager
1c617284f3
Add MRM views experiment to `MessagesCache.getMessagesToPersist()`
2024-09-13 11:21:18 -05:00
Chris Eager
5bc6ff0e77
Add check for existing key to MessagesCacheInsertSharedMultiRecipientPayloadAndViewsScript
2024-09-13 11:21:18 -05:00
Jonathan Klabunde Tomer
020c21f4ef
remove support for deprecated messages DynamoDB key schema
2024-09-13 09:18:41 -07:00
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