Guardian topics
Consent
Confirmation code must be 8+ characters
The API schema requires at least 8 characters before the row is touched.
Link lasts 7 days
GUARDIAN_TTL_MS is seven days. After that, request a new application email from /enroll.
This does not approve the storefront
Parent consent only satisfies the under-13 review gate. Admin still reviews the intro video.
Unknown applications get the same copy
sendGuardianConsent always returns the generic parent-email message. It does not leak whether an application exists.
The server stores a sha256 digest
hashGuardianToken is sha256 hex. The emailed code is not stored in plaintext.
Not this page
Not Kumir Kids catalog
/kids is family-friendly talent discovery. This page is parent consent for under-13 applicants.
Not talent enroll
Applicants submit name, email, and relation at /enroll. This page only applies the emailed code.
Not Verify email
Fan email confirmation is /verify. This page does not set emailVerifiedAt.
Rules
/guardian is reserved, not a username
The emailed link opens /guardian/consent. That path is reserved, like /enroll and /kids.
No invented Resend key
EMAIL_PROVIDER=resend only when RESEND_API_KEY is set. Otherwise Kumir logs.
The form never fakes a COPPA stamp
Consent only runs after a valid sha256 digest. It does not mint guardianConsentAt otherwise.