#!/usr/bin/env bash # ممیزی وابستگی‌ها — آسیب‌پذیری‌های شناخته‌شده در پکیج‌های پایتون/نود و ایمیج‌های داکر. # bash scripts/audit.sh # ابزارها اگر نصب نباشند رد می‌شوند (پیام هشدار)؛ خروجی nonzero یعنی مشکل پیدا شد. set -uo pipefail cd "$(dirname "$0")/.." STATUS=0 echo "== pip-audit (بک‌اند) ==" if command -v pip-audit >/dev/null 2>&1; then (cd backend && pip-audit -r requirements.txt --progress-spinner off) || STATUS=1 else echo "رد شد: pip-audit نصب نیست (pip install pip-audit)" fi echo "== npm audit (فرانت‌اند) ==" if [ -d frontend/node_modules ]; then (cd frontend && npm audit --omit=dev) || STATUS=1 else echo "رد شد: frontend/node_modules نیست (npm install)" fi echo "== trivy (ایمیج‌های داکر) ==" if command -v trivy >/dev/null 2>&1; then for img in aramesh-backend-backend aramesh-backend-frontend aramesh-backend-chatbot; do if docker image inspect "$img" >/dev/null 2>&1; then trivy image --severity HIGH,CRITICAL "$img" || STATUS=1 fi done else echo "رد شد: trivy نصب نیست" fi if [ "$STATUS" -eq 0 ]; then echo "✔ ممیزی تمام شد — مشکل شناخته‌شده‌ای پیدا نشد." else echo "✗ ممیزی مشکل پیدا کرد — خروجی بالا را بررسی کنید." >&2 fi exit "$STATUS"