2.7 KiB
2.7 KiB
Implementation Plan
Checklist
-
Add core server modules:
- JSON store read/write helpers.
- Account/session/password helpers.
- Role and permission definitions.
- Audit logging helper.
- Shared API response helpers.
-
Add auth APIs:
GET /api/auth/bootstrapPOST /api/auth/setupPOST /api/auth/loginPOST /api/auth/logoutGET /api/auth/session
-
Migrate auth UI:
- Update
AuthPanelto call server APIs. - Update
SignOutButtonto call logout API. - Replace or bypass localStorage-only
AuthGatewith server session protection in the app layout. - Keep unauthenticated redirects and setup redirects working.
- Update
-
Add elder APIs and UI:
- Create elder types and input validators.
- Implement list/create/update/delete Route Handlers.
- Replace
app/(app)/app/elders/page.tsxstatic content with server-loaded CRUD UI.
-
Add settings/audit UI:
- Implement settings/account, role, and audit APIs.
- Replace
app/(app)/app/settings/page.tsxstatic content with server-loaded tables.
-
Wire audit events:
- Account setup/create.
- Login/logout.
- Elder create/update/delete.
- Denied permission checks.
-
Verification:
- Run
pnpm lint. - Run
pnpm type-check. - Run
pnpm build. - Start dev server and manually exercise setup/login/CRUD/settings if build passes.
- Run
Files Expected to Change
modules/auth/components/AuthPanel.tsxmodules/auth/components/AuthGate.tsxmodules/auth/components/SignOutButton.tsxapp/(app)/app/layout.tsxapp/(app)/app/elders/page.tsxapp/(app)/app/settings/page.tsx
Files Expected to Be Created
modules/core/server/store.tsmodules/core/server/auth.tsmodules/core/server/permissions.tsmodules/core/server/audit.tsmodules/core/server/api.tsmodules/elders/types.tsmodules/elders/components/EldersClient.tsxmodules/settings/components/SettingsOverview.tsxapp/api/auth/bootstrap/route.tsapp/api/auth/setup/route.tsapp/api/auth/login/route.tsapp/api/auth/logout/route.tsapp/api/auth/session/route.tsapp/api/elders/route.tsapp/api/elders/[id]/route.tsapp/api/settings/accounts/route.tsapp/api/settings/roles/route.tsapp/api/audit-logs/route.ts
Validation Commands
pnpm lint
pnpm type-check
pnpm build
pnpm dev
Rollback Points
- If server auth blocks all app routes, revert only layout/AuthGate changes while keeping APIs.
- If elder CRUD UI is unstable, keep APIs and temporarily render a read-only server table.
- If file store causes build/runtime issues, move the data directory to
/tmpbehind the same store API for verification, then restore.dataonce filesystem assumptions are fixed.