Files
wevia-brain/CLAUDE_CODE_MISSION.md
2026-04-12 23:01:36 +02:00

5.6 KiB

MISSION CLAUDE CODE — Backend / API / DB Audit

3 serveurs: S204, S95, S151

Date: 29 Mars 2026


CONTEXTE

Tu travailles sur le repo weval-consulting (GitHub). Le fichier CLAUDE.md à la racine contient toute l'architecture. Lis-le en premier.

Claude Opus gère: Front-end, SSO/Authentik, nginx, UX Toi (Claude Code) tu gères: Backend PHP, APIs, PostgreSQL, scripts Python, qualité code


MISSION 1: AUDIT PHP — Tous les APIs dans /api/

# Liste toutes les APIs
ls api/*.php | wc -l  # ~40+ fichiers

# Pour CHAQUE fichier:
# 1. Vérifier la syntaxe: php -l api/fichier.php
# 2. Vérifier qu'il retourne du JSON valide
# 3. Vérifier qu'il n'y a PAS de credentials en dur (admin123, WEVADS2026, etc.)
# 4. Vérifier le error handling (try/catch, json_encode errors)
# 5. Vérifier l'input validation ($_GET/$_POST sanitization)

APIs critiques à auditer en priorité:

  • api/aegis-api.php — AI EDR (status/scan/policy)
  • api/skillsmith-api.php — Skills (status/search/installed/recommend)
  • api/aios-api.php — AI OS (status/agents/kernel)
  • api/blade-api.php — Blade task queue (push/poll/report)
  • api/blade-brain.php — AI cascade GLM-5
  • api/whatsapp-api.php — WhatsApp Business
  • api/ethica-pilot-send.php — Ethica campaign
  • api/ecosystem-health.php — Health check
  • api/wevia-tools-router.php — Tool routing
  • api/cx — Command execution relay (SÉCURITÉ CRITIQUE)
  • api/droid — Droid relay (SÉCURITÉ CRITIQUE)

Ce que tu dois fixer:

  1. Input validation manquante → ajouter filter_input() / htmlspecialchars()
  2. Error handling → wrap dans try/catch, retourner {"ok":false,"error":"..."}
  3. Rate limiting si absent → vérifier header X-RateLimit
  4. Credentials hardcodées → migrer vers /etc/weval/secrets.env
  5. SQL injection → vérifier que toutes les queries utilisent prepared statements

MISSION 2: AUDIT DB — PostgreSQL S95

# Connexion (via relay ou SSH)
# Host: 10.1.0.3, Port: 5432, User: admin, Pass: admin123, DB: adx_system

# Vérifier:
# 1. Tables orphelines (pas de FK, pas de données)
# 2. Index manquants sur colonnes fréquemment requêtées
# 3. Données corrompues ou incohérentes
# 4. Taille des tables (bloat)
# 5. Connexions actives

Tables critiques:

  • admin.send_contacts (~3M rows) — index sur email, status?
  • ethica.medecins_validated (~131K rows) — index sur pays, email, specialite?
  • admin.weval_leads (~192 rows) — structure OK?
  • admin.linkedin_profiles (~472 rows)
  • admin.whatsapp_messages
  • ethica.campaigns

Requêtes de vérification:

-- Taille des tables
SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename))
FROM pg_tables WHERE schemaname IN ('admin','ethica') ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC LIMIT 20;

-- Index manquants
SELECT schemaname, tablename, indexrelname, idx_scan
FROM pg_stat_user_indexes WHERE idx_scan = 0 ORDER BY schemaname, tablename;

-- Connexions actives
SELECT count(*), state FROM pg_stat_activity GROUP BY state;

-- Données Ethica cohérence
SELECT pays, count(*), count(email) as with_email, count(telephone) as with_tel
FROM ethica.medecins_validated GROUP BY pays ORDER BY count DESC;

MISSION 3: SCRIPTS PYTHON — S95 /opt/

# 18+ scripts Python/Bash dans /opt/
# Vérifier:
# 1. Syntaxe: python3 -m py_compile script.py
# 2. Imports valides (pas de modules manquants)
# 3. DB host = 10.1.0.3 (PAS localhost)
# 4. Error handling (try/except)
# 5. Logs (output vers fichier, pas juste stdout)

Scripts critiques:

  • /opt/ethica-master.py — Master orchestrator
  • /opt/ethica-deep-scraper.py — 1sante crawler
  • /opt/ethica-linkedin-drip.py — LinkedIn slow drip
  • /opt/ethica-email-drip.py — Email enrichment
  • /opt/ethica-dabadoc-scraper.py — DabaDoc crawler
  • /opt/weval-b2b-autonomous.sh — B2B scraper
  • /opt/auto-delist.sh — Blacklist monitor
  • /opt/disk-monitor.sh — Disk alerts

MISSION 4: S151 — Tracking relay

# SSH: ubuntu@151.80.235.110 (pass: MX8D3zSAty7k3243242)
# Vérifier:
# 1. open.php — relay format OK?
# 2. click.php — relay format OK?
# 3. Redis status
# 4. Nginx config
# 5. Docker (OpenClaw + Ollama)

MISSION 5: QUALITÉ CODE

  1. PHPStan level 5 sur tous les fichiers PHP
  2. ESLint sur tous les JS (assets/*.js, wevads-ia/index.html inline JS)
  3. Playwright test coverage — ajouter tests pour les APIs non couvertes
  4. OpenAPI/Swagger spec — générer pour les 68 APIs

COMMANDES UTILES

# Exécuter sur S204
echo 'COMMANDE' | base64 | xargs -I{} curl -sk -X POST https://weval-consulting.com/api/cx -d "k=WEVADS2026&c={}"

# Exécuter sur S95 (via S204)
echo 'ssh -p 49222 root@10.1.0.3 "COMMANDE"' | base64 | xargs -I{} curl -sk -X POST https://weval-consulting.com/api/cx -d "k=WEVADS2026&c={}"

# Exécuter sur S151 (via S204)  
echo 'sshpass -p MX8D3zSAty7k3243242 ssh ubuntu@151.80.235.110 "COMMANDE"' | base64 | xargs -I{} curl -sk -X POST https://weval-consulting.com/api/cx -d "k=WEVADS2026&c={}"

RÈGLES ABSOLUES

  • JAMAIS toucher PMTA port 25
  • DB host = 10.1.0.3 (pas localhost)
  • NonReg PASS obligatoire après chaque fix: curl -sk https://weval-consulting.com/api/nonreg-api.php?cat=run
  • Git commit après chaque batch de fixes
  • chattr -i/+i sur nginx configs

LIVRABLE ATTENDU

Un rapport avec:

  1. Liste des bugs trouvés + fixés
  2. Liste des vulnérabilités corrigées
  3. Index DB ajoutés
  4. Scripts Python validés/fixés
  5. NonReg score avant/après

Généré par Claude Opus — 29 Mars 2026