Add an admin-only LDAP configuration UI with an enable toggle and full
sign-in integration.
Backend:
- ldapSettings model + migration (single-row config)
- GET/PUT/test routes under /ldap (admin-gated; bind password masked)
- shared ldapClient with RFC 4515 filter escaping and empty-password guard
- signin tries local auth first, then LDAP when enabled (find-or-create
local user) so the bootstrap admin is never locked out
Frontend:
- LDAP settings page (Switch + form + test connection) under /admin/ldap
- AdminNav tabs between user management and LDAP
- ldapControl util, types, and Ldap i18n namespace for all 6 locales
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Allow testers to attach evidence files to a single test case within a
specific test run, proving the test was actually executed. Attachments
are scoped to the RunCase (per-execution), not the shared case definition.
Backend:
- runCaseAttachments join table + model (CASCADE on runCase/attachment)
- POST/GET /runcaseattachments routes (reuse /attachments download+delete)
Frontend:
- new "Test record" tab in the run case detail pane with drag-and-drop
upload, scoped to reporters; i18n for all 6 locales
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>