Skip to content

feat(fastapi): Add JWT configuration validation to BaseCrudRouter#41

Merged
ywkim merged 2 commits into
mainfrom
refactor/startup-validation-crud-router
Dec 29, 2025
Merged

feat(fastapi): Add JWT configuration validation to BaseCrudRouter#41
ywkim merged 2 commits into
mainfrom
refactor/startup-validation-crud-router

Conversation

@ywkim

@ywkim ywkim commented Dec 29, 2025

Copy link
Copy Markdown
Contributor

Summary

JWT 활성화 시 user_info_provider가 필수임을 보장하기 위해 startup validation을 추가했습니다.

변경 전:

  • JWT를 활성화하고 user_info_provider를 설정하지 않으면 런타임에 401 에러 발생
  • 설정 오류가 늦게 발견됨

변경 후:

  • BaseCrudRouter 초기화 시점에 검증
  • JWT 활성화 시 user_info_provider 필수 확인
  • 설정 오류를 애플리케이션 시작 시 즉시 감지 (Fail Fast)

Changes

  • aioia_core/fastapi/base_crud_router.py: __init__에 startup validation 로직 추가
  • tests/unit/test_base_crud_router.py: TestStartupValidation 클래스 추가 (3개 테스트)

Test Plan

  • ✅ 기존 23개 테스트 모두 통과
  • ✅ 신규 3개 테스트 추가 및 통과
    • JWT + user_info_provider 없음 → ValueError
    • 둘 다 없음 → 성공
    • 둘 다 있음 → 성공
  • ✅ Lint 점수: 10.00/10
  • ✅ Type checking: mypy & pyright 통과

Breaking Change

⚠️ 이제 JWT를 활성화한 경우 user_info_provider를 반드시 설정해야 합니다.
기존에 이를 설정하지 않은 경우, 애플리케이션이 시작되지 않습니다.


ywkim and others added 2 commits December 29, 2025 14:05
BaseCrudRouter에 startup validation을 추가하여 JWT 설정 오류를 런타임이 아닌 초기화 시점에 발견할 수 있도록 개선했습니다.

변경 사항:
- __init__에 jwt_secret_key 제공 시 user_info_provider 필수 검증 로직 추가
- Fail Fast 원칙 준수: 설정 오류를 애플리케이션 시작 시 즉시 감지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
JWT 설정 검증 로직이 올바르게 작동하는지 확인하는 테스트를 추가했습니다.

테스트 케이스:
- JWT 활성화 시 user_info_provider 없으면 ValueError 발생
- JWT와 user_info_provider 둘 다 없으면 성공
- JWT와 user_info_provider 둘 다 있으면 성공

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 PR은 BaseCrudRouter에 JWT 인증 설정에 대한 시작 시점 검증 로직을 추가하여 안정성을 높였습니다. jwt_secret_key가 제공될 때 user_info_provider가 누락되면 애플리케이션 시작 시 ValueError를 발생시켜 설정 오류를 조기에 발견할 수 있도록 개선한 점이 좋습니다. 이는 "Fail Fast" 원칙을 잘 따르는 훌륭한 변경입니다.

추가된 로직을 검증하기 위한 단위 테스트(TestStartupValidation)도 꼼꼼하게 작성되었습니다. 다만, 새로 추가된 테스트 클래스에서 기존 테스트 코드와 중복되는 부분이 발견되었습니다. 코드의 유지보수성을 높이기 위해 테스트 설정(setUp/tearDown)과 BaseCrudRouter 초기화 인자를 공통화하는 리팩토링을 제안하는 리뷰 의견을 남겼습니다.

전반적으로 PR의 목적이 명확하고 구현이 잘 되었으며, 제안된 리팩토링을 통해 코드 품질을 더욱 향상시킬 수 있을 것입니다.

Comment thread python/tests/unit/test_base_crud_router.py
@ywkim ywkim changed the title feat(fastapi): BaseCrudRouter에 JWT 설정 검증 추가 feat(fastapi): Add JWT configuration validation to BaseCrudRouter Dec 29, 2025
@ywkim ywkim merged commit 9f279f8 into main Dec 29, 2025
2 checks passed
@ywkim ywkim deleted the refactor/startup-validation-crud-router branch December 29, 2025 05:35
@github-actions

github-actions Bot commented Feb 4, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 2.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant