stack-auth 0.34.1-alpha.7

Authentication library for CipherStash services
Documentation
[package]
name = "stack-auth"
description = "Authentication library for CipherStash services"
version = "0.34.1-alpha.7"
edition.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
license-file = "LICENSE"

# `aquamarine` is only used by a `#[doc]` macro in a doctest. `cargo-udeps`
# cannot see into rustdoc, so it reports `aquamarine` as unused. Ignore it.
[package.metadata.cargo-udeps.ignore]
normal = ["aquamarine"]

[dependencies]
aquamarine = "0.6"
cts-common = { workspace = true }
miette = { workspace = true }
reqwest = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
url = { workspace = true }
uuid = { workspace = true }
vitaminc = { workspace = true, features = ["protected"] }
vitaminc-protected = { workspace = true }
web-time = { workspace = true }
zerokms-protocol = { workspace = true }
zeroize = { workspace = true }

# Native-only:
# - `stack-profile` is the filesystem-backed token store
# - `open` launches a browser for device-code auth
# - `jsonwebtoken` pulls `ring`, which doesn't compile on wasm32
# - `tokio` with `full` features pulls `mio` (network IO), which doesn't
#   compile on wasm32. Workspace dep is `features = ["full"]` so we can't
#   subtract — split target-conditionally instead.
#
# Wasm consumers use `OAuthStrategy::with_token` (in-memory) or
# `AccessKeyStrategy`, and JWT claim decoding falls back to a manual
# base64+JSON path that doesn't need `ring`.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
stack-profile = { workspace = true }
open = "5.3.2"
jsonwebtoken = { workspace = true }
tokio = { workspace = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
base64 = { workspace = true }
tokio = { version = "1.47.1", default-features = false, features = ["sync"] }

[features]
test-utils = []

[[example]]
name = "auto_strategy"

[[example]]
name = "device_code"
required-features = ["test-utils"]

[dev-dependencies]
axum = "0.8"
cts-common = { workspace = true }
mocktail = "0.3.0"
tempfile = "3.21.0"
tokio = { workspace = true, features = ["test-util"] }
tracing-subscriber = { workspace = true }