Ravi Khadiwala
9d980f36b0
Allow experiments to exclude by ACI
2024-10-08 15:02:58 -05:00
Katherine
93515e5a0f
Retire `paymentActivation` capability
2024-10-08 16:01:09 -04:00
Jonathan Klabunde Tomer
d550c69f7f
Enforce per-IP rate limits
2024-10-07 16:57:29 -05:00
adel-signal
087e192fac
Update CallRoutingController to use e164, add UUID to e164 experiments
2024-10-07 16:56:45 -05:00
Jon Chambers
63e45563ec
Discard the Redis-backed "used token" system
2024-10-07 17:06:08 -04:00
Jon Chambers
f7aacefc40
Manage device linking tokens transactionally
2024-10-07 16:26:11 -04:00
Ravi Khadiwala
42e920cd5c
Add appstore subscriptions endpoint
2024-10-04 16:06:15 -05:00
ravi-signal
02ff3f2ff4
Add AppleAppStoreManager
2024-10-04 15:55:07 -05:00
Katherine
ca2845bcb0
Update key transparency gRPC client
2024-10-04 16:43:30 -04:00
Ravi Khadiwala
80cd5d9ccc
Increase message cache TTL to 46 days
2024-10-02 14:05:40 -05:00
Ravi Khadiwala
0eb7db8de5
Increase the linked device idle timeout to 45 days
2024-10-02 14:05:40 -05:00
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