Files
foxhunt/storage/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

79 lines
2.0 KiB
TOML

[package]
name = "storage"
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 = "Storage layer for Foxhunt HFT Trading System - S3, local file operations, and data archival"
[dependencies]
# Core async and utilities
tokio = { workspace = true, features = ["rt-multi-thread", "fs", "sync", "time"] }
tokio-util = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
uuid = { workspace = true }
# Serialization and time
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
bincode = { workspace = true }
# Compression and hashing
flate2 = "1.0"
sha2 = "0.10"
# Logging
tracing = { workspace = true }
# Collections and utilities
rustc-hash = { workspace = true }
indexmap = { workspace = true }
# AWS S3 SDK (optional)
aws-config = { version = "1.1", features = ["behavior-version-latest"], optional = true }
aws-sdk-s3 = { version = "1.15", features = ["behavior-version-latest"], optional = true }
aws-types = { version = "1.1", optional = true }
# Vault integration removed - use foxhunt-config crate instead
# File system operations
fs2 = { workspace = true }
tempfile = { workspace = true }
# Data structures and caching
dashmap = { workspace = true }
lru = "0.12"
parking_lot = "0.12"
# Configuration management
foxhunt-config = { path = "../crates/config" }
# Error handling and retry logic
backoff = "0.4"
[dev-dependencies]
# Testing
tokio-test = { workspace = true }
tempfile = { workspace = true }
serial_test = { workspace = true }
wiremock = { workspace = true }
[features]
default = ["s3"]
# S3 storage backend
s3 = ["aws-config", "aws-sdk-s3", "aws-types"]
# Local file operations only (no cloud dependencies)
local-only = []