Ravi Khadiwala
d3cd1d1b15
Use GetLatestConfiguration in config manager
...
Use StartConfigurationSession/GetLatestConfiguration instead of
GetConfiguration since the latter has been deprecated
2022-02-23 15:36:33 -06:00
Ravi Khadiwala
f5a75c6319
Simplify RateLimitExceeded with no retry-duration
...
- Avoid passing negative durations in error cases
- Drop unused message
- Return a duration for a bad forwarded-for
2022-02-23 15:25:24 -06:00
Ravi Khadiwala
ae3a5c5f5e
Return a Retry-After on rate-limited responses
...
Previously, only endpoints throwing a RetryLaterException would include
a Retry-After header in the 413 response. Now, by default, all
RateLimitExceededExceptions will be marshalled into a 413 with a
Retry-After included if possible.
2022-02-23 15:25:24 -06:00
Jordan Rose
c367a71223
APNS: include a collapse-id for non-VOIP notifications
...
This has two benefits:
- The APNS server should only send an iOS client a single push
notification for any missed messages while the device is offline
(server-side coalescing). Note that the client can still turn that
into multiple "user notifications" as it pulls from its queue.
- If multiple notifications get delivered but iOS is unable to process
them (say, because the phone just restarted and hasn't been unlocked
yet), the user should only get one "You may have received messages"
notification (client-side coalescing).
2022-02-18 10:41:10 -05:00
Chris Eager
d259ef0348
Update rate limit exceeded counter
2022-02-17 13:23:48 -08:00
Chris Eager
288cbf4a80
Clean up null-ability of incoming message entity fields
2022-02-17 13:23:48 -08:00
Chris Eager
ba5e5a780f
Throw an exception instead of using Optional<Resposne>
2022-02-17 13:23:48 -08:00
Chris Eager
73fa3c3fe4
Add test for content length validation
2022-02-17 13:23:48 -08:00
Chris Eager
579eb85175
Reject invalid envelope types
2022-02-17 13:23:48 -08:00
Chris Eager
b2b20072ae
Add `MicrometerRegistryManager`
2022-02-17 13:18:30 -08:00
Chris Eager
a2c4d3fe95
Use a strong reference to the application shutdown gauge
2022-02-17 13:18:30 -08:00
Ravi Khadiwala
31e2be2e4d
Fixup invalid accept-language counter
...
- Fix name
- Add platform/version tags to the counter
2022-02-10 11:57:25 -06:00
Ravi Khadiwala
9f5d97e1c6
Silence noisy warnings for invalid Accept-Language
2022-02-10 11:57:25 -06:00
Ravi Khadiwala
baaae6cd9f
Add `@NotNull` to controller args where appropriate
...
Notably, `@Valid` doesn't imply `@NotNull`
2022-02-10 11:57:04 -06:00
Chris Eager
ed398aa7b9
Add `DeviceCapabilities.pni`
2022-02-09 15:56:01 -08:00
Chris Eager
6e2ae42dab
Add platform to metrics
2022-02-09 15:55:07 -08:00
Jordan Rose
41bf2b2c42
Add a binary format for incoming messages
...
The existing, general incoming message endpoint accepts messages as
JSON strings containing base64 data, along with all the metadata as
other JSON keys. That's not very efficient, and we don't make use of
that full generality anyway. This commit introduces a new binary
format that supports everything we're using from the old format (with
the help of some query parameters like multi-recipient messages).
2022-02-07 16:05:03 -08:00
Chris Eager
639d634426
Restore displaced UUID from deleted accounts table when present
2022-01-31 13:01:36 -08:00
Chris Eager
5358fc4f43
Use `setRegistrationLockFromAttributes`
2022-01-31 12:56:59 -08:00
Jon Chambers
99eda80a78
Measure rate limit challenge responses by platform
2022-01-27 16:05:52 -05:00
Jon Chambers
cbbdea1ba4
Impose more stringent requirements on cardinality checks
2022-01-26 16:13:12 -05:00
Jon Chambers
05e7c98620
Return an `AccountIdentityResponse` when changing phone numbers
2022-01-26 14:44:53 -05:00
Jon Chambers
1f1d618dea
Rename `AccountCreationResult` to `AccountIdentityResponse` (since it's not just for account creation any more)
2022-01-26 14:44:53 -05:00
Jon Chambers
b18117ef89
Add tests for unidentified access when requesting profiles
2022-01-25 14:07:44 -05:00
Jon Chambers
44cb796574
Add more detail to "could not get acceptable languages" logging
2022-01-25 12:21:35 -05:00
Jon Chambers
f69db11f42
Drop some unused dynamic configuration properties
2022-01-21 18:46:37 -05:00
Chris Eager
96a680dcf0
Remove displaced account from directory when changing numbers
2022-01-21 18:46:11 -05:00
Jon Chambers
c612663490
Handle `null` `AccountAttributes` when verifying linked devices
2022-01-14 14:47:46 -05:00
Jon Chambers
de5d967d18
Track metrics for dynamic config load failures
2022-01-14 14:47:12 -05:00
Jon Chambers
7fc63f7847
Allow callers to specify one or more dynamic config classes
2022-01-14 14:45:29 -05:00
Jordan Rose
146655e997
Add a "sameAvatar" flag to CreateProfileRequest
...
If sameAvatar is set (and "avatar" is also set), the avatar field for
a profile will be copied from the existing profile. This saves S3
churn and client bandwidth.
2022-01-04 13:57:41 -08:00
Chris Eager
bb27dd0c3b
Migrate from `Object[]` parameters to `Stream<Arguments>`
2022-01-03 15:10:02 -08:00
Chris Eager
d7a3c12bbe
Drop unused DynamoDB class rules
2022-01-03 15:10:02 -08:00
Chris Eager
a1e84f5a88
Migrate service tests to JUnit 5
2022-01-03 15:10:02 -08:00
Chris Eager
b758737907
Migrate remaining JUnit 4 Redis cluster tests to `RedisClusterExtension`
...
* Increase redis cluster initialization wait to 10 seconds
* Move to JUnit 5 `Assumptions`
2022-01-03 14:59:39 -08:00
Chris Eager
3e777df86c
Timeout `sendNextMessagePage` after 5 minutes
2021-12-20 11:31:11 -08:00
Chris Eager
278b4e810d
Add (failing) test for send message timeouts
2021-12-20 11:31:11 -08:00
Chris Eager
346c7cd743
Remove null-check of destination UUID
2021-12-20 11:31:11 -08:00
Jon Chambers
5baa51d547
Migrate challenge-issuing configuration into the abusive message filter module
2021-12-16 12:22:19 -05:00
Jon Chambers
616db337e1
Remove an old rate limiting feature flag
2021-12-16 12:22:19 -05:00
Jon Chambers
3895871462
Repair missing PNIs in JSON blobs on account load
2021-12-16 11:17:51 -05:00
Jon Chambers
a87b84fbe2
Return an empty response if somebody requests a profile key credential with a non-existent version
2021-12-16 10:30:55 -05:00
Jon Chambers
20c95e2606
Register `ApplicationShutdownMonitor` last
...
This will make it start last and shut down first, which is pretty much what we want for shutdown state monitoring
2021-12-15 19:27:23 -05:00
Jon Chambers
22dccaeddb
Count cases where we can find a given account, but not the given profile version
2021-12-15 15:53:47 -05:00
Jon Chambers
e611a70ba4
Remove usernames from profile responses
2021-12-15 15:53:47 -05:00
Jon Chambers
66845d7080
Refactor: separate the various types of profile responses
2021-12-15 15:53:47 -05:00
Jon Chambers
4ea7278c6f
Remove unversioned profile properties from `Account` entities
2021-12-15 15:53:47 -05:00
Jon Chambers
2b2e26f14b
Remove deprecated, unversioned profile setters
2021-12-15 15:53:47 -05:00
Jon Chambers
b496ef8d6f
Fix an issue where the deleted accounts lock client was trying to talk to the deleted accounts table
2021-12-15 13:16:32 -05:00
Jon Chambers
2d1ca98605
Consolidate DynamoDB clients/configuration
2021-12-15 12:42:41 -05:00
Jon Chambers
eaa4c318e3
Add usernames to `whoami` and account creation responses
2021-12-15 11:47:10 -05:00
Jon Chambers
31373fd1ba
Add a command for assigning usernames to individual users
2021-12-15 11:46:33 -05:00
Chris Eager
0ce87153e5
Remove second database for `AbusiveHostRules`
2021-12-08 16:03:02 -08:00
Chris Eager
dba1711e8d
Convert `AbusiveHostRule` to a record
2021-12-08 14:43:21 -08:00
Chris Eager
a70b057e1c
Add second (migration) database to `AbusiveHostRules`
2021-12-08 12:46:05 -08:00
Ehren Kret
3df143dd3d
Switch to zonky test embedded postgres and use postgres 11.13.0
2021-12-03 16:07:07 -05:00
Jon Chambers
d78d7c726e
Fix a UUID transposition when requesting profile key credentials
2021-12-03 16:06:26 -05:00
Jon Chambers
d0ad580c7d
Add (failing!) tests for getting a profile key credentials for somebody else
2021-12-03 16:06:26 -05:00
Ehren Kret
4a8a2a70b5
Return 400 instead of 500 when amount is too small
2021-12-03 12:24:16 -06:00
Jon Chambers
20a71b7df2
Add tests for generating profile key credentials
2021-12-03 12:16:13 -05:00
Jon Chambers
68412b3901
Allow the "get profile" endpoint to include a PNI credential
2021-12-03 12:16:13 -05:00
Chris Eager
31e5058b15
Make temporary iOS envelope type adaptation a little wider
2021-12-03 12:06:31 -05:00
Jon Chambers
14cff958e9
Migrate challenge-issuing rate limiters to the abusive message filter
2021-12-03 11:52:58 -05:00
Jon Chambers
9628f147f1
Separate statically- and dynamically-configured rate limiters
2021-12-03 11:01:15 -05:00
Chris Eager
13e346d4eb
Distinguish local vs remote in `ClientPresenceManager#disconnectPresence`
2021-12-02 14:32:42 -08:00
Fedor Indutny
e507ce2f26
Include ACI and PNI in DeviceResponse
2021-12-02 17:21:05 -05:00
Jon Chambers
9c62622733
Handle cases where a message might be missing a destination UUID
2021-12-02 14:06:49 -05:00
Jon Chambers
62aa0cef39
Set destination UUIDs for receipts
2021-12-02 14:06:49 -05:00
Jon Chambers
401953313a
Remove all vestiges of the relational account database
2021-12-02 12:46:43 -05:00
Chris Eager
4d2403d619
Use `assertTimeoutPreemptively` instead of `assertTimeout`
2021-12-02 12:17:08 -05:00
Jon Chambers
c5f261305d
Store destination UUIDs when persisting messages to DynamoDB
2021-12-02 12:17:08 -05:00
Jon Chambers
394f58f6cc
Add a (failing!) check for destination UUIDs
2021-12-02 12:17:08 -05:00
Jon Chambers
674bf1b0e0
Drop a myserious empty test
2021-12-02 12:17:08 -05:00
Jon Chambers
606ddd8a9b
Populate destination UUID for messages delivered via websocket
2021-12-02 12:17:08 -05:00
Jon Chambers
e23a1fac50
Remove old Postgres-backed remote config machinery
2021-12-02 12:16:43 -05:00
Jon Chambers
342323a7e6
Use canonical usernames throughout `AccountsManager`
2021-12-02 12:02:29 -05:00
Jon Chambers
efb410444b
Introduce a username validator
2021-12-02 12:02:29 -05:00
Jon Chambers
17c9b4c5d3
Transition from Postgres-backed remote config store to Dynamo-backed store
2021-12-02 11:13:07 -05:00
Jon Chambers
706de8e2f1
Add a command to migrate remote configuration entries from Postgres to DynamoDB
2021-12-02 11:13:07 -05:00
Jon Chambers
23bc11f3b6
Introduce a DynamoDB-backed remote config store
2021-12-02 11:13:07 -05:00
Jon Chambers
4eb7dde1c8
Migrate RemoteConfigsTest to Junit 5
2021-12-02 11:13:07 -05:00
Jon Chambers
064861b930
Consolidate profiles store tests and discard `ProfilesStore` interface
2021-12-02 10:49:54 -05:00
Jon Chambers
afa910bbd7
Drop relational profiles store
2021-12-02 10:49:54 -05:00
Jon Chambers
6aceb24fd2
Drop profile migration tools
2021-12-02 10:49:54 -05:00
Jon Chambers
d94e86781f
Migrate username storage from a relational database to DynamoDB
2021-12-01 16:50:18 -05:00
Jon Chambers
acfcb18f29
Allow overwriting of previously-delted profiles
2021-12-01 11:59:18 -05:00
Jon Chambers
f7ff8e3837
Add a (failing!) test for deleting, then resetting profiles
2021-12-01 11:59:18 -05:00
Jon Chambers
048e17c62b
Use a memoizing supplier instead of a looping thread to cache remote config entries
2021-11-30 16:35:42 -07:00
Jon Chambers
d89b4f7e95
Compare versioned profiles synchronously; log a subset of mismatches for further investigation
2021-11-30 16:35:29 -07:00
Chris Eager
795b226b90
Mark methods that update `SignedPreKey`s as `@ChangesDeviceEnabledState`
2021-11-30 10:40:12 -07:00
Jon Chambers
e485c380e0
Change the name of the CSV file argument to avoid upstream naming collisions
2021-11-30 11:31:12 -05:00
Jon Chambers
bb4f4bc441
Modify the "migrate profiles" command to accept a list of UUIDs/versions from a CSV file
2021-11-30 11:22:51 -05:00
Jon Chambers
65b49b2d9c
Use a "for each" strategy in profile migration methods
2021-11-24 16:54:30 -05:00
Jon Chambers
9e7010f185
Migrate profiles from a relational database to DynamoDB
2021-11-24 14:48:41 -05:00
Jon Chambers
3bb8e5bb00
Set a TTL for `Account` entries in the general cache
2021-11-24 14:47:36 -05:00
Jon Chambers
2a4d1da2ca
Delete accounts from Redis after they've been deleted from Dynamo
2021-11-24 13:47:53 -05:00
Jon Chambers
6b71b66bd2
Take no action if badge list is omitted entirely
2021-11-24 13:47:39 -05:00
Jon Chambers
ebf24fb125
Add a (failing!) test for clients omitting badges in profile update requests
2021-11-24 13:47:39 -05:00
Jon Chambers
46d64b949e
Don't read "soft-deleted" profiles
...
Nothing is actually "soft-deleting" profiles yet, and this
is a first step toward migrating profiles to a new data
store.
2021-11-24 12:02:07 -05:00
Jon Chambers
6919354520
Fix a counting bug with reported messages
2021-11-23 17:28:39 -05:00
Jon Chambers
a42fe9bfb0
Add crawler names to log messages
2021-11-23 16:22:09 -05:00
Jon Chambers
ee1f8b34ea
Add a command for reserving usernames
2021-11-23 16:21:03 -05:00
Jon Chambers
c910fa406d
Migrate reserved usernames from a relational database to DynamoDB
2021-11-23 16:21:03 -05:00
Jon Chambers
559205e33f
Log cases where accounts are missing or have inconsistent PNIs
2021-11-23 15:40:31 -05:00
Chris Eager
c0756e9c60
Attempt an orderly websocket close on displacement before a hard disconnect
2021-11-23 11:36:32 -07:00
Ehren Kret
bf1190696e
Add badge workaround for old Android builds
2021-11-23 09:58:06 -06:00
Jon Chambers
71dd0890de
Restore an accidentally-removed PNI consistency check
2021-11-23 10:53:40 -05:00
Jon Chambers
e5acdf1402
Don't update the PNI attribute during general account updates
2021-11-23 10:53:40 -05:00
Jon Chambers
0f08b6bb59
Drop "got successful captcha" messages from `INFO` to `DEBUG`
2021-11-22 17:06:34 -05:00
Jon Chambers
6198a7b69a
Remove spurious `@JsonProperty` annotations
2021-11-22 15:43:09 -05:00
Jon Chambers
067aee6664
Remove unused properties from `OutgoingMessageEntity`
2021-11-22 15:43:09 -05:00
Jon Chambers
138a2ebbd0
Drop transactional logic from phone number identifier migration
2021-11-22 15:32:24 -05:00
Jon Chambers
296f6a7a88
Make phone number identifiers non-optional
2021-11-22 15:32:24 -05:00
Jon Chambers
069ffa9921
Drop PNI migration tools
2021-11-22 15:32:24 -05:00
Jon Chambers
f42fd8a840
Retire unused diagnostic metrics
2021-11-22 15:31:16 -05:00
Jon Chambers
10f27af6f2
Retire old unsealed-sender meters
2021-11-22 15:31:16 -05:00
Jon Chambers
0bbd34d060
Use text blocks where possible
2021-11-22 15:30:31 -05:00
Jon Chambers
282daeb0dc
Add a command to assign PNIs to accounts that don't already have one
2021-11-22 15:03:19 -05:00
Jon Chambers
d33b313c11
Break down legacy "get profile" requests by platform
2021-11-19 12:37:39 -05:00
Ehren Kret
fb7316c9ae
Return subscription status string in GET
2021-11-19 11:36:01 -06:00
Ehren Kret
279b0a51d9
Use latest invoice on subscription to generate receipts
2021-11-19 11:25:38 -06:00
Ehren Kret
6547d5ebf3
More consistent naming of receipt credentials endpoints
2021-11-19 10:14:00 -06:00
Ehren Kret
4f1ef9a039
Add additional http status codes to /v1/subscription/boost/receipt_credentials
2021-11-19 10:11:33 -06:00
Jon Chambers
077ead71a5
Rename legacy profile methods to separate them in metrics
2021-11-18 11:31:15 -05:00
Ehren Kret
caba110266
Revert "Revert "Remove transparent SVG for badging""
...
This reverts commit 0fdb23c1e9
.
2021-11-18 10:23:09 -06:00
Ehren Kret
0fdb23c1e9
Revert "Remove transparent SVG for badging"
...
This reverts commit 13a84f0c72
.
2021-11-18 10:09:34 -06:00
Ehren Kret
13a84f0c72
Remove transparent SVG for badging
2021-11-18 10:04:42 -06:00
Jon Chambers
669bd58e33
Drop the unused `Key` utility class
2021-11-17 10:57:29 -05:00
Ehren Kret
7ea43a728d
Set boost description from configuration
2021-11-16 17:21:57 -06:00
Chris Eager
71b38356b1
Update to Mockito 4.0.0
2021-11-16 15:56:35 -07:00
Chris Eager
5a99708f56
Update some deprecated usages
2021-11-16 15:56:13 -07:00
Jon Chambers
1dae05651f
Add PNIs to account creation and `whoami` responses
2021-11-16 15:08:10 -05:00
Jon Chambers
5164e92538
Shorten metric names
2021-11-16 15:08:10 -05:00
Jon Chambers
f89a20dbc7
Allow callers to set/retrieve keys by ACI or PNI
2021-11-16 15:08:10 -05:00
Jon Chambers
3a4c5a2bfb
Store and retrieve one-time pre-keys by UUID
2021-11-16 15:08:10 -05:00
Jon Chambers
5e1334e8de
s/KeysDynamoDb/Keys/
2021-11-16 15:08:10 -05:00
Jon Chambers
fa6e3d3690
Allow clients to request PNI-based group credentials
2021-11-16 15:08:10 -05:00
Jon Chambers
9383e7716b
Resolve `CertificateControllerTest` warnings and recommendations
2021-11-16 15:08:10 -05:00
Jon Chambers
cfe34fbf0f
Allow unsealed-sender messages to be addressed by PNI
2021-11-16 15:08:10 -05:00
Jon Chambers
9fe110625c
Add a `destinationUuid` field to envelopes
2021-11-16 15:08:10 -05:00
Jon Chambers
975f753c2b
Add an endpoint for testing whether an account with a given ACI or PNI exists
2021-11-16 15:08:10 -05:00
Jon Chambers
e6237480f8
Require that unidentified access keys be exactly 16 bytes
2021-11-16 15:08:10 -05:00
Chris Eager
26f876a2cb
Check service configurations in verify phase
2021-11-16 11:43:07 -07:00
Jon Chambers
ab9e6ac48a
Revert "Replace zkgroup with libsignal-client"
...
This reverts commit 73ea6e4251
.
2021-11-16 11:35:10 -05:00
Jon Chambers
c1d6c04ab2
Revert "Replace curve25519-java with libsignal-client"
...
This reverts commit 0011b8925b
.
2021-11-16 11:35:10 -05:00
Jon Chambers
888cec3d56
Introduce a filter for correcting numeric "online" flags
2021-11-16 10:15:14 -05:00
Jon Chambers
1461bcc2c2
Correct envelope types for certain iOS builds
2021-11-16 10:15:14 -05:00
Jon Chambers
11f1cf80bd
Move `MessageControllerTest` out of the `tests` sub-package to expose package-private elements from the class under test
2021-11-16 10:15:14 -05:00
Jordan Rose
c675cc8b26
Test the response code for invalid serialized zkgroup objects
...
Test by Jon, making sure this is consistent even without up-front size
checking.
2021-11-16 09:52:38 -05:00
Jordan Rose
0011b8925b
Replace curve25519-java with libsignal-client
...
These APIs stemmed from a common source long ago, so there's not much
to change!
2021-11-16 09:52:38 -05:00
Jordan Rose
73ea6e4251
Replace zkgroup with libsignal-client
2021-11-16 09:52:38 -05:00
Jon Chambers
e4441dddbb
Consolidate Redis client resources
2021-11-16 09:52:12 -05:00
Jon Chambers
2015ba77ca
Switch to a disallowed prefix model instead of a disallowed country code model
2021-11-15 15:44:55 -05:00
Jon Chambers
6ada76da7f
Parallelize assignment of phone number identifiers
2021-11-12 11:03:46 -05:00
Jon Chambers
cbdec0cb22
Remove legacy push latency measurement pathways
2021-11-11 15:44:07 -05:00
Chris Eager
de6e9d31c9
Add dedicated crawler for directory reconciler
2021-11-11 13:38:13 -07:00
Jon Chambers
f0a6be32fc
Add a crawler to assign PNIs to existing accounts
2021-11-10 11:15:05 -05:00
Ehren Kret
5c4855cca6
Remove trailing space
2021-11-10 10:11:49 -06:00
Ehren Kret
2e1e380418
Also update description text of boost badge
2021-11-10 10:10:53 -06:00
Ehren Kret
d07f0b4f71
Update badge description text
2021-11-10 09:51:51 -06:00
Jon Chambers
aaa2a6eef1
Break down push latency metrics by VOIP/not-VOIP and optionally by client version
2021-11-10 10:35:41 -05:00
Jon Chambers
b1f56c3324
Resolve formatting complaints
2021-11-10 10:15:14 -05:00
Jon Chambers
da5c0ae4b6
Enable Payments Beta for more country codes
2021-11-10 10:15:14 -05:00
Jon Chambers
1e1394560d
Check length of cancellation reason list before getting reason codes
2021-11-09 11:42:44 -05:00
Jon Chambers
bae0196bcf
Tolerate null UUID attribute values
2021-11-09 11:00:27 -05:00
Jon Chambers
3398955c1a
Add basic support for phone number identifiers
2021-11-09 10:23:08 -05:00
Chris Eager
a1b925d1e0
Reduce visiblity on one constructor
2021-11-08 14:30:52 -07:00
Chris Eager
31c0c3275f
Use the latest and in config, `@JsonCreator`
2021-11-08 14:30:52 -07:00
Chris Eager
0a4392f700
Streamline `ExternalServiceCredentialsGenerator` construction
2021-11-08 14:30:52 -07:00
Chris Eager
eb86986cf4
Add /v2/directory/auth endpoint
2021-11-08 14:30:52 -07:00
Ehren Kret
1053a47e42
Add an exception mapper for CompletionExceptions
2021-11-04 19:12:31 -05:00
Ehren Kret
99b1f48e0e
Copy badges from existing account on re-reg
2021-11-04 18:00:47 -05:00
Jon Chambers
6dddf54222
Consolidate rate-limit counters
2021-11-01 14:33:05 -04:00
Jon Chambers
c931103712
Remove unused utility classes
2021-11-01 10:51:47 -04:00
Jon Chambers
ad1aeea74b
Add an abusive message filter interface and submodule
2021-11-01 10:51:47 -04:00
Ehren Kret
ae7f8af03e
Mark boost and subscription configuration as not null
2021-10-28 16:12:23 -07:00
Ehren Kret
a52c91a665
Add names to subscription levels
2021-10-28 14:48:44 -07:00
Ehren Kret
94bf3a3902
Extract logic for created header controlled resource bundles
2021-10-28 14:26:53 -07:00
Ehren Kret
f5a539e128
Add subscriptions resource bundle
2021-10-28 14:15:20 -07:00
Ehren Kret
24480b2090
Add endpoint to fetch information on boost badges
2021-10-26 14:05:59 -07:00
Ehren Kret
a124b3abe9
Fix encoding of boost amounts
2021-10-26 08:08:09 -07:00
Ehren Kret
090d722b61
Add method to retrieve receipt credentials for a boost payment
2021-10-25 14:54:40 -07:00
Ehren Kret
d27ec6fe8d
Create boost create endpoint
2021-10-25 12:58:32 -07:00
Jon Chambers
8d34f3447b
Drop an unused registration meter
2021-10-25 14:52:21 -04:00
Ehren Kret
72b52965b9
Expand definition of badge SVGs
2021-10-25 10:28:02 -07:00
Jon Chambers
ae7077c643
Refresh accounts from storage when checking for device state changes after requests
2021-10-22 14:02:28 -04:00
Jon Chambers
11598e855f
Count non-normalized or impossible numbers
2021-10-22 14:01:54 -04:00
Jon Chambers
534c577f59
Enforce phone number normalization when creating accounts or changing numbers
2021-10-22 14:01:54 -04:00
Jon Chambers
7762afc497
Add a method for verifying that numbers are normalized in addition to being dialable
2021-10-22 14:01:54 -04:00
Jon Chambers
a3fe4b9980
Update/parameterize ValidNumberTest
2021-10-22 14:01:54 -04:00
Jon Chambers
598599cd14
Use a default `reportMessage` configuration if not specified
2021-10-21 15:34:57 -05:00
Ehren Kret
07cd69ab34
Add endpoint for fetching boost amounts
2021-10-21 13:56:35 -05:00
Jon Chambers
3b764bed7a
Make `DynamicConfigurationManager` generic
2021-10-19 11:52:29 -04:00
Jon Chambers
c91d5c2fdb
Count reported messages per sender
2021-10-19 11:47:54 -04:00
Jon Chambers
40f7e6e994
Remove unused imports
2021-10-19 11:47:54 -04:00
Ehren Kret
ee9aa9ce12
Round up by days on receipt expiration
2021-10-18 12:11:27 -05:00
Ehren Kret
08304bf375
Validate GetReceiptCredentialsRequest
2021-10-18 11:57:18 -05:00
Ehren Kret
8b8c6237be
Use last subscription created at time as a subscription generation number
2021-10-14 12:06:19 -05:00
Ehren Kret
c0837104cd
Bring badge configuration into levels information
2021-10-14 11:35:18 -05:00
Jon Chambers
fe21d014f7
Remove legacy rate-limiting tools
2021-10-14 11:43:18 -04:00
Ehren Kret
75c5032cd3
Add method to set default payment method
2021-10-14 10:37:12 -05:00
Jon Chambers
f84e7aebd0
Count numbers that can't be normalized because another account has the normalized form of the number
2021-10-14 11:10:12 -04:00
Jon Chambers
c379a3d297
Remove deprecated counters
2021-10-14 10:52:20 -04:00
Jon Chambers
eedeaaecee
Update rate-limiting for requests matching specific criteria
2021-10-14 10:42:16 -04:00
Ehren Kret
64eeb1e361
Move to using collections for sprites and svgs for badges
2021-10-13 23:25:39 -05:00
Ehren Kret
e07597eba7
Add initial text for donation badges
2021-10-13 23:08:02 -05:00
Ehren Kret
5f2656710c
Update badge configuration to new style
2021-10-13 22:58:57 -05:00
Ehren Kret
1af53f2612
Simplify getLevels API
2021-10-13 13:28:31 -05:00
Ehren Kret
c89cfa4927
Move property setting above servlet construction
2021-10-13 13:17:07 -05:00
Ehren Kret
bbde93a3c7
Enable unwrapping of CompletionStage
2021-10-13 11:46:20 -05:00
Ehren Kret
b01b76d78f
First pass at subscriptions API
...
This is an incomplete first pass at building the subscriptions API. More API endpoints are still to be added along with controller tests.
2021-10-12 21:23:20 -05:00
Ehren Kret
75c22038eb
Create empty Badges_en.properties file
2021-10-11 22:27:30 -05:00
Jon Chambers
3c1705994d
Count accounts with non-normalized phone numbers
2021-10-11 10:13:08 -04:00
Chris Eager
d2bc3c7360
Add dynamic configuration to disable directory reconciler
2021-10-04 14:38:47 -07:00
Jon Chambers
9734433f00
Use the default `SecureRandom` algorithm for tests
2021-10-04 11:37:32 -04:00
Ehren Kret
5bd08800bb
Remove public modifier from test class
2021-10-01 14:27:07 -05:00
Ehren Kret
3032415141
Add receipt redemption API to chat server
2021-10-01 12:44:47 -05:00
Jon Chambers
ba58a95a0f
Add support for changing phone numbers
2021-10-01 10:15:33 -04:00
Jon Chambers
aa4bd92fee
Lazy-load scripts; fall back to `eval` if `evalsha` returns `NOSCRIPT`
2021-09-29 16:08:17 -04:00
Jon Chambers
f37c76dab1
Drop `LuaScript`
2021-09-29 16:08:17 -04:00
Jon Chambers
863969c77c
Resolve ClusterLuaScript warnings/suggestions
2021-09-29 16:08:17 -04:00
Jon Chambers
2383aaaa3d
Update ClusterLuaScript formatting
2021-09-29 16:08:17 -04:00
Jon Chambers
715d1157ad
Reject Redis commands when disconnected
2021-09-29 16:07:26 -04:00
Jon Chambers
4aaae3f445
Use a single configuration URI for Redis clusters
2021-09-29 14:46:09 -04:00
Jon Chambers
8359ef73f4
Cycle all connected websockets on any device or account enabled state change
2021-09-29 14:18:35 -04:00
Jon Chambers
c6bb649adb
Simplify map-building logic
2021-09-29 14:18:35 -04:00
Jon Chambers
e333cbd94d
Close websockets on account deletion
2021-09-29 14:11:16 -04:00
Chris Eager
5189cbe5c7
apply editorconfig formatting
2021-09-29 10:31:39 -07:00
Chris Eager
d1d6e5c652
Filter stale ephemeral messages from cache
2021-09-29 10:31:39 -07:00
Chris Eager
3e5087e60b
Remove obsolete ephemeral queue handling
2021-09-29 10:31:39 -07:00
Chris Eager
93c3cea912
Clean up old "ephemeral" metrics
2021-09-29 10:31:39 -07:00
Chris Eager
e824b861d4
Drop `accounts` table
2021-09-29 10:31:20 -07:00
Chris Eager
e8dd1e0bf2
Fixup formatting
2021-09-29 10:31:20 -07:00
Ehren Kret
559026933d
Add low and high detail svgs to badges
2021-09-27 17:00:09 -05:00
Ehren Kret
7864405efd
Remove single URL in favor of density based sprite sheets
2021-09-27 16:50:18 -05:00
Jon Chambers
a5575902de
Pause if we bump into an exception while trying to persist messages
2021-09-27 13:38:17 -04:00
Ehren Kret
041aed2d72
Remove zkgroup enabled flag
...
The last remnants of a time before zkgroup have been swept away.
2021-09-23 09:24:06 -05:00
Jon Chambers
02a296e500
Use a MIME Base64 decoder for provisioning messages
2021-09-22 16:30:44 -04:00
Jon Chambers
98e41f9a37
Improve Redis exception handling
2021-09-22 10:31:39 -04:00
Chris Eager
6a71d369e2
More Accounts cleanup
...
* Remove `AccountStore`
* Clean up `AccountsDynamoDb#delete`
* Rename `AccountsDynamoDb` → `Accounts`
* Remove unused configuration
* Move Accounts scan page size to static configuration
* Remove disabled tests and related methods
2021-09-21 15:25:16 -07:00
Ehren Kret
75661fa800
Add JavaTimeModule
2021-09-20 16:42:38 -05:00
Ehren Kret
df5498e1c0
Add test for self badge fetching
2021-09-20 16:42:38 -05:00
Ehren Kret
c0af911197
Show invisible badges to query for self
2021-09-20 16:42:38 -05:00
Ehren Kret
44bc90e5ab
Return a badge with additional properties when fetching your own profile
2021-09-20 16:42:38 -05:00
Ehren Kret
5c1cde1b28
Add visibility modifying helper method in AccountBadge
2021-09-20 16:41:09 -05:00
Ehren Kret
3172b571c6
Move "testing" string into BadgeConfiguration
2021-09-20 16:41:09 -05:00
Ehren Kret
17e8b77e88
Add unit test for setting badges
2021-09-20 16:41:09 -05:00
Ehren Kret
8011935a3b
Fix compilation issues created by constructor changes
2021-09-20 16:41:09 -05:00
Ehren Kret
3f3052c23c
Remove isZkEnabled
2021-09-20 16:41:09 -05:00
Ehren Kret
8f17f45339
Reorder creating of testing badges
...
Need their expiration time to always get refreshed on set so reorder
how they're created to ensure that's the case.
2021-09-20 16:41:09 -05:00