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:
120
nonreg-framework.sh
Executable file
120
nonreg-framework.sh
Executable 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 "========================================"
|
||||
Reference in New Issue
Block a user