diff --git a/.gitignore b/.gitignore index edaf5a591..b48b527ef 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,4 @@ loc.sh todo.sh vendor.tar.* *.patch - +orca/example_profiles/small/orca-edited.toml diff --git a/Cargo.lock b/Cargo.lock index 4a49bf3ff..c2fe6462d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -517,9 +517,9 @@ checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" [[package]] name = "bundy" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e7d51b542bdd93155cae5c48156f17bb64c10cb7dcf8124bce13ca66fd4a107" +checksum = "d70ddb99e1c5a8308abe085b80c9ca05b41577aa73a2f431a5fec6837b5aa054" dependencies = [ "base64 0.13.0", "log", @@ -638,28 +638,17 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "clicolors-control" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e" -dependencies = [ - "atty", - "lazy_static", - "libc", - "winapi", -] - [[package]] name = "concread" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c874e11ba0c799d6d586ee8b0c5ad0f7444c0b8ec4e50c351a4f6417ae5bfb26" +checksum = "b976d09b0160d0e2fd016551933080082a4072d4bacb105dfb55859bc0d1ce0e" dependencies = [ "ahash", "crossbeam", "crossbeam-epoch", "crossbeam-utils", + "lru", "packed_simd_2", "parking_lot", "rand 0.8.4", @@ -678,17 +667,15 @@ dependencies = [ [[package]] name = "console" -version = "0.10.3" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586208b33573b7f76ccfbe5adb076394c88deaf81b84d7213969805b0a952a7" +checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" dependencies = [ - "clicolors-control", "encode_unicode", "lazy_static", "libc", "regex", "terminal_size", - "termios", "unicode-width", "winapi", ] @@ -1026,13 +1013,14 @@ dependencies = [ [[package]] name = "dialoguer" -version = "0.5.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b5eb0fce3c4f955b8d8d864b131fb8863959138da962026c106ba7a2e3bf7a" +checksum = "c9dd058f8b65922819fabb4a41e7d1964e56344042c26efbccd465202c23fa0c" dependencies = [ "console", "lazy_static", "tempfile", + "zeroize", ] [[package]] @@ -1103,9 +1091,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime", @@ -1461,9 +1449,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472" +checksum = "6c06815895acec637cd6ed6e9662c935b866d20a106f8361892893a7d9234964" dependencies = [ "bytes", "fnv", @@ -1552,9 +1540,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ "bytes", "fnv", @@ -1708,9 +1696,9 @@ checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" [[package]] name = "instant" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" +checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" dependencies = [ "cfg-if 1.0.0", ] @@ -1777,7 +1765,7 @@ dependencies = [ [[package]] name = "kanidm" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "async-h1", "async-std", @@ -1843,7 +1831,7 @@ dependencies = [ [[package]] name = "kanidm_client" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "async-std", "base64 0.13.0", @@ -1867,7 +1855,7 @@ dependencies = [ [[package]] name = "kanidm_proto" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "base32", "serde", @@ -1881,7 +1869,7 @@ dependencies = [ [[package]] name = "kanidm_tools" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "bundy", "dialoguer", @@ -1904,7 +1892,7 @@ dependencies = [ [[package]] name = "kanidm_unix_int" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "async-std", "bytes", @@ -1934,7 +1922,7 @@ dependencies = [ [[package]] name = "kanidmd_web_ui" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "anyhow", "js-sys", @@ -1978,9 +1966,9 @@ dependencies = [ [[package]] name = "ldap3_server" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beb05c22d6cb1792389efb3e71ed90af6148b6f26d283db67322d356ab2556d" +checksum = "9912cf5b569f4f6f348fec65c0c2c94b441cb739f74efbd0014ac491f4bac9bb" dependencies = [ "bytes", "lber", @@ -2002,9 +1990,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.102" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "libm" @@ -2098,9 +2086,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "mathru" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4c11f3fbdfe75b7ae7dedf62c583a5fd3b2ead296f6d26982dd7eee782281dc" +checksum = "96be916ede2f17d7fc5057c951462ea7afc83882e898d6bcc9dba3ac4062ec48" dependencies = [ "rand 0.8.4", ] @@ -2207,7 +2195,7 @@ dependencies = [ [[package]] name = "nss_kanidm" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "kanidm_unix_int", "lazy_static", @@ -2319,9 +2307,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.66" +version = "0.9.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" +checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058" dependencies = [ "autocfg", "cc", @@ -2332,7 +2320,7 @@ dependencies = [ [[package]] name = "orca" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "async-std", "crossbeam", @@ -2370,7 +2358,7 @@ dependencies = [ [[package]] name = "pam_kanidm" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" dependencies = [ "kanidm_unix_int", "libc", @@ -2478,9 +2466,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "plotters" @@ -3166,9 +3154,9 @@ checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" [[package]] name = "smallvec" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" dependencies = [ "serde", ] @@ -3327,9 +3315,9 @@ checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08" [[package]] name = "syn" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" dependencies = [ "proc-macro2", "quote", @@ -3387,15 +3375,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "termios" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" -dependencies = [ - "libc", -] - [[package]] name = "textwrap" version = "0.11.0" @@ -3534,9 +3513,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5241dd6f21443a3606b432718b166d3cedc962fd4b8bea54a8bc7f514ebda986" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -3549,9 +3528,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce" +checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" dependencies = [ "autocfg", "bytes", @@ -3569,9 +3548,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" +checksum = "154794c8f499c2619acd19e839294703e9e32e7630ef5f46ea80d4ef0fbee5eb" dependencies = [ "proc-macro2", "quote", @@ -3975,9 +3954,9 @@ dependencies = [ [[package]] name = "webauthn-authenticator-rs" -version = "0.3.0-alpha.10" +version = "0.3.0-alpha.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3998c77a06a258ac1408ac7fbeb8f6be6d8dcf073ea4b2ae2d647db675c3c7e9" +checksum = "4f063838be0c0c15eda578c788f31ff2c14831358931b37983df5c9feb5f50f2" dependencies = [ "authenticator", "log", @@ -3991,9 +3970,9 @@ dependencies = [ [[package]] name = "webauthn-rs" -version = "0.3.0-alpha.10" +version = "0.3.0-alpha.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18010e64d5f6286eab221881ed6237a3a1f0aa420e78fb6faa48843c7dd93da1" +checksum = "2f0d5ca4abfa92dc6288971feafaa7e341b9ec10b76febaea03db0fc1b58a21d" dependencies = [ "base64 0.13.0", "js-sys", @@ -4172,18 +4151,18 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd" +checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" +checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" dependencies = [ "proc-macro2", "quote", diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index d00108317..8dad275b3 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -16,6 +16,35 @@ can help. If you find a bug or issue, we'd love you to report it to our # Release Notes +## 2021-10-01 - Kanidm 1.1.0-alpha6 + +This is the sixth alpha series release of the Kanidm Identity Management +project. Alpha releases are to help get feedback and ideas from the community +on how we can continue to make this project better for a future supported release. + +It's also a special release as Kanidm has just turned 3 years old! Thank you all +for helping to bring the project this far! 🎉 🦀 + +### Release Highlights + +* Support backup codes as MFA in case of lost TOTP/Webauthn +* Dynamic menus on CLI for usernames when multiple sessions exist +* Dynamic menus on CLI for auth factors when choices exist +* Better handle missing resources for web ui elements at server startup +* Add WAL checkpointing to improve disk usage +* Oauth2 user interface flows for simple authorisation scenarioes +* Improve entry memory usage based on valueset rewrite +* Allow online backups to be scheduled and taken +* Reliability improvements for unixd components with missing sockets +* Error message improvements for humans +* Improve client address logging for auditing +* Add strict HTTP resource headers for incoming/outgoing requests +* Replace rustls with openssl for HTTPS endpoint +* Remove auditscope in favour of the new tracing logging subsystem +* Reduce server memory usage with entry tracking improvements +* Improvements to performance with high cache sizes +* Session tokens persist over a session restart + ## 2021-07-07 - Kanidm 1.1.0-alpha5 This is the fifth alpha series release of the Kanidm Identity Management diff --git a/kanidm_client/Cargo.toml b/kanidm_client/Cargo.toml index 1e07bcb9b..2847b538a 100644 --- a/kanidm_client/Cargo.toml +++ b/kanidm_client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kanidm_client" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" license = "MPL-2.0" @@ -11,7 +11,7 @@ repository = "https://github.com/kanidm/kanidm/" [dependencies] log = "0.4" -env_logger = "0.8" +env_logger = "0.9" reqwest = { version = "0.11", features=["cookies", "json", "native-tls"] } kanidm_proto = { path = "../kanidm_proto", version = "1.1.0-alpha" } serde = "1.0" diff --git a/kanidm_proto/Cargo.toml b/kanidm_proto/Cargo.toml index fa7895c42..71152a660 100644 --- a/kanidm_proto/Cargo.toml +++ b/kanidm_proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kanidm_proto" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" license = "MPL-2.0" diff --git a/kanidm_tools/Cargo.toml b/kanidm_tools/Cargo.toml index 4217dafd5..cdc4fa6e4 100644 --- a/kanidm_tools/Cargo.toml +++ b/kanidm_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kanidm_tools" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" default-run = "kanidm" @@ -34,7 +34,7 @@ rpassword = "5.0" structopt = { version = "0.3", default-features = false } libc = "0.2" log = "0.4" -env_logger = "0.8" +env_logger = "0.9" serde = "1.0" serde_json = "1.0" shellexpand = "2.0" @@ -45,7 +45,7 @@ bundy = "0.1" zxcvbn = "2.0" -dialoguer = "0.5.1" +dialoguer = "0.8" webauthn-authenticator-rs = "^0.3.0-alpha.9" # webauthn-authenticator-rs = { path = "../../webauthn-authenticator-rs/" } diff --git a/kanidm_tools/src/cli/session.rs b/kanidm_tools/src/cli/session.rs index 901c17d52..96ea02c39 100644 --- a/kanidm_tools/src/cli/session.rs +++ b/kanidm_tools/src/cli/session.rs @@ -118,7 +118,7 @@ pub fn write_tokens(tokens: &BTreeMap) -> Result<(), ()> { fn get_index_choice_dialoguer(msg: &str, options: &Vec) -> usize { let user_select = Select::with_theme(&ColorfulTheme::default()) - .with_prompt(&msg) + .with_prompt(msg) .default(0) .items(&options) .interact(); diff --git a/kanidm_unix_int/Cargo.toml b/kanidm_unix_int/Cargo.toml index 5d1e420a3..00ea103d5 100644 --- a/kanidm_unix_int/Cargo.toml +++ b/kanidm_unix_int/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kanidm_unix_int" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" license = "MPL-2.0" @@ -55,7 +55,7 @@ bytes = "1.0" libc = "0.2" log = "0.4" -env_logger = "0.8" +env_logger = "0.9" serde = "1.0" serde_derive = "1.0" serde_cbor = "0.11" diff --git a/kanidm_unix_int/nss_kanidm/Cargo.toml b/kanidm_unix_int/nss_kanidm/Cargo.toml index 5b3f84338..59f8279f5 100644 --- a/kanidm_unix_int/nss_kanidm/Cargo.toml +++ b/kanidm_unix_int/nss_kanidm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nss_kanidm" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" diff --git a/kanidm_unix_int/pam_kanidm/Cargo.toml b/kanidm_unix_int/pam_kanidm/Cargo.toml index 236eb4cee..54a61f382 100644 --- a/kanidm_unix_int/pam_kanidm/Cargo.toml +++ b/kanidm_unix_int/pam_kanidm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pam_kanidm" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" diff --git a/kanidmd/Cargo.toml b/kanidmd/Cargo.toml index 0cb105d4b..24b39fcdd 100644 --- a/kanidmd/Cargo.toml +++ b/kanidmd/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kanidm" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" license = "MPL-2.0" @@ -34,7 +34,7 @@ bundy = "^0.1.1" async-std = { version = "1.6", features = ["tokio1"] } log = "0.4" -env_logger = "0.8" +env_logger = "0.9" rand = "0.8" toml = "0.5" diff --git a/kanidmd_web_ui/Cargo.toml b/kanidmd_web_ui/Cargo.toml index 88353428b..4a2480111 100644 --- a/kanidmd_web_ui/Cargo.toml +++ b/kanidmd_web_ui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kanidmd_web_ui" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" license = "MPL-2.0" diff --git a/orca/Cargo.toml b/orca/Cargo.toml index 250d19d37..1cb16587a 100644 --- a/orca/Cargo.toml +++ b/orca/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "orca" -version = "1.1.0-alpha.5" +version = "1.1.0-alpha.6" authors = ["William Brown "] edition = "2018" license = "MPL-2.0" @@ -25,7 +25,7 @@ serde_json = "1.0" serde_derive = "1.0" log = "0.4" -env_logger = "0.8" +env_logger = "0.9" rand = "0.8" toml = "0.5" @@ -44,5 +44,5 @@ ldap3_server = "^0.1.7" crossbeam = "0.8" async-std = { version = "1.6", features = ["tokio1"] } -mathru = "0.9" +mathru = "0.10" diff --git a/project_docs/RELEASE_CHECKLIST.md b/project_docs/RELEASE_CHECKLIST.md index fe662d905..db2e10d8f 100644 --- a/project_docs/RELEASE_CHECKLIST.md +++ b/project_docs/RELEASE_CHECKLIST.md @@ -14,7 +14,7 @@ * Update RELEASE_NOTES.md -* cargo release --no-dev-version --skip-push --skip-publish --skip-tag 1.1.0-alpha.4 +* cargo release --no-dev-version --skip-push --skip-publish --skip-tag 1.1.0-alpha.X * git rebase -i HEAD~X * git tag v1.1.0-alpha.x