First Login
New deployments bootstrap a default admin identity:
email: admin@roster.localusername: adminpassword: the value supplied through ROSTER_BOOTSTRAP_ADMIN_PASSWORDrole: adminProduction requires a strong, deployment-specific bootstrap password. Local
development outside NODE_ENV=production continues to use admin when the
variable is omitted. After sign-in, the password-change behavior is controlled
by ROSTER_BOOTSTRAP_ADMIN_PASSWORD_CHANGE_MODE.
Password Change Prompt
Section titled “Password Change Prompt”When password_change_required=true, Roster applies the configured mode:
| Mode | Behavior |
|---|---|
remind | Default. Shows Skip for now. Dismissing the prompt applies only to the current browser session, and a later session shows it again. |
required | Does not offer Skip for now. Protected browser functions and OAuth consent remain unavailable until the password is changed. |
off | Does not show or enforce the password-change prompt. The stored password_change_required value is left unchanged. |
When password_change_required=false, no mode shows the prompt. Only a
successful password change clears the stored requirement.
Password Policy
Section titled “Password Policy”New passwords must:
- Be at least 12 characters
- Include a lowercase letter
- Include an uppercase letter
- Include a number
- Include a symbol
- Not start or end with whitespace
- Not equal the default password
admin - Differ from the current password
Better Auth also enforces a minimum password length of 12 characters on the server.
Operational Guidance
Section titled “Operational Guidance”Change the bootstrap admin password immediately after deployment and create named admin team members for day-to-day administration. Treat the bootstrap account as a recovery account, not as a shared operational identity.
After the bootstrap administrator has been created and the first login is
confirmed, remove ROSTER_BOOTSTRAP_ADMIN_PASSWORD from the deployment
configuration. Roster ignores the variable while the bootstrap administrator
exists, but a fresh or reset database would reuse a retained bootstrap
password.