feat(cli): add admin REPL + commands and docs
- Add CLI entry in backend with default REPL, persistent history, aliases - Add commands: users:list/create/verify, events:list/details/participants/checkin, matches:list, logs:app, logs:messages - Support running subcommands inside REPL via .cli and run() - Add Makefile targets: dev-cli, prod-cli, dev/prod up/down (+rebuild) - Update README and add docs/ADMIN_CLI.md - Add CLI tests with mocked Prisma
This commit is contained in:
25
README.md
25
README.md
@@ -364,6 +364,30 @@ Adds:
|
||||
- Click on another user's username
|
||||
- View profile: avatar, location, social media, statistics
|
||||
|
||||
## 🧰 Admin CLI
|
||||
|
||||
Use an in-container admin console for quick maintenance.
|
||||
|
||||
- Start REPL (default): `docker compose exec backend npm run cli`
|
||||
- Explicit REPL: `docker compose exec backend npm run cli -- repl`
|
||||
- List users: `docker compose exec backend npm run cli -- users:list --limit 20`
|
||||
- Create user: `docker compose exec backend npm run cli -- users:create --email admin@example.com --username admin --password 'Secret123!'`
|
||||
- Verify email: `docker compose exec backend npm run cli -- users:verify --email admin@example.com`
|
||||
- List events: `docker compose exec backend npm run cli -- events:list --limit 10`
|
||||
- Event details by slug: `docker compose exec backend npm run cli -- events:details --slug warsaw-dance-2025 [--participants 25]`
|
||||
- Event participants: `docker compose exec backend npm run cli -- events:participants --slug warsaw-dance-2025 --limit 100`
|
||||
- Event participants CSV: `docker compose exec backend npm run cli -- events:participants --slug warsaw-dance-2025 --limit 200 --csv > participants.csv`
|
||||
- List matches: `docker compose exec backend npm run cli -- matches:list --limit 20 [--status accepted|pending|completed]`
|
||||
- Check-in user to event (simulate QR): `docker compose exec backend npm run cli -- events:checkin --username john_doe --slug warsaw-dance-2025`
|
||||
- App logs (if LOG_FILE configured): `docker compose exec backend npm run cli -- logs:app --lines 200`
|
||||
- Recent chat messages: `docker compose exec backend npm run cli -- logs:messages --limit 50`
|
||||
|
||||
Production equivalents use `backend-prod` instead of `backend`.
|
||||
|
||||
REPL specifics:
|
||||
- Inside REPL use `run('users:list --limit 20')` or `.cli users:list --limit 20`.
|
||||
- Top-level await works for Prisma: `await prisma.user.findMany({ take: 5 })`.
|
||||
|
||||
## 🔐 Security
|
||||
|
||||
### Implemented Security Features:
|
||||
@@ -509,6 +533,7 @@ docker compose exec backend npm run test:coverage
|
||||
- `docs/PHASE_1.5.md` - Phase 1.5 documentation (Email & WSDC)
|
||||
- `docs/SECURITY_AUDIT.md` - Security audit & fixes
|
||||
- `docs/DEPLOYMENT.md` - Deployment guide
|
||||
- `docs/ADMIN_CLI.md` - Admin CLI & REPL usage
|
||||
- `docs/COMPLETED.md` - Completed tasks archive
|
||||
- `docs/RESOURCES.md` - Links to documentation and learning resources
|
||||
|
||||
|
||||
Reference in New Issue
Block a user