From 48a0a8d961f32bd8e3263b202053ce49a6c94781 Mon Sep 17 00:00:00 2001 From: Valentin Tolmer Date: Fri, 1 May 2026 00:37:11 +0200 Subject: [PATCH] release: v0.6.3 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 49 +++++++++++++++++++++++++++ Cargo.lock | 32 ++++++++--------- app/Cargo.toml | 2 +- crates/access-control/Cargo.toml | 2 +- crates/auth/Cargo.toml | 2 +- crates/domain-handlers/Cargo.toml | 2 +- crates/domain-model/Cargo.toml | 2 +- crates/domain/Cargo.toml | 2 +- crates/frontend-options/Cargo.toml | 2 +- crates/graphql-server/Cargo.toml | 2 +- crates/ldap/Cargo.toml | 2 +- crates/opaque-handler/Cargo.toml | 2 +- crates/sql-backend-handler/Cargo.toml | 2 +- crates/test-utils/Cargo.toml | 2 +- crates/validation/Cargo.toml | 2 +- migration-tool/Cargo.toml | 2 +- server/Cargo.toml | 2 +- set-password/Cargo.toml | 2 +- 18 files changed, 81 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cc1f83..528a929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,55 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.6.3] 2026-05-01 + +Small release, focused on LDAP compatibility, TLS maintenance, dependency upgrades and documentation/examples. + +### Added + + - LDAP schema definitions for `memberOf`, `modifyTimestamp` and `pwdChangedTime` + - Support for configuring the healthcheck listen addresses + - Usernames are now included in password recovery emails + +### Changed + + - JWT `exp` and `iat` claims are now serialized as NumericDate values to comply with RFC7519 + - Migrated to `rustls` 0.23 and centralized TLS handling + - The login form no longer enforces a password length limit + +### Fixed + + - `pwdChangedTime` is now emitted as LDAP GeneralizedTime instead of RFC3339 + - LDAP base-scope searches for non-existent entries now return `NoSuchObject` + - `cn` equality filters are now case insensitive + - The server now shuts down the database connection pool gracefully + - The bootstrap script now handles empty globs correctly + +### Security + + - Updated the LDAP dependency stack, including `ldap3_proto`, in response to + security advisory + [`GHSA-qcxq-75wr-5cm8`](https://github.com/kanidm/ldap3/security/advisories/GHSA-qcxq-75wr-5cm8), + where a specially crafted LDAP query could make the server use unbounded RAM + +### Cleanups + + - Split GraphQL queries and mutations into smaller modules + - Refactored configuration and user update logic + - Upgraded the Rust toolchain and shared dependencies + +### New services + + - Apache WebDAV + - Continuwuity + - Gerrit + - Gogs + - Open WebUI + - OpenCloud + - Pocket ID + - Semaphore + - TrueNAS + ## [0.6.2] 2025-07-21 Small release, focused on LDAP improvements and ongoing maintenance. diff --git a/Cargo.lock b/Cargo.lock index 8b2e754..8e989f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2634,7 +2634,7 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lldap" -version = "0.6.2" +version = "0.6.3" dependencies = [ "actix", "actix-files", @@ -2715,7 +2715,7 @@ dependencies = [ [[package]] name = "lldap_access_control" -version = "0.1.0" +version = "0.1.1" dependencies = [ "async-trait", "lldap_auth", @@ -2727,7 +2727,7 @@ dependencies = [ [[package]] name = "lldap_app" -version = "0.6.2" +version = "0.6.3" dependencies = [ "anyhow", "base64 0.22.1", @@ -2761,7 +2761,7 @@ dependencies = [ [[package]] name = "lldap_auth" -version = "0.6.0" +version = "0.6.3" dependencies = [ "chrono", "curve25519-dalek", @@ -2781,7 +2781,7 @@ dependencies = [ [[package]] name = "lldap_domain" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "base64 0.22.1", @@ -2802,7 +2802,7 @@ dependencies = [ [[package]] name = "lldap_domain_handlers" -version = "0.1.0" +version = "0.1.1" dependencies = [ "async-trait", "base64 0.22.1", @@ -2820,7 +2820,7 @@ dependencies = [ [[package]] name = "lldap_domain_model" -version = "0.1.0" +version = "0.1.1" dependencies = [ "base64 0.22.1", "bincode", @@ -2839,14 +2839,14 @@ dependencies = [ [[package]] name = "lldap_frontend_options" -version = "0.1.0" +version = "0.1.1" dependencies = [ "serde", ] [[package]] name = "lldap_graphql_server" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "chrono", @@ -2872,7 +2872,7 @@ dependencies = [ [[package]] name = "lldap_ldap" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "chrono", @@ -2896,7 +2896,7 @@ dependencies = [ [[package]] name = "lldap_migration_tool" -version = "0.4.2" +version = "0.4.3" dependencies = [ "anyhow", "base64 0.22.1", @@ -2913,7 +2913,7 @@ dependencies = [ [[package]] name = "lldap_opaque_handler" -version = "0.1.0" +version = "0.1.1" dependencies = [ "async-trait", "lldap_auth", @@ -2924,7 +2924,7 @@ dependencies = [ [[package]] name = "lldap_set_password" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap", @@ -2937,7 +2937,7 @@ dependencies = [ [[package]] name = "lldap_sql_backend_handler" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "async-trait", @@ -2970,7 +2970,7 @@ dependencies = [ [[package]] name = "lldap_test_utils" -version = "0.1.0" +version = "0.1.1" dependencies = [ "async-trait", "ldap3_proto", @@ -2986,7 +2986,7 @@ dependencies = [ [[package]] name = "lldap_validation" -version = "0.6.0" +version = "0.6.3" [[package]] name = "local-channel" diff --git a/app/Cargo.toml b/app/Cargo.toml index 3eccbd4..f99dc6f 100644 --- a/app/Cargo.toml +++ b/app/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_app" -version = "0.6.2" +version = "0.6.3" description = "Frontend for LLDAP" edition.workspace = true include = ["src/**/*", "queries/**/*", "Cargo.toml", "../schema.graphql"] diff --git a/crates/access-control/Cargo.toml b/crates/access-control/Cargo.toml index c33de33..9189be6 100644 --- a/crates/access-control/Cargo.toml +++ b/crates/access-control/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_access_control" -version = "0.1.0" +version = "0.1.1" description = "Access control wrappers for LLDAP" authors.workspace = true edition.workspace = true diff --git a/crates/auth/Cargo.toml b/crates/auth/Cargo.toml index c6f9cac..73d2715 100644 --- a/crates/auth/Cargo.toml +++ b/crates/auth/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_auth" -version = "0.6.0" +version = "0.6.3" description = "Authentication protocol for LLDAP" edition.workspace = true authors.workspace = true diff --git a/crates/domain-handlers/Cargo.toml b/crates/domain-handlers/Cargo.toml index 744224c..8f28876 100644 --- a/crates/domain-handlers/Cargo.toml +++ b/crates/domain-handlers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_domain_handlers" -version = "0.1.0" +version = "0.1.1" edition.workspace = true authors.workspace = true homepage.workspace = true diff --git a/crates/domain-model/Cargo.toml b/crates/domain-model/Cargo.toml index 642bc98..4f481a0 100644 --- a/crates/domain-model/Cargo.toml +++ b/crates/domain-model/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_domain_model" -version = "0.1.0" +version = "0.1.1" edition.workspace = true authors.workspace = true homepage.workspace = true diff --git a/crates/domain/Cargo.toml b/crates/domain/Cargo.toml index e8b8f54..ac62b43 100644 --- a/crates/domain/Cargo.toml +++ b/crates/domain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_domain" -version = "0.1.0" +version = "0.1.1" authors = [ "Valentin Tolmer ", "Simon Broeng Jensen ", diff --git a/crates/frontend-options/Cargo.toml b/crates/frontend-options/Cargo.toml index 6de55ee..ae8b403 100644 --- a/crates/frontend-options/Cargo.toml +++ b/crates/frontend-options/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_frontend_options" -version = "0.1.0" +version = "0.1.1" description = "Frontend options for LLDAP" authors.workspace = true edition.workspace = true diff --git a/crates/graphql-server/Cargo.toml b/crates/graphql-server/Cargo.toml index c048c8d..361e74d 100644 --- a/crates/graphql-server/Cargo.toml +++ b/crates/graphql-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_graphql_server" -version = "0.1.0" +version = "0.1.1" description = "GraphQL server for LLDAP" edition.workspace = true authors.workspace = true diff --git a/crates/ldap/Cargo.toml b/crates/ldap/Cargo.toml index 39c7531..df19a3f 100644 --- a/crates/ldap/Cargo.toml +++ b/crates/ldap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_ldap" -version = "0.1.0" +version = "0.1.1" description = "LDAP operations support" authors.workspace = true edition.workspace = true diff --git a/crates/opaque-handler/Cargo.toml b/crates/opaque-handler/Cargo.toml index a406a46..21eaea2 100644 --- a/crates/opaque-handler/Cargo.toml +++ b/crates/opaque-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_opaque_handler" -version = "0.1.0" +version = "0.1.1" description = "Opaque handler trait for LLDAP" authors.workspace = true edition.workspace = true diff --git a/crates/sql-backend-handler/Cargo.toml b/crates/sql-backend-handler/Cargo.toml index 5b9dde1..8791e46 100644 --- a/crates/sql-backend-handler/Cargo.toml +++ b/crates/sql-backend-handler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_sql_backend_handler" -version = "0.1.0" +version = "0.1.1" description = "SQL backend for LLDAP" authors.workspace = true edition.workspace = true diff --git a/crates/test-utils/Cargo.toml b/crates/test-utils/Cargo.toml index 711f1ea..1e849e5 100644 --- a/crates/test-utils/Cargo.toml +++ b/crates/test-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_test_utils" -version = "0.1.0" +version = "0.1.1" authors.workspace = true edition.workspace = true homepage.workspace = true diff --git a/crates/validation/Cargo.toml b/crates/validation/Cargo.toml index d2857ef..5ea2bcf 100644 --- a/crates/validation/Cargo.toml +++ b/crates/validation/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_validation" -version = "0.6.0" +version = "0.6.3" authors = ["Simon Broeng Jensen "] description = "Validation logic for LLDAP" edition.workspace = true diff --git a/migration-tool/Cargo.toml b/migration-tool/Cargo.toml index 24c3217..41c90d9 100644 --- a/migration-tool/Cargo.toml +++ b/migration-tool/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_migration_tool" -version = "0.4.2" +version = "0.4.3" description = "CLI migration tool to go from OpenLDAP to LLDAP" edition.workspace = true authors.workspace = true diff --git a/server/Cargo.toml b/server/Cargo.toml index e315dd9..0df8fa9 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap" -version = "0.6.2" +version = "0.6.3" description = "Super-simple and lightweight LDAP server" categories = ["authentication", "command-line-utilities"] edition.workspace = true diff --git a/set-password/Cargo.toml b/set-password/Cargo.toml index 7581741..023eeed 100644 --- a/set-password/Cargo.toml +++ b/set-password/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lldap_set_password" -version = "0.1.0" +version = "0.1.1" description = "CLI tool to set a user password in LLDAP" edition.workspace = true authors.workspace = true