Files
igny8/user-flow-plan-in-progress-1.md
IGNY8 VPS (Salman) 2420f1678d docs 1
2025-12-07 11:28:32 +00:00

3.2 KiB

Session Configuration Summary (Signup → Activation → Billing)

This doc captures all changes made in this session across backend and frontend to stabilize signup, onboarding, plans, payments, throttling, and admin flows.

Backend Changes

  • Registration slug collision handling
    • Now generates unique account slugs by appending numeric suffixes to avoid IntegrityError on duplicate slugs during signup.
    • File: backend/igny8_core/auth/serializers.py
  • Plans endpoint throttling removed
    • /api/v1/auth/plans/ no longer uses throttling to prevent 429 responses during onboarding/plan fetch.
    • File: backend/igny8_core/auth/views.py

Frontend Changes

  • Plans visibility and throttling behavior
    • Removed plan filtering to only Starter/Growth/Scale; all active plans returned by the API are shown.
    • Added a 429 retry: on throttling while loading billing/plans, shows “throttled, retrying” and auto-retries once after 2 seconds.
    • File: frontend/src/pages/account/PlansAndBillingPage.tsx
  • Signup redirect hard fallback
    • After successful signup, still calls router navigate to /account/plans, and also forces a 500ms hard redirect to /account/plans if navigation stalls.
    • File: frontend/src/components/auth/SignUpForm.tsx
  • Payment method preference
    • Auto-selects payment method id 14 when available and best-effort sets it as default; prefers enabled methods.
    • File: frontend/src/pages/account/PlansAndBillingPage.tsx
  • Admin subscriptions actions and linking
    • Added Activate/Cancel and Refresh actions on /admin/subscriptions.
    • /admin/accounts “Manage” links now deep-link to /admin/subscriptions?account_id=....
    • Files: frontend/src/pages/admin/AdminSubscriptionsPage.tsx, frontend/src/pages/admin/AdminAllAccountsPage.tsx
  • Upgrade gating helper
    • Introduced isUpgradeError / showUpgradeToast and applied to Sites list to surface upgrade prompts on 402/403. ModuleGuard imported/prepared.
    • Files: frontend/src/utils/upgrade.ts, frontend/src/pages/Sites/List.tsx, frontend/src/components/common/ModuleGuard.tsx
  • Balance error UX
    • Shows “Balance unavailable” with retry; clears stale balance on error instead of silently showing defaults.
    • Files: frontend/src/components/dashboard/CreditBalanceWidget.tsx, frontend/src/store/billingStore.ts

Behavior Notes / Outcomes

  • Signup now survives duplicate slug cases (unique slug generation).
  • Plans fetch should not be throttled; all active plans returned by the API will render.
  • If SPA navigation fails post-signup, the hard redirect ensures landing on /account/plans.
  • Payment method id 14 is preferred when present; otherwise any default/available method can be used.
  • Admins can activate/cancel subscriptions from the subscriptions page; Manage links carry account_id.
  • Upgrade prompts now surface on 402/403 in Sites list; balance widgets show proper error/retry state.

Operational Dependencies / Reminders

  • Ensure the backend exposes at least one active plan; otherwise the list will remain empty.
  • Ensure at least one payment method exists (id 14 preferred) so plan selection/purchases are not blocked.