Sign in (dev test users)
For multi-browser testing: staff accounts are in portal_users_staff.json (e.g. mary.liu, priya.nair); client.demo / contractor.demo use their own files — same password
(default PortalTest1, or set PORTAL_DEV_PASSWORD). Run the server with
AUTH_MODE=dev_login (npm run dev:portal:dev-login). Local use only.
Sign In (Mock OIDC Mode)
Sign in (OIDC)
Authorization code + PKCE; access token is kept on the server and sent over an HttpOnly session cookie (not JavaScript-accessible).
Set server env per development/web/business-portal/oidc_env_example.txt (OIDC_ISSUER, OIDC_AUDIENCE, OIDC_CLIENT_ID, OIDC_PUBLIC_BASE_URL or OIDC_REDIRECT_URI, role maps, account claim for clients).
Advanced: paste a Bearer access token (e.g. from your IdP debugger).
It opens a form for this agreement. Use Save draft to store partial progress in this browser (survives sign-out); use Save when required fields are complete to refresh the preview. Drafts stay on your device and are not uploaded to the company server.
Select a contractor from config/contractors.json, then complete agreement terms. Save draft and Save work like the staffing agreement; data stays in this browser unless you add a server-side process later.
Business portal