key-cape/src
tegwick f7dd51b8d2
All checks were successful
Build and Publish Container Image / build-and-push (push) Successful in 31s
Make the LLDAP export report its own completeness
The exporter discovered groups by walking each user's memberships, so a group
nobody belongs to never reached the snapshot, and a failed lookup was skipped by
a `continue` under a comment claiming it was recorded in the incompatibility
report. The run then emitted `result: "success"`.

Add an optional `domain.GroupLister` capability and implement `ListGroups` on
the LLDAP adapter as a direct group-subtree search, kept off `UserRepository`
because the OIDC layer never enumerates the directory. Record `groupEnumeration`
on every result and a `Complete()` predicate over it; abort rather than write a
smaller snapshot when the enumeration fails; report a failed per-user lookup on
the fallback path; emit `partial` telemetry and name the mode from the CLI.

Reading the adapter to write this surfaced a defect the assessment had not
listed: `LookupGroups` never populated `Group.Members`, and the exporter built
every membership from that field, so against a real directory the `memberships`
block was always empty while the fixture-backed tests passed. Memberships on the
fallback path now come from the user/group pair actually observed.

Sort users, groups and memberships so an unchanged directory exports
identically. Closes G05 of the scope/intent assessment.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012WAsfsfQmDu4vcBhiMcmQp

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 867844@bnt-lap001
Assistant-Session: 3d45905e-0016-4b49-b828-231406881f7b
2026-09-07 08:45:50 +02:00
..
cmd Make the LLDAP export report its own completeness 2026-09-07 08:45:50 +02:00
internal Make the LLDAP export report its own completeness 2026-09-07 08:45:50 +02:00
tests Harden the authorization-code grant and UserInfo verification 2026-09-06 22:43:47 +02:00
go.mod feat: implement T14, T10 — enforcement middleware, LLDAP adapter 2026-03-13 01:45:21 +01:00
go.sum feat: implement T14, T10 — enforcement middleware, LLDAP adapter 2026-03-13 01:45:21 +01:00
Makefile feat: implement T01-T04 — Go module, canonical model, LDAP validator, error taxonomy 2026-03-13 01:27:54 +01:00