Files
portfolio-hub/docs/batches/bat-005_20260503_broker-credential-cli/verification.md
T
genichin 222c66bb7f feat(BAT-005): add broker credential CLI command with persistence and tests
- Add CredentialService for managing broker credentials
- Implement credential CLI commands (create, list, get, update, delete)
- Add postgres repository support for credential operations
- Add comprehensive test coverage for credential CLI
- Update docs/batches/index.md and docs/srs/index.md with BAT-005
- Update docs/project-structure.md to reflect credential service
2026-05-03 12:44:40 +00:00

2.4 KiB

BAT-005 Verification

  • Status: passed
  • Batch: BAT-005
  • Profile: batch-lite
  • Verified: 2026-05-03

REQ Coverage

REQ-015: CLI credential 명령 그룹 구현 (브로커 인증 정보 관리)

AC # 기준 검증 방법 결과
AC-1 alice 사용자 + 유효 enc key → credential set 실행 시 broker_credentials 레코드 생성(upsert) test_cli_credential_set_creates_record ✅ passed
AC-2 credential list 출력에 broker, account_ref, credential_version 포함 / encrypted_payload 미포함 test_cli_credential_list_hides_payload ✅ passed
AC-3 존재하지 않는 username → exit code 1 + 에러 메시지 test_cli_credential_set_with_unknown_user_exits_error ✅ passed
AC-4 credential remove --force 후 list에서 사라짐 test_cli_credential_remove_deletes_record ✅ passed
AC-5 CREDENTIAL_ENCRYPTION_KEY 미설정 → exit code 1 + 에러 메시지 포함 test_cli_credential_set_requires_encryption_key ✅ passed

Test Evidence

실행 명령

python -m pytest tests/test_cli.py -q

결과

49 passed in 1.49s
  • 신규 테스트 5개 모두 passed
  • 기존 테스트 44개 regression 없음

신규 테스트 목록

테스트 AC
test_cli_credential_set_creates_record AC-1
test_cli_credential_list_hides_payload AC-2
test_cli_credential_set_with_unknown_user_exits_error AC-3
test_cli_credential_remove_deletes_record AC-4
test_cli_credential_set_requires_encryption_key AC-5

Implementation Summary

파일 변경 내용
app/cli/commands/credential.py 신규 생성 — credential_app, set/list/remove 명령
app/cli/main.py credential_app import 및 app.add_typer(credential_app, name="credential") 등록
app/repositories/postgres.py delete_broker_credential(user_id, broker) -> bool 메서드 추가
tests/test_cli.py FakeRepo.upsert/list/get/delete_broker_credential, 신규 테스트 5개 추가
docs/project-structure.md CLI 명령 그룹 목록에 credential 추가

Baseline Document Sync

  • docs/project-structure.md: app/cli/ 섹션에 credential 명령 그룹 추가 완료
  • 구조/런타임 흐름/인터페이스 계약 변경 없음 → runtime-flows.md, interface-contract.md 갱신 불필요

Residual Risk

  • 없음