Skip to content

v3.0:

Latest

Choose a tag to compare

@snarfed snarfed released this 02 Jul 05:26
41976cc

Breaking changes:

Encrypt signing and rotation keys in the datastore, in AtpRepo entities. The old non-encrypted properties have been removed. See this GitHub issue for migration details.

Non-breaking changes:

  • Add optional new SUPPORTED_COLLECTIONS environment variable, a comma-separated set of NSIDs.
  • Add SSRF protection to all outgoing HTTP requests via requests-hardened.
  • datastore_storage:
    • read_blocks_by_seq: set explicit 30s timeout on datastore query. Evidently, maybe, in rare cases, datastore queries can hang indefinitely if they don't have an explicit timeout (snarfed/bridgy-fed#2367).
    • New read_many_raw method: bypasses ndb model instantiation and uses the raw Datastore gRPC stub directly for significantly faster bulk block reads in com.atproto.sync.getRepo.
    • Change AtpBlock.decoded from DAG-JSON to decoded CBOR object.
  • storage: new read_many_raw base method with default fallback implementation.
  • did:
    • write_plc etc: add new optional new_rotation_key kwarg. Accept EllipticCurvePublicKey for signing_key as well as EllipticCurvePrivateKey.
    • resolve_*: thread safety bug fix for caches.
  • com.atproto.sync.getRecord: add the repo's head commit block, use its CID as the CAR root.
  • com.atproto.sync.getRepo: drastically optimize, it's 15-20x faster or more for large repos, and uses much less memory.