47 lines
3.2 KiB
Markdown
47 lines
3.2 KiB
Markdown
## 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.
|
|
|