# BAT-002: asset catalog API 완결 - Status: released - Profile: standard - Source Discovery: dcy-001 - Included REQ: REQ-010, REQ-012, REQ-013, REQ-015 - Excluded REQ: (없음 — dcy-001 잔여 4개 전부 포함) ## Summary - BAT-001에서 구축한 `assets` 테이블 및 `asset_id FK` 기반 위에 admin이 종목 catalog를 관리할 수 있는 CRUD API/CLI를 추가하고(REQ-010), portfolio 생성 시 catalog 검증을 도입하며(REQ-012), `GET /v1/assets` 엔드포인트를 service/user/admin 토큰 타입별 분기로 재정의한다(REQ-013). - 모든 구현이 완료된 후 baseline 문서(data-model, interface-contract, runtime-flows, project-structure)를 갱신한다(REQ-015). ## Scope - In Scope: - `pfhub asset create/list/update/deactivate` CLI 커맨드 신규 추가 (`app/cli/commands/asset.py`) - `POST /v1/assets`, `PATCH /v1/assets/{id}`, `PATCH /v1/assets/{id}/deactivate` admin 전용 HTTP API 신규 추가 - `GET /v1/assets` 토큰 타입별 분기 재작성 (service→daemon 필터, user→본인, admin→본인+?user_id) - `pfhub portfolio create` —`--symbol` 옵션 추가 + service layer asset catalog 존재/active 검증 - baseline 문서 4종 갱신 (REQ-015) - Out of Scope: - tags 관련 모든 변경 (→ dcy-002 batches) - portfolio 조회·수정·삭제 흐름의 catalog 검증 (→ 별도 REQ 필요) - `GET /v1/assets` 이외의 v1 엔드포인트 변경 ## Documents - Planning: [planning.md](./planning.md) - Design: [design.md](./design.md) - Implementation: [implementation.md](./implementation.md) - Verification: [verification.md](./verification.md) ## Notes - R-1(High): REQ-010과 REQ-013이 `app/api/v1_assets.py` 동일 파일 수정 — 구현 순서 엄수 (REQ-010 신규 엔드포인트 → REQ-013 list_assets 재작성) - BAT-001(verified) 완료가 선행 조건 — assets 테이블, asset CRUD postgres 구현, asset_id FK 모두 존재 확인됨