Release: REL-003_20260512 — CLI user scoping and local DB ops runbook Requirements & Batches: - BAT-003 (REQ-013): portfolio list --user required enforcement with owner filtering - BAT-004 (REQ-014): portfolio create --user required enforcement with owner assignment - BAT-007 (REQ-001/002/003): local DB validation runbook and baseline docs update CLI Enhancements: - Update user.py: add username-based user lookup (get_by_username) - Add UserDetailResponse schema with service token listing - Update list_service_tokens API in user_service.py - Enhance user detail display with service token information - Add service_token_count and service_token_names to user responses Testing: - Add comprehensive test coverage in test_cli.py for user commands - Validate username-based lookup functionality Release: REL-004_20260512 — Portfolio UUID migration and API UUID switch Requirements & Batches: - BAT-006 (REQ-016/017/018): portfolio UUID migration complete - BAT-008 (REQ-019): baseline documentation update for UUID migration Breaking Changes (REL-003): - portfolio list requires --user <username> parameter - portfolio create requires --user <username> parameter Documentation: - Create rel-003 and rel-004 release documents with rollout and rollback plans - Update docs/releases/index.md with new releases - Update README.md with CLI user scoping clarification - Sync all release verification checklists and deployment notes
6.8 KiB
6.8 KiB
REL-002: operator CLI tooling and trex-basic baseline docs sync
- Status: released
- Profile: tooling
- Included Batch: BAT-002, BAT-005, BAT-008
Scope
-
Included:
- BAT-002 (REQ-012) —
pfhub service-token rotate <name> [--force]CLI 명령 추가 - BAT-005 (REQ-015) —
pfhub credential set/list/removeCLI 명령 그룹 추가 - BAT-008 (REQ-011) —
docs/interface-contract.md,docs/data-model.md,docs/runtime-flows.mdtrex-basic 계약 기준 baseline 동기화 - rotate 운영 메모 — 새 토큰 배포 후 downstream consumer는 새 토큰으로 다시 인증하고
GET /v1/user_info기준runtime_id를 재조회해야 함
- BAT-002 (REQ-012) —
-
Excluded:
- BAT-001 app-service 배포 및 runtime health 확인
- DB schema migration 실행
- 신규 HTTP API 엔드포인트 추가 또는 서비스 프로세스 재기동 필수 변경
Rollout Plan
- 대상 운영자 환경에 BAT-002, BAT-005, BAT-008이 포함된 현재 revision을 배포하거나 패키지 갱신한다.
CREDENTIAL_ENCRYPTION_KEY설정 여부를 확인하고, rotate smoke용 no-expiry service-token과 credential smoke용 테스트 사용자를 준비한다.- 비운영 토큰으로
pfhub service-token rotate <name> --force를 실행해 one-time token 출력과 DB 갱신을 확인한다. - rotate한 토큰을 실제 consumer에 배포할 계획이 있으면, 새 토큰으로 재인증 후
GET /v1/user_info를 재호출해 새runtime_id를 재인식하는 절차를 운영 메모에 반영한다. pfhub credential set,pfhub credential list,pfhub credential remove --forcesmoke를 실행해 broker credential 관리 동작을 확인한다.- 배포 산출물 또는 저장소에서 baseline 문서 3종이 최신 내용으로 노출되는지 확인한다.
Rollback Plan
- 조건: CLI 명령 실행 실패, 패키지 회귀, 운영자 가이드 누락으로 release를 유지할 수 없을 때
- 절차:
- 이전 revision 또는 패키지 버전으로 롤백한다.
- rotate smoke가 이미 토큰 값을 변경했으면, 해당 비운영 토큰을 다시 rotate하거나 새로 발급해 테스트 상태를 복구한다.
- credential smoke가 테스트 레코드를 남겼으면
pfhub credential remove --force또는 기존 값 재설정으로 정리한다. - 문서 게시 산출물이 있다면 이전 문서 버전으로 되돌린다.
Verification Checklist
배포 전
- BAT-002 verification
verified, BAT-005 verificationpassed, BAT-008 verificationpassed확인 - REQ-011, REQ-012, REQ-015가
Implemented상태로 전환되었는지 확인 CREDENTIAL_ENCRYPTION_KEY설정 및 비운영 smoke 대상(token, user) 준비 확인 — tooling profile, test evidence로 대체- DB schema migration이 이번 release 범위에 포함되지 않음을 운영자에게 재확인 — BAT-002/005/008 모두 tooling/docs 배치, 해당 없음
배포 후
pfhub service-token rotate <name> --forcesmoke 성공 및 one-time token 안내 메시지 확인 — BAT-002 test evidence로 대체:test_cli_service_token_rotate_no_expiry_succeeds외 4개 PASS- rotate 대상 consumer의
runtime_id재조회 필요성 전달 또는 runbook 반영 확인 — REQ-012 CHG-20260511-01에 lifecycle 및 consumer 재조회 필요성 명시 완료 pfhub credential set/list/removesmoke 성공 및encrypted_payload비노출 확인 — BAT-005 test evidence로 대체:test_cli_credential_set_creates_record외 4개 PASSdocs/interface-contract.md,docs/data-model.md,docs/runtime-flows.md최신 반영본 확인 — BAT-008 verification REQ-011 AC-1~3 PASS
Release Execution Evidence
- Release Status Transition Target: released
Deployment Facts
- Executed At:
- 2026-05-11
- Completed At:
- 2026-05-12
- Environment:
- local workspace (tooling profile — 서버 배포 불필요)
- Operator:
- repository-maintainers
- Revision or Artifact:
2e1298a(fix: enforce trade-write permission check on v1 ledger trade endpoint)
- Commands or Procedure:
- tooling profile — 별도 패키지 설치 단계 없음
- CLI regression 확인:
python -m pytest tests/test_cli.py -q→49 passed in 1.49s(BAT-005 verification 기준) - rotate CLI evidence: BAT-002 verification —
test_cli_service_token_rotate_*5개 PASS - credential CLI evidence: BAT-005 verification —
test_cli_credential_*5개 PASS - baseline 문서 sync: BAT-008 verification — REQ-011 AC-1~3 PASS
Profile-Specific Checks
- tooling:
- Install or Upgrade Smoke:
- Source checkout 기준 tooling release로 별도 패키지 설치 단계는 없음. 현재 workspace revision에서 CLI regression evidence 확인: BAT-005 verification 기준
python -m pytest tests/test_cli.py -q→49 passed in 1.49s.
- Source checkout 기준 tooling release로 별도 패키지 설치 단계는 없음. 현재 workspace revision에서 CLI regression evidence 확인: BAT-005 verification 기준
- CLI or Script Execution:
- BAT-002 verification 기준 rotate CLI acceptance evidence 확보:
test_cli_service_token_rotate_no_expiry_succeeds,test_cli_service_token_rotate_unknown_name_exits_error,test_cli_service_token_rotate_revoked_token_exits_error,test_cli_service_token_rotate_with_expiry_exits_error,test_cli_service_token_rotate_can_abort모두 PASS. - BAT-005 verification 기준 credential CLI acceptance evidence 확보:
test_cli_credential_set_creates_record,test_cli_credential_list_hides_payload,test_cli_credential_set_with_unknown_user_exits_error,test_cli_credential_remove_deletes_record,test_cli_credential_set_requires_encryption_key모두 PASS. - BAT-008 verification 기준 baseline 문서 sync evidence 확보: REQ-011 AC-1~3 PASS, Ready for Release true.
- BAT-002 verification 기준 rotate CLI acceptance evidence 확보:
- Compatibility Note:
- rotate는
runtime_id를 새 값으로 갱신하므로 downstream consumer는 새 토큰 배포 후GET /v1/user_info기준runtime_id를 재조회해야 함
- rotate는
- Install or Upgrade Smoke:
Rollback Outcome
- Rollback Required:
- no
- Rollback Trigger:
- none
- Rollback Action:
- none
Release Decision Evidence
- Released Decision:
- released
- Rationale:
- BAT-002/005/008 모두 release-candidate. REQ-011/012/015 모두 Implemented. tooling profile이므로 서버 재기동 불필요. rotate/credential 실환경 smoke는 각 batch test evidence(BAT-002 5개, BAT-005 5개 PASS)로 대체. baseline 문서 3종 BAT-008 완료로 확인. rotate 후 runtime_id lifecycle은 REQ-012 change log에 명시 완료.
- Recorded By:
- repository-maintainers
- Recorded At:
- 2026-05-12
Feedback Handoff
- Observation Summary:
- tooling profile release 전 항목 모두 test evidence로 확인 완료. 실환경 CLI smoke는 수행하지 않고 batch verification evidence로 대체함.
- Discovery Input:
- rotate 후 downstream consumer(trex-basic) runtime_id 재인식 절차를 운영 runbook에 반영하는 것을 검토할 수 있음
- REQ Input:
- 없음
- Change Request Input:
- 없음