mirror of
https://github.com/kanidm/kanidm.git
synced 2025-05-11 11:33:54 +02:00
* Ignore tests that are no longer used. Each time a library or binary is added, that requires compilation to create the *empty* test harness, which then is executed and takes multiple seconds to start up, do nothing, and return success. This removes test's for libraries that aren't actually using or running any tests. Additionally, each time a new test binary is added, that adds a ton of compilation time, but also test execution time as the binary for each test runner must start up, execute, and shutdown. So this merges all the testkit integration tests to a single running which significantly speeds up test execution. * Improve IDL exists behaviour, improve memberof verification Again to improve test performance. This improves the validation of idx existance to be a faster SQLite call, caches the results as needed. Memberof was taking up a large amount of time in verify phases of test finalisation, and so a better in memory version has been added. * Disable TLS native roots when not needed * Cleanup tests that are hitting native certs, or do nothing at all
305 lines
8.5 KiB
TOML
305 lines
8.5 KiB
TOML
[workspace.package]
|
|
version = "1.6.0-dev"
|
|
authors = [
|
|
"William Brown <william@blackhats.net.au>",
|
|
"James Hodgkinson <james@terminaloutcomes.com>",
|
|
]
|
|
rust-version = "1.80"
|
|
edition = "2021"
|
|
license = "MPL-2.0"
|
|
homepage = "https://github.com/kanidm/kanidm/"
|
|
repository = "https://github.com/kanidm/kanidm/"
|
|
|
|
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"proto",
|
|
"tools/cli",
|
|
"tools/device_flow",
|
|
"tools/iam_migrations/freeipa",
|
|
"tools/iam_migrations/ldap",
|
|
"tools/orca",
|
|
"unix_integration/common",
|
|
"unix_integration/nss_kanidm",
|
|
"unix_integration/pam_kanidm",
|
|
"unix_integration/resolver",
|
|
"server/daemon",
|
|
"server/lib",
|
|
"server/lib-macros",
|
|
"server/core",
|
|
"server/testkit",
|
|
"server/testkit-macros",
|
|
"libs/client",
|
|
"libs/crypto",
|
|
"libs/file_permissions",
|
|
"libs/profiles",
|
|
"libs/scim_proto",
|
|
"libs/sketching",
|
|
"libs/users",
|
|
]
|
|
|
|
# Below follows some guides/estimates to system resources consumed during a build.
|
|
# Most of these values are over-estimates and are just rough observations.
|
|
#
|
|
# These were tested on a 10core M1 Max.
|
|
# Parallel Linking Maximum = an estimate of how much ram will be consumed at peak
|
|
# while the build is linking multiple binaries in parallel
|
|
# Single Largest Binary Maximum = an estamite of how much ram is conusmed by the
|
|
# single largest binary during linking. This would reflect a single threaded
|
|
# build ram maximum.
|
|
# Time = estimate on how long the build may take.
|
|
|
|
# cargo build --release
|
|
#
|
|
# Parallel Linking Maximum: 6GB
|
|
# Single Largest Binary Maximum: 5GB
|
|
# Time: ~6 minutes
|
|
[profile.release]
|
|
debug = true
|
|
strip = "none"
|
|
lto = "thin"
|
|
opt-level = 3
|
|
codegen-units = 32
|
|
|
|
[profile.release.build-override]
|
|
debug = false
|
|
opt-level = 0
|
|
codegen-units = 256
|
|
|
|
# cargo build --profile release-lto
|
|
#
|
|
# Parallel Linking Maximum: 24GB
|
|
# Single Largest Binary Maximum: 16GB
|
|
# Time: ~11 minutes
|
|
[profile.release-lto]
|
|
inherits = "release"
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
|
|
# cargo build
|
|
#
|
|
# Parallel Linking Maximum: 4GB
|
|
# Single Largest Binary Maximum: 3GB
|
|
# Time: ~2 minutes
|
|
#
|
|
# cargo test [-- --test-threads=1]
|
|
#
|
|
# Parallel Maximum: 1GB
|
|
# Single Maximum: 0.2GB
|
|
[profile.dev]
|
|
debug = true
|
|
lto = false
|
|
opt-level = 0
|
|
codegen-units = 256
|
|
|
|
[profile.dev.build-override]
|
|
debug = true
|
|
opt-level = 0
|
|
codegen-units = 256
|
|
|
|
[patch.crates-io]
|
|
## As Kanidm maintains a number of libraries, sometimes during development we need to override them
|
|
## with local or git versions. This patch table allows quick uncommenting to achieve that.
|
|
|
|
# compact_jwt = { path = "../compact_jwt" }
|
|
# concread = { path = "../concread" }
|
|
|
|
# idlset = { path = "../idlset" }
|
|
|
|
# ldap3_client = { path = "../ldap3/client" }
|
|
# ldap3_proto = { path = "../ldap3/proto" }
|
|
# ldap3_client = { git = "https://github.com/kanidm/ldap3.git" }
|
|
# ldap3_proto = { git = "https://github.com/kanidm/ldap3.git" }
|
|
|
|
# base64urlsafedata = { path = "../webauthn-rs/base64urlsafedata" }
|
|
# webauthn-authenticator-rs = { path = "../webauthn-rs/webauthn-authenticator-rs" }
|
|
# webauthn-rs = { path = "../webauthn-rs/webauthn-rs" }
|
|
# webauthn-rs-core = { path = "../webauthn-rs/webauthn-rs-core" }
|
|
# webauthn-rs-proto = { path = "../webauthn-rs/webauthn-rs-proto" }
|
|
# sshkey-attest = { path = "../webauthn-rs/sshkey-attest" }
|
|
|
|
# kanidm-hsm-crypto = { path = "../hsm-crypto" }
|
|
|
|
libnss = { git = "https://github.com/Firstyear/libnss-rs.git", branch = "20250207-freebsd" }
|
|
|
|
[workspace.dependencies]
|
|
kanidmd_core = { path = "./server/core", version = "=1.6.0-dev" }
|
|
kanidmd_lib = { path = "./server/lib", version = "=1.6.0-dev" }
|
|
kanidmd_lib_macros = { path = "./server/lib-macros", version = "=1.6.0-dev" }
|
|
kanidmd_testkit = { path = "./server/testkit", version = "=1.6.0-dev" }
|
|
kanidm_build_profiles = { path = "./libs/profiles", version = "=1.6.0-dev" }
|
|
kanidm_client = { path = "./libs/client", version = "=1.6.0-dev" }
|
|
kanidm-hsm-crypto = "^0.2.0"
|
|
kanidm_lib_crypto = { path = "./libs/crypto", version = "=1.6.0-dev" }
|
|
kanidm_lib_file_permissions = { path = "./libs/file_permissions", version = "=1.6.0-dev" }
|
|
kanidm_proto = { path = "./proto", version = "=1.6.0-dev" }
|
|
kanidm_unix_common = { path = "./unix_integration/common", version = "=1.6.0-dev" }
|
|
kanidm_utils_users = { path = "./libs/users", version = "=1.6.0-dev" }
|
|
scim_proto = { path = "./libs/scim_proto", version = "=1.6.0-dev" }
|
|
sketching = { path = "./libs/sketching", version = "=1.6.0-dev" }
|
|
|
|
anyhow = { version = "1.0.95" }
|
|
argon2 = { version = "0.5.3", features = ["alloc"] }
|
|
askama = { version = "0.12.1", features = ["serde", "with-axum"] }
|
|
askama_axum = { version = "0.4.0" }
|
|
async-trait = "^0.1.85"
|
|
axum = { version = "0.7.9", features = [
|
|
"form",
|
|
"json",
|
|
"macros",
|
|
"multipart",
|
|
"original-uri",
|
|
"query",
|
|
"tokio",
|
|
"tracing",
|
|
] }
|
|
axum-htmx = { version = "0.5.0", features = ["serde", "guards"] }
|
|
base32 = "^0.5.1"
|
|
base64 = "^0.22.1"
|
|
base64urlsafedata = "0.5.1"
|
|
bitflags = "^2.8.0"
|
|
bytes = "^1.9.0"
|
|
clap = { version = "^4.5.27", features = ["derive", "env"] }
|
|
clap_complete = "^4.5.42"
|
|
# Forced by saffron/cron
|
|
chrono = "^0.4.39"
|
|
compact_jwt = { version = "^0.4.2", default-features = false }
|
|
concread = "^0.5.3"
|
|
cron = "0.15.0"
|
|
crossbeam = "0.8.4"
|
|
csv = "1.3.1"
|
|
dialoguer = "0.11.0"
|
|
dhat = "0.3.3"
|
|
dyn-clone = "^1.0.17"
|
|
fernet = "^0.2.1"
|
|
filetime = "^0.2.24"
|
|
fs4 = "^0.12.0"
|
|
futures = "^0.3.31"
|
|
futures-util = { version = "^0.3.30", features = ["sink"] }
|
|
gix = { version = "0.64.0", default-features = false }
|
|
hashbrown = { version = "0.14.3", features = ["serde", "inline-more", "ahash"] }
|
|
hex = "^0.4.3"
|
|
http = "1.2.0"
|
|
hyper = { version = "1.5.1", features = [
|
|
"full",
|
|
] } # hyper full includes client/server/http2
|
|
hyper-util = { version = "0.1.10", features = ["server", "tokio"] }
|
|
idlset = "^0.2.5"
|
|
image = { version = "0.24.9", default-features = false, features = [
|
|
"gif",
|
|
"jpeg",
|
|
"webp",
|
|
] }
|
|
itertools = "0.13.0"
|
|
enum-iterator = "2.1.0"
|
|
kanidmd_web_ui_shared = { path = "./server/web_ui/shared" }
|
|
# REMOVE this
|
|
lazy_static = "^1.5.0"
|
|
ldap3_client = "^0.5.2"
|
|
ldap3_proto = { version = "^0.5.2", features = ["serde"] }
|
|
|
|
libc = "^0.2.168"
|
|
libnss = "^0.8.0"
|
|
libsqlite3-sys = "^0.25.2"
|
|
lodepng = "3.11.0"
|
|
lru = "^0.12.5"
|
|
mathru = "^0.13.0"
|
|
md-5 = "0.10.6"
|
|
mimalloc = "0.1.43"
|
|
notify-debouncer-full = { version = "0.1" }
|
|
num_enum = "^0.5.11"
|
|
oauth2_ext = { version = "^4.4.2", package = "oauth2", default-features = false }
|
|
openssl-sys = "^0.9"
|
|
openssl = "^0.10.70"
|
|
|
|
opentelemetry = { version = "0.27.0" }
|
|
opentelemetry_api = { version = "0.27.0", features = ["logs", "metrics"] }
|
|
opentelemetry-otlp = { version = "0.27.0", default-features = false, features = [
|
|
"serde",
|
|
"logs",
|
|
"metrics",
|
|
"http-proto",
|
|
"grpc-tonic",
|
|
] }
|
|
opentelemetry_sdk = { version = "0.27.0", features = ["rt-tokio"] }
|
|
opentelemetry-semantic-conventions = "0.27.0"
|
|
tracing-opentelemetry = "0.28.0"
|
|
tracing-core = "0.1.33"
|
|
|
|
peg = "0.8"
|
|
pkg-config = "^0.3.31"
|
|
prctl = "1.0.0"
|
|
proc-macro2 = "1.0.93"
|
|
qrcode = "^0.12.0"
|
|
quote = "1"
|
|
rand = "^0.8.5"
|
|
rand_chacha = "0.3.1"
|
|
regex = "1.11.0"
|
|
reqwest = { version = "0.12.12", default-features = false, features = [
|
|
"cookies",
|
|
"http2",
|
|
"json",
|
|
"gzip",
|
|
"rustls-tls-native-roots",
|
|
"rustls-tls-native-roots-no-provider",
|
|
] }
|
|
rusqlite = { version = "^0.28.0", features = ["array", "bundled"] }
|
|
rustls = { version = "0.23.21", default-features = false, features = [
|
|
"aws_lc_rs",
|
|
] }
|
|
|
|
sd-notify = "^0.4.5"
|
|
selinux = "^0.4.6"
|
|
serde = "^1.0.217"
|
|
serde_cbor = { version = "0.12.0-dev", package = "serde_cbor_2" }
|
|
serde_json = "^1.0.137"
|
|
serde_urlencoded = "^0.7.1"
|
|
serde_with = "3.12.0"
|
|
sha-crypt = "0.5.0"
|
|
sha2 = "0.10.8"
|
|
shellexpand = "^2.1.2"
|
|
smartstring = "^1.0.1"
|
|
smolset = "^1.3.1"
|
|
sshkey-attest = "^0.5.0"
|
|
sshkeys = "0.3.3"
|
|
svg = "0.13.1"
|
|
syn = { version = "2.0.96", features = ["full"] }
|
|
tempfile = "3.15.0"
|
|
testkit-macros = { path = "./server/testkit-macros" }
|
|
time = { version = "^0.3.36", features = ["formatting", "local-offset"] }
|
|
|
|
tokio = "^1.43.0"
|
|
tokio-openssl = "^0.6.5"
|
|
tokio-util = "^0.7.13"
|
|
|
|
toml = "^0.5.11"
|
|
tracing = { version = "^0.1.41", features = [
|
|
"max_level_trace",
|
|
"release_max_level_debug",
|
|
] }
|
|
tracing-subscriber = { version = "^0.3.19", features = ["env-filter"] }
|
|
tracing-forest = "^0.1.6"
|
|
|
|
url = "^2.5.2"
|
|
urlencoding = "2.1.3"
|
|
utoipa = { version = "4.2.0", features = ["url", "uuid"] }
|
|
utoipa-swagger-ui = "6.0.0"
|
|
uuid = "^1.12.1"
|
|
|
|
webauthn-authenticator-rs = { version = "0.5.1", features = [
|
|
"softpasskey",
|
|
"softtoken",
|
|
] }
|
|
webauthn-rs = { version = "0.5.1", features = ["preview-features"] }
|
|
webauthn-rs-core = "0.5.1"
|
|
webauthn-rs-proto = "0.5.1"
|
|
|
|
whoami = "^1.5.2"
|
|
walkdir = "2"
|
|
|
|
x509-cert = "0.2.5"
|
|
|
|
zxcvbn = "^2.2.2"
|
|
|
|
nonempty = "0.8.1"
|