Skip to content

deploy: enable Turnstile for backtest calculations - #13

Merged
kyj0503 merged 3 commits into
mainfrom
dev
Oct 25, 2026
Merged

kyj0503 merged 3 commits into
mainfrom
dev

Conversation

@kyj0503

@kyj0503 kyj0503 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

백테스트 계산 전에 Cloudflare Turnstile 사람 인증을 요구합니다. Managed 위젯의 일회용 토큰을 계산 POST의 X-Turnstile-Token 헤더로 전달하며, 요청 JSON·계산 응답·조회 4개의 계약은 유지합니다.

  • 인증 전·만료·오류·운영 sitekey 누락 시 계산 버튼을 잠급니다. 제출 성공·실패·취소 후에는 새 위젯을 렌더링합니다.
  • 위젯 로딩 실패는 인증 재시도를 제공하고 화면 이탈·이전 위젯 콜백을 안전하게 정리합니다. 조회 재시도는 토큰을 보내거나 계산을 다시 실행하지 않습니다.
  • CSP는 Cloudflare 공식 challenges 도메인의 스크립트와 iframe만 추가 허용합니다.
  • 공개 sitekey는 GitHub Actions Variable VITE_TURNSTILE_SITE_KEY로 빌드하며 운영 발행에서는 비어 있거나 공식 더미 키인 값을 거부합니다. 비밀키는 프론트엔드와 GitHub에 두지 않습니다.

검증: Docker에서 ESLint·앱/테스트 TypeScript·366개 테스트와 의존성 감사·런타임 빌드를 통과했습니다. 격리 MySQL 및 실제 로컬 Docker 브라우저에서 공식 더미 위젯 인증 → 계산 → 조회 4개 완료, 브라우저 오류 없음, 미인증·위조 요청 403 및 계산 미실행을 확인했습니다. 더미 Siteverify 응답의 hostname/action 보완은 테스트 프로세스에만 적용했습니다.

배포 순서: 이 콘솔을 먼저 배포한 뒤 대응 백엔드의 서버 검증을 활성화합니다.

@kyj0503
kyj0503 merged commit 2345a80 into main Oct 25, 2026
6 checks passed
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