14 Commits
Author SHA1 Message Date
Bertrand Gouny 89dbc0177c feat(ctl): validate LDIF files and directories without importing 2026-10-19 20:21:01 +02:00
Bertrand Gouny 553632f663 feat(ctl): hash passwords from files and stdin 2026-10-19 20:00:43 +02:00
Bertrand Gouny bb946e50eb feat: restart openldap when tls file contents change
Add an optional TLS watcher with content fingerprints to ignore duplicate
notifications and unchanged Kubernetes projections.

Use explicit paths under /run/container/tmp for runtime temporary files
and require baseimage 2.1.0. Cover TLS renewal and read-only /tmp.
2026-10-19 14:59:54 +02:00
Bertrand Gouny 946c017bfd feat(auditlog): add optional file-based auditing 2026-10-18 23:56:50 +02:00
Bertrand GounyandClaude Opus 5.5 e50450d74d fix(restore): roll back to the previous data when the restore fails
openldap-ctl restore --force deleted existing config and data before
loading the backup: a failing slapadd left OpenLDAP stopped with empty or
partial databases. Existing data is now moved to a hidden
.restore-previous directory in the same volume, removed when the restore
succeeds, and put back otherwise. OpenLDAP is restarted in both cases if
it was running. A leftover .restore-previous directory from an
interrupted restore blocks the next restore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 21:25:20 +02:00
Bertrand GounyandClaude Opus 5.5 8c6617e0d2 fix(backup): limit --clean to backup files and add --clean-prefix
openldap-ctl backup --clean removed every file older than N days in the
backup directory, including manual and pre-upgrade backups. It now only
removes backup files, and --clean-prefix limits it to backups starting
with a prefix.

Cron backups are named openldap-cron-<date>-<version> and cleaned with
--clean-prefix openldap-cron-.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:58:36 +02:00
Bertrand GounyandClaude Opus 5.5 52230d6cd7 feat: update to osixia/baseimage 2.0.0 and add integration tests
- Update the base image to osixia/baseimage:alpine-2.0.0 and build the
  CI/CD tool with osixia/dagger-build (Go 1.26.9).
- Add Dagger integration tests: default bootstrap, alternative schemas,
  all compatible modules and schemas with every bootstrap feature on a
  3-node replicated cluster with TLS required, backup/restore, simulated
  upgrade and upgrade from previous releases.
- Fix bootstrap failing with "Argument list too long" with large schemas:
  load them with LDIF include: lines, fail on missing schemas.
- Default OPENLDAP_BOOTSTRAP_PPOLICY_DEFAULT_CHECK_QUALITY to 1 so
  pwdMinLength is enforced.
- Align the CI workflow with osixia/container-baseimage and add Dependabot.
- Document available schemas and modules and their incompatibilities.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:37:20 +02:00
Bertrand GounyandClaude Opus 5.5 3bcc881afe fix(schema): restore significant trailing space in postfix-book.ldif
A stripped trailing space before a folded line merged
"caseExactIA5Match" and "SYNTAX" in mailStorageDirectory, making
slapadd reject the schema during bootstrap. Regenerated with
openldap-ctl schema2ldif.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:34:43 +02:00
Bertrand GounyandClaude Opus 5.5 c12bf321d2 chore: fix typos in log message and comment
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:16 +02:00
Bertrand GounyandClaude Opus 5.5 630af0d369 feat(ctl): print usage when schema2ldif has no arguments
Also fix a typo in the conversion error message.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:15 +02:00
Bertrand GounyandClaude Opus 5.5 e60f2c32d1 fix(ctl): check backup files before restoring
Verify that the backup files exist and are valid gzip archives before
stopping OpenLDAP or deleting existing data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:15 +02:00
Bertrand GounyandClaude Opus 5.5 52b2918ea8 fix(ctl): hash passwords with special characters correctly
The password was expanded before eval and parsed again as shell code,
so spaces, $ or ; changed the hashed value or ran extra commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:15 +02:00
Bertrand Gouny 7ce0c43309 feat: add Postfix Book schema and improve diagnostics
Add the Postfix Book schema in .schema and cn=config LDIF formats, document its incompatibility with virtualMail, and improve debug output and validation during schema conversion and file moves. Update the base image to osixia/baseimage:alpine-2.0.0-rc3 and document the changes for 2.6.15-beta.
2026-10-13 22:06:15 +02:00
Bertrand Gouny 5bd37272a7 feat: OpenLDAP v2.6.10 2026-10-07 21:50:54 +02:00