fabro/crates/arc-api/Cargo.toml
Bryan Helmkamp eb15b5254c Simplify mTLS implementation after code review
- Replace boolean params (mtls_enabled, mtls_optional) with ClientAuth enum
- Move serve_tls from serve.rs into tls module (encapsulate TLS internals)
- Derive client auth mode from AuthMode (eliminate duplicate strategy checks)
- Build JWT Validation once at startup, store in AuthStrategy (not per-request)
- Add tilde expansion for TLS cert paths (~/.arc/certs/...)
- Remove wasted String allocations from try_jwt/try_mtls return values
- Remove duplicate rustls dev-dependency from Cargo.toml
- Integration tests reuse tls::serve_tls instead of duplicating accept loop

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 17:43:14 -05:00

50 lines
1.3 KiB
TOML

[package]
name = "arc-api"
edition.workspace = true
version.workspace = true
license.workspace = true
description = "HTTP API server for Arc pipelines"
[lib]
doctest = false
[dependencies]
arc-workflows = { path = "../arc-workflows" }
arc-agent = { path = "../arc-agent" }
arc-llm = { path = "../arc-llm" }
arc-util = { path = "../arc-util" }
arc-db = { path = "../arc-db" }
arc-types = { path = "../arc-types" }
axum = "0.8"
dirs.workspace = true
sqlx.workspace = true
tower = "0.5"
tokio-stream = { workspace = true, features = ["sync"] }
base64.workspace = true
jsonwebtoken.workspace = true
tokio.workspace = true
tokio-rustls = "0.26"
rustls = { version = "0.23", default-features = false, features = ["std", "ring"] }
rustls-pemfile = "2"
rustls-pki-types = "1"
hyper = "1"
hyper-util = { version = "0.1", features = ["tokio", "server-auto", "http1", "http2"] }
tower-service = "0.3"
x509-parser = "0.16"
serde.workspace = true
serde_json.workspace = true
anyhow.workspace = true
clap.workspace = true
toml.workspace = true
tracing.workspace = true
ulid.workspace = true
uuid.workspace = true
[dev-dependencies]
tokio = { workspace = true, features = ["test-util", "macros"] }
tower = "0.5"
http-body-util = "0.1"
tempfile = "3"
openapiv3 = "2"
serde_yaml = "0.9"
reqwest = { workspace = true }