1.9 KiB
1.9 KiB
Request Lifecycle Flows
1. Auth Sign-In (Admin)
- Browser posts to
/api/auth/sign-in/email. - Route resolves
identifier(email or username) to canonical email. - Better Auth credential sign-in executes.
- Session cookie is set and user is redirected.
Key files:
apps/admin/src/app/login/login-form.tsxapps/admin/src/app/api/auth/[...all]/route.tsapps/admin/src/lib/auth/server.ts
2. Initial Owner Registration
- If no owner exists,
/welcomerenders owner sign-up mode. - Sign-up request goes through auth route handler.
- New user is promoted to owner in transactional guard.
- Owner invariant is re-validated to enforce single owner.
Key files:
apps/admin/src/app/welcome/page.tsxapps/admin/src/app/api/auth/[...all]/route.tsapps/admin/src/lib/auth/server.ts
3. Media Upload
- Admin form posts multipart data to
/api/media/upload. - Metadata is validated and file is stored through selected provider.
- Media asset record is persisted with storage metadata.
- UI redirects back to media list with flash status query.
Key files:
apps/admin/src/components/media/media-upload-form.tsxapps/admin/src/app/api/media/upload/route.tsapps/admin/src/lib/media/storage.tspackages/db/src/media-foundation.ts
4. Page Publish
- Admin submit on
/pagescalls server action. - Page schema validates payload and persists.
publishedstatus sets publication fields.- Public app resolves slug and renders page if published.
Key files:
apps/admin/src/app/pages/page.tsxpackages/db/src/pages-navigation.tsapps/web/src/app/[locale]/[slug]/page.tsx
5. Commission Status Transition
- Admin updates status from commission card form.
- Server action validates transition payload.
- DB update persists new status.
- Kanban view re-renders with updated column placement.
Key files:
apps/admin/src/app/commissions/page.tsxpackages/db/src/commissions.ts