COMPLETED: ✅ Created 3 shared libraries: common, config (foxhunt-config), storage ✅ Config library: PostgreSQL hot-reload, Vault integration, unified ConfigManager ✅ Storage library: S3 with Vault credentials, model checkpoints, zero hardcoded keys ✅ Common library: Shared types, database connections, error handling ✅ Fixed TLI protobuf compilation issues (duplicate health_check, Aad types) ✅ Trading Service migrated to use centralized config SECURITY IMPROVEMENTS: 🔒 ALL AWS credentials now from Vault (no environment variables) 🔒 Circuit breaker patterns for external services 🔒 Secure error messages that don't leak credentials 🔒 Automatic credential refresh with 5-minute TTL ARCHITECTURE: - Single source of truth for configuration - Zero code duplication for common functionality - Hot-reload capability via PostgreSQL NOTIFY/LISTEN - Multi-tier storage with compression and lifecycle management - Type-safe configuration with comprehensive error handling Next: Complete service migrations to use shared libraries
67 lines
1.5 KiB
TOML
67 lines
1.5 KiB
TOML
[package]
|
|
name = "backtesting_service"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
description = "Standalone backtesting service for Foxhunt HFT trading system"
|
|
|
|
[[bin]]
|
|
name = "backtesting_service"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Core dependencies
|
|
tokio.workspace = true
|
|
tonic.workspace = true
|
|
prost.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
anyhow.workspace = true
|
|
thiserror.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
uuid.workspace = true
|
|
chrono.workspace = true
|
|
|
|
# Database and storage
|
|
sqlx.workspace = true
|
|
influxdb2.workspace = true
|
|
|
|
# Config and environment
|
|
config.workspace = true
|
|
dotenvy = "0.15"
|
|
|
|
# Strategy and trading components
|
|
adaptive-strategy = { path = "../../adaptive-strategy" }
|
|
foxhunt-core = { path = "../../core" }
|
|
risk = { path = "../../risk" }
|
|
data = { path = "../../data" }
|
|
common = { path = "../../common" }
|
|
storage = { path = "../../storage" }
|
|
foxhunt-config = { path = "../../crates/config" }
|
|
|
|
# Performance and utilities
|
|
num_cpus.workspace = true
|
|
rand.workspace = true
|
|
tokio-stream.workspace = true
|
|
async-stream = "0.3"
|
|
rayon.workspace = true
|
|
crossbeam.workspace = true
|
|
dashmap.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tokio-test.workspace = true
|
|
tempfile.workspace = true
|
|
serial_test.workspace = true
|
|
|
|
[build-dependencies]
|
|
tonic-build.workspace = true
|
|
|
|
[features]
|
|
default = ["postgres", "influxdb"]
|
|
postgres = ["sqlx/postgres"]
|
|
influxdb = []
|
|
standalone = []
|