Compare commits

..

1 Commits

Author SHA1 Message Date
Cursor Agent
b7158b0637 Add Sentinel bulk install verification report
Co-authored-by: Yacineutt <Yacineutt@users.noreply.github.com>
2026-03-10 01:40:40 +00:00
2 changed files with 139 additions and 224 deletions

View File

@@ -1,224 +0,0 @@
# RAPPORT COMPOSER — GO LIVE weval-consulting.com
## Rôle : Frontend UX Engineer & Content Reviewer
**Date :** 9 mars 2026
**Statut :** A VERIFIER — Issues bloquantes identifiées
---
## 1. RÉSUMÉ EXÉCUTIF
| Critère | Statut | Détail |
|---------|--------|--------|
| Contenu (orthographe, confidentialité) | ❌ BLOQUANT | Infos confidentielles dans le frontend |
| UX (boutons, liens, responsive) | ⚠️ PARTIEL | Viewport OK, emojis au lieu de SVG |
| Cohérence visuelle | ⚠️ PARTIEL | Typo/couleurs incohérentes |
| SEO | ⚠️ PARTIEL | Sitemap incomplet, meta OK |
| **GO LIVE** | **NON** | Corrections requises |
---
## 2. AUDIT CONTENU
### 2.1 Informations confidentielles (BLOQUANT)
| [PAGE/SOURCE] | [STATUS] | [ISSUE] |
|---------------|----------|---------|
| `/assets/index-BcECjySJ.js` | ❌ BLOQUANT | **Noms de concurrents** : McKinsey, PwC, Deloitte présents dans le code (stratégies analytiques) |
| `/assets/index-BcECjySJ.js` | ❌ BLOQUANT | **IP interne exposée** : 89.167.40.150 (S89) visible dans le frontend — violation sécurité |
| `/wevia` (scripts) | ❌ BLOQUANT | Référence "Cadre analytique McKinsey" dans les prompts/stratégies |
**Règle de non-régression :** 0 info confidentielle visible — **NON RESPECTÉE**
### 2.2 Orthographe et grammaire
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Pages produits | ✅ OK | Pas de faute flagrante détectée sur les échantillons |
| Homepage | ✅ OK | Français correct, accents présents |
### 2.3 Cohérence du message (international vs régional)
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Homepage | ⚠️ ATTENTION | `og:locale` = fr_MA (Maroc) — le prompt exige un positionnement international |
| Homepage | ⚠️ ATTENTION | Titre "Casablanca" — peut paraître trop Maroc-centrique |
| `geo.region` | ⚠️ | MA-CAS, geo.placename Casablanca — à pondérer selon cible |
### 2.4 Jargon technique interne
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Audit global | ✅ OK | Pas de PMTA, Graph API, O365, CX3, SEMAINE 1, MAINTENANT détecté |
---
## 3. AUDIT UX
### 3.1 Boutons et liens
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Products | ✅ OK | Pas de `href="#"` sans action détecté |
| MedReach | ✅ OK | Ancres #features, #coverage, #pricing, #usecases, #cta — cibles présentes |
| Workspace | ✅ OK | Liens fonctionnels |
### 3.2 Responsive
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Workspace | ✅ OK | `<meta name="viewport" content="width=device-width,initial-scale=1.0">` |
| Homepage | ✅ OK | Viewport présent |
| Platform | ✅ OK | Viewport présent |
**Note :** Test manuel sur 375px, 768px, 1440px non effectué (audit automatisé).
### 3.3 Dark mode
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Workspace | ✅ OK | Thème sombre cohérent (--bg:#0b0e14, --text:#c9d1d9) |
| Platform | ✅ OK | Dark theme (--bg:#05080f) |
| WEVIA | ✅ OK | `isDark` + localStorage wevia_dark |
### 3.4 Chatbot
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| WEVIA | ⚠️ | Accessible — test fonctionnel à valider par QA (GPT) |
---
## 4. AUDIT COHÉRENCE VISUELLE
### 4.1 Logos et icônes
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Products | ❌ | **Emojis utilisés** (ex. 📧) — le prompt exige "Logos SVG sur toutes les cards (pas d'emojis)" |
### 4.2 Typographie
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Workspace | ✅ OK | Inter + JetBrains Mono (conforme spec) |
| Platform | ⚠️ | Outfit + Space Mono — **incohérence** avec spec "Inter + JetBrains Mono" |
| Homepage | ⚠️ | Font Awesome + fonts CDN — à vérifier cohérence |
### 4.3 Couleurs
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| WEVIA / Homepage | ✅ OK | Accent violet #7c3aed présent |
| Workspace | ⚠️ | Accent bleu #2f81f7**incohérence** avec spec "accent violet #7c3aed" |
| Platform | ✅ OK | --p:#7c5cfc (violet), --t:#00c9a7 (teal) |
### 4.4 Texte tronqué
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Audit visuel | ⏳ | Non vérifiable en audit automatisé |
---
## 5. AUDIT SEO
### 5.1 Titres et meta
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| Homepage | ✅ OK | `<title>` unique, meta description présente |
| DeliverScore | ✅ OK | Title + meta description |
| StoreForge | ⚠️ | **Incohérence** : URL storeforge.html mais title "StoreAI" |
| 17 pages produits | ✅ OK | Titres uniques par page |
### 5.2 Sitemap
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| sitemap.xml | ❌ | **Pages produits absentes** — 17 URLs /products/* non listées |
| sitemap.xml | ⚠️ | Seulement 17 URLs (home, solutions, services) — pas de /products/, pas de /platform/ |
### 5.3 Alt text
| [PAGE] | [STATUS] | [ISSUE] |
|--------|----------|---------|
| MedReach | ⚠️ | Peu d'images avec alt détectées |
| Content-Factory | ⚠️ | À vérifier manuellement |
---
## 6. PAGES TESTÉES (HTTP STATUS)
| # | URL | HTTP | Titre |
|---|-----|------|-------|
| 1 | / | 200 | Weval Consulting - Cloud, IA, E-Marketing \| Casablanca |
| 2 | /products/ | 200 | — |
| 3 | /products/academy.html | 200 | WEVAL Academy — Certifications IA Professionnelles |
| 4 | /products/arsenal.html | 200 | Arsenal — Framework ERP Intelligence |
| 5 | /products/blueprintai.html | 200 | BlueprintAI — Process Consulting |
| 6 | /products/content-factory.html | 200 | AI Content Factory — Contenu IA à la demande |
| 7 | /products/deliverscore.html | 200 | DeliverScore — Audit Deliverability Email Gratuit |
| 8 | /products/gpu-inference.html | 200 | WEVIA Inference API — IA-as-a-Service |
| 9 | /products/medreach.html | 200 | MedReach — Base Mondiale de Professionnels de Santé |
| 10 | /products/proposalai.html | 200 | ProposalAI — Générateur de Propositions Commerciales |
| 11 | /products/storeforge.html | 200 | StoreAI — Créez votre boutique en ligne en 5 minutes |
| 12 | /products/wevads.html | 200 | WEVADS — Plateforme Email Marketing Intelligence |
| 13 | /products/wevads-ia.html | 200 | WEVADS IA — Email Intelligence Platform |
| 14 | /products/wevia-whitelabel.html | 200 | WEVIA White-Label — Chatbot IA clé en main |
| 15 | /products/workspace.html | 200 | WEVAL — Workspace |
| 16 | /products/cloud-providers.html | 200 | — |
| 17 | /products/deliverads.html | 200 | — |
| 18 | /products/mailforge.html | 200 | — |
| 19 | /products/wevia-enterprise.html | 200 | — |
| 20 | /platform/ | 200 | WEVAL Platform — Products & Services AppStore |
| 21 | /wevia | 200 | — |
| 22 | /solutions | 200 | — |
**Note :** 17 pages produits identifiées (prompt mentionne 27 — possible différence services vs produits).
---
## 7. CHECKLIST CONSOLIDATION (Composer)
| # | Check | Owner | Status |
|---|-------|-------|--------|
| 7 | 0 faute français | Composer (Content) | ✅ OK |
| 8 | Responsive mobile OK | Composer (UX) | ⚠️ Viewport OK, test manuel à faire |
| 14 | 0 régression front | Composer (UX) | ❌ Issues identifiées |
| — | 0 info confidentielle | Composer + GPT | ❌ McKinsey, PwC, Deloitte, IP 89.167 |
| — | Logos SVG (pas emojis) | Composer | ❌ Emojis sur products |
| — | Typo Inter + JetBrains | Composer | ⚠️ Platform = Outfit + Space Mono |
| — | Accent violet #7c3aed | Composer | ⚠️ Workspace = bleu #2f81f7 |
| — | Sitemap à jour | Composer | ❌ Products absents |
---
## 8. ACTIONS CORRECTIVES RECOMMANDÉES
### Priorité 1 (BLOQUANT GO LIVE)
1. **Retirer McKinsey, PwC, Deloitte** du code frontend (index-BcECjySJ.js, scripts WEVIA)
2. **Retirer l'IP 89.167.40.150** du bundle JS — utiliser des URLs relatives ou variables d'environnement
3. **Mettre à jour le sitemap** — ajouter les 17+ URLs /products/* et /platform/
### Priorité 2 (NON-RÉGRESSION)
4. Remplacer les emojis par des logos SVG sur les cards produits
5. Harmoniser StoreForge/StoreAI — choisir un nom (StoreForge recommandé pour cohérence URL)
6. Harmoniser couleurs : Workspace → accent violet #7c3aed
7. Harmoniser typo : Platform → Inter + JetBrains Mono (ou documenter la variance)
### Priorité 3 (AMÉLIORATION)
8. Enrichir og:locale / positionnement si cible internationale
9. Vérifier alt text sur toutes les images
10. Test responsive manuel 375px, 768px, 1440px
---
## 9. CONCLUSION
**Le site n'est pas prêt pour le GO LIVE** au regard des critères Composer. Les issues bloquantes (informations confidentielles, IP exposée) doivent être corrigées avant mise en production. Les corrections de cohérence visuelle et SEO sont recommandées pour respecter les règles de non-régression.
**Prochaine étape :** Consolider avec les rapports GPT (QA) et Codex (Backend/Security), corriger les issues, puis re-tester.
---
*Rapport généré par Composer — Frontend UX & Content Reviewer*

View File

@@ -0,0 +1,139 @@
# Rapport de verification Sentinel - Bulk Install ADX
Date: 2026-03-10
Scope: verification et correction du flux Bulk Install sur S89 (ADX / port 5821)
## Verdict executif
Le correctif PHP sur `getInstallationLogs()` est bien en place sur ADX et FMG.
Le flux n'est plus bloque par le crash PHP 8.x `str_replace(..., null)`.
Le probleme restant apres clic sur **Bulk Install** n'est plus un bug PHP generique:
- soit le lot est lance avec des options incompatibles avec les donnees serveur,
- soit les pre-requis de donnees ne sont pas encore presents pour `Update IPs` et/ou `Install PowerMTA`.
Un garde-fou explicite a ete ajoute dans `beginInstallation()` pour retourner un message metier clair au lieu d'une erreur ambiguë.
## Verifications executees via Sentinel
### 1. Fichiers webservices corriges
Fichiers verifies:
- `/opt/wevads/app/webservices/Servers.php`
- `/opt/fmgapp/app/webservices/Servers.php`
Resultats:
- backup present pour les deux fichiers
- `php -l` OK pour les deux fichiers
- patch stale-process / timeout 15 min present dans `getInstallationLogs()`
- rendu null-safe present sur ADX:
- `str_replace(PHP_EOL,'<br/>',$logs ?? '')`
### 2. Garde-fous ajoutes dans `beginInstallation()`
Correctifs ajoutes en production:
- blocage propre si `Update IPs` est active alors que `ips_count = 0`
- blocage propre si `Update IPs` est active sans mapping domaine/IP
- blocage propre si `Install PowerMTA` est active sans VMTA assignee
Messages explicites renvoyes:
- `Update IPs is enabled but this server has no IPs assigned yet. Disable "Update IPs" or assign IPs first.`
- `Update IPs is enabled but no domain/IP mapping was provided.`
- `Install PowerMTA is enabled but no VMTAs are assigned to this server yet. Disable "Install PowerMTA" or assign VMTAs first.`
### 3. Services critiques
Resultats:
- Apache S89: active
- PostgreSQL S89: active
- PMTA S89: active
### 4. Tracking
Resultats:
- `http://151.80.235.110` -> HTTP 200
- `https://culturellemejean.charity` -> HTTP 200
### 5. Serveurs 190-194
Etat DB:
- presents dans `admin.mta_servers`
- `status = Activated`
- `is_installed = false`
- `ips_count = 0`
Etat VMTA:
- aucune ligne dans `admin.servers_vmtas`
- aucune ligne dans `admin.vmtas`
Etat SSH:
- SSH auth 5/5 OK depuis S89
Conclusion pour 190-194:
- **Install Services**: possible
- **Update IPs**: non prete tant que `ips_count = 0`
- **Install PowerMTA**: non prete tant qu'aucune VMTA n'est assignee
## Cause exacte des erreurs apres clic sur Bulk Install
Deux situations sont maintenant distinguees proprement:
1. **Ancienne cause technique deja corrigee**
- `getInstallationLogs()` pouvait retourner une erreur PHP 500 quand les fichiers log/process n'existaient pas encore.
- Ce point est corrige.
2. **Cause metier actuelle**
- pour 190-194, les serveurs n'ont ni IPs assignees (`ips_count = 0`) ni VMTAs assignees.
- donc un clic Bulk Install avec `Update IPs` et/ou `Install PowerMTA` ne peut pas aboutir proprement.
- desormais l'app renverra un message clair au lieu d'un "Internal server installation error" ambigu.
## Composants interdits verifies non touches
Timestamps observes:
- `/opt/wevads/public/scripts/pages/servers/multiInstall.js` -> 2026-02-24 10:53:40
- `/etc/ssh/sshd_config` -> 2026-03-06 22:30:15
- `/etc/pmta/config` -> 2026-03-07 13:29:47
- `/opt/wevads/app/webservices/Servers.php` -> 2026-03-10 02:39:39
Interpretation:
- `multiInstall.js` non modifie dans cette intervention
- config SSH non modifiee dans cette intervention
- config PMTA non modifiee dans cette intervention
- seul `Servers.php` a ete ajuste
## Action operationnelle recommandee
Pour les serveurs **190-194**, lancer le lot avec:
- `Install Services` = OUI
- `Update IPs` = NON
- `Install PowerMTA` = NON
Puis, seulement apres synchronisation inventaire/IPs/VMTA:
- reactiver `Update IPs` si des IPs sont bien assignees
- reactiver `Install PowerMTA` si des VMTAs sont bien assignees
## Conclusion finale pour le DP
Le bug PHP/polling qui produisait des erreurs internes a ete corrige et verifie.
Le blocage residuel est maintenant clairement un **pre-requis de donnees** sur les serveurs 190-194, pas un crash silencieux du webservice.
Le systeme est donc revenu a un comportement propre:
- pas de regression PMTA / SSH / JAR / JS
- erreur technique eliminee
- validation metier explicite en production