You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- OpenLDAP directories without UUID-valued attributes could not be used,
because identities were forced through UUID validation. Attribute mode
accepts a stable value such as uid, or the entry dn, as the subject.
- dn subjects are stored in canonical RFC 4514 form and resolved with a
base-scope read confined to the configured user or group base.
- The default uuid mode and Active Directory (always objectGUID) are
unchanged; AD rejects attribute mode at config validation.
- Administrator-supplied group subjects are normalized by the directory
service instead of being assumed to be UUIDs.
- Upgrading resets LDAP session freshness once, since the setting is part
of the configuration revision.
- Bump version to 1.6.2 across packages, lockfile, OpenAPI, Helm chart
appVersion, Dockerfile labels, health endpoint and UI header.
- Describe LDAP group subjects with a shared LdapGroupSubject schema in
OpenAPI instead of format: uuid, matching LDAP_IDENTITY_MODE=attribute.
- CHANGELOG: 1.6.2 entry with the one-time LDAP revalidation upgrade note.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
Attribute-mode identity collisions can grant mapped roles to users belonging only to another group because uniqueness is not checked across the configured group base.
Adds optional attribute-based LDAP identities for OpenLDAP, allowing stable attribute values or distinguished names instead of UUIDs. The PR also prepares Pabawi version 1.6.2.
Changes:
Adds identity-mode configuration, DN canonicalization, and scoped identity lookups.
Updates LDAP administration validation, documentation, and tests for non-UUID subjects.
Aligns package, container, API, and UI version metadata.
File
Description
package.json
Bumps root version to 1.6.2.
package-lock.json
Synchronizes root and workspace versions.
frontend/src/components/Navigation.svelte
Displays version 1.6.2.
frontend/package.json
Bumps frontend version.
docs/openapi.yaml
Documents flexible LDAP group subjects and updates API version.
docs/configuration.md
Explains identity modes and their security trade-offs.
Dockerfile.ubuntu
Updates image version label.
Dockerfile.alpine
Updates image version label.
Dockerfile
Updates core image version label.
charts/pabawi/Chart.yaml
Updates Helm application version.
CHANGELOG.md
Records LDAP support changes and upgrade behavior.
ubuntu-latest now resolves to Ubuntu 26.04, where Playwright 1.59.1 refuses
to install Chromium ("Playwright does not support chromium on
ubuntu26.04-x64"), failing the e2e and ldap-acceptance jobs before any test
ran. 1.64.1 ships ubuntu26.04-x64 support. Dev dependency only; release
images are unaffected.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- update-version.js also bumps package-lock.json project entries and
docs/openapi.yaml info.version, which 1.6.2 had to fix by hand.
- publish_version.sh refuses to tag unless every reference written by
update-version.js matches the root version and CHANGELOG.md has a
section for it; all mismatches are reported at once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
The sanitizer alters exact-match LDAP subjects, while DN canonicalization bypasses the 1024-byte limit, causing mapping failures or incorrect group resolution and producing subjects that diagnostics reject.
Sanitizer alters LDAP group subjects before route validation
backend/src/routes/ldapAdministration.ts:18
The global sanitizer (securityMiddleware.ts:145–146,248–251), installed before this router, trims strings and removes NULs from LDAP administration subjects. An attribute-mode subject such as Operators therefore becomes Operators, causing mapping creation to fail or resolve a different exact-match group, and diagnostics to reject the unchanged selection at line 128. Preserve groupSubject and groupSubjects values through the sanitizer while retaining route validation, and add HTTP regression coverage with that middleware installed.
Addresses review on #69:
- In attribute mode a non-DN group value (e.g. cn) need not be unique, so a
second group sharing a mapped value granted its roles to its own members.
Each matched mapped group is now resolved across the group base and must
be the only owner of that value at the visited DN.
- Canonical DN subjects now pass the common 1024-byte check; escaping can
grow a DN past the limit the administration API enforces.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reason will be displayed to describe this comment to others. Learn more.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.