* feat: Add normalized ReportableError to errors
We want to do things like add tags and other features to sync errors the
way that we do in other packages. To do so, we're backporting
ReportableError from Autopush to Syncstorage.
This also addresses some clippy fixes required by 1.78
This continues to use the `Taggable` trait, which we may want to
port to autopush.
Closes SYNC-4262
* Removes pyo3 and derives tokens directly in Rust
* Adds tests for JWT verifying
* Adds tests for token generation
* Adds metrics for oauth verify error cases
* Updates jsonwebtoken to not include default features (including pem loading)
* Adds context and logs errors during oauth verify
* Uses ring for cryptographic rng
* Adds back python impl under feature flag
* Uses one cached http client for reqwest
Update package description and some dependencies to use `workspace`
inheritance.
* Also updates circleci to produce dockerhub image.
Closes#1461
Issue #1362
* f touch to retry circleci
* f try to pre-emptively lock protobuf to the older 2.25.2 version
* f force Cargo.lock to use protobuf 2.25.2, dammit
* f move protobuf pin to syncstorage-spanner
* f revert cargo.lock
* f revert #448
* f update base64 / tickle circleci
* f update cadence (and kick circleci)
* f clippy
* f switch to latest google-cloud-rust
* f update to use google-cloud-rust
This is a breaking change. This commit separates syncstorage and tokenserver settings into separate structs that are contained by a parent `Settings` struct. This means that any env vars that hold settings specific to syncstorage (e.g. `SYNC_DATABASE_URL`) have been renamed to `SYNC_SYNCSTORAGE__DATABASE_URL`. Any settings that were moved from the top-level `Settings` struct to the lower level, syncstorage-specific struct will now have a `SYNC_SYNCSTORAGE__` prefix instead of a `SYNC_` prefix.
Closes#1276