Skip to content

chore: 릴리즈 — caquick.com 도메인 허용·returnTo 오리진 검사 - #549

Merged
chanwoo7 merged 4 commits into
mainfrom
develop
Nov 1, 2026
Merged

chanwoo7 merged 4 commits into
mainfrom
develop

Conversation

@chanwoo7

@chanwoo7 chanwoo7 commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

caquick.site(2026-11-29 만료)에서 caquick.com으로 옮기기 위한 BE 준비를 운영에 반영합니다. 새 도메인을 옛 도메인과 나란히 허용만 하므로, 이 릴리즈만으로 바뀌는 동작은 없습니다.

운영 반영 사항입니다.

  • 마이그레이션·SDL 변경은 없습니다.
  • 시크릿 변경은 없습니다. 운영 주소(APP_ENV의 BACKEND_BASE_URL·FRONTEND_BASE_URL) 전환은 FE 전환과 같은 시간대에 따로 진행합니다.

Summary by CodeRabbit

  • 변경 사항
    • 서비스 주소가 caquick.com 도메인으로 변경되었습니다. 기존 caquick.site 주소도 운영 허용 목록에 유지됩니다.
    • 로그인 후 이동할 주소는 허용된 도메인과 HTTP(S) 여부를 확인하며, 조건에 맞지 않으면 기본 주소로 이동합니다.
    • 미디어 요청 및 운영 환경 설정에 새 도메인이 반영되었습니다.
  • 문서
    • README의 API 주소를 새 도메인으로 업데이트했습니다.

caquick.site가 2026-11-29 만료돼 caquick.com으로 옮긴다. 전환 전 준비로 새 오리진을 옛 도메인과 병행 허용만 하고, 운영 주소 전환은 FE와 같은 시간대에 APP_ENV로 한다.

- CORS 운영 목록: caquick.com·admin.caquick.com 추가
- returnTo 허용 목록: caquick.com 추가
- S3 CORS(terraform) 같은 두 오리진 추가
- app.env.example·README 운영 주소 .com
- 회귀 테스트 3건(CORS 2·returnTo 1)
feat: caquick.com 도메인 허용(CORS·로그인 returnTo·S3 CORS)
접두 비교라 caquick.site.evil.com·caquick.site@evil.com 같은 주소가 통과해 로그인 뒤 외부로 보낼 수 있었다. URL로 파싱해 http(s)이고 오리진이 허용 목록과 같을 때만 그 주소를 쓴다.

- return-to.helper.ts 추가, OidcLoginService.normalizeReturnTo가 사용
- 회귀 테스트 15건(it.each 표: 허용 3·거부 11·기본 주소 오리진 1)
fix: 로그인 returnTo를 오리진 정확 일치로 검사
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T01:06:57.609812Z 2fb5317 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 28bf601 and 2fb5317.

Files selected for processing: 11
  • README.en.md
  • README.md
  • infra/app.env.example
  • src/config/cors-origins.spec.ts
  • src/config/cors-origins.ts
  • src/features/auth/constants/auth.constants.ts
  • src/features/auth/helpers/return-to.helper.spec.ts
  • src/features/auth/helpers/return-to.helper.ts
  • src/features/auth/services/oidc-login.service.spec.ts
  • src/features/auth/services/oidc-login.service.ts
  • terraform/aws.tf

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

문서와 환경 예시의 서비스 주소를 caquick.com 도메인으로 변경했습니다. 운영 CORS 오리진과 인증 반환 URL 허용 목록을 갱신하고, OIDC 반환 URL 검증 로직 및 관련 테스트를 추가했습니다.

Changes: 도메인 전환 및 인증

