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
Chris Eager
d259ef0348
Update rate limit exceeded counter
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
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
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
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
44cb796574
Add more detail to "could not get acceptable languages" logging
2022-01-25 12:21:35 -05:00
Jon Chambers
c612663490
Handle null AccountAttributes when verifying linked devices
2022-01-14 14:47:46 -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
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
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
eaa4c318e3
Add usernames to whoami and account creation responses
2021-12-15 11:47:10 -05:00
Chris Eager
dba1711e8d
Convert AbusiveHostRule to a record
2021-12-08 14:43:21 -08:00
Jon Chambers
d78d7c726e
Fix a UUID transposition when requesting profile key credentials
2021-12-03 16:06:26 -05: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
Fedor Indutny
e507ce2f26
Include ACI and PNI in DeviceResponse
2021-12-02 17:21:05 -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
d94e86781f
Migrate username storage from a relational database to DynamoDB
2021-12-01 16:50:18 -05:00
Chris Eager
795b226b90
Mark methods that update SignedPreKeys as @ChangesDeviceEnabledState
2021-11-30 10:40:12 -07:00
Jon Chambers
6b71b66bd2
Take no action if badge list is omitted entirely
2021-11-24 13:47:39 -05:00
Jon Chambers
6919354520
Fix a counting bug with reported messages
2021-11-23 17:28:39 -05:00
Jon Chambers
296f6a7a88
Make phone number identifiers non-optional
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
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
Jon Chambers
1dae05651f
Add PNIs to account creation and whoami responses
2021-11-16 15:08:10 -05:00