3.2 KiB
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
IntegrityErroron duplicate slugs during signup. - File:
backend/igny8_core/auth/serializers.py
- Now generates unique account slugs by appending numeric suffixes to avoid
- 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/plansif navigation stalls. - File:
frontend/src/components/auth/SignUpForm.tsx
- After successful signup, still calls router navigate to
- 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
- Added Activate/Cancel and Refresh actions on
- Upgrade gating helper
- Introduced
isUpgradeError/showUpgradeToastand 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
- Introduced
- 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.