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:
Radosław Gierwiało
2025-11-15 20:51:24 +01:00
parent c7a37b2f5c
commit 78f96e2849
7 changed files with 837 additions and 1 deletions

54
Makefile Normal file
View File

@@ -0,0 +1,54 @@
SHELL := /bin/bash
COMPOSE ?= docker compose
PROFILE ?= dev
# Select backend service name based on profile
ifeq ($(PROFILE),prod)
BACKEND_SVC := backend-prod
else
BACKEND_SVC := backend
endif
.PHONY: help dev-cli prod-cli \
dev-up dev-down dev-up-rebuild \
prod-up prod-down prod-up-rebuild
help:
@echo "Available targets:"
@echo " make dev-cli # Start admin REPL in dev backend"
@echo " make prod-cli # Start admin REPL in prod backend"
@echo " make dev-up # docker compose --profile dev up"
@echo " make dev-up-rebuild # docker compose --profile dev up --build"
@echo " make dev-down # docker compose --profile dev down"
@echo " make prod-up # docker compose --profile prod up -d"
@echo " make prod-up-rebuild # docker compose --profile prod up -d --build"
@echo " make prod-down # docker compose --profile prod down"
@echo "Notes: GNU Make nie wspiera subkomend z odstępami (np. 'make prod up')."
@echo " Użyj odpowiednich celów z myślnikiem."
# Admin CLI explicit targets
dev-cli:
$(COMPOSE) exec backend npm run cli
prod-cli:
$(COMPOSE) exec backend-prod npm run cli
# Development profile
dev-up:
$(COMPOSE) --profile dev up -d
dev-up-rebuild:
$(COMPOSE) --profile dev up -d --build
dev-down:
$(COMPOSE) --profile dev down
# Production profile
prod-up:
$(COMPOSE) --profile prod up -d
prod-up-rebuild:
$(COMPOSE) --profile prod up -d --build
prod-down:
$(COMPOSE) --profile prod down