trustee-api 0.2.3

REST + WebSocket API server for Trustee agent
Documentation
[package]
name = "trustee-api"
version = "0.2.3"
edition = "2021"
description = "REST + WebSocket API server for Trustee agent"
license = "MIT OR Apache-2.0"
authors = ["Podtan Team"]
keywords = ["api", "server", "agent"]
categories = ["command-line-utilities", "web-programming"]

[dependencies]
# Core shared types and workflow logic
trustee-core = { version = "0.2.3", path = "../trustee-core" }
# Embedded web frontend
trustee-web = { version = "0.1.9", path = "../trustee-web" }
# Web framework (rustls for static Pi/ARM builds)
axum = { version = "0.8", features = ["ws"] }
axum-extra = { version = "0.10", features = ["cookie"] }
tokio = { version = "1.0", features = ["full"] }
tokio-stream = { version = "0.1", features = ["net"] }
tower-http = { version = "0.7", features = ["cors"] }
tower = "0.5"
hyper = "1.0"
hyper-util = { version = "0.1", features = ["server-auto", "tokio"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# TLS — rustls with ring crypto provider (no aws-lc-rs, for static Pi/ARM builds)
rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "tls12", "std"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "logging", "tls12"] }
rcgen = { version = "0.14", default-features = false, features = ["pem", "ring"] }
rustls-pemfile = "2.2"
# Error handling
anyhow = "1.0"
# MIME type detection for static files
mime_guess = "2"
# Stream utilities for WebSocket split
futures = "0.3"
# OIDC auth (resource server: JWT validation + optional login flow)
pep = { version = "0.4.5", features = ["oidc", "axum", "config", "token-provider"] }
# HTTP client for OAuth code exchange (rustls)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-webpki-roots"] }
# URL parsing
url = "2"
# Cookie encoding for auth
time = "0.3"
# URL encoding for error redirects
urlencoding = "2.1"
# TOML parsing for config
toml = "0.8"
# Logging
tracing = "0.1"
tracing-subscriber = "0.3"
# UUID generation for agent identity
uuid = { version = "1", features = ["v4"] }
# DateTime for registration timestamps
chrono = "0.4"
# Base64 for JWT payload decoding (MCP session token injection)
base64 = "0.22"