Skip to content

Commit f676e59

Browse files
authored
Merge pull request #1010 from cipherstash/release/stack-crates-0-43-0
chore(release): stack-auth and stack-profile 0.43.0
2 parents 348f8b8 + 17a5df1 commit f676e59

14 files changed

Lines changed: 98 additions & 21 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@cipherstash/auth": patch
3+
---
4+
5+
The native binding is now built from the `stack-auth` 0.43.0 crate, so its
6+
requests identify themselves as `stack-auth/0.43.0` in the user agent. No API
7+
or behaviour change for `@cipherstash/auth` consumers.

‎.github/dependabot.yml‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,10 @@ updates:
233233
- minor
234234
- patch
235235
ignore:
236-
# Released from cipherstash-suite and pinned with exact `=` requirements
237-
# in the root Cargo.toml and the guests: stack-auth's API carries their
238-
# types, so they move in lockstep with the suite, by hand.
236+
# Released from cipherstash-suite: stack-auth's API carries their types,
237+
# so they move in lockstep with the suite, by hand. The guests pin them
238+
# with `=`; the root Cargo.toml pins recipher and cllw-ore with `=`, and
239+
# gives cts-common and zerokms-protocol caret requirements.
239240
- dependency-name: "cts-common"
240241
- dependency-name: "zerokms-protocol"
241242
- dependency-name: "recipher"

‎AGENTS.md‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -624,8 +624,11 @@ monorepo, which is where the silent failures are.
624624

625625
The stack-* crates came from `cipherstash/cipherstash-suite`, which still owns
626626
`cipherstash-client`, `cts-common`, `zerokms-protocol`, `recipher` and
627-
`cllw-ore`. Here those come from crates.io, pinned exactly in the root
628-
`Cargo.toml`.
627+
`cllw-ore`. Here those come from crates.io, and `Cargo.lock` holds their
628+
exact versions. In the root `Cargo.toml`, `recipher` and `cllw-ore` are
629+
pinned with `=`. `cts-common` and `zerokms-protocol` take caret
630+
requirements, because the published `stack-auth` inherits them, and an
631+
exact pin would stop the suite sharing one `cts-common` with it.
629632

630633
- **Three Cargo workspaces, not one.** The root workspace (the six stack-*
631634
crates and the three node binding crates), protect-ffi's and EQL's. The root

‎Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ incremental = true
6868
# but cannot subtract them, and `stack-kms` / `stack-encrypt` need stack-auth
6969
# without `http`. Consumers that want the default transport re-enable it with
7070
# `features = ["http"]`.
71-
stack-auth = { path = "./packages/stack-auth", version = "0.42.3", default-features = false }
72-
stack-profile = { path = "./packages/stack-profile", version = "0.42.3" }
71+
stack-auth = { path = "./packages/stack-auth", version = "0.43.0", default-features = false }
72+
stack-profile = { path = "./packages/stack-profile", version = "0.43.0" }
7373

7474
# Suite crates, from crates.io; Cargo.lock holds the exact versions.
7575
# cts-common and zerokms-protocol take caret requirements because the

‎languages/golang/stackauth/guest/Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎languages/golang/stackencrypt/guest/Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎packages/stack-auth/CHANGELOG.md‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,58 @@
11

2+
## [0.43.0] - 2026-10-02
3+
4+
5+
### ⚠ Breaking changes
6+
7+
- `RequestError`'s tuple payload is now `Box<dyn std::error::Error + Send + Sync + 'static>` instead of `reqwest::Error`. Construct it with `RequestError::from(reqwest_error)` (or box the error yourself) instead of `RequestError(reqwest_error)`, and recover the concrete error with `.0.downcast_ref::<reqwest::Error>()` instead of using `.0` as a `reqwest::Error` directly. `source()` is unchanged; the `Display` message is now "Request to the auth server failed" (it was "HTTP request failed").
8+
- `DeviceClientError::Request` now carries a `RequestError` rather than a `reqwest::Error`; a match on that variant's payload changes type.
9+
- `From<reqwest::Error> for AuthError` is removed. Every reqwest failure enters the crate through `ReqwestTransport` as a `RequestError`; a caller that lifted a `reqwest::Error` into `AuthError` directly should wrap it in `RequestError` (`AuthError::Request(RequestError(Box::new(e)))`) or, better, send through the transport.
10+
- Depends on `cts-common` 0.43 (vitaminc 0.5) and `zerokms-protocol` 0.12.31, from crates.io. `Crn` (re-exported here), `Region`, `WorkspaceId` and the `cts-common` errors in this crate's API are `cts-common` 0.43 types, so a caller that passes them in needs `cts-common` 0.43 too.
11+
12+
### CI
13+
14+
- mutation-testing gate for stack-auth and stack-encrypt (cargo-mutants --in-diff)
15+
16+
### Documentation
17+
18+
- correct stale StaticTokenStrategy comments in Cargo manifests
19+
20+
### Features
21+
22+
- build stack-auth, stack-kms and stack-encrypt for WASI without reqwest
23+
- classify credential rejections where the variants live
24+
- a workspace CRN is reachable without reaching for cts-common
25+
- an HTTP transport trait mirroring the guest's host import, reqwest behind `http`
26+
- add Go credential strategies
27+
28+
### Fixes
29+
30+
- address review findings on the http feature split
31+
- address Copilot review on error Display strings
32+
- test modules keep a literal `cfg(test)` so the CRAP gate skips them; add the npm changeset
33+
- the wire types print nothing secret, wipe their headers, and lend reqwest the body
34+
- satisfy credential guest CI
35+
- lock only device refresh
36+
- never replay a spent refresh token after a failed save
37+
- identify every auth request with a user-agent
38+
39+
### Miscellaneous
40+
41+
- per-crate rustdoc gates for the stack crates, fanned out by `doc`
42+
- move to cipherstash/stack with its history: the first release from that repository's `release-plz.yml`, in a version group with stack-profile alone
43+
44+
### Refactoring
45+
46+
- replace crate-wide no-http allow(dead_code) with item-level http gates
47+
48+
### Testing
49+
50+
- pin mutation regression behavior
51+
- cover remaining mutation paths
52+
- address PR review findings
53+
- keep browser launcher mutable
54+
- address review notes on assertion messages
55+
256
## [0.42.3] - 2026-08-26
357

458

‎packages/stack-auth/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "stack-auth"
33
description = "Authentication library for CipherStash services"
4-
version = "0.42.3"
4+
version = "0.43.0"
55
edition.workspace = true
66
authors.workspace = true
77
repository.workspace = true

‎packages/stack-auth/fuzz/Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)