Files
autoreg-skills-max/skills/ai-provider-autoreg/references/krumzi-supabase-autoreg.md

5.2 KiB
Raw Blame History

Krumzi.com — Supabase GoTrue авторег (12.10.2026)

Стек: Next.js (turbopack) на Vercel + Supabase (auth=GoTrue, db=Postgres RLS, payments=Polar.sh). Аналитика PostHog/Plausible/FB. Юрлицо: ACT Software Solutions S.R.L., Бухарест.

Ключи (публичные, из JS-чанков)

  • Supabase URL: https://lhiwaojjmtkkpzxrmjey.supabase.co
  • Custom auth-домен: https://api.krumzi.com (прокси на тот же GoTrue; verify-ссылки в письмах идут через него)
  • anon key: C:/Users/User/tmp/krumzi/anon_key.txt (JWT role=anon, ref=lhiwaojjmtkkpzxrmjey)

Auth-настройки (GET /auth/v1/settings)

  • email signup ВКЛЮЧЁН, disable_signup=false, БЕЗ КАПЧИ (captcha_token не требуется)
  • mailer_autoconfirm=false → нужно подтвердить email ссылкой
  • OAuth: только google + twitter(X); redirectTo = https://www.krumzi.com/api/callback

Полный цикл авторега (~30-40с/акк, без браузера)

  1. POST {SUPA}/auth/v1/signup {email, password} (headers: apikey + Authorization Bearer anon) → 200, user id, confirmation_sent_at
  2. IMAP secureimap.t-online.de:993 (пул Desktop/avtoreg/working_mails.txt 17k) → письмо 'Confirm your email' from Krumzi andrei.terteci@krumzi.com
  3. Ссылка `https://api.krumzi.com/auth/v1/verify?token=[REDACTED] — ОБЯЗАТЕЛЬНО html.unescape (& → &), иначе 400
  4. GET verify БЕЗ редиректов → 303 Location: `https://www.krumzi.com#access_token=[REDACTED] (implicit flow, токены в FRAGMENT)
  5. GET /auth/v1/user с user-JWT → email_confirmed_at ✓
  6. Релоги: POST /auth/v1/token?grant_type=password или grant_type=refresh_token

Профиль (Rest /rest/v1/profiles?id=eq.UID)

Поля: plan (FREE), subscription_status (ACTIVE), api_key (uuid, automation API + MCP), ai_credits_balance, topup_credits_balance, available_automation_credits, trial_policy_version, trial_ends_at, polar_customer_id, onboarding_step, free_tool_claimed_at.

Монетизация/лимиты

  • Новый акк = FREE, 0 кредитов. Trial = 1000 кредитов (TRIAL_CREDIT_ALLOWANCE=1e3, trial_policy_version=1) + watermark, card required (Polar checkout, $19/мес после 7 дней). Планы: от $19/mo (20K кредитов), $249/mo.
  • Free tools (/tools/*) = клиентские утилиты без AI (resizer, QR, color picker) — ценности нет.
  • Billing-поля защищены DB-триггером: PATCH ai_credits_balance/plan → 403 billing_field_is_server_managed (42501). Своя строка: не-billing поля пишутся (full_name и т.п.).
  • GoTrue rate limit ~30 signup/h/IP → пэйсинг 25-45с между акками безопасен с одного IP; для массовки --proxy-list.

RLS-ДЫРА (bug bounty материал, НЕ эксплуатировать на чужих данных)

GET /rest/v1/profiles?select=* с АНОН-ключом БЕЗ авторизации отдаёт ВСЮ таблицу: 14,094 строк — id, api_key каждого юзера, plan, ai_credits_balance, polar_customer_id, trial-поля. Пруф: limit=5 запрос, count=exact → 0-999/14094. Чужие api_key = угон automation/MCP-доступа. Проверено 12.10.2026. Дамп НЕ делали (политика: чужие креды не трогать).

Файлы (C:/Users/User/tmp/krumzi/)

  • krum_farm.py N [--proxy-list f] — масс-рег (bank accounts.jsonl + used_emails.txt дедуп)
  • krum_utils.py [check|relogin|refresh] — health/релогин банка, обновляет токены
  • krumzi_test.py — первый одиночный тест; rls_probe.py — пруф RLS-дыры; write_probe2.py — billing-guard тест
  • accounts.jsonl — банк (email/password/mailpass/tokens/api_key/plan)

Питфолы

  • write_file портил verify-токен (… вместо hex) — токены НИКОГДА не копипастить через write_file, только runtime из IMAP
  • write_file маскирует 'Bearer '→'***' и token=tok в сигнатурах — конкатенация 'Bea'+'rer ' и имя параметра tk
  • t-online IMAP первый login часто таймаутится — ретрай-луп обязателен
  • dash-алиасы t-online (NNNN-0001@) ДОСТАВЛЯЮТСЯ для Supabase (в отличие от TH-фермы) — пул working_mails.txt годится весь
  • dup-email signup → 422/400 'already registered' — скипать в used, не ждать IMAP
  • Foreground terminal режет на 420с — батчи >2 акков только background

Фаза 2 (если Влад даст добро): Polar-trial через VCC

Checkout живёт в authed-чанках /settings/billing (lazy, вне SSR). Нужен браузер с сессией (sb-lhiwaojjmtkkpzxrmjey-auth-token в localStorage или cookie от /api/callback) → начать trial → Polar hosted checkout → VCC EU-эмитент + 3DS. 1000 кредитов/акк, отмена до 7 дней = $0.