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
58 lines
1.3 KiB
TOML
58 lines
1.3 KiB
TOML
[package]
|
|
name = "common"
|
|
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 = "Shared utilities and common types for Foxhunt HFT Trading System"
|
|
|
|
[dependencies]
|
|
# Core async and utilities
|
|
tokio.workspace = true
|
|
futures.workspace = true
|
|
async-trait.workspace = true
|
|
|
|
# Serialization
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
|
|
# Error handling
|
|
thiserror.workspace = true
|
|
anyhow.workspace = true
|
|
|
|
# Time handling
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
|
|
# Financial types
|
|
rust_decimal = { workspace = true, features = ["serde", "macros"] }
|
|
|
|
# Database dependencies
|
|
sqlx = { workspace = true, features = ["runtime-tokio-rustls", "postgres", "chrono", "uuid"], optional = true }
|
|
redis.workspace = true
|
|
|
|
# Logging and tracing
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
# Configuration
|
|
config.workspace = true
|
|
toml.workspace = true
|
|
|
|
# Utilities
|
|
uuid = { workspace = true, features = ["v4", "serde"] }
|
|
once_cell.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tokio-test.workspace = true
|
|
tempfile.workspace = true
|
|
|
|
[features]
|
|
default = ["database"]
|
|
database = ["sqlx"] |