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