feat: initialize ERP base platform (extracted from HMS)
- Stripped 11 business crates (health, ai, dialysis, plugins) - Cleaned AppState, AppConfig, main.rs from business coupling - Reduced migrations from 169 to 53 (base-only) - Removed health_provider trait from erp-core - Removed business integration tests - Removed gateway rate limiting middleware - Base capabilities: auth, RBAC, JWT, config, workflow, message, plugin, audit, crypto, RLS, multi-tenant Cargo check: OK Cargo test: OK
This commit is contained in:
115
Cargo.toml
Normal file
115
Cargo.toml
Normal file
@@ -0,0 +1,115 @@
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"crates/erp-core",
|
||||
"crates/erp-server",
|
||||
"crates/erp-auth",
|
||||
"crates/erp-workflow",
|
||||
"crates/erp-message",
|
||||
"crates/erp-config",
|
||||
"crates/erp-server/migration",
|
||||
"crates/erp-plugin",
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
|
||||
[workspace.dependencies]
|
||||
# Async
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
|
||||
# Web
|
||||
axum = { version = "0.8", features = ["multipart"] }
|
||||
tower = "0.5"
|
||||
tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip", "fs", "set-header"] }
|
||||
|
||||
# Database
|
||||
sea-orm = { version = "1.1", features = [
|
||||
"sqlx-postgres", "runtime-tokio-rustls", "macros", "with-uuid", "with-chrono", "with-json"
|
||||
] }
|
||||
sea-orm-migration = { version = "1.1", features = ["sqlx-postgres", "runtime-tokio-rustls"] }
|
||||
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "uuid"] }
|
||||
|
||||
# Serialization
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
# UUID & Time
|
||||
uuid = { version = "1", features = ["v7", "serde"] }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
|
||||
# Error handling
|
||||
thiserror = "2"
|
||||
anyhow = "1"
|
||||
|
||||
# Logging
|
||||
tracing = "0.1"
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
||||
|
||||
# Config
|
||||
config = "0.14"
|
||||
|
||||
# Redis
|
||||
redis = { version = "0.27", features = ["tokio-comp", "connection-manager"] }
|
||||
|
||||
# JWT
|
||||
jsonwebtoken = "9"
|
||||
|
||||
# Password hashing
|
||||
argon2 = "0.5"
|
||||
|
||||
# Cryptographic hashing (token storage)
|
||||
sha2 = "0.10"
|
||||
|
||||
# API docs
|
||||
utoipa = { version = "5", features = ["axum_extras", "uuid", "chrono"] }
|
||||
# utoipa-swagger-ui 需要下载 GitHub 资源,网络受限时暂不使用
|
||||
# utoipa-swagger-ui = { version = "8", features = ["axum"] }
|
||||
|
||||
# Validation
|
||||
validator = { version = "0.19", features = ["derive"] }
|
||||
|
||||
# Async trait
|
||||
async-trait = "0.1"
|
||||
|
||||
# HTTP client
|
||||
reqwest = { version = "0.12", features = ["json", "stream"] }
|
||||
|
||||
# Crypto
|
||||
aes = "0.8"
|
||||
cbc = "0.1"
|
||||
hex = "0.4"
|
||||
regex-lite = "0.1"
|
||||
|
||||
# CSV and Excel export
|
||||
csv = "1"
|
||||
rust_xlsxwriter = "0.82"
|
||||
|
||||
# Internal crates
|
||||
erp-core = { path = "crates/erp-core" }
|
||||
erp-auth = { path = "crates/erp-auth" }
|
||||
erp-workflow = { path = "crates/erp-workflow" }
|
||||
erp-message = { path = "crates/erp-message" }
|
||||
erp-config = { path = "crates/erp-config" }
|
||||
erp-plugin = { path = "crates/erp-plugin" }
|
||||
|
||||
# Async streaming
|
||||
futures = "0.3"
|
||||
tokio-stream = "0.1"
|
||||
async-stream = "0.3"
|
||||
dashmap = "6"
|
||||
|
||||
# Template engine
|
||||
handlebars = "6"
|
||||
|
||||
# HTML sanitization
|
||||
ammonia = "4"
|
||||
|
||||
# Document parsing
|
||||
pdf-extract = "0.7"
|
||||
|
||||
# Metrics
|
||||
metrics = "0.24"
|
||||
metrics-exporter-prometheus = "0.16"
|
||||
Reference in New Issue
Block a user