ワンクリックで
toss-iap-edge-recovery
TaillogToss IAP 장애 복구 스킬 — verify-iap-order 401/403 분리 진단, 안전한 권한 처리, toss_orders 영속 복구(v12 기준).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
TaillogToss IAP 장애 복구 스킬 — verify-iap-order 401/403 분리 진단, 안전한 권한 처리, toss_orders 영속 복구(v12 기준).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Toss Mock 인증 스킬 — stable userKey 설정, survey 루프 근본 원인 진단, adb 기반 진단 순서를 표준화한 스킬.
Toss IAP 검증 스킬 — Edge Function 404 우회, Service Role 감지, mTLS mock 설정, 토큰 헬퍼 분리, subscriptions 활성화 E2E.
Toss 수익화 운영 스킬 — Ads/IAP/TossPay 콘솔 설정, 샌드박스 시나리오, QA 증적 수집을 표준화.
AIT .ait 번들 빌드 → 콘솔 업로드 → 테스트 진입 성공 패턴. env var 인라인 실패(supabase url is required), babel/esbuild 충돌, __dirname 경로 문제 해결책 포함.
FastAPI + SQLAlchemy + Supabase 모델 작성 규칙 — DB 타입 불일치 방지, async cascade 패턴, Pydantic enum 검증. 2026-05-19 E2E 테스트(Wave 1~9)에서 발견한 BUG-01~05 재발 방지 지침.
TaillogToss 로컬 개발 서버(Metro + FastAPI) 시작/재시작 절차. "서버 켜줘", "서버 재시작", "앱 안됨", "번들 안됨" 등 서버 기동 관련 모든 상황에 사용한다.
| name | toss-iap-edge-recovery |
| description | TaillogToss IAP 장애 복구 스킬 — verify-iap-order 401/403 분리 진단, 안전한 권한 처리, toss_orders 영속 복구(v12 기준). |
verify-iap-order가 실패할 때, 2026-02-28 실기기에서 성공했던 복구 순서를 빠르게 재현한다.
verify-iap-order가 401 invalid jwt 또는 403 forbidden으로 실패GET /api/v1/subscription는 200인데 결제 지급이 실패public.toss_orders가 증가하지 않음verify-iap-order 최신 버전 POST 200public.toss_orders order_count 증가, 최신 row의 toss_status=PAYMENT_COMPLETED, grant_status=grantedlist_edge_functions로 verify-iap-order의 version, verify_jwt, status 확인get_logs(service=\"edge-function\")로 login-with-toss와 verify-iap-order 상태코드 페어 확인execute_sql로 toss_orders 집계 확인401: 토큰 자체 문제 가능성 우선 확인403: 권한 클레임 불일치 가능성 우선 확인get_logs(service=\"auth\")에서 같은 시각 /auth/v1/user 상태를 매칭raw_user_meta_data 기반 권한 판정 금지/auth/v1/user) 통과 후:
user/trainer/org_owner/org_staff/service_role) 우선authenticated 세션 허용authenticated에서 orgId/trainerUserId 요청은 403 유지userId 신뢰 금지user_id는 항상 검증된 JWT 사용자 id 사용toss_orders REST upsert 추가:
/rest/v1/toss_orders?on_conflict=idempotency_key&select=...apikey, Authorization: Bearer <user_jwt>, Prefer: resolution=merge-duplicates,return=representationidempotency_key 기준 멱등 보장deploy_edge_function(name=\"verify-iap-order\", verify_jwt=false) 배포verify-iap-order 버전의 POST 200 확인toss_orders 최신 1~5건 조회로 저장 확인select count(*)::int as order_count, max(created_at) as last_created_at
from public.toss_orders;
select id, user_id, product_id, idempotency_key, toss_status, grant_status, amount, toss_order_id, created_at
from public.toss_orders
order by created_at desc
limit 5;
verify_jwt=false를 쓸 때는 함수 내부 /auth/v1/user 검증이 반드시 있어야 한다.authenticated 허용은 B2C 결제 복구용이며, 조직/트레이너 지급 컨텍스트는 별도 권한 검증 없이는 열지 않는다.AGENTS.md에 장문 누적하지 말고 docs/PROJECT-STATUS.md에 증적 중심으로 기록한다.