convoy: scripts/rotate-admin-password.js — one-shot admin rotation (rotate-default-admin) #141
No reviewers
Labels
No labels
agent-context-drift
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: rstillwell/deckhearth#141
Loading…
Reference in a new issue
No description provided.
Delete branch "convoy/rotate-default-admin-script"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Closes the operator caveat from `drop-public-setup`: deployed envs that ran `npm run setup-db` BEFORE `ff80753` (2026-05-22) still carry the historical `admin123` bcrypt hash. The seed is idempotent (`ON CONFLICT DO NOTHING`), so `npm run setup-db` is a no-op on existing rows — those envs need a deliberate rotation step.
What
`scripts/rotate-admin-password.js`, a one-shot parameterized rotation script. Usage:
```bash
POSTGRES_URL= \
ADMIN_NEW_PASSWORD=$(openssl rand -base64 24) \
node scripts/rotate-admin-password.js
```
Safety guarantees:
Same ESM + `@neondatabase/serverless` shape as `scripts/migrations/2026-05-24-rename-admin-email.js` — keeps the "11 scripts/* using neon() directly" graveyard consistent (no new patterns to clean up in the queued `purge-neondatabase-serverless-fully` convoy).
Decision D1 — option B from the 3-option menu
Out of scope
Test plan
Made with Cursor
The latest updates on your projects. Learn more about Vercel for GitHub.
Pipeline Health
Build + CI gates
Build runs on Vercel; this CI runs lint and schema-map drift only (no duplicate build).
Role reports
See individual comments above for details. This rollup updates automatically.