3.7 KiB
Demo Accesses and Email Domain
Goal
Make the demo credentials easy to use and standardize the platform demo accounts
from @agendapro.demo to @agendamax.demo in source data, documentation, local
data, and the deployed Coolify instance.
Scope
- Replace active positive
@agendapro.demoreferences in application code, tests, README, and operational documentation with@agendamax.demo; retain the old domain only in migration-history documentation or explicit negative-login assertions. - Keep the existing demo password
demo1234and expose it clearly beside each demo account inREADME.md. - Update the local SQLite demo users without deleting businesses, appointments, or other seeded records.
- Deploy the code to the existing AgendaMax Coolify application.
- Update the persistent production SQLite users for the exact admin and owner accounts with a targeted SQL change, preserving all other data.
Data Flow
Fresh databases receive the new admin and owner emails from server/scripts/seed.ts
and server/index.ts. Existing local and production databases are migrated by
updating only these two exact rows: [email protected] and
[email protected]. If the active database is fresh and already contains the
new emails, the SQL update is a no-op and is skipped.
The employee accounts already use their business domains and are not changed.
Login verification uses POST /api/auth/login with the documented password and
does not expose password values through the API.
Production Procedure
- Run the local checks and build.
- Push the change to the AgendaMax source mirror used by Coolify.
- Trigger and monitor a Coolify deployment.
- Inspect the exact old/new admin and owner rows. If an old row and its matching
new row both exist, stop and resolve the unique-email collision. If no old
rows exist and the new rows are present, record a safe no-op. Otherwise run a
targeted SQLite update inside the persistent production app volume:
UPDATE users SET email = CASE email WHEN '[email protected]' THEN '[email protected]' WHEN '[email protected]' THEN '[email protected]' END WHERE (email = '[email protected]' AND role = 'admin') OR (email = '[email protected]' AND role = 'owner'); - Verify health, login for admin and owner, and the production page.
If deployment fails, do not run the production SQL migration; inspect the deployment first and use the existing Coolify rollback procedure.
Acceptance Criteria
rg "agendapro\\.demo"returns no active positive application, test, or README references; only explicit negative-login assertions and migration-history documentation may retain the old domain.- README lists every demo account with email and
demo1234. - Fresh seed creates
[email protected]and[email protected]. - Existing local data contains the new emails and retains its records.
- Coolify deployment finishes successfully.
- Production
/api/healthreturnsok: true. - Production admin and owner logins succeed with
demo1234. - Production admin and owner logins using the old domain return
401. - README employee emails exactly match the accent-preserving emails generated by the seed.
- The targeted SQL pairs each old email with its matching role and never rewrites another old-domain user.
Known Verification Limitation
The already-migrated local database has null businesses.working_hours and
employee working_hours values. As a result, the slot-dependent test:e2e and
test:booking assertions can fail before booking, including their existing
downstream dereference. This is a pre-existing scheduling-data limitation,
unrelated to the email-domain change; do not change working-hours data for this
task.