Ravi Khadiwala
81f3ba17c7
Wait for messages in waitForNewLinkedDevice
2024-11-11 14:46:48 -06:00
Jon Chambers
3288d3d538
Mirror disconnection requests to `DisconnectionRequestManager`
2024-11-11 15:38:07 -05:00
Jon Chambers
7e861f388f
Introduce `DisconnectionRequestManager`
2024-11-11 15:38:07 -05:00
Jon Chambers
1323b42169
Rename `ClientConnectionManager` to `GrpcClientConnectionManager`
2024-11-11 15:38:07 -05:00
Jon Chambers
a843f1af6c
Rename `PubSubClientEventManager` to `WebSocketConnectionEventManager`
2024-11-11 15:30:26 -05:00
Ameya Lokare
52b759c009
Remove CORS configuration
2024-11-11 12:22:18 -08:00
Jon Chambers
f2f5815316
Resolve additional merge-related naming conflicts
2024-11-11 11:58:06 -05:00
Jon Chambers
2da00e162a
Resolve a merge-related naming conflict
2024-11-11 11:47:00 -05:00
Jon Chambers
e53a9f3f1a
Close WebSockets "harshly" if a close frame write fails
2024-11-11 11:42:01 -05:00
Jon Chambers
767f6a90e0
Remove subscriptions if we get pub/sub events without a registered listener
2024-11-11 11:42:01 -05:00
Jon Chambers
562b495a18
Publish "messages persisted" events when unlocking queues after a persistence run
2024-11-11 11:41:29 -05:00
Jon Chambers
084607f359
Retire the explicit "handle new message available" system in favor of implicit presence-on-insert values
2024-11-11 11:41:29 -05:00
Jon Chambers
eeeb565313
Return destination client presence when inserting messages
2024-11-11 11:41:29 -05:00
Jon Chambers
1fa31b3974
Don't return message IDs from the "insert message" script
2024-11-11 11:41:29 -05:00
Jon Chambers
7158a504fa
Remove an outdated doc comment reference to keyspace notifications
2024-11-08 15:55:02 -05:00
Ravi Khadiwala
fc6075f19c
Include media TTL in backup config
2024-11-08 14:21:39 -06:00
Ravi Khadiwala
776c147ea4
Tighten up Semaphore release in WebSocketConnection
2024-11-08 14:21:12 -06:00
Chris Eager
5d9641ae86
Add dynamic configuration to optionally use shared MRM data
2024-11-07 17:06:52 -06:00
Jon Chambers
6a1f4906c5
Retire the legacy message availability system
2024-11-07 12:09:21 -05:00
Jon Chambers
ef716aacc2
Shift authority for message availability to the pub/sub event system
2024-11-07 11:55:47 -05:00
Jon Chambers
e536a40740
Publish "messages persisted" events
2024-11-07 11:25:48 -05:00
Jon Chambers
5aaf4cad20
Remove now-unused presence cluster configuration
2024-11-06 16:07:02 -05:00
Jon Chambers
1c167ec150
Retire the legacy client presence system
2024-11-06 14:57:27 -05:00
Chris Eager
9898e18ae2
Update test config for /v1/subscription/configuration
2024-11-06 14:43:39 -05:00
Chris Eager
b182c3d86d
Update for KeyTransparencyQueryService.MonitorRequest changes
2024-11-06 14:43:18 -05:00
Jon Chambers
96a4d4c8ac
Prepare to receive client events about persisted messages
2024-11-06 14:42:55 -05:00
Jon Chambers
9d19fc9ecc
Shift authority to the new pub/sub client presence system
2024-11-06 12:10:44 -05:00
Jon Chambers
aad12670b2
Register WebSocket connections as pub/sub event listeners
2024-11-06 09:37:06 -05:00
Jon Chambers
7ca7fe7c13
Handle batches of commands in sharded circuit breakers
2024-11-06 09:36:08 -05:00
Jon Chambers
ca7e7c288e
Format pub/sub hash tags consistently with message-related hash tags
2024-11-06 09:35:45 -05:00
Chris Eager
3a604464b5
Mark LevelConfiguration#name as deprecated
2024-11-06 09:35:19 -05:00
Jon Chambers
3e36a49142
Reframe "connection ID" as "server ID" to avoid double-removing clients
2024-11-05 18:43:31 -05:00
Jon Chambers
d8f53954d0
Don't send `CLIENT SETINFO` commands when connecting to Redis instances
2024-11-05 17:29:31 -05:00
Jon Chambers
8c984cbf42
Introduce and evaluate a client presence manager based on sharded pub/sub
2024-11-05 15:51:29 -05:00
Jon Chambers
60cdcf5f0c
Only respond to cluster toplogy events from the same cluster to which we're subscribed
2024-11-05 11:42:51 -05:00
Jon Chambers
5afcd634b6
Extend "long idle" device range to 60–75 days
2024-11-05 11:33:22 -05:00
Katherine Yen
00ca58ec13
Align `FullTreeHead` proto with KT's
2024-11-05 11:33:11 -05:00
Katherine Yen
bbb6d448db
Standardize KT response field name to `serializedResponse`
2024-11-05 11:32:58 -05:00
adel-signal
45fad7a6a9
update e164 experiments to use account enrollment percentage
2024-11-04 15:00:25 -06:00
Katherine
7633a9b07a
Replace `TreeSearchResponse` with `CondensedTreeSearchResponse`
2024-11-04 10:36:15 -05:00
Jon Chambers
00d0dba62c
Don't retry pub/sub commands
2024-11-04 10:35:50 -05:00
Jon Chambers
c9a396b9e3
Deserialize null capabilities in `Device` entities as empty sets
2024-11-01 16:48:56 -04:00
Ravi Khadiwala
fc0a7b7657
401 instead of 403 on wrong backup auth credential type
2024-11-01 16:46:44 -04:00
Ameya Lokare
190f2a7fc2
Pass ACI to captcha checker
2024-10-31 14:24:43 -07:00
Jonathan Klabunde Tomer
0018e0bec6
remove appconfig in favor of S3ObjectMonitor
2024-10-31 11:25:45 -07:00
Jonathan Klabunde Tomer
63021e0ca3
Avoid annotation-driven parsing of device capabilities in `DeviceController`
2024-10-31 10:58:38 -04:00
Katherine Yen
bf741df38e
Remove unnecessary `NotNull` annotation
2024-10-31 10:56:19 -04:00
Katherine
e627d4e2c4
Require some tree head sizes in key transparency search and monitor requests
2024-10-31 10:54:55 -04:00
Katherine
9b5a62e60f
Remove `FullTreeHead` from `TreeSearchResponse`
2024-10-31 10:51:22 -04:00
Ravi Khadiwala
3bb1eab48c
Fix casing in `GET /v1/archives/auth`
2024-10-30 17:07:43 -04:00
Jon Chambers
4af576668c
Fix incorrect substitution of enumeration key names for capability names
2024-10-30 17:06:09 -04:00
Jon Chambers
f5a93574f6
Simplify capabilities representation in gRPC profile responses
2024-10-30 17:06:09 -04:00
Jon Chambers
74f8889bfa
Simplify capability set serialization
2024-10-30 17:06:09 -04:00
Jon Chambers
a8da0f64ac
Extract device capability enumeration translation to a utility class
2024-10-30 17:06:09 -04:00
Jon Chambers
44c3b046dd
Add a new capability for storage service record key rotation
2024-10-30 13:04:10 -04:00
Ravi Khadiwala
f2cb04817b
Let server generate copyToMedia IVs
...
We include the IV in the encrypted payload, so we can let the server
choose them instead of the client
2024-10-30 13:03:48 -04:00
Katherine
a5f60b1522
Use standard, unpadded base64 serialization/deserialization for `commitmentIndex`
2024-10-30 12:50:45 -04:00
Jon Chambers
0e3dccd9f6
Replace `DeviceCapabilities` entity with `Set<DeviceCapability>`
2024-10-30 12:46:20 -04:00
Jon Chambers
b21b50873f
Add support for distinct media backup credentials
...
Co-authored-by: Ravi Khadiwala <ravi@signal.org>
2024-10-29 16:03:10 -04:00
Katherine
d335b7a033
Align `KeyTransparencySearchResponse` with distinguished counterpart and update `DistinguishedResponse` field names
2024-10-29 15:55:45 -04:00
Jon Chambers
f3b22e04e8
Allow primary devices to change names of linked devices
2024-10-29 09:52:38 -04:00
Katherine
712f3affd9
Update chat to send three search keys in one request to KT
2024-10-29 09:52:26 -04:00
Katherine
3287085ef9
Remove test references to legacy ratelimit HTTP status code
2024-10-28 15:20:08 -04:00
Ameya Lokare
17dfd914d5
Add maybe to optional argument name
2024-10-28 12:19:19 -07:00
Chris Eager
c65fe49983
Add commitment index to key transparency monitor requests
2024-10-28 14:18:41 -05:00
Chris Eager
6552d90dc9
Refactor request JSON creation in KeyTransparencyControllerTest
2024-10-28 14:18:41 -05:00
Chris Eager
d925e8af9e
Update shape of KeyTransparencyMonitorRequest
2024-10-28 14:18:41 -05:00
Jon Chambers
2c0fc43137
Require that accounts be non-stale when getting/setting backup vouchers
2024-10-28 15:18:19 -04:00
Ameya Lokare
ccdbec088f
Document that sendMessage can return 428
2024-10-28 12:18:02 -07:00
Jon Chambers
9822d17ab9
Fail "wait for X" futures if a Redis operation fails
2024-10-28 15:17:49 -04:00
Chris Eager
9573d9e385
Skip fetching MRM content for stale ephemeral messages
2024-10-24 11:49:33 -05:00
Chris Eager
155f3d6231
key transparency: add distinguished key endpoint
2024-10-24 11:49:20 -05:00
Chris Eager
1959ca2d96
Add client identity to key and certificate to KeyTransparencyServiceClient
2024-10-24 11:36:57 -05:00
Jon Chambers
324913d2da
Add API endpoints for waiting for account restoration requests
2024-10-24 12:25:40 -04:00
Katherine
013e45596e
Update KT search requests to include a value and maybe an unidentified access key
2024-10-23 10:21:38 -04:00
Ameya Lokare
997129871c
Lazily get captcha clients to avoid initialization issues
2024-10-22 09:13:00 -07:00
Ameya Lokare
dbb9a8dcf6
Get captcha clients from spam-filter module
2024-10-21 13:32:32 -07:00
adel-signal
cacd4afbbb
Add /v2/calling/relays
...
This supports returning IceServers from multiple providers at once
2024-10-21 13:59:29 -05:00
Jon Chambers
9c5877aa31
Resolve warnings/accept suggestions throughout `AttachmentControllerV4Test`
2024-10-21 14:26:28 -04:00
Jon Chambers
bda4788a34
Retire `AttachmentControllerV2`
2024-10-21 14:26:28 -04:00
Jon Chambers
5abfef50fc
Avoid repeated constants, standardize test assertions, and add links to docs for `PolicySigner`
2024-10-21 14:26:04 -04:00
Jon Chambers
e3ee5c1f2e
Use multiline strings in `PostPolicyGenerator`
2024-10-21 14:26:04 -04:00
Jon Chambers
e6eb702a88
Remove a couple unused imports/loggers from `SubscriptionController`
2024-10-21 13:18:00 -05:00
Jon Chambers
1447819198
Remove deprecated `aci` field from batch identity check elements
2024-10-21 13:17:52 -05:00
Jon Chambers
adf5795dff
Remove unused members in `ProfileController`
2024-10-21 13:17:52 -05:00
Chris Eager
584fd06b88
Add metric for closed connection age to KeepAliveController
2024-10-21 13:17:21 -05:00
Chris Eager
1faa1a5abc
Remove obsolete identity key null-check from /v1/certificate/delivery
2024-10-21 13:17:05 -05:00
Chris Eager
b5db8eba06
Remove unnecessary socket.setReuseAddress() in test extensions
2024-10-21 13:16:57 -05:00
Chris Eager
c6843c1eae
Update to embedded-redis 0.9.1
2024-10-21 13:16:45 -05:00
Jon Chambers
eb80305f87
Retire `AttachmentControllerV3`
2024-10-17 12:48:01 -04:00
Jon Chambers
865e3c5bde
Convert `AccountBadge` to a record
2024-10-17 12:47:50 -04:00
Chris Eager
c2270e57df
Reduce log level for existing pending presence
2024-10-17 11:47:18 -05:00
Ameya Lokare
d48c031548
Pass in destination service identifier to spam filter
2024-10-17 09:11:35 -07:00
Chris Eager
830a07012b
Subscribe to remote presence changes before setting the key
2024-10-15 16:54:52 -05:00
Chris Eager
46227295ff
Add test for concurrent connections in ClientPresenceManager
2024-10-15 16:54:52 -05:00
Jon Chambers
73fb1fc2ed
Add API endpoints for waiting for transfer archives
2024-10-15 12:13:47 -04:00
Jon Chambers
7ff48155d6
Add plumbing for a "wait for transfer archive" system
2024-10-15 12:13:47 -04:00
Jon Chambers
0adaa331a1
Extract `RemoteAttachment` to a top-level entity
2024-10-15 12:13:47 -04:00
Jon Chambers
30ec06ca76
Fix an incorrect response schema annotation
2024-10-15 12:13:47 -04:00
Jon Chambers
9b5c6e538b
Convert `DeviceResponse` to a record and rename to `LinkDeviceResponse`
2024-10-15 12:13:29 -04:00
Jon Chambers
240a406964
Introduce `EnumMapUtil`
2024-10-10 13:29:20 -07:00
Jon Chambers
38d25f9a9b
Resolve warnings and accept suggestions throughout `DeviceControllerTest`
2024-10-10 13:29:05 -07:00
Chris Eager
7b1b6fa1cf
Update KeyTransparencyService.proto with MonitorKey.commitment_index
2024-10-10 10:12:21 -04:00
Chris Eager
a3d9af132f
Use Mono#transformDeferred when applicable
2024-10-10 10:12:04 -04:00
Chris Eager
5d8b566a27
Remove unnecessary MessagesManager#clear with account’s PNI
2024-10-10 10:12:04 -04:00
Jon Chambers
8c30a359e7
Add API endpoints for waiting for newly-linked devices
2024-10-10 10:11:32 -04:00
Jon Chambers
a9117010f9
Introduce `FaultTolerantRedisClient`
2024-10-09 09:22:10 -04:00
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
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