## ✅ 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>
79 lines
2.0 KiB
TOML
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 = [] |