+20
CHANGELOG.md
+20
CHANGELOG.md
···
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.12.0] - 2025-09-17
11
+
### Added
12
+
- Unified `Auth` enum for authentication methods in `atproto-client` supporting None, DPoP, and AppPassword authentication
13
+
- `com.atproto.server.deleteSession` support in `atproto-client` with AppPassword authentication requirement
14
+
- `com.atproto.identity.resolveHandle` support in `atproto-client` for handle resolution
15
+
- OAuth client credentials token flow in `atproto-oauth-aip` for service-to-service authentication
16
+
- `session_exchange_with_options` function with optional `access_token_type` and `subject` parameters
17
+
- Documentation for all Auth enum variants and authentication methods
18
+
19
+
### Changed
20
+
- Updated all XRPC client methods to use the unified `Auth` enum pattern instead of optional DPoP parameters
21
+
- Made `refresh_token` field optional in `TokenResponse` structure as not all token responses include refresh tokens
22
+
- Refactored `session_exchange` to use `session_exchange_with_options` internally with backward compatibility
23
+
- Enhanced error handling with new `InvalidAuthMethod` error variant in client errors
24
+
25
+
### Fixed
26
+
- Removed unused imports and cleaned up code after Auth enum refactoring
27
+
- Fixed doctest failures from outdated function signatures
28
+
- Resolved compilation errors from type mismatches in error handling
29
+
10
30
## [0.11.3] - 2025-09-03
11
31
### Added
12
32
- OAuth scope types, parsing, and utilities for the `atproto-oauth` crate
+9
-9
Cargo.lock
+9
-9
Cargo.lock
···
107
107
108
108
[[package]]
109
109
name = "atproto-client"
110
-
version = "0.11.3"
110
+
version = "0.12.0"
111
111
dependencies = [
112
112
"anyhow",
113
113
"atproto-identity",
···
130
130
131
131
[[package]]
132
132
name = "atproto-identity"
133
-
version = "0.11.3"
133
+
version = "0.12.0"
134
134
dependencies = [
135
135
"anyhow",
136
136
"async-trait",
···
157
157
158
158
[[package]]
159
159
name = "atproto-jetstream"
160
-
version = "0.11.3"
160
+
version = "0.12.0"
161
161
dependencies = [
162
162
"anyhow",
163
163
"async-trait",
···
179
179
180
180
[[package]]
181
181
name = "atproto-oauth"
182
-
version = "0.11.3"
182
+
version = "0.12.0"
183
183
dependencies = [
184
184
"anyhow",
185
185
"async-trait",
···
211
211
212
212
[[package]]
213
213
name = "atproto-oauth-aip"
214
-
version = "0.11.3"
214
+
version = "0.12.0"
215
215
dependencies = [
216
216
"anyhow",
217
217
"atproto-identity",
···
226
226
227
227
[[package]]
228
228
name = "atproto-oauth-axum"
229
-
version = "0.11.3"
229
+
version = "0.12.0"
230
230
dependencies = [
231
231
"anyhow",
232
232
"async-trait",
···
255
255
256
256
[[package]]
257
257
name = "atproto-record"
258
-
version = "0.11.3"
258
+
version = "0.12.0"
259
259
dependencies = [
260
260
"anyhow",
261
261
"atproto-identity",
···
271
271
272
272
[[package]]
273
273
name = "atproto-xrpcs"
274
-
version = "0.11.3"
274
+
version = "0.12.0"
275
275
dependencies = [
276
276
"anyhow",
277
277
"async-trait",
···
297
297
298
298
[[package]]
299
299
name = "atproto-xrpcs-helloworld"
300
-
version = "0.11.3"
300
+
version = "0.12.0"
301
301
dependencies = [
302
302
"anyhow",
303
303
"async-trait",
+8
-8
Cargo.toml
+8
-8
Cargo.toml
···
22
22
categories = ["command-line-utilities", "web-programming"]
23
23
24
24
[workspace.dependencies]
25
-
atproto-client = { version = "0.11.3", path = "crates/atproto-client" }
26
-
atproto-identity = { version = "0.11.3", path = "crates/atproto-identity" }
27
-
atproto-oauth = { version = "0.11.3", path = "crates/atproto-oauth" }
28
-
atproto-oauth-axum = { version = "0.11.3", path = "crates/atproto-oauth-axum" }
29
-
atproto-oauth-aip = { version = "0.11.3", path = "crates/atproto-oauth-aip" }
30
-
atproto-record = { version = "0.11.3", path = "crates/atproto-record" }
31
-
atproto-xrpcs = { version = "0.11.3", path = "crates/atproto-xrpcs" }
32
-
atproto-jetstream = { version = "0.11.3", path = "crates/atproto-jetstream" }
25
+
atproto-client = { version = "0.12.0", path = "crates/atproto-client" }
26
+
atproto-identity = { version = "0.12.0", path = "crates/atproto-identity" }
27
+
atproto-oauth = { version = "0.12.0", path = "crates/atproto-oauth" }
28
+
atproto-oauth-axum = { version = "0.12.0", path = "crates/atproto-oauth-axum" }
29
+
atproto-oauth-aip = { version = "0.12.0", path = "crates/atproto-oauth-aip" }
30
+
atproto-record = { version = "0.12.0", path = "crates/atproto-record" }
31
+
atproto-xrpcs = { version = "0.12.0", path = "crates/atproto-xrpcs" }
32
+
atproto-jetstream = { version = "0.12.0", path = "crates/atproto-jetstream" }
33
33
34
34
anyhow = "1.0"
35
35
async-trait = "0.1.88"
+1
-1
Dockerfile
+1
-1
Dockerfile
···
66
66
LABEL org.opencontainers.image.description="AT Protocol identity management tools"
67
67
LABEL org.opencontainers.image.authors="Nick Gerakines <nick.gerakines@gmail.com>"
68
68
LABEL org.opencontainers.image.source="https://tangled.sh/@smokesignal.events/atproto-identity-rs"
69
-
LABEL org.opencontainers.image.version="0.11.3"
69
+
LABEL org.opencontainers.image.version="0.12.0"
70
70
LABEL org.opencontainers.image.licenses="MIT"
71
71
72
72
# Document available binaries
+5
-5
README.md
+5
-5
README.md
···
35
35
36
36
```toml
37
37
[dependencies]
38
-
atproto-identity = "0.11.3"
39
-
atproto-record = "0.11.3"
40
-
atproto-oauth = "0.11.3"
41
-
atproto-oauth-aip = "0.11.3"
42
-
atproto-client = "0.11.3"
38
+
atproto-identity = "0.12.0"
39
+
atproto-record = "0.12.0"
40
+
atproto-oauth = "0.12.0"
41
+
atproto-oauth-aip = "0.12.0"
42
+
atproto-client = "0.12.0"
43
43
# Add others as needed
44
44
```
45
45
+1
-1
crates/atproto-client/Cargo.toml
+1
-1
crates/atproto-client/Cargo.toml
+1
-1
crates/atproto-identity/Cargo.toml
+1
-1
crates/atproto-identity/Cargo.toml
···
1
1
[package]
2
2
name = "atproto-identity"
3
-
version = "0.11.3"
3
+
version = "0.12.0"
4
4
description = "AT Protocol identity management - DID resolution, handle resolution, and cryptographic operations"
5
5
readme = "README.md"
6
6
homepage = "https://tangled.sh/@smokesignal.events/atproto-identity-rs"
+1
-1
crates/atproto-jetstream/Cargo.toml
+1
-1
crates/atproto-jetstream/Cargo.toml
···
1
1
[package]
2
2
name = "atproto-jetstream"
3
-
version = "0.11.3"
3
+
version = "0.12.0"
4
4
description = "AT Protocol Jetstream event consumer library with WebSocket streaming and compression support"
5
5
readme = "README.md"
6
6
homepage = "https://tangled.sh/@smokesignal.events/atproto-identity-rs"
+1
-1
crates/atproto-oauth-aip/Cargo.toml
+1
-1
crates/atproto-oauth-aip/Cargo.toml
+1
-1
crates/atproto-oauth-axum/Cargo.toml
+1
-1
crates/atproto-oauth-axum/Cargo.toml
+1
-1
crates/atproto-oauth/Cargo.toml
+1
-1
crates/atproto-oauth/Cargo.toml
···
1
1
[package]
2
2
name = "atproto-oauth"
3
-
version = "0.11.3"
3
+
version = "0.12.0"
4
4
description = "OAuth workflow implementation for AT Protocol - PKCE, DPoP, and secure authentication flows"
5
5
readme = "README.md"
6
6
homepage = "https://tangled.sh/@smokesignal.events/atproto-identity-rs"
+1
-1
crates/atproto-record/Cargo.toml
+1
-1
crates/atproto-record/Cargo.toml
···
1
1
[package]
2
2
name = "atproto-record"
3
-
version = "0.11.3"
3
+
version = "0.12.0"
4
4
description = "AT Protocol record signature operations - cryptographic signing and verification for AT Protocol records"
5
5
readme = "README.md"
6
6
homepage = "https://tangled.sh/@smokesignal.events/atproto-identity-rs"
+1
-1
crates/atproto-xrpcs-helloworld/Cargo.toml
+1
-1
crates/atproto-xrpcs-helloworld/Cargo.toml