## ✅ 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>
151 lines
3.2 KiB
TOML
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
|