# ✅ Redéfinition Hiérarchie Tiers - 7 novembre 2025

## 🎯 Changements appliqués

### Vision commerciale corrigée

| Tier | Avant | Après | Changements clés |
|------|-------|-------|------------------|
| **FREE** | 3 domaines, 1 user | **5 domaines, 0 user** | Anonyme, découverte |
| **STARTER** | 10 domaines, pas SAST | **∞ domaines, SAST 10/mois** | Motivation achat |
| **PRO** | 5 users, pas API | **1 user, API activé** | Mono-user, pro |
| **ENTERPRISE** | 50 users | **10 users** | Équipe réaliste |

---

## 📋 Détails des profils

### 🆓 FREE (Anonyme - Découverte)
```yaml
max_domains: 5          # 3 → 5 (plus généreux)
max_users: 0            # 1 → 0 (sans compte)
allow_source_scan: false
max_source_files: 0
allow_html_export: false
allow_api_access: false
```

**Use Case:** Tester Web Sentinel sans créer de compte
```bash
web-sentinel scan example.com  # Pas d'API key
```

---

### 🚀 STARTER (Gratuit avec compte - Motivation)
```yaml
max_domains: -1         # 10 → ∞ (DNS illimité)
max_users: 1
allow_source_scan: true  # false → true (SAST activé !)
max_source_files: 10     # 0 → 10 (quota mensuel)
max_source_size_mb: 5    # 0 → 5
allow_html_export: true  # false → true (partage résultats)
allow_api_access: false
```

**Use Case:** Découvrir le SAST, frustration à 10 fichiers → upgrade PRO
```bash
web-sentinel login --api-key starter_key
web-sentinel scan mysite.com --source ./code
# → Max 10 fichiers/mois
```

**Stratégie:** Freemium avec upsell SAST

---

### 💼 PRO (Mono-user - Professionnel)
```yaml
max_domains: -1
max_users: 1             # 5 → 1 (pas de collègues)
allow_source_scan: true
max_source_files: 100
max_source_size_mb: 50   # 20 → 50 (projets moyens)
allow_invasive_tests: true
allow_html_export: true
allow_multi_user: false
allow_api_access: true   # false → true (CI/CD)
```

**Use Case:** Développeur avec intégration CI/CD
```bash
# Pipeline GitLab CI
curl -X POST https://api.web-sentinel.com/api/v1/scan \
  -H "Authorization: Bearer ${PRO_API_KEY}" \
  -d '{"domain": "myapp.com", "source_path": "/repo"}'
```

**Tarif:** 29€/mois

---

### 🏢 ENTERPRISE (Multi-user - Équipe)
```yaml
max_domains: -1
max_users: 10            # 50 → 10 (réaliste)
allow_source_scan: true
max_source_files: 500
max_source_size_mb: 200  # 100 → 200 (gros projets)
advanced_rules: true
allow_invasive_tests: true
allow_html_export: true
allow_multi_user: true
allow_api_access: true
```

**Use Case:** Équipe de 10 développeurs max
```bash
# Admin crée des comptes
web-sentinel user create dev1@company.com
web-sentinel user create dev2@company.com
# ... jusqu'à 10 users

# Quota partagé: 500 fichiers/mois pour toute l'équipe
```

**Tarif:** 199€/mois

---

## 🔄 Funnel de conversion

```
FREE (5 domaines DNS)
    ↓ "Créez un compte pour DNS illimité + SAST"
STARTER (DNS ∞ + SAST 10 fichiers/mois)
    ↓ "Upgrade PRO pour 100 fichiers + API"
PRO (SAST 100 + API CI/CD)
    ↓ "Ajoutez votre équipe avec ENTERPRISE"
ENTERPRISE (SAST 500 + 10 users)
```

**Taux de conversion estimés:**
- FREE → STARTER: 20% (création compte)
- STARTER → PRO: 5% (frustration quota)
- PRO → ENTERPRISE: 15% (besoin équipe)

---

## 🚀 Déploiement

### Backend ✅
```bash
# Upload
scp admin/backend/app/sast_defaults.py taaazzz@web-sentinel:/tmp/backend-update/

# Copie + Restart
docker cp /tmp/backend-update/sast_defaults.py web-sentinel-admin-backend:/app/app/
docker restart web-sentinel-admin-backend
```

**Status:** ✅ Déployé 15:30 UTC
**Logs:** `Uvicorn running on http://0.0.0.0:8000` ✅
**API:** `GET /api/v1/config/tiers` retourne 200 OK ✅

### Frontend
Pas de changement (même hash: `index-CAueAkvs.js`)

---

## 🧪 Tests recommandés

### 1. Vérifier les nouveaux profils dans le panel admin
```
1. Se connecter: https://admin.web-sentinel.taaazzz-prog.fr
2. Aller dans "Configuration" → "Profils Tiers"
3. Vérifier les valeurs:
   - FREE: max_users=0, max_domains=5
   - STARTER: allow_source_scan=true, max_source_files=10
   - PRO: max_users=1, allow_api_access=true
   - ENTERPRISE: max_users=10
```

### 2. Tester pré-remplissage formulaire
```
1. Licences → "Nouvelle licence"
2. Sélectionner STARTER
3. Vérifier:
   ✅ allow_source_scan: coché
   ✅ max_source_files: 10
   ✅ allow_html_export: coché
4. Changer vers PRO
5. Vérifier:
   ✅ max_source_files: 100
   ✅ allow_api_access: coché
```

