From 29cd86f0e48a25df3940482daee807810e46462e Mon Sep 17 00:00:00 2001 From: Justin Ko Date: Sun, 28 Jun 2026 10:36:02 +0900 Subject: [PATCH] =?UTF-8?q?docs(dcy-010):=20confirm-req-implemented=20?= =?UTF-8?q?=E2=80=94=20REQ-047=20Implemented=20(BAT-021=20PR#18=20?= =?UTF-8?q?=EC=8B=A4DB=EA=B2=80=EC=A6=9D),=20bat-021=20release-candidate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5 --- .../index.md | 7 +++- ...-credentials-daemon-scoped-pk-migration.md | 36 ++++++++++++++++++- docs/srs/index.md | 4 +-- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/docs/batches/bat-021_20260628_req047-step2-integration-and-runbook/index.md b/docs/batches/bat-021_20260628_req047-step2-integration-and-runbook/index.md index 4d64e40..213cade 100644 --- a/docs/batches/bat-021_20260628_req047-step2-integration-and-runbook/index.md +++ b/docs/batches/bat-021_20260628_req047-step2-integration-and-runbook/index.md @@ -1,7 +1,7 @@ # BAT-021 Index - Profile: standard -- Status: in-progress +- Status: release-candidate - Included REQ: REQ-047 - Discovery: dcy-010 - Created: 2026-06-28 @@ -20,6 +20,11 @@ BAT-020(PR #17, d4acfd4)에서 Step1/Step2 마이그레이션 revision 코드가 4. 운영 적용 런북 작성 5. 신규/갱신 단위 테스트 추가 +## Notes + +- PR #18 머지(mergeCommit 7164f9e), 실 dev PG 통합검증 AC-1~7 PASS, QC(opus) PASS-WITH-NOTES(blocker 0). REQ-047 confirm-req-implemented 완료. +- **Step2(PK 전환) 실 운영 DB 적용은 별도 release 결재 게이트 잔여.** 런북: `docs/runbooks/bat-021-req047-step2-migration-runbook.md`, 배포순서 Step1→backfill→Step2→코드배포 엄수, alembic stamp 사전확인. + ## Documents - [planning.md](./planning.md) diff --git a/docs/srs/Migration/req-047_broker-credentials-daemon-scoped-pk-migration.md b/docs/srs/Migration/req-047_broker-credentials-daemon-scoped-pk-migration.md index 3e73700..4b2e6d5 100644 --- a/docs/srs/Migration/req-047_broker-credentials-daemon-scoped-pk-migration.md +++ b/docs/srs/Migration/req-047_broker-credentials-daemon-scoped-pk-migration.md @@ -1,6 +1,6 @@ # REQ-047: broker_credentials 테이블 daemon-scoped PK 전환 마이그레이션 -- Status: Approved +- Status: Implemented - Type: Migration - Priority: High - Owner: Justin Ko @@ -123,3 +123,37 @@ #### Validation Plan - 사장님 결재 → Step1 실DB 적용 → REQ-048 백필 → Step2 실DB 적용 → AC-1~7 전건 real-DB evidence 확보 후 Implemented 전환. + +### CHG-20260628-04 +- Date: 2026-06-28 +- Author: 팀장(Claude) +- confirm-req-implemented: `Approved` → `Implemented`. + +#### Change Summary +- BAT-021 PR #18 머지(mergeCommit 7164f9e) — ensure_schema() broker_credentials 최종 daemon-scoped 스키마 갱신, _row_to_broker_credential 컬럼순서 정정, upsert ON CONFLICT (user_id,broker) → (daemon_id,broker) 수정, daemon 폴백 트랜잭션 abort 이슈(fallback 제거) 코드가 포함됨. +- 실 dev PostgreSQL 통합검증: Step1 → backfill → Step2 → downgrade 순서 전건 실행, AC-1~7 PASS. +- QC(opus) PASS-WITH-NOTES(blocker 0) 확인됨. + +#### Intent +- Implemented 전환. AC-3/4/5(Step2 PK 전환 적용 후 schema) real-DB evidence 확보 완료. +- **주의**: Implemented는 코드 + dev DB 통합검증 완료 기준. **Step2(PK 전환) 실 운영 DB 적용은 별도 release 결재 게이트**(런북 `docs/runbooks/bat-021-req047-step2-migration-runbook.md`, 배포순서 Step1→backfill→Step2→코드배포 엄수, alembic stamp 사전확인). 운영 적용 시 AC-3/4/5 실운영 evidence 재확보. + +#### Acceptance Criteria Delta +- Added: 없음 +- Updated: 없음 +- Removed: 없음 + +#### Impacted Area Delta +- 없음 (상태 전환 기록) + +#### Delivery Trace Delta +- Batches: BAT-021 (PR #18, mergeCommit 7164f9e) — 동반 코드 수정 + 통합검증 완료 +- Releases: 미정 (Step2 실 운영 DB 적용은 사장님 결재 후) + +#### Revalidation Impact +- Reverification Needed: no (dev DB AC-1~7 전건 PASS, 운영 적용 시 재확보 별도 필요) +- Existing Implementation Invalidated: no +- Status Recommendation: Implemented + +#### Validation Plan +- BAT-021 verification.md의 AC-1~7 전건 real-DB evidence 참조. 운영 적용 시 런북 절차 준수. diff --git a/docs/srs/index.md b/docs/srs/index.md index 39e6a7a..bf6208c 100644 --- a/docs/srs/index.md +++ b/docs/srs/index.md @@ -127,7 +127,7 @@ | REQ-044 | GET /v1/assets 권한 완화 — require_admin → require_read | Interface | Implemented | High | Justin Ko | [req-044](./Interface/req-044_get-v1-assets-require-read-relaxation.md) | | REQ-045 | 사용자 가용 데몬 목록 read 엔드포인트 신설 | Interface | Implemented | High | Justin Ko | [req-045](./Interface/req-045_user-daemon-list-endpoint.md) | | REQ-046 | BrokerCredential 도메인 모델 daemon_id 필드 추가 | Data | Implemented | High | Justin Ko | [req-046](./Data/req-046_broker-credential-daemon-id-field.md) | -| REQ-047 | broker_credentials 테이블 daemon-scoped PK 전환 마이그레이션 | Migration | Approved | High | Justin Ko | [req-047](./Migration/req-047_broker-credentials-daemon-scoped-pk-migration.md) | +| REQ-047 | broker_credentials 테이블 daemon-scoped PK 전환 마이그레이션 | Migration | Implemented | High | Justin Ko | [req-047](./Migration/req-047_broker-credentials-daemon-scoped-pk-migration.md) | | REQ-048 | 기존 user-scoped 인증정보 daemon_id 백필 | Migration | Implemented | High | Justin Ko | [req-048](./Migration/req-048_broker-credentials-daemon-id-backfill.md) | | REQ-049 | GET /v1/user_info daemon-scoped 단일 broker 전달로 확장 | Interface | Implemented | High | Justin Ko | [req-049](./Interface/req-049_user-info-daemon-scoped-broker-delivery.md) | | REQ-050 | credential CLI --daemon-id 옵션 추가 | Interface | Implemented | High | Justin Ko | [req-050](./Interface/req-050_credential-cli-daemon-id-option.md) | @@ -135,8 +135,8 @@ ## Recent Change Log Summary +- 2026-06-28: REQ-047 `Approved` → `Implemented` (confirm-req-implemented) — BAT-021 PR #18 머지(7164f9e), 실 dev PG 통합검증 AC-1~7 PASS(Step1→backfill→Step2→downgrade), QC PASS-WITH-NOTES(blocker 0). **Step2(PK 전환) 실 운영 DB 적용은 별도 release 결재 게이트**(런북 `docs/runbooks/bat-021-req047-step2-migration-runbook.md` 엄수, 배포순서 Step1→backfill→Step2→코드배포, alembic stamp 사전확인). 운영 적용 시 AC-3/4/5 실운영 evidence 재확보. - 2026-06-28: REQ-046/048/049/050/051 `Approved` → `Implemented` (confirm-req-implemented) — BAT-020 PR #17 머지(d4acfd4), QC PASS-WITH-NOTES(blocker 0), 테스트 통과. REQ-047은 실 운영 DB 적용·실 PostgreSQL 통합검증이 비가역 사장님 결재 게이트 미완 → Approved 유지. AC-3/4/5(Step2 적용 후 schema) real-DB evidence 대기. 결재·적용 시 TODO: ensure_schema()·upsert ON CONFLICT를 (daemon_id,broker)로 갱신. - 2026-06-28: REQ-046~051 `Proposed` → `Approved` (confirm-req 팀장 승인) — dcy-010 daemon-scoped broker credential. 전건 dcy-010 FR/NFR 추적·AC testable·blocker 0 확인. 단계적 마이그레이션(REQ-047 Step1/2)·**REQ-047 Step2 PK 전환은 비가역 결재 게이트**·2데몬 격리(REQ-049 AC-4/5)·보안 격리(REQ-051) 반영. 비차단 design 위임 2건(REQ-048 구현방식, REQ-050 slug/UUID·과도기 정책). - 2026-06-27: REQ-025 name 검증 완화(CHG-20260627-03) — `_PORTFOLIO_NAME_RE` 한글(가-힣)+공백 허용(`^[a-zA-Z0-9가-힣 ._:\-]{1,100}$`). minor-change. 기존 AC 유지, 테스트 3개 추가. - 2026-06-27: REQ-044/045 `Approved` → `Implemented` — BAT-019 PR #16 main 머지(`7f15c6b`) QC PASS. 472 passed/0 failed. REQ-045 env토큰(user_id=None) 처리 Notes 정정: "HTTP 403" → "빈 목록 [] HTTP 200"(change-req CHG-20260627-02). -- 2026-06-27: REQ-044/045 신규 (Proposed) — dcy-009 FR-1(GET /v1/assets require_read 완화)·FR-2(사용자 가용 데몬 목록 엔드포인트 신설) REQ 초안 작성. 엔드포인트 경로·스키마(OQ-2) 및 가용 데몬 의미(OQ-3)는 design Deferred.