Files
foxhunt/tli/Cargo.toml
jgrusewski 2e155a2ee0 🔐 CRITICAL SECURITY FIX: Vault access now ONLY through foxhunt-config
##  VAULT SECURITY ARCHITECTURE: FULLY COMPLIANT

### 🛡️ Security Violations Fixed:
- Removed ALL direct VaultClient usage from services
- ML Training Service: Replaced VaultClient with ConfigManager
- Storage S3: Now uses foxhunt-config for AWS credentials
- Deleted 6+ unauthorized Vault modules and scripts

### 🏛️ Architecture Enforcement:
- ONLY foxhunt-config crate accesses HashiCorp Vault
- ALL services use centralized ConfigLoader interface
- ZERO direct Vault client usage outside authorized abstraction
- Complete elimination of security architecture violations

### 📊 Audit Results:
- 0 VaultClient references in services
- 0 direct vault:: imports outside foxhunt-config
- 0 unauthorized Vault access patterns
- 100% compliance with single source of truth

### 🔧 Key Changes:
- storage/src/s3.rs: ConfigManager integration
- ml_training_service/src/main.rs: VaultClient removed
- ml_training_service/src/storage.rs: ConfigLoader usage
- ml_training_service/src/encryption.rs: Centralized keys

The system now enforces clean separation of concerns with controlled Vault access patterns. Production-ready security architecture achieved.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 10:26:08 +02:00

151 lines
3.2 KiB
TOML

[package]
name = "tli"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
publish.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Terminal Line Interface for Foxhunt HFT Trading System"
# TLI binary - client-only terminal interface
[[bin]]
name = "tli"
path = "src/main.rs"
[dependencies]
# gRPC and protocol buffers with TLS support
tonic = { workspace = true, features = ["tls", "tls-roots"] }
prost.workspace = true
prost-types.workspace = true
# Core async and serialization
tokio.workspace = true
serde.workspace = true
serde_json.workspace = true
futures.workspace = true
async-trait.workspace = true
# Networking and HTTP
hyper.workspace = true
hyper-util = "0.1"
http-body-util = "0.1"
tower.workspace = true
reqwest.workspace = true
axum = { version = "0.7", features = ["json"] }
tower-http.workspace = true
# Error handling and logging
anyhow.workspace = true
thiserror.workspace = true
tracing.workspace = true
# Additional utilities
uuid.workspace = true
chrono.workspace = true
bytes.workspace = true
async-stream = "0.3"
# Database and SQLite support
sqlx.workspace = true
# Environment configuration moved to build scripts where appropriate
# Encryption and security
ring = "0.17"
base64 = "0.22"
sha2 = "0.10"
zeroize = { version = "1.7", features = ["derive"] }
constant_time_eq = "0.3"
argon2 = "0.5"
rand = "0.8"
hex = "0.4"
# Regular expressions for validation
regex = "1.10"
# Environment variables
env_logger = "0.11"
# Removed Vault integration - use foxhunt-config crate instead
# Additional security dependencies
urlencoding = "2.1"
# Terminal UI and widgets
ratatui = "0.28"
crossterm = "0.27"
color-eyre = "0.6"
# Workspace dependencies
foxhunt-core.workspace = true
foxhunt-config = { path = "../crates/config" }
# data.workspace = true # Temporarily disabled due to compilation issues
# risk.workspace = true # Will add back after fixing dependencies
# ml.workspace = true # Will add back after fixing dependencies
# Service discovery and health checks
tonic-health.workspace = true
# Async streams
tokio-stream.workspace = true
# WebSocket support
tokio-tungstenite = "0.21"
futures-util = "0.3"
# Logging and tracing
tracing-subscriber.workspace = true
[build-dependencies]
tonic-build.workspace = true
prost-build.workspace = true
[dev-dependencies]
tokio-test.workspace = true
tempfile = "3.8"
wiremock.workspace = true
env_logger = "0.11"
# Property-based testing
proptest = "1.4"
# Performance benchmarking
criterion = { version = "0.5", features = ["html_reports"] }
# Additional testing utilities
mockall = "0.12"
async-trait = "0.1"
futures-util = "0.3"
once_cell = "1.19"
tracing-test = "0.2"
# HTTP testing for REST APIs
httpmock = "0.7"
# Test data generation
fake = { version = "2.9", features = ["derive", "chrono"] }
rand = "0.8"
[[bench]]
name = "configuration_benchmarks"
harness = false
[[bench]]
name = "client_performance"
harness = false
[[bench]]
name = "serialization_benchmarks"
harness = false
# Server binary removed - TLI is now client-only
[lints]
workspace = true