Layer / File(s) Summary
도메인 URL과 운영 오리진 설정
README.md, README.en.md, infra/app.env.example, src/config/cors-origins.ts, src/config/cors-origins.spec.ts, terraform/aws.tf
문서와 환경 예시의 URL을 caquick.com 주소로 변경했습니다. 운영 CORS 오리진과 미디어 버킷 CORS 오리진에 새 도메인을 추가했습니다. 기존 caquick.site 운영 오리진은 유지합니다.
OIDC 반환 URL 검증
src/features/auth/constants/auth.constants.ts, src/features/auth/helpers/return-to.helper.ts, src/features/auth/helpers/return-to.helper.spec.ts, src/features/auth/services/oidc-login.service.ts, src/features/auth/services/oidc-login.service.spec.ts
resolveReturnTo가 HTTP(S) 주소의 오리진을 fallback 또는 허용 목록과 비교합니다. OIDC 로그인 서비스가 반환 URL 처리를 이 함수에 위임하며, 테스트는 주소 검증과 반환 URL 쿠키 기록을 확인합니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: Minimal · up to 2fb53

No merge-blocking issue is established. A .com frontend using the .site API would need cross-site cookie handling.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documenta… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed 제목은 caquick.com 도메인 허용과 returnTo 오리진 검사 변경을 간결하게 설명하며, 변경 내용과 직접 관련됩니다.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 2 functions across 7 files. (4 skipped: 4 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

🧹 knip — dead-code 리포트

요약 항목 없음
전체 리포트
(knip 출력 없음 — 이슈 0이거나 실행 실패)

청소 후보(오탐 가능) · 기준 docs/guide/architecture-conventions.md

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

🩺 NestJS Doctor — 90/100 (Excellent)

진단 493건 (error 13).

Category error warning info
architecture 1 1 44
correctness 0 269 0
performance 0 41 28
schema 0 0 76
security 12 21 0
architecture / security 상위 항목
  • error security/security/no-hardcoded-secrets: Variable 'SEED_PASSWORD' appears to contain a hardcoded secret.
  • error architecture/architecture/no-manual-instantiation: Manual instantiation of 'OutboxRepository' detected. Use dependency injection instead.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal type 'IAuditLogRepository'.
  • warning security/security/no-exposed-env-vars: Direct 'process.env.NODE_ENV' access in 'AuthController'. Use ConfigService instead.
  • warning security/security/require-guards-on-endpoints: Endpoint 'start' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'callback' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'refresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'logout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerLogin' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerRefresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerLogout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'devIssueToken' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'adminLogin' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'adminRefresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'adminLogout' has no @UseGuards() at class or method level.

오탐 포함 가능 · 기준 docs/guide/architecture-conventions.md

@codecov

codecov Bot commented Nov 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

Coverage report

St.❔
Category Percentage Covered / Total
🟢 Statements
98% (-0.03% 🔻)
10809/11030
🟢 Branches
92.9% (-0.06% 🔻)
4121/4436
🟢 Functions
97.56% (+0% 🔼)
2157/2211
🟢 Lines
98.57% (-0.03% 🔻)
9832/9975
Show new covered files 🐣
St.❔
File Statements Branches Functions Lines
🟢
... / return-to.helper.ts
100% 100% 100% 100%
Show files with reduced coverage 🔻
St.❔
File Statements Branches Functions Lines
🟢
... / oidc-login.service.ts
97.4% (-0.13% 🔻)
93.75% (-0.99% 🔻)
92.31% (-0.55% 🔻)
98.65% (-0.04% 🔻)
🟢
... / outbox-publisher.service.ts
100%
91.67% (-8.33% 🔻)
100% 100%
🟢
... / notification-admin.repository.ts
90.38% (-5.77% 🔻)
75% (-6.25% 🔻)
100%
93.18% (-6.82% 🔻)

Test suite run success

4333 tests passing in 389 suites.

Report generated by 🧪jest coverage report action from 2fb5317

@chanwoo7
chanwoo7 merged commit 19c5189 into main Nov 1, 2026
27 checks passed
@chanwoo7
chanwoo7 deleted the develop branch November 1, 2026 01:13
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.

1 participant