Framework anti-regression v1.0: 46 checks (27 pages + 6 APIs + 2 WEVIA + 5 tracking + 6 infra/confidentialite)

Co-authored-by: Yacineutt <Yacineutt@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-03-09 22:08:57 +00:00
parent 6a25b0b275
commit 8f50823e57

120
nonreg-framework.sh Executable file
View File

@@ -0,0 +1,120 @@
#!/bin/bash
# WEVAL ANTI-REGRESSION FRAMEWORK v1.0
# Execute depuis n'importe quel poste avec curl
# Usage: ./nonreg_framework.sh
PASS=0; FAIL=0; TOTAL=0
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
check() {
TOTAL=$((TOTAL+1))
local NAME=$1 EXPECTED=$2 ACTUAL=$3
if [ "$ACTUAL" = "$EXPECTED" ]; then
PASS=$((PASS+1))
echo -e "${GREEN}[PASS]${NC} $NAME"
else
FAIL=$((FAIL+1))
echo -e "${RED}[FAIL]${NC} $NAME (expected=$EXPECTED actual=$ACTUAL)"
fi
}
check_http() {
local NAME=$1 URL=$2 TIMEOUT=${3:-15}
local CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time $TIMEOUT "$URL" 2>&1)
check "$NAME" "200" "$CODE"
}
check_api() {
local NAME=$1 URL=$2 METHOD=${3:-GET} DATA=${4:-}
local START=$(date +%s%N)
if [ "$METHOD" = "POST" ]; then
RESP=$(curl -s --max-time 120 -X POST "$URL" -H "Content-Type: application/json" -d "$DATA" 2>&1)
else
RESP=$(curl -s --max-time 120 "$URL" 2>&1)
fi
local END=$(date +%s%N)
local MS=$(( (END - START) / 1000000 ))
local LEN=${#RESP}
TOTAL=$((TOTAL+1))
if [ $LEN -gt 10 ] && echo "$RESP" | grep -q '"error"' 2>/dev/null; then
FAIL=$((FAIL+1))
echo -e "${RED}[FAIL]${NC} $NAME (${MS}ms, error in response)"
elif [ $LEN -gt 10 ]; then
PASS=$((PASS+1))
echo -e "${GREEN}[PASS]${NC} $NAME (${MS}ms, ${LEN}c)"
else
FAIL=$((FAIL+1))
echo -e "${RED}[FAIL]${NC} $NAME (${MS}ms, empty response)"
fi
}
echo "========================================"
echo "WEVAL ANTI-REGRESSION FRAMEWORK v1.0"
echo "$(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================"
# === 1. FRONTEND - 27 pages produits ===
echo -e "\n${YELLOW}--- FRONTEND: Pages produits ---${NC}"
for p in academy affiliates arsenal blueprintai cloud-providers content-factory dashboard deliverads deliverscore formbuilder gpu-inference index leadforge mailforge mailwarm medreach outreachai proposalai sentinel services signup storeforge wevads wevads-ia wevia-enterprise wevia-whitelabel workspace; do
check_http "products/$p" "https://weval-consulting.com/products/${p}.html"
done
echo -e "\n${YELLOW}--- FRONTEND: Pages principales ---${NC}"
for p in "/" "/solutions" "/wevia" "/contact-us" "/platform/" "/products/"; do
check_http "main$p" "https://weval-consulting.com${p}"
done
# === 2. BACKEND APIs ===
echo -e "\n${YELLOW}--- BACKEND: APIs SaaS ---${NC}"
check_api "DeliverScore" "https://weval-consulting.com/api/deliverscore/scan.php?domain=weval-consulting.com"
check_api "MedReach" "https://weval-consulting.com/api/medreach/search.php?specialty=cardiologue&country=MA&limit=3"
check_api "Auth" "https://weval-consulting.com/api/products/auth.php?action=products"
check_api "Guardian" "http://89.167.40.150:5890/api/guardian-scan.php?action=status"
# === 3. WEVIA IA ===
echo -e "\n${YELLOW}--- WEVIA: Widget + Fullscreen ---${NC}"
check_api "WEVIA greeting" "https://weval-consulting.com/api/weval-ia" "POST" '{"message":"bonjour","mode":"fast"}'
check_api "WEVIA deep" "https://weval-consulting.com/api/weval-ia-full" "POST" '{"message":"services WEVAL","mode":"deep"}'
# === 4. TRACKING ===
echo -e "\n${YELLOW}--- TRACKING: S151 + consent ---${NC}"
check_http "S151 root" "http://151.80.235.110/"
check_http "S151 /o (open)" "http://151.80.235.110/o"
check_http "S151 /c (click)" "http://151.80.235.110/c"
check_http "S151 /u (unsub)" "http://151.80.235.110/u"
check_http "consent.wevup.app" "http://consent.wevup.app"
# === 5. INFRA ===
echo -e "\n${YELLOW}--- INFRA: Services ---${NC}"
check_api "Sentinel API" "http://89.167.40.150:5890/api/sentinel-brain.php" "POST" '{"action":"exec","cmd":"echo OK"}'
# === 6. CONFIDENTIALITE ===
echo -e "\n${YELLOW}--- CONFIDENTIALITE: Scan pages ---${NC}"
SECRETS_FOUND=0
for p in index medreach workspace proposalai blueprintai arsenal wevads gpu-inference; do
HTML=$(curl -s --max-time 15 "https://weval-consulting.com/products/${p}.html" 2>&1)
for term in "McKinsey" "OpenAI" "Anthropic" "Abbott" "AbbVie" "89.167.40.150" "88.198.4.195"; do
if echo "$HTML" | grep -q "$term"; then
SECRETS_FOUND=$((SECRETS_FOUND+1))
echo -e "${RED}[FAIL]${NC} CONFIDENTIAL: '$term' in $p.html"
fi
done
done
TOTAL=$((TOTAL+1))
if [ $SECRETS_FOUND -eq 0 ]; then
PASS=$((PASS+1))
echo -e "${GREEN}[PASS]${NC} 0 info confidentielle detectee"
else
FAIL=$((FAIL+1))
fi
# === BILAN ===
echo -e "\n========================================"
echo -e "BILAN: ${GREEN}${PASS} PASS${NC} / ${RED}${FAIL} FAIL${NC} / ${TOTAL} TOTAL"
PCT=$((PASS * 100 / TOTAL))
if [ $FAIL -eq 0 ]; then
echo -e "${GREEN}GO LIVE: ALL PASS${NC}"
else
echo -e "${RED}NO GO: $FAIL failures${NC}"
fi
echo "========================================"