# TRAIL DPS 4.2 - LOT 2 - Socle WEB-SERVEUR TRACKING

## Objectif

Créer un socle web tracking PHP 8.x / MySQL-MariaDB totalement séparé du module licence existant.

Ce lot ajoute uniquement :

- une configuration tracking dédiée ;
- une connexion PDO dédiée ;
- des helpers HTTP JSON dédiés ;
- un logger fichier dédié ;
- un schéma SQL initial non destructif ;
- un endpoint d'état `public/api/tracking/status.php`.

Aucun endpoint de licence n'est modifié.

## Arborescence ajoutée

```text
ovh/
├── SRC/Tracking/
│   ├── TrackingDatabase.php
│   ├── TrackingHttp.php
│   └── TrackingLogger.php
├── public/api/tracking/
│   └── status.php
├── tracking_config/
│   └── env.example.php
├── sql/
│   └── tracking_schema.sql
└── docs/
    └── TRAIL_DPS_4_2_LOT_2_WEB_TRACKING.md
```

## Déploiement OVH

1. Sauvegarder les fichiers et la base existants.
2. Décompresser le ZIP à la racine existante du serveur, au même niveau que le dossier `ovh` actuel.
3. Copier `ovh/tracking_config/env.example.php` vers `ovh/tracking_config/env.php`.
4. Modifier `env.php` : base, utilisateur, mot de passe, clé API.
5. Créer la base MariaDB/MySQL dédiée ou utiliser une base existante dédiée au tracking.
6. Importer `ovh/sql/tracking_schema.sql`.
7. Créer le dossier de logs si nécessaire : `ovh/logs/tracking` avec droits d'écriture PHP.

## Test curl

```bash
curl -i -H "X-Api-Key: CHANGE_ME_PUBLIC_API_KEY_64_CHARS_MIN" \
  https://votre-domaine.fr/api/tracking/status.php
```

Réponse attendue si la configuration et la base sont OK :

```json
{
  "ok": true,
  "service": "TRAIL DPS Tracking",
  "module": "tracking",
  "version": "4.2-lot2",
  "environment": "production",
  "server_time_utc": "...",
  "database": {
    "status": "ok",
    "error": null,
    "tables": {
      "tracking_devices": true,
      "tracking_bindings": true,
      "tracking_positions": true,
      "runner_location_requests": true,
      "sms_logs": true,
      "tracking_api_logs": true,
      "tracking_error_logs": true
    }
  }
}
```

## Non-régression

- Ne pas remplacer `ovh/config/env.php`.
- Ne pas modifier `ovh/sql/schema.sql` de licence.
- Ne pas pointer le tracking vers les tables `licenses` ou `license_audit_log`.
- Ne pas réutiliser les clés licence comme tokens tracking.

## Sécurité minimale du LOT 2

- HTTPS obligatoire en production.
- Clé API requise par défaut pour l'endpoint d'état.
- Secrets dans `tracking_config/env.php`, non livré dans le ZIP.
- Logs fichiers avec masquage des champs sensibles usuels.

## Limites assumées du LOT 2

Ce lot ne reçoit pas encore de positions GPS. Les devices, bindings et endpoints de réception seront implémentés au LOT 3.
Le service SMS et les demandes coureur seront implémentés au LOT 4.
