Skip to content

fix(ai): Renewal Endpoint 오설정 방지와 계약 오류 진단 보완 - #223

Merged
hywznn merged 1 commit into
mainfrom
fix/renewal-request-contract-errors
Aug 20, 2026
Merged

fix(ai): Renewal Endpoint 오설정 방지와 계약 오류 진단 보완#223
hywznn merged 1 commit into
mainfrom
fix/renewal-request-contract-errors

Conversation

@hywznn

@hywznn hywznn commented Aug 20, 2026

Copy link
Copy Markdown
Member

한 줄 요약

Renewal 요청의 Endpoint 오설정을 기동 시 차단하고, AI 계약 422가 발생하면 거절 필드를 개인정보 없이 진단할 수 있게 합니다.

Closes #222

재현과 현재 판단

동일한 Renewal 요청을 다음 두 경로에 직접 호출했습니다.

  • /internal/v1/analyses → HTTP 422, phase:missing, analysisInput:missing
  • /internal/v1/workflows/renewal/run → HTTP 200, REVIEW_REQUIRED

잘못된 Endpoint 경로가 오류를 재현하는 것은 확인했습니다. Kubernetes server-env의 실제 값은 저장소에서 조회할 수 없으므로, 배포 원인을 Endpoint 오설정으로 단정하지 않고 병합 후 안전한 진단 로그로 최종 구분합니다.

변경 내용

  • AI_RUNTIME_ENDPOINT/internal/v1/analyses 경로인지 검증
  • AI_RUNTIME_RENEWAL_ENDPOINT/internal/v1/workflows/renewal/run 경로인지 검증
  • Renewal Endpoint의 404/405를 RUNTIME_UNAVAILABLE로 분류
  • AI 400/422 응답에서 schema location과 validation type만 로그로 기록
  • AI 응답 원문·요청값·개인정보는 로그에서 제외
  • 프록시 prefix와 trailing slash는 허용

영향 범위

  • DB/Flyway 변경 없음
  • Client·AI 계약 변경 없음
  • Server AI HTTP 경계와 테스트만 변경

배포 확인값

AI_RUNTIME_ENDPOINT=http://ai:8000/internal/v1/analyses
AI_RUNTIME_RENEWAL_ENDPOINT=http://ai:8000/internal/v1/workflows/renewal/run

검증

  • ./gradlew test --tests "*AiRuntimePropertiesTest" --tests "*RemoteRenewalRuntimeClientWireMockTest"
  • ./gradlew test --tests "*RenewalExecutionIntegrationTest" --tests "*RenewalRuntimeContractValidatorTest" --tests "*RenewalExecutionServiceTest" --tests "*RenewalExecutionTelemetryTest"
  • ./gradlew clean test
  • GitHub Server CI·API 문서·DB 문서 검증 성공

병합 전 체크리스트

  • 잘못된 Renewal Endpoint 기동 차단
  • 안전한 422 진단 로그
  • 404/405 연결 오류 분류
  • 개인정보 비노출 테스트
  • 로컬 전체 테스트 통과
  • GitHub CI 통과
  • 병합 충돌 없음

병합 후 배포 확인

  • 배포 Server의 canonical Endpoint 경로 검증 통과
  • Server Pod Rollout·health Smoke 성공
  • 동일 Renewal 요청 Smoke Test
  • 실패 시 ai_renewal_request_rejected 로그로 거절 위치 확인

@hywznn
hywznn marked this pull request as ready for review August 20, 2026 06:08
@hywznn
hywznn merged commit 832d95d into main Aug 20, 2026
4 checks passed
@hywznn
hywznn deleted the fix/renewal-request-contract-errors branch August 20, 2026 06:09
@hywznn

hywznn commented Aug 20, 2026

Copy link
Copy Markdown
Member Author

병합 후 확인 결과입니다.

  • main Squash Merge 완료 (832d95d)
  • Server 배포 성공
  • Kubernetes Rollout 성공
  • Health Smoke 성공
  • main Server CI 최초 실행에서 기존 RenewalExecutionIntegrationTest 1건이 간헐 실패했으나, 실패 Job 재실행 시 전체 테스트와 executable jar 빌드 성공

새 Server가 canonical Endpoint 경로 검증을 통과해 정상 기동한 상태입니다. 이제 배포 화면에서 동일 Renewal 요청을 한 번 다시 실행하면 됩니다. 성공하면 REVIEW_REQUIRED 또는 남은 Slot 요청으로 진행되며, 다시 422이면 ai_renewal_request_rejected 로그의 validation_fields로 실제 거절 필드를 확인할 수 있습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(ai): Renewal Endpoint 오설정 방지와 계약 오류 진단 보완

1 participant