本卡屬 FR-166(母卡 CM-母卡號(建完補)),卡 P4-1,階段 P4 LDAP 與收尾、批 7。只改 evidence-agent。依賴:P0-1、P1-3、P2-8a。
Agent 接客戶 AD 三選一:跟主系統同步、這台自己設、不接;名單仍由主系統決定,AD 只驗密碼。
三種來源、登入分支、Nuitka 打包;要測名單外 AD 密碼對也拒
extend:登入分支加在 P1-3 的 local_auth.py;設定表單用 P2-8a 的 secret_form.py;指紋存既有 local_credentials
repo:~/Projects/Billows/Audit-Manager/evidence-agent
改既有:core/console/local_auth.py
改既有:scripts/build/build_agent_release.sh
改既有:pyproject.toml(加 jedi-ldap)
新開:core/ldap_source.py
細節在 design.md 對應段(~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-166-2610-agent-standalone-console/design.md §5,開 design.html 看導覽),本段只列本卡要做到的點:
pyproject.toml 加 jedi-ldap(path dependency 開發期);Nuitka --include-package=ldap3,jedi_ldap。core/ldap_source.py:synced(心跳 ldap_config 密文→用 credential_store key 轉存)/local(secret_form 表單,指紋存 local_credentials kind=ldap_fingerprint)/none。local_auth.py 加分支(design §5.1 ③):名單內先試 AD 密碼再試離線密碼;名單外 AD 對仍拒(突變:拿掉名單檢查要紅)。ldap_source。synced 模式收心跳設定後 AD 密碼登得進;名單外 AD 對仍 401;local 模式自設可連;none 退回離線密碼;Nuitka build 含 ldap3
對照雛形:~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-166-2610-agent-standalone-console/prototype/index.html(上方「跟著走」)。
docs/claude/domain-capabilities.md 與 FE docs/claude/frontend-overview.md §4。三擇一、預設不新增:reuse → extend 加參數 → 兩邊都確認沒有才新增。既有的是 stub/壞掉 → 修它或回報,不另寫繞過。回寫列出本卡 reuse 了哪些、新增了哪些、為什麼不能 reuse。