### 3. Modifier les profils
```
1. Dans "Profils Tiers", changer STARTER max_source_files de 10 à 15
2. Sauvegarder
3. Créer une nouvelle licence STARTER
4. Vérifier que max_source_files = 15 (valeur custom)
```

---

## 📝 À implémenter (TODO)

### Phase 1: FREE anonyme (haute priorité)
```python
# web_sentinel/cli.py
@click.command()
def scan(domain, api_key=None):
    if api_key is None:
        # Mode FREE anonyme
        run_anonymous_scan(domain)  # Max 5 domaines
    else:
        # Mode authentifié
        run_authenticated_scan(domain, api_key)
```

**Fonctionnalités:**
- [ ] Scan sans API key (anonyme)
- [ ] Compteur global 5 domaines (par IP ou session)
- [ ] Message: "Créez un compte STARTER pour DNS illimité"
- [ ] Pas de sauvegarde des résultats

### Phase 2: Quota mensuel SAST (haute priorité)
```sql
-- Migration DB
ALTER TABLE users ADD COLUMN source_files_scanned_this_month INTEGER DEFAULT 0;
ALTER TABLE users ADD COLUMN sast_quota_reset_date DATE DEFAULT CURRENT_DATE;
```

**Fonctionnalités:**
- [ ] Vérification avant chaque scan
- [ ] Reset automatique le 1er du mois
- [ ] Message: "Quota SAST: 45/100 ce mois-ci"
- [ ] Erreur: "Quota dépassé, upgrade vers PRO"

### Phase 3: Multi-user ENTERPRISE (moyenne priorité)
**Fonctionnalités:**
- [ ] Limitation stricte à 10 users
- [ ] Quota partagé entre membres (500 fichiers pour toute l'équipe)
- [ ] Rôles: admin, developer, viewer
- [ ] Endpoint `/api/v1/team/members`

### Phase 4: Page pricing (basse priorité)
```html
<!-- site web public -->
<div class="pricing">
  <div class="tier free">
    <h3>FREE</h3>
    <p>5 domaines DNS</p>
    <p>Gratuit, sans compte</p>
  </div>
  <div class="tier starter">
    <h3>STARTER</h3>
    <p>DNS illimité + SAST 10 fichiers/mois</p>
    <p>Gratuit avec compte</p>
  </div>
  <div class="tier pro">
    <h3>PRO</h3>
    <p>SAST 100 fichiers/mois + API</p>
    <p><strong>29€/mois</strong></p>
  </div>
  <div class="tier enterprise">
    <h3>ENTERPRISE</h3>
    <p>SAST 500 fichiers/mois + 10 users</p>
    <p><strong>199€/mois</strong></p>
  </div>
</div>
```

---

## 💰 Impact business

### Positionnement marché
| Concurrent | Tier | Prix | Notre prix | Avantage |
|------------|------|------|------------|----------|
| Snyk | Free | Gratuit | Gratuit | Plus limité (5 vs 200 scans) |
| Snyk | Team | $52/user | 29€ PRO | **44% moins cher** |
| SonarQube | Developer | $10/mois | 29€ PRO | Plus cher mais SAST inclus |
| Checkmarx | Enterprise | $$$$$ | 199€ ENT | **90% moins cher** |

### Revenue projections
```
100 users FREE → 20 STARTER (gratuit)
20 STARTER → 1 PRO (29€/mois)
20 PRO → 3 ENTERPRISE (199€/mois)

MRR (Monthly Recurring Revenue):
- PRO: 20 × 29€ = 580€
- ENTERPRISE: 3 × 199€ = 597€
Total: 1,177€/mois → 14,124€/an
```

---

## 📊 Checklist finale

### Déploiement ✅
- [x] Modifier `sast_defaults.py`
- [x] Compiler frontend (pas de changement)
- [x] Upload backend sur OVH
- [x] Restart backend
- [x] Vérifier logs (Uvicorn running)
- [x] Tester API `/api/v1/config/tiers` → 200 OK
- [x] Commit + Push GitHub

### Documentation ✅
- [x] `admin/TIERS_HIERARCHY.md` - Vision complète
- [x] Ce fichier - Résumé déploiement

### Tests utilisateur ⏳
- [ ] Vérifier profils dans panel admin
- [ ] Tester pré-remplissage formulaires
- [ ] Modifier un profil et sauvegarder
- [ ] Créer licence STARTER et vérifier SAST activé

### Implémentation future 📋
- [ ] FREE anonyme (sans compte)
- [ ] Quota mensuel SAST avec reset automatique
- [ ] Multi-user ENTERPRISE avec limitation 10 users
- [ ] Page pricing publique

---

## 🎉 Résumé

✅ **Profils redéfinis** selon votre vision commerciale  
✅ **Backend déployé** sur OVH (15:30 UTC)  
✅ **API fonctionnelle** (`/api/v1/config/tiers` → 200 OK)  
✅ **Commité sur GitHub** (a9fbc02)  
📋 **3 phases d'implémentation** documentées  
💰 **Funnel de conversion** aligné avec pricing  

**Prochaine étape:** Tester les profils dans le panel admin et planifier l'implémentation du quota mensuel SAST ! 🚀

---

**Déployé par:** GitHub Copilot  
**Date:** 7 novembre 2025 15:35 UTC  
**Commit:** a9fbc02  
**Version:** 2.0
