Market-aware Signup Consent Policy — E2E
title: Market-aware Signup Consent Policy E2E status: ongoing created: 2026-05-12 updated: 2026-05-12
Market-aware Signup Consent Policy — E2E
본 spec의 AI ↔ Human 핸드오프 보드. 작업자는 phase별 진행, 차단, 검증 요청을 여기에 누적한다.
-
auth.signupPolicyKR 응답: terms/privacy required + optional marketing policy shape. -
auth.signupPolicyUS 응답: market slug/link가 KR과 분리됨. -
auth.signupPolicySG 응답: seller custom signup policy가 있으면consents[]에 포함됨. -
auth.signupPolicyJP 응답: default required policies 정상 합성. -
Email signup: all required consent true → success.
-
Email signup: terms missing →
CONSENT_REQUIRED. -
Email signup: privacy missing →
CONSENT_REQUIRED. -
Email signup: alien scope included →
INVALID_CONSENT_SCOPE. -
Email signup: optional marketing false/missing → consent record 없음.
-
Email signup: optional marketing true → consent record 있음.
-
OAuth complete-signup: required consent 누락 →
CONSENT_REQUIRED. -
OAuth complete-signup: alien scope included →
INVALID_CONSENT_SCOPE. -
Legacy request:
termsOfService/privacyPolicy/marketingEmail/marketingAlimTalk만 보내도 Phase 1-4 동안 정상 동작. -
auth.signupPolicyresource acceptsmarketCode. -
Resource query key includes
marketCode. -
SignupPolicySchemavalidatesconsents[]. -
auth.signupschemaFactory requires dynamic required consent fields. -
auth.completeOAuthSignupschemaFactory requires dynamic required consent fields. -
Action execute maps
signupPolicy.consents[]field values to serverconsents[]payload. -
FormRendererno longer auto-inserts signup consent checkboxes. -
Standard HCS uses no-param
auth.signupPolicy; shop-api resolves market from request i18n context. -
Common policy-aware signup fragment exists locally as
signup-form-policy-aware. -
Common policy-aware OAuth complete-signup fragment exists locally as
oauth-signup-complete-policy-aware. -
Old
signup-form-defaultremains available as deprecated rollback path. -
Henriette
57a...prepared HCS bindsSignupFormtosignup-form-policy-aware. -
Henriette
57a...prepared HCS bindsOauthSignupCompletetooauth-signup-complete-policy-aware. -
Henriette
57a...prepared HCS removes localhenriette-oauth-signup-completeoverride. -
Henriette compiled HCS has zero
marketingConsent. -
Henriette signup fields use
phoneNumber, not legacyphone, when phone is visible. -
Henriette signup renders required/optional consent labels from policy resource.
-
Henriette signup submit button cannot double-submit while submitting.
-
Snapshot:
/signupdesktop. -
Snapshot:
/signupmobile. -
Snapshot:
/complete-signupdesktop. -
Snapshot:
/complete-signupmobile. -
Signup policy modal has market selector.
-
Default/global policy and regional override are visually distinct.
-
Phone policy can be configured per market.
-
Signup consent preview shows required/optional policies.
-
Required market policies are locked from auth settings.
-
Policy Management custom policy with
placements=["signup"]appears in signup policy preview. -
mandatoryConsent=truecustom policy appears as required. -
Missing unpublished required policy page shows warning or blocks save according to implementation decision.
Use current dev auth rules from docs/E2E_PLAYBOOK.md.
Admin token:
TOKEN=$(curl -sS -X POST http://localhost:8080/api/v1/admin/developer/token/email \
-H 'Content-Type: application/json' \
-d '{"email":"chance@makitt.io"}' | jq -r '.accessToken')
Signup policy check:
SHOP_ID=71261f65-ee4e-4238-9b4f-d56cee9be523
curl -sS "http://localhost:10000/shop/$SHOP_ID/auth/signup-policy?marketCode=KR" \
-H 'Authorization: Bearer dev-bypass' | jq
Compiled HCS residue check:
rg -n '"marketingConsent"|"field"\\s*:\\s*"phone"' /path/to/compiled-shop.json
- HCS live changes must use compiler
/saveonly. - Do not remove legacy fields during Phase 1-4.
marketingConsentis an existing Henriette HCS bug and must be closed in Phase 3.- Race condition, per-email lockout, force re-consent, and shop etag invalidation are separate cycles.
비어 있음
당신이 처리할 항목