# TRAIL DPS OVH Licence - Hotfix STARTER Workspace mono-utilisateur - 2026-08-19

## Objectif

Projeter un droit d'acces Workspace distinct du droit de collaboration multi-utilisateur pour toutes les souscriptions actives, en conservant STARTER/MONOPOSTE strictement mono-utilisateur.

## Entitlements STARTER/MONOPOSTE

- `workspace_access_enabled=true`
- `collaboration_enabled=false`
- `photo_share_enabled=false`
- `photo_history_enabled=false`
- `collaborative_users_max=1`

## Fichiers modifies ou ajoutes

- `SRC/SubscriptionService.php`
- `scripts/lot3_check_readiness.php`
- `scripts/normalize_workspace_access_entitlements.php` (nouveau)
- `tests/lot3_contracts.php`

## Normalisation des donnees existantes

Aucune migration de schema SQL n'est necessaire. Apres deploiement du code Workspace puis OVH, executer une fois :

```bash
php scripts/normalize_workspace_access_entitlements.php
```

Le script est idempotent. Il met a jour `subscriptions.entitlements_json`, aligne `licenses.features_json`, audite l'operation et resynchronise chaque projection vers Workspace.

Verifier ensuite :

```bash
php scripts/lot3_check_readiness.php
```

Les controles `starter_workspace_access_enabled_single_user` et `workspace_access_entitlement_present` doivent etre vrais.

## Validation

- `php -l` sur tous les fichiers PHP modifies : OK.
- Contrats OVH LOT 3 : 80/80 tests OK.

## Ordre de deploiement recommande

1. Workspace.
2. OVH Licence.
3. Executer le script de normalisation.
4. Executer le readiness.
5. Deployer/recompiler PLACE.

## Retour arriere

Aucune structure de base n'est modifiee. Les champs JSON additifs peuvent rester en base lors d'un rollback ; les anciennes versions les ignorent. STARTER redevient simplement refuse par l'ancien controle `collaboration_enabled` si le code est restaure.
