Commit Graph
18 Commits
Author SHA1 Message Date
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 8660345710 fix(replication): quote syncrepl credentials and reject double quotes
The replication password was not quoted in olcSyncRepl: a password with
spaces made the bootstrap fail. The default sync repl template now quotes
credentials. slapd can not store an escaped double quote followed by a
space in olcSyncRepl, so passwords with double quotes are rejected with an
explicit error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 21:12:58 +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 Gouny d7c4500b2c docs: udate default values 2026-10-13 23:08:07 +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 97af2dbd7c fix(bootstrap): strip empty lines from every LDIF fragment
The first file of each prefix group was not stripped, so a trailing
empty line there split the entry completed by the following files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:15 +02:00
Bertrand GounyandClaude Opus 5.5 a65faa1611 fix(bootstrap): remove temporary files on exit
The RETURN traps overwrote each other and left the generated config
LDIF in /tmp. Use a single temporary directory removed by an EXIT trap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:15 +02:00
Bertrand GounyandClaude Opus 5.5 08e98c89c4 feat(bootstrap): validate suffix and replication hosts count
Fail with an explicit error when the suffix does not start with dc=
(the root entry was created with an empty dc) and when more than 9
replication hosts are set (the generated rid would exceed 999).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:06:15 +02:00
Bertrand GounyandClaude Opus 5.5 99633c18bc fix(bootstrap): let authenticated users read allowed attributes
Without access to the entry pseudo-attribute the ACL rule had no
effect. Also allow objectClass, ou, o and dc so searches and tree
browsing work.

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 GounyandClaude Opus 5.5 a762bda77d fix(upgrade): detect downgrades at minor and patch levels
version_lt kept the whole version as a single array element, so the
arithmetic comparison failed and the function always returned false.

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 c62c5f11da feat: OpenLDAP v2.6.15 2026-10-07 21:53:52 +02:00
Bertrand Gouny 5bd37272a7 feat: OpenLDAP v2.6.10 2026-10-07 21:50:54 +02:00