mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-10-13 07:46:15 -08:00
This PR refactors EasyTier's configuration flags system across protobuf definitions, TOML/API persistence, runtime reconciliation, and the CLI. It introduces a synthesized FlagsPatch protobuf message with optionize and pbjson support to track field presence reliably, replaces manual CLI flag boilerplate with dynamic schema-driven clap argument generation, and establishes Flags::resolve(patch) as the single source of truth for runtime defaults. Co-authored-by: Claude Code <noreply@anthropic.com>
107 lines
3.2 KiB
TOML
107 lines
3.2 KiB
TOML
[package]
|
|
name = "easytier-web"
|
|
version = "2.7.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
description = "Config server for easytier. easytier-core gets config from this and web frontend use it as restful api server."
|
|
|
|
[dependencies]
|
|
optionize.workspace = true
|
|
easytier = { workspace = true, default-features = true }
|
|
easytier-core = { workspace = true, default-features = true }
|
|
tracing.workspace = true
|
|
anyhow.workspace = true
|
|
thiserror.workspace = true
|
|
tokio = { workspace = true, default-features = true, features = ["full"] }
|
|
tokio-util = { workspace = true, features = ["rt"] }
|
|
dashmap.workspace = true
|
|
url.workspace = true
|
|
async-trait.workspace = true
|
|
futures = { workspace = true, features = ["default"] }
|
|
prost.workspace = true
|
|
|
|
maxminddb = "0.32"
|
|
|
|
axum = { workspace = true, features = ["macros"] }
|
|
axum-login = { version = "0.18" }
|
|
password-auth = { version = "1.0.0" }
|
|
axum-messages = "0.8.0"
|
|
axum-embed = { version = "0.1.0", optional = true }
|
|
tower-sessions-sqlx-store = { version = "0.15.0", features = ["sqlite"] }
|
|
# Match axum-login 0.18 and the SQLx session store.
|
|
tower-sessions = { version = "0.14.0", default-features = false, features = [
|
|
"signed",
|
|
"axum-core",
|
|
] }
|
|
tower-http = { workspace = true, features = ["cors", "compression-full"] }
|
|
sqlx = { workspace = true, features = ["sqlite"] }
|
|
sea-orm = { workspace = true, features = [
|
|
"sqlx-sqlite",
|
|
"runtime-tokio-rustls",
|
|
"macros",
|
|
] }
|
|
sea-orm-migration.workspace = true
|
|
|
|
|
|
# for captcha
|
|
rust-embed = { version = "8.12.0", features = ["debug-embed", "include-exclude"] }
|
|
base64.workspace = true
|
|
cidr.workspace = true
|
|
rand.workspace = true
|
|
sha2.workspace = true
|
|
x25519-dalek = { workspace = true, features = ["static_secrets"] }
|
|
easytier-proto.workspace = true
|
|
image = { version = "0.25", default-features = false, features = ["png"] }
|
|
ab_glyph = "0.2.32"
|
|
imageproc = { version = "0.27.0", default-features = false, features = ["text"] }
|
|
|
|
|
|
rust-i18n.workspace = true
|
|
sys-locale.workspace = true
|
|
clap = { workspace = true, features = [
|
|
"string",
|
|
"unicode",
|
|
"derive",
|
|
"wrap_help",
|
|
"env",
|
|
] }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
uuid = { workspace = true, features = [
|
|
"v4",
|
|
"fast-rng",
|
|
"macro-diagnostics",
|
|
"serde",
|
|
] }
|
|
|
|
chrono = { workspace = true, features = ["serde"] }
|
|
# Keep the bundled reqwest 0.12 client disabled; use the official 0.13 adapter.
|
|
openidconnect = { version = "4.0", default-features = false, features = ["accept-rfc3339-timestamps"] }
|
|
# Pin the adapter until its API stabilizes.
|
|
oauth2-reqwest = "=0.1.0-alpha.3"
|
|
# Reuse EasyTier's ring provider. reqwest 0.13's rustls feature adds aws-lc,
|
|
# making rustls backend selection ambiguous when core/web are built together.
|
|
# Initialize the process provider before constructing a reqwest client.
|
|
reqwest = { workspace = true, features = ["json", "rustls-no-provider"] }
|
|
subtle = "2.6"
|
|
|
|
mimalloc.workspace = true
|
|
|
|
[build-dependencies]
|
|
thunk-rs = { workspace = true, features = [
|
|
"win7",
|
|
] }
|
|
|
|
[features]
|
|
default = []
|
|
embed = ["dep:axum-embed"]
|
|
|
|
[package.metadata.cargo-machete]
|
|
ignored = [
|
|
# Windows-only build.rs setup calls thunk::thunk().
|
|
"thunk-rs",
|
|
]
|
|
|
|
[dev-dependencies]
|
|
tower = { version = "0.5", features = ["util"] }
|