Skip to content

fix(users): CharacterListResponse export 누락 수정#276

Merged
mangowhoiscloud merged 30 commits intodevelopfrom
feat/users-migration
Jan 2, 2026
Merged

fix(users): CharacterListResponse export 누락 수정#276
mangowhoiscloud merged 30 commits intodevelopfrom
feat/users-migration

Conversation

@mangowhoiscloud
Copy link
Contributor

schemas/init.py에서 CharacterListResponse export 누락 수정

- Change /api/v1/auth/{provider} to /api/v1/auth/{provider}/*
- Covers authorize, login, callback endpoints
- Add /{provider} route (deprecated) alongside /{provider}/login
- Update authorization-policy to bypass both legacy and new routes
- Ensures client-side zero-downtime migration
- Cannot use '*' with credentials=True
- Add frontend.dev, frontend1.dev, frontend2.dev, growbin.app
- Add cors_origins setting for env override
- /{provider} 엔드포인트를 RedirectResponse에서 JSON 응답으로 변경
- AuthorizationSuccessResponse 스키마 추가 (레거시 호환)
- 프론트엔드가 AJAX로 호출해도 정상 동작

Closes: CORS 에러 해결
- /{provider}와 /{provider}/login 모두 AuthorizationSuccessResponse 반환
- 공통 로직을 _build_authorization_response로 추출
- RedirectResponse 제거 (AJAX 호환성)
- users_pb2.py에서 ValidateProtobufRuntimeVersion 비활성화
- protobuf 5.x 런타임과 호환성 유지
- 절대 import에서 패키지 경로 import로 변경
- import users_pb2 → from apps.auth.infrastructure.grpc import users_pb2
- __init__.py에서 잘못된 이름 UsersManagementGrpcAdapter → UsersManagementGatewayGrpc
- grpc.aio.ServicerContext에는 method() 메소드가 없음
- LoggingInterceptor와 동일하게 handler_call_details.method를 파라미터로 전달하도록 수정
- TransactionManager Protocol에 begin() context manager 메소드 정의
- SqlaTransactionManager에 begin() 구현 (commit/rollback 자동 처리)
- GetOrCreateFromOAuthCommand, UpdateLoginTimeCommand에서 사용
- SQLAlchemy Enum에 values_callable 추가 (KAKAO → kakao)
- identity_gateway에서 string provider를 OAuthProvider enum으로 변환
- DB의 oauth_provider enum은 소문자 값 사용
- allow-auth-to-users-grpc.yaml: auth에서 users namespace 50051 포트 egress 허용
- destination-rule-grpc.yaml: users-api-grpc에 대한 Istio DestinationRule
- OAuthUserResult dataclass에 username 필드가 없음
- gRPC adapter에서 불필요한 username 인자 제거
- SQLAlchemy ORM 매핑 시 _sa_instance_state 설정 필요
- frozen=True가 이를 차단하여 FrozenInstanceError 발생
- /login → /#/login (SPA 해시 라우팅 지원)
…cy 업데이트

- auth: /{provider} 경로에 OAuthProviderPath Enum 적용 (docs 충돌 방지)
- users: character_code -> character_name, source/status 제거
- users: CharacterListResponse 래퍼 유지
- authorization-policy: /api/v1/users/docs, openapi.json 추가
@mangowhoiscloud mangowhoiscloud merged commit 67b45ae into develop Jan 2, 2026
@mangowhoiscloud mangowhoiscloud self-assigned this Jan 2, 2026
@github-project-automation github-project-automation bot moved this to Backlog in @Eco² Jan 2, 2026
@github-project-automation github-project-automation bot moved this from Backlog to Done in @Eco² Jan 2, 2026
mangowhoiscloud added a commit that referenced this pull request Feb 9, 2026
Swiss Cheese 3-Tier Grader architecture, expert review scores (97.1/100),
108 unit tests (100% pass), BARS rubric design, known limitations, next steps.
Related: ADR blog posts #273-#276.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mangowhoiscloud added a commit that referenced this pull request Feb 9, 2026
Swiss Cheese 3-Tier Grader architecture, expert review scores (97.1/100),
108 unit tests (100% pass), BARS rubric design, known limitations, next steps.
Related: ADR blog posts #273-#276.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant