objectstore-client 0.3.0

Client SDK for Objectstore, the Sentry object storage platform
Documentation
# Changelog

## 0.3.0

### Breaking Changes

- Remove the deprecated `Session::mint_token()` by @sentry-junior in [#717]https://github.com/getsentry/objectstore/pull/717
  - Replace `session.mint_token()` with `session.get_token()`.
- Remove the deprecated `TokenGenerator::sign()` by @sentry-junior in [#716]https://github.com/getsentry/objectstore/pull/716
  - Replace `generator.sign(&scope)` with `generator.create_token(&scope).sign()`.
- Remove the deprecated `PutBuilder::compression()` by @sentry-junior in [#715]https://github.com/getsentry/objectstore/pull/715
  - Replace `.compression(...)` with `.compress(...)` on put builders.
- `Usecase::new` now returns a `Result`, and the panicking constructor is now `Usecase::from_static` by @sentry-junior in [#710]https://github.com/getsentry/objectstore/pull/710
  - Replace `Usecase::new("name")` with `Usecase::from_static("name")`.
  - Replace `Usecase::try_new(name)` with `Usecase::new(name)`.
- Mark `Error` as `#[non_exhaustive]` so new error variants can be added without a breaking change by @lcian in [#706]https://github.com/getsentry/objectstore/pull/706
  - Add a wildcard arm (`_ => ...`) to exhaustive `match` expressions on `objectstore_client::Error`.
- Remove the multipart upload API (`Session::initiate_multipart_upload()`, `Session::resume_multipart_upload()`) and the `multipart` feature flag by @lcian in [#704]https://github.com/getsentry/objectstore/pull/704
  - Use resumable uploads instead.
  - Remove `match` arms for the removed `Error::InvalidPartNumber`, `Error::InvalidUploadId` and `Error::MultipartComplete` variants.

### New Features

- Support gzip compression in server and clients by @sentry-junior in [#693]https://github.com/getsentry/objectstore/pull/693

## 0.2.10

### Bug Fixes

- Validate usecase names by @jan-auer in [#694]https://github.com/getsentry/objectstore/pull/694

### Other Changes

- Enable resumable uploads on docs.rs by @jan-auer in [#684]https://github.com/getsentry/objectstore/pull/684
- Introduce a validated usecase name type by @jan-auer in [#695]https://github.com/getsentry/objectstore/pull/695

## 0.2.9

### New Features

- Surface upload offset mismatch as an error by @lcian in [#654]https://github.com/getsentry/objectstore/pull/654

## 0.2.8

### New Features

- Define and expose upload granularity by @lcian in [#652]https://github.com/getsentry/objectstore/pull/652

## 0.2.7

### New Features

- Add lifetime extensions for Python and Rust by @jan-auer in [#639]https://github.com/getsentry/objectstore/pull/639
- Support resumable uploads by @lcian in [#640]https://github.com/getsentry/objectstore/pull/640
- Add streaming versions of `put_chunk` by @lcian in [#649]https://github.com/getsentry/objectstore/pull/649

### Bug Fixes

- Update TTL durations on expiry extensions by @jan-auer in [#646]https://github.com/getsentry/objectstore/pull/646

## 0.2.6

### New Features

- Add Resumable Uploads (low-level) API by @lcian in [#622]https://github.com/getsentry/objectstore/pull/622

### Bug Fixes

- Drain discarded response bodies by @lcian in [#629]https://github.com/getsentry/objectstore/pull/629

### Other Changes

- Use typed queries for resumable API by @lcian in [#628]https://github.com/getsentry/objectstore/pull/628

## 0.2.5

- No documented changes.

## 0.2.4

- No documented changes.

## 0.2.3

### New Features

- Mint scoped tokens through a TokenRequest builder by @matt-codecov in [#545]https://github.com/getsentry/objectstore/pull/545

### Bug Fixes

- Restrict the duration wire format to days and smaller by @jan-auer in [#592]https://github.com/getsentry/objectstore/pull/592

## 0.2.2

### New Features

- Allow marking uploads as precompressed by @jan-auer in [#586]https://github.com/getsentry/objectstore/pull/586

## 0.2.1

### New Features

- Support Unicode in object metadata headers by @jan-auer in [#581]https://github.com/getsentry/objectstore/pull/581

## 0.2.0

- No documented changes.

## 0.1.15

- No documented changes.

## 0.1.14

- No documented changes.

## 0.1.13

### New Features

- Accept optional tokens in ClientBuilder::token by @jan-auer in [#516]https://github.com/getsentry/objectstore/pull/516
- Add filename field to Metadata by @lcian in [#517]https://github.com/getsentry/objectstore/pull/517

### Bug Fixes

- Apply pedantic Clippy lints across workspace by @jan-auer in [#513]https://github.com/getsentry/objectstore/pull/513

### Other Changes

- Fix and expand documentation across the workspace by @jan-auer in [#521]https://github.com/getsentry/objectstore/pull/521
- Fix multipart endpoint paths and client examples by @jan-auer in [#505]https://github.com/getsentry/objectstore/pull/505
- Remove version pin notice on tokio dependency by @jan-auer in [#531]https://github.com/getsentry/objectstore/pull/531
- Replace test key LazyLock statics with compile-time constants by @jan-auer in [#510]https://github.com/getsentry/objectstore/pull/510
- Consolidate workspace dependencies and pin explicit versions by @jan-auer in [#507]https://github.com/getsentry/objectstore/pull/507

## 0.1.12

### Bug Fixes

- Classify zstd batch inserts by worst-case post-compression size by @lcian in [#500]https://github.com/getsentry/objectstore/pull/500

## 0.1.11

- No documented changes.

## 0.1.10

### New Features

- Add Multipart Upload API by @lcian in [#468]https://github.com/getsentry/objectstore/pull/468

## 0.1.9

### New Features

- Make concurrency configurable in ManyBuilder by @lcian in [#457]https://github.com/getsentry/objectstore/pull/457
- Add batchable HEAD operation by @lcian in [#478]https://github.com/getsentry/objectstore/pull/478

## 0.1.8

- No documented changes.

## 0.1.7

### New Features

- Default auth enforcement to true by @lcian in [#447]https://github.com/getsentry/objectstore/pull/447

## 0.1.6

### New Features

- Add X-Os-Auth as alternative auth header by @lcian in [#422]https://github.com/getsentry/objectstore/pull/422

## 0.1.5

### New Features

- Add mint_token() method to Session API by @matt-codecov in [#416]https://github.com/getsentry/objectstore/pull/416

## 0.1.4

### New Features

- Add 100 MB per-batch body size limit by @jan-auer in [#417]https://github.com/getsentry/objectstore/pull/417

## 0.1.3

### New Features

- Add put_path for lazy file descriptor opening by @jan-auer in [#415]https://github.com/getsentry/objectstore/pull/415

### Other Changes

- Refactor many API into combinator pipeline by @lcian in [#391]https://github.com/getsentry/objectstore/pull/391

## 0.1.2

### New Features

- Add file variant with more reliable batching by @lcian in [#346]https://github.com/getsentry/objectstore/pull/346

## 0.1.1

- No documented changes.

## 0.1.0

### New Features

- Add accept_encoding to Rust and Python get methods by @jan-auer in [#344]https://github.com/getsentry/objectstore/pull/344

## 0.0.19

### New Features

- Implement many API using batch endpoint by @lcian in [#277]https://github.com/getsentry/objectstore/pull/277

## 0.0.18

### New Features

- Add static token auth, consolidate token generator by @lcian in [#330]https://github.com/getsentry/objectstore/pull/330

### Bug Fixes

- Check HTTP status on DELETE responses by @lcian in [#333]https://github.com/getsentry/objectstore/pull/333

## 0.0.17

### New Features

- Add origin as built-in metadata field by @jan-auer in [#292]https://github.com/getsentry/objectstore/pull/292

### Other Changes

- Restructure Rust and Python client READMEs by @jan-auer in [#294]https://github.com/getsentry/objectstore/pull/294
- Add crate-level architecture documentation by @jan-auer in [#304]https://github.com/getsentry/objectstore/pull/304
- Extract modules and distribute docs by @jan-auer in [#307]https://github.com/getsentry/objectstore/pull/307
- Move tombstone + custom-time out of Metadata header methods by @jan-auer in [#303]https://github.com/getsentry/objectstore/pull/303

## 0.0.16

### Bug Fixes

- Re-export objectstore_types::Permission as part of API by @matt-codecov in [#256]https://github.com/getsentry/objectstore/pull/256

### Other Changes

- Bump reqwest to 0.13.1 by @lcian in [#282]https://github.com/getsentry/objectstore/pull/282
- Improve assertion by @lcian in [#280]https://github.com/getsentry/objectstore/pull/280

## 0.0.15

### New Features

- Rust client support for bearer auth by @matt-codecov in [#237]https://github.com/getsentry/objectstore/pull/237

### Other Changes

- Change defaults for timeouts by @jan-auer in [#246]https://github.com/getsentry/objectstore/pull/246
- Move `Permission`, `Scope`, `Scopes` to `objectstore_types` and use in Rust client by @matt-codecov in [#236]https://github.com/getsentry/objectstore/pull/236
- Enable authorization tokens in e2e client tests by @matt-codecov in [#231]https://github.com/getsentry/objectstore/pull/231
- Add tests for keys containing slashes by @jan-auer in [#245]https://github.com/getsentry/objectstore/pull/245

## 0.0.14

### New Features

- Implement the new Web API by @jan-auer in [#230]https://github.com/getsentry/objectstore/pull/230

## 0.0.13

- No documented changes.

## 0.0.12

### New Features

- Add time_creation as first-class metadata by @lcian in [#210]https://github.com/getsentry/objectstore/pull/210
- Append to the given base URL path by @lcian in [#222]https://github.com/getsentry/objectstore/pull/222

## 0.0.11

### Breaking Changes

- Change url format: {usecase}/{scope1}/.../data/{key} by @matt-codecov in [#203]https://github.com/getsentry/objectstore/pull/203

## 0.0.10

### New Features

- Add a util to guess MIME type by @lcian in [#200]https://github.com/getsentry/objectstore/pull/200

### Other Changes

- Add some more docs for new Rust API by @lcian in [#194]https://github.com/getsentry/objectstore/pull/194

## 0.0.9

### New Features

- Introduce new API by @lcian in [#190]https://github.com/getsentry/objectstore/pull/190

## 0.0.8

- No documented changes.

## 0.0.7

### New Features

- Add missing PUT `key` to the Rust client, replace `anyhow` with… by @Swatinem in [#191]https://github.com/getsentry/objectstore/pull/191

## 0.0.6

- No documented changes.

## 0.0.5

- No documented changes.

## 0.0.4

- No documented changes.

## 0.0.3

- No documented changes.

## 0.0.1

This is the first release of the Objectstore client SDKs.