- always verify OAuth tokens on blocking thread (#1406) (d69508d3)
- update to Rust 1.64.0 (#1415) (fca795e3)
- Add
X-Content-Type-Options: nosniff
to Tokenserver responses (#1403) (613f71ed)
- fix Tokenserver generation and keys_changed_at handling (#1397) (914e375b)
- don't convert all oauth token verification errors to resource_unavailable (#1389) (ebdd609e)
- remove unnecessary database calls for Tokenserver (#1360) (5ed9a10c)
- fix Tokenserver Spanner node query (#1383) (edef90ca)
- fix Tokenserver node assignment query (#1382) (9e977c71)
- fix JWT library for Tokenserver load tests (#1373) (ebf425fe, closes #1372)
- rework Tokenserver load tests for local OAuth verification (#1357) (8c59bb4f)
- improve Tokenserver errors and metrics (#1385) (90f10173)
- add
__error__
endpoint to Tokenserver (#1375) (75231c8f, closes #1364) - use Actix to spawn blocking threads (#1370) (1b1261f2)
- tag Tokenserver's
token_verification
metric with the token type (#1359) (dc00a8ea, closes #1358)
- fix Spanner node query (#1332) (3e81ef14, closes #1331)
- convert
DbError
s toTokenserverError
s (#1327) (9bea3280, closes #1316) - Set default CORS values, including all origins (#1308) (221705b7)
- write to the new version.json location (#1344) (2821b80e, closes #1343)
- fail the health check after SYNC_LBHEARTBEAT_TTL elapses (#1337) (a72912b8, closes #1330)
- support multiple FxA JWKs to ease key rotation (#1339) (eba35662)
- support setting JWK for Tokenserver OAuth verification (#1307) (d62db9f0)
- convert actix web middleware to async await (#1338) (f76b5fc6)
- replaced dbg! with trace macro (#1314) (03c059cd)
- add common crates (#1281) (a52900f6, closes #1275)
- fix metrics and BrowserID error context (#1294) (a086a118)
- fix Tokenserver migrations (#1282) (4c64c1ce)
- add missing Tokenserver headers (#1243) (38de8332, closes #1242)
- fix Tokenserver metrics (#1218) (d2dc0063, closes #1214)
- move I/O calls to blocking threadpool (#1190) (cbeebf46, closes #1188)
- resolve intermittent Tokenserver test failure (#1171) (0c05e999, closes #1170)
- Revert "update sentry version and remove ignore rustsec-2020-0041 in … (#1137) (48947bbf)
- removed send from async_trait for DbPool (#1139) (8c603de6)
- Fix build for Rust 1.53.0 (#1106) (0b37bbe0, closes #1105)
- Convert integral values to String before converting to Value (#1056) (21da763b, closes #1055)
- use ValidationErrorKind metric_label in ApiError (#1038) (4dc77afd)
- disable grpcio openssl (#1288) (8ff7a40d)
- prefer CIRCLE_SHA1 vs CIRCLE_TAG in circle's cache key (#1285) (37d2251c, closes #1284)
- update for Rust 1.60.0 (#1280) (c4bca395)
- add Python build to Makefile (#1244) (291a40ea, closes #1226)
- update regex (#1252) (fc34353a)
- update to Rust 1.59 (#1227) (0e9b0f6e)
- update to Rust 1.58 and switch to GCP Rust crate (#1201) (a7c5f809)
- label the circleci e2e tests (#1185) (bf3ef8b3)
- update 12/2/21 (#1181) (04cf2344)
- update actix-http version due to RUSTSEC-2021-0081 (#1140) (0106131e)
- switch failure crate with thiserror (#1122) (5369f1ae)
- Update code for Rust 1.54.0 (#1123) (7ab37291)
- enable flake8 in circleci config for tools/integration_tests (#1121) (dee69dd3)
- Updates for May 2021 (#1078) (f25e4e0f)
- tag 0.10.1 (#1042) (ecada4b3)
- Add BrowserId support to Tokenserver load tests (#1219) (b6d87b72, closes #1213)
- add Tokenserver load tests (#1184) (46d4a9ea, closes #1107)
- add Tokenserver integration tests to CI (#1180) (aa18c1a0, closes #1174)
- Add Tokenserver integration tests (#1152) (7209ccf5, closes #1048)
- add Tokenserver README (#1162) (b5fa8c8a, closes #1082)
- add comments about Tokenserver state being an Option (#1161) (c1dc552b, closes #1102)
- Add Apache 2.0 license to prepare-spanner.sh (#1120) (f0c16ba5)
- Update spanner configuration documentation (#1047) (57405c1e, closes #1045)
- cache FxA OAuth client (#1212) (04b24378, closes #1209)
- Remove Tokenserver support for per-node secrets (#1211) (eac6b558, closes #1208)
- remove static service IDs (#1199) (ae659702, closes #1144, breaks #)
- Tokenserver: Add mature MySQL adapter (#1119) (503d1aa8, closes #1054)
- Use PyFxA to verify Tokenserver tokens (#1103) (34401777, closes #1102)
- Clean up Tokenserver code (#1087) (e9247699, closes #968)
- Tokenserver: Rewrite inlined Python code in Rust (#1053) (34fe5859, closes #1049)
- Add ToSpannerValue trait (#1046) (2ce45705, closes #260)
- Emit metric for spanner DbPool::get time taken (#1044) (57bd30ad)
- Use generic tuple extractor in web extractors (#1043) (71c62be1, closes #698)
- spawn Tokenserver pool reporter (#1283) (ee8e1794)
- don't run Tokenserver migrations on startup (#1286) (1a197a6c)
- emit 4XX errors as metrics instead of Sentry events (#1274) (cacd8285)
- add context to
TokenserverError
s (#1224) (92e7d262, closes #1223) - Pass Tokenserver origin field through token payload (#1264) (a4c340e1, closes #1245)
- add BrowserID support for Tokenserver (#1216) (38d6a27b, closes #1215)
- add Tokenserver metrics (#1200) (aa93312a, closes #1108)
- add missing Tokenserver response fields (#1176) (a3d4f094, closes #1173)
- Tokenserver: add per-node secrets (#1169) (bed59e2c, closes #1104)
- make Tokenserver DbPool#get async (#1175) (3d4c180d, closes #1172)
- add Tokenserver admin scripts (#1168) (0ac30958, closes #1086)
- Add client state validation (#1160) (0996cb15, closes #1091)
- Tokenserver: Add node assignment logic (#1158) (db739def, closes #1051)
- Tokenserver: Add validations and user updating for generation, keys_changed_at, and client_state (#1145) (337ab8f4, closes #866)
- Add ability to disable syncstorage endpoints (#1159) (5f2fa8a3, closes #1083)
- Tokenserver: Add support for client-specified token duration (#1151) (17f89ac5, closes #1050)
- Add test mode to Tokenserver (#1143) (cbdc12e5, closes #1142)
- Tokenserver: Implement extractors for generation, keys_changed_at, client_state (#1141) (f29064d3, closes #1133)
- generation, keys_changed_at, and client_state: Add database methods (#1136) (44e832b8, closes #1132)
- Integrate Spanner emulator with CI (#1079) (e6ec1acd, closes #566)
- Support SYNC_SPANNER_EMULATOR_HOST (#1061) (322603a7, closes #915)
- Remove middleware::sentry::queue_report (#1040) (0dccb00f)
- Restore hawk error metrics (#1033) (f795eb08, closes #812)
- report query parameters with Invalid Value error (#1030) (354cf794)
- Add "auto-split" arg to auto-gen UID prefixes (#1035) (487ac11e)
- kill the long unused db middleware (8f9cce76, closes #693, #1018)
- Update for March 2021 (4e38e681, closes #1018)
- ensure "extra" data added to Hawk header in e2e tests (#1003) (8c280ccd)
- kill old or excessively idled connections (#1006) (082dd1f0)
- fmt & clippy fixes for Rust 1.50 (#1004) (56cadcb2)
- RUSTSEC-2021-0020 fix (2e186341, closes #999)
- tag 0.8.7 (#998) (d06b3c2a)
- tag 0.8.6 (#995) (8cb5b603)
- remove duplicate code for incrementing counters (#983) (d72228b1)
- tag 0.8.5 (#979) (3c23fb46)
- Add pool connection info to lbheartbeat for ops (#985) (06a2ac79)
- Update pyo3 to the latest version (#938) ([cc7d9d36]https://github.com/mozilla-services/syncstorage-rs/commit/cc7d9d367310aeb7551668c049f1a895a6eae853))
- update dependencies (#953) (bca8770f)
- tag 0.8.3 (#937) (02b76231)
- default to timing out deadpool checkouts (30 seconds) (#974) (2ecca202, closes #973)
- avoid an unnecessarily cloning for from_raw_bso (#972) (07352b6d, closes #971)
- Update to rust 1.48 (#927) (ea1f222b)
- make actix-cors more permissive (#929) (1a7e817a)
- Update depenedencies (#904) (4e95c571, closes #899)
- update dependencies (#900) (0afb9691)
- tag 0.8.0 (#881) (b6ff73d2)
- tag 0.8.1 for release and include scripts for setting up sentry releases (#881) (33f900dc8e)
- Add
SYNC_ENFORCE_QUOTA
flag (#875) (0e30801d, closes #870) - switch coll cache's RwLock to async (#906) (14fc49a5, closes #905)
- Implement rudimentary tokenserver route in syncstorage-rs (#871) (b74943e4)
- downgrade to sentry 0.19 (243eb17a, closes #907)
- add a short delay to avoid 503s (#922) (36698137, closes #920)
- handle duplicate keys in batch_upload_items for mysql (#873) (2d6039f3, closes #827)
- reduce MAX_TOTAL_RECORDS for quota write allowance (bac2c51f)
- avoid extra quota related work in batch commit (51c3bdab, closes #869)
- correct quota env var in config test to SYNC_ENABLE_QUOTA (#859) (f0aa4642, closes #829)
- tag 0.7.1 (#863) (0400863e)
- Add
count
andcount_with_tags
metric for batch histogram (#879) (8afcbe65, closes #878) - optimize POST w/ ?batch=true&commit=true (#880) (b7e9ba53, closes #876)
- remove Tags handoffs (#862) (c6ea474c, closes #403)
- rework error logging/metric reporting; fix BSO batch updates for spanner (#824) (cef8fb52, closes #827)
- correct quota env var in config test to SYNC_ENABLE_QUOTA (#859) (f0aa4642, closes #829)
- rework error logging/metric reporting; fix BSO batch updates for spanner (#174, #619, #618) (cef8fb521, closes #174, #619, #618)
- Return FORBIDDEN if a user's batch is Over Quota (#848) (d24dcdb6, closes #852)
- clippy error related to matches! closes #850 (06aed80f)
- downgrade sentry to 0.19 (#849) (0a175dde)
- Update circleci to use docker auth (#855) (dcb0a0b2, closes #854)
- update to protobuf 2.18.0 (c6f9cf9b, closes #852)
- update to actix-web 3 (#834)
- return correct error code and value for OverQuota users (#837)
- Add quota monitoring (#806) (9e6759e, closes #791, #793, #797, #789, #801)
- Convert some of the validation storage errors into metrics (#810) (66221d8b, closes #795)
- switch from
regex_contains
tostarts_with
(#805) (a79f8407)
- switch spanner's db pool to deadpool (077bf091)
- emit internal bb8 Pool errors to logs/sentry (ec25bc47, closes #786, #785, #764, #787)
- cleanup/rearrange (7e526cb8)
- remove ubuntu target for grpcio (#775) (7d1061f7, closes #774)
- Return WeaveError::OverQuota for over quota responses (#773) (38cd5ddd, closes #769)
- ensure an X-Last-Modified for /info/configuration (#761) (36533f85, closes #759)
- Update vendored SDK to use protobuf 2.16.2 (#747) (39519bb8)
- set config env separator to double underscore. (#763) (f1d88fea, closes #762)
- normalize id elements to remove potential wrap characters (#748) (71ab9b34, closes #680)
- add debug_client check to BsoBodies for batch operations. (1370df9d
- force client to rec'v over quota error (81c00c31, closes #746)
- add metric for db conflicts (1595f27f)
- Update vendored SDK to use protobuf 2.16.2 (#747) (39519bb8)
- Update Docker rust to 1.45 (#734) (538abe4b)
- option to limit purgettl to range of fxa_uids (695722a9, closes #713)
- limit purge ttl to prior midnight (#708) (198eb816, closes #707)
- add conditions, args to purge_ttl script (#668) (2a14eb29)
- clear new clippy warnings (d918550a)
- remove report_error from the transaction handler (f0e4c62e, closes #723)
- Replace batch index to resolve hot table problem (#720) (c3ca80e6, closes #719)
- don't call begin twice for mysql's delete_all (#673) (c93db759, closes #639, #441)
- python image build needs stable docker git container (93edc9f6)
- update per sentry dev's rename to local (#628) (456c857d)
- Update instructions for running syncstorage-rs via Docker (#624) (eb5fa003)
- quiet clippy warnings (b08a90f1)
- Convert actix-web frontend *_bso calls to async await (#638) (7203b8fb, closes #543)
- convert actix-web front-end calls to async (300f2852, closes #541, #541, #541, #541, #541)
- use u64 instead of i64 for Offset.offset (8f4f4407, closes #414)
- build spanner python utils image (#661) (2060601c)
- log messages from middleware to sentry (#604) (b6ced47a, closes #504)
- Allow for failure "replay" from failure file (#644) (b0f1590f, closes #642)
- Don't report Conflict errors to sentry (#623) (b2d93418, closes #614)
- add async to
delete_all
(#621) (fdb366da, closes #615) - emit Db pool metrics periodically (#605) (c3d6946e, closes #406)
- add a --wipe_user mode (16058f20, closes #596)
- latest ops requests (edd0017d)
- Enable circleci remote docker layer caching, speeding up the ci builds. (7d9d521a)
- range check the header to avoid a panic (#664) (b73e6ee2, closes #647)
- Make
bso_num
in migrate_node less truthy (#637) (fa96964f, closes #636) - don't classify AlreadyExists as a ConflictError (#635) (07276667, closes #633)
- Add retry and sleep to purge_ttl attempts (#620) (38c3295b)
- don't replace user_collections (d6b2dc21)
- convert user_id into bigint (ab2606da, closes #470)
- convert user_id into bigint (8b951137, closes #470)
- default-run syncstorage (24b600dd)
- don't consider expiry during batch commit (#632) (90ff7485)
- cargo fmt/clippy (c17682fa)
- add build_essential package to Dockerfile. (05b20eca, closes #572)
- do not populate mysql CollectionCache with invalid values (0741104e, closes #239)
- correct the test version of post_bsos (f9842af9, closes #533)
- Reduce log release_max_levels (17ff2867)
cargo clippy
for rust 1.42 (546d96ca)- Convert erect_tombstone to async/await (442c4c05)
- revert unsupported config change (f4cfcab1)
- adapt to async (fceea69e)
- Fix #444 invalid offset code that was lost in the actix 2 upgrade due to a bad merge (efbf6594)
- Fix #459 db-tests on master (0cd2b9db)
- Fix #457 remaining blocking execute (3ed7ae62)
- convert migration state to smallint (#429) (b980b438, closes #428)
- reject firefox-ios < 20 w/ a 503 (337275c3, closes #293)
- specify database in user_migration/fix_collections.sql to help running from automation (cbe3452c)
- add
--user_percent
option (08a646a3) - add an extra sanity check of the db url (f58b3bc9)
- Add
--abort
and--user_range
flags (a65123bc) - more user_migration stuff (#450) (ecfca9fd)
- separately metric batch update/insert (33065a8f, closes #454)
- Remove python dependency from the dockerfile. (3cd80947, closes #567)
- rewrite purge_ttl in Rust (5d6d7c1a)
- Convert the rest of the spanner module to async await (e2017bbc)
- Fix #442 Use map_ok in handlers to simplify the code and improve error reporting. (c50b4cca)
- Fix #453 Convert straggler functions to async await (69d50d2a)
- Fix #435 Convert db batch calls to async await. (a9eeddb1)
- Fix #433 Convert database bso calls to async await (9279782f)
- Fix #434 Convert db collectioon calls to async await. (e0b1c1cd)
- fix typos in README.md files Fixed typos in README.md files to improve readiblity. (7da2154b, closes #529)
- fix URL rendering in README (bcb0e2e2, closes #496)
- add system dependencies to README (f0183495, closes #255)
- remove unused dependencies (382f342a)
- Update dependencies 2020-03 (7825ead1, closes #537)
- move
insert into
to the bottom of ddl (0203261e, closes #473) - remove custom async_test implementation (3cbc3a1c, closes #461)
- re-add gcp-grpc deps setup (aa7495d9)
- kill checkout-gcp-grpc (625a1c9f)
- add minumum supported rust version (9740221a)
- add a badge for matrix (cd23e152)
- Update to actix-web 2.0. (a79434a9)
- adapt googleapis-raw dep to 0.2 branch (58f2051f)
- GETs with a limit and no sort never advance X-Weave-Next-Offset (c95f2ff2)
- Port get_bsos' pagination optimization (9266f753)
- restrict release mode logging to ERROR (#427) (9ab20845, closes #426)
- recategorize logging messages into appropriate states (d8aeb3ee, closes #416)
- script to count total users in spanner (13d2490d)
- User migration scripts (3500b9b9)
- add basic logging to stdout and statsd metrics for purge_ttl.py (92a57e65)
- Don't report
uri.path
to Metrics (68f8dcce, closes #408) - Don't return empty strings in tags. (13a881b8, closes #404)
- Use HttpResponse::build(status) instead of HttpResponse::Ok().status(status) (67113c7b, closes #393)
- add more detailed sentry testing info (681f1014)
- break apart middleware.rs (#392) (5b0fb643, closes #391)
- route reads through the streaming sql api (0e539d50, closes #205)
- add tag info to sentry error messages (#372) (b834c54a)
- ignore the collection field in POSTS also (e1a530ba, closes #376)
- add descriptive comment (84f25af5)
- adjust PR template, finish combining READMEs (bbe744dd, closes #344)
- combining setup instructions into one main doc (a8ead778)
- optimize batch commit mutations (5dd3c651, closes #318)
- remove redundant syncstorage metric root (a2083477, closes #346)
- specify the release name to sentry (9cdfe7d7)
- improve local logging (d1a84219, closes #350)
- fix syntax and make one small formatting change to PR template (11e47545, closes #344)
- minor cleanup (8dfb0d51)
- correct max_total_records (adca8d67, closes #333)
- bump the db worker thread pool size (29358466, closes #302)
- Metric timer should use millis (58120d65, closes #326)
- point to mozilla-services/mozilla-rust-sdk (44186211, closes #335)
- Update dockerfile to rust 1.39 (f0451097)
- Include user agent info in metric tags (cbc7bf50, closes #329)
- Add debugging tools (7d07a894)
- check spanner commit size, error out if "too large" (7e5ddf3c, closes #320)
- rearrange the batch impl (6db58786, closes #299)
- get_bso_ids only loads the id column (55ce9b03, closes #248)
- removed SpannerType enum (c2a7ad28, closes #261)
- recreate stale spanner sessions on checkout (f822aec9, closes #316)
- switch to slog's envlogger (20b21bee, closes #310)
- workaround timeouts w/ larger db conn sizes (3ea16124, closes #302)
- use actix_web header parsers (a021171e, closes #294)
- add spanner tools (21fbdb46)
- add tag support for metrics. (f90cb2fe, closes #222)
- add tag support for metrics. (cb8cff5a, closes #222)
- switch sentry to its curl transport (5cbd1974, closes #289)
- accept weighted content-type headers (f3899695, closes #287)
- fix cache key to include CIRCLE_TAG (5d2434e1)
- update language in response to PR suggestions (4573736b)
- adding initial PR template (a4383ecc)
- remove last last_modified -> modified remnant (b67a1bfc)
- Initial release