Files
pgz-sport/swarm.sh
T
Damir Radulić 492c8fdd87 M1+M2+M10 (CC2 R3): JWT auth + admin users + GDPR backend
- auth/auth_v2.py: JWT login/refresh/logout/me + bcrypt + tenant_id/role/tier claims
- auth/admin_users.py: /api/admin/users CRUD + invite/role/suspend + bulk CSV
- auth/gdpr.py: cookie consent + Art.20 export + Art.17 erasure + admin queue
- auth/seed_demo.py: 3 demo tenants + 4 users (damir@pgz.hr / PGZ2026!)
- Removed legacy /api/auth/login + /api/auth/me from pgz_sport_api.py
- Wired auth/admin/gdpr routers into FastAPI

5/5 live curl tests pass: damir@pgz.hr login → JWT with tenant_id=1, role=pgz_admin, tier=0
2026-05-05 00:09:09 +02:00

102 lines
5.0 KiB
Bash
Executable File

#!/bin/bash
# CC SWARM MONITOR v2 — radni tiled prikaz
case "${1:-help}" in
view|loop)
while true; do
clear
echo "╔════════════════════════════════════════════════════════════════════╗"
echo "║ PGŽ SPORT — CC SWARM ($(date '+%Y-%m-%d %H:%M:%S')) ║"
echo "╚════════════════════════════════════════════════════════════════════╝"
for s in cc1 cc2 cc3 cc4 cc5 cc6; do
echo
echo "─── [$s] ───────────────────────────────────────────────────────"
tmux capture-pane -t ${s}:0 -p 2>/dev/null | grep -v "^─*$" | grep -v "^$" | tail -5 | sed 's/^/ /'
done
echo
echo "════════════════════════════════════════════════════════════════════"
echo "Git: $(cd /opt/pgz-sport && git log --oneline -1 2>/dev/null)"
echo "Refresh 30s | Ctrl+C izlaz"
echo "════════════════════════════════════════════════════════════════════"
sleep 30
done
;;
tiled|tile)
# Stvori SAMO display sesiju koja gleda svih 6 odjednom
tmux kill-session -t swarm-view 2>/dev/null
# Nova sesija
tmux new-session -d -s swarm-view -x 240 -y 60
# Koristi watch da gleda capture-pane svakih 2s — to RADI bez nestanja
tmux send-keys -t swarm-view:0 'watch -n 2 -t "echo === CC1 ===; tmux capture-pane -t cc1:0 -p | tail -8"' Enter
# Split na 6 panela
tmux split-window -h -t swarm-view:0
tmux send-keys -t swarm-view:0.1 'watch -n 2 -t "echo === CC2 ===; tmux capture-pane -t cc2:0 -p | tail -8"' Enter
tmux split-window -v -t swarm-view:0.0
tmux send-keys -t swarm-view:0.2 'watch -n 2 -t "echo === CC3 ===; tmux capture-pane -t cc3:0 -p | tail -8"' Enter
tmux split-window -v -t swarm-view:0.1
tmux send-keys -t swarm-view:0.3 'watch -n 2 -t "echo === CC4 ===; tmux capture-pane -t cc4:0 -p | tail -8"' Enter
tmux split-window -v -t swarm-view:0.0
tmux send-keys -t swarm-view:0.4 'watch -n 2 -t "echo === CC5 ===; tmux capture-pane -t cc5:0 -p | tail -8"' Enter
tmux split-window -v -t swarm-view:0.1
tmux send-keys -t swarm-view:0.5 'watch -n 2 -t "echo === CC6 ===; tmux capture-pane -t cc6:0 -p | tail -8"' Enter
tmux select-layout -t swarm-view tiled
echo "═════════════════════════════════════════════════"
echo " Sesija swarm-view kreirana s 6 panela"
echo "═════════════════════════════════════════════════"
echo " Pogledaj: tmux attach -t swarm-view"
echo " Detach: Ctrl+B pa D"
echo "═════════════════════════════════════════════════"
# Auto-attach
tmux attach -t swarm-view
;;
status|s)
for s in cc1 cc2 cc3 cc4 cc5 cc6; do
echo "=== $s ==="
tmux capture-pane -t ${s}:0 -p 2>/dev/null | tail -8
echo
done
;;
git|log)
cd /opt/pgz-sport
echo "═══ COMMITS ═══"
git log --oneline -20
;;
cc1|1) tmux attach -t cc1 ;;
cc2|2) tmux attach -t cc2 ;;
cc3|3) tmux attach -t cc3 ;;
cc4|4) tmux attach -t cc4 ;;
cc5|5) tmux attach -t cc5 ;;
cc6|6) tmux attach -t cc6 ;;
*)
cat << 'HELP'
═══════════════════════════════════════════════════════════════════════
CC SWARM — PGŽ SPORT
═══════════════════════════════════════════════════════════════════════
bash swarm.sh tiled 6 panela live prikaz (ATTACHA ODMAH)
bash swarm.sh view Auto-refresh 30s (cijela slika u 1 ekranu)
bash swarm.sh status Brzi snapshot
bash swarm.sh git Git log
bash swarm.sh cc1..6 Attach na specifični agent
Detach iz attached: Ctrl+B pa D
Switch tmux panel: Ctrl+B pa strijelica
═══════════════════════════════════════════════════════════════════════
HELP
;;
esac