BAT-006 (REQ-016/017/018): - client token 발급 경로 제거 (issue_client_token, POST /auth/tokens, 관련 스키마/테스트) - service-token rotate unique index revoked_at IS NULL 조건 추가 (Alembic CONCURRENTLY 마이그레이션) - POST /auth/service-tokens body daemon_id forward 누락 보정 (1-line fix) BAT-007 (REQ-022/023): - daemon deactivate 시 바인딩 service token 자동 revoke (CLI --force 옵션 + revoke_tokens_by_daemon_id) - NULL daemon_id legacy token 진단 CLI (migrate-null-daemon --dry-run) 거버넌스 문서: dcy-003/004 Discovery, REQ-016~023/025~032 신규, BAT-006/007 전체 산출물 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
BAT-007 Verification
- Status: release-candidate
- Batch: BAT-007
Acceptance Mapping
-
REQ-022:
- AC-1: active daemon + 바인딩 service token 1개 이상 →
--deactivate --force→ 모든 바인딩 token revoked + daemon is_active=false →test_deactivate_daemon_revokes_bound_tokens/test_deactivate_daemon_revokes_multiple_bound_tokensPASSED - AC-2: revoke된 token 인증 거부 — 기존 token 인증 테스트(
test_daemon_registry.py)에서revoked_at is not None확인; v1 API 401 경로는 PostgreSQL 통합 테스트에서 별도 검증 예정 - AC-3: 바인딩 token 0건 daemon → deactivate → no-op →
test_deactivate_daemon_with_no_tokens_is_noopPASSED - AC-4: reactivate 후 revoke된 token 자동 복구 없음 →
test_reactivate_daemon_does_not_unrevoke_tokensPASSED - AC-5: in-flight 거래 보호 없음 — 테스트 불요 (release SOP 참조)
- AC-1: active daemon + 바인딩 service token 1개 이상 →
-
REQ-023:
- AC-1: NULL daemon token 있을 때 dry-run → id/user_id/name 출력 →
test_migrate_null_daemon_dry_run_shows_inventoryPASSED - AC-2: NULL daemon token 0건 → "no NULL daemon tokens found." + exit 0 →
test_migrate_null_daemon_dry_run_no_tokens_prints_empty_messagePASSED - AC-3:
--dry-run없이 실행 → exit non-zero + 수동 안내 →test_migrate_null_daemon_without_dry_run_exits_nonzeroPASSED - AC-4: rebind 후 해당 token inventory 제외 →
test_migrate_null_daemon_after_rebind_token_excluded_from_inventoryPASSED - AC-5: revoke 후 해당 token inventory 제외 →
test_migrate_null_daemon_after_revoke_token_excluded_from_inventoryPASSED
- AC-1: NULL daemon token 있을 때 dry-run → id/user_id/name 출력 →
Evidence
- Test:
tests/test_daemon_registry.py 19 passed (REQ-022: 5 new + 14 pre-existing) tests/test_null_daemon_migration.py 6 passed (REQ-023: AC-1~5 + candidate daemon) Total BAT-007 scope: 25 passed, 0 failed - Full regression:
.venv/bin/python -m pytest -q 266 passed in 7.86s - Manual: CLI dry-run 동작 코드 경로 검토 완료;
create_app(repository_factory=...)패턴 기반 CLI 통합 테스트로 실 CLI 경로 커버 확인 - Logs: 없음 (DB 불필요 단위/CLI 테스트)
Result
- Ready for Release: true
- Blocking Issues: 없음