Nicolas Cantu 61cec6f430 Sync ia_dev: token resolution via .secrets/<env>/ia_token, doc updates
**Motivations:**
- Align master with current codebase (token from projects/<id>/.secrets/<env>/ia_token)
- Id resolution by mail To or by API token; no slug

**Root causes:**
- Token moved from conf.json to .secrets/<env>/ia_token; env from directory name

**Correctifs:**
- Server and scripts resolve project+env by scanning all projects and envs

**Evolutions:**
- tickets-fetch-inbox routes by To address; notary-ai agents and API doc updated

**Pages affectées:**
- ai_working_help/server.js, docs, project_config.py, lib/project_config.sh
- projects/README.md, lecoffreio/docs/API.md, gitea-issues/tickets-fetch-inbox.py
2026-03-16 15:00:23 +01:00

555 lines
26 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# | ✅ **À jour**Scripts - Documentation Complète
**Dernière | ✅ **À jour**mise à jour** : 2026-01-28
**Version** | ✅ **À jour**: 2.1.0
**Référence | ✅ **À jour**unique (checks de déploiement)** : [`docs/DEPLOYMENT.md#cartographie-des-checks-de-déploiement-source-unique`](./DEPLOYMENT.md#cartographie-des-checks-de-déploiement-source-unique)
Ce | ✅ **À jour**document consolide toute la documentation relative aux scripts backend (build, base de données, synchronisation, ancrage, reprocessing, analyse).
---
## | ✅ **À jour**📋 Table des Matières
1. | ✅ **À jour**[Scripts Backend](#scripts-backend)
2. | ✅ **À jour**[Scripts d'Ancrage V3](#scripts-dancrage-v3)
3. | ✅ **À jour**[Scripts de Reprocessing](#scripts-de-reprocessing)
4. | ✅ **À jour**[Scripts d'Analyse](#scripts-danalyse)
5. | ✅ **À jour**[État des Scripts](#état-des-scripts)
6. | ✅ **À jour**[Performances](#performances)
7. | ✅ **À jour**[Utilisation](#utilisation)
8. | ✅ **À jour**[Scripts backend vs deploy](#scripts-backend-vs-deploy)
---
## | ✅ **À jour**Scripts Backend
### | ✅ **À jour**Vue d'Ensemble
Tous | ✅ **À jour**les scripts backend sont disponibles en **deux versions** :
1. | ✅ **À jour****Version compilée** : Pour exécution en production (sur le serveur cible)
2. | ✅ **À jour****Version locale** : Pour développement local (suffix `:local`)
**Format** | ✅ **À jour**:
```bash
npm | ✅ **À jour**run <script> # Production (code compilé dans dist/)
npm | ✅ **À jour**run <script>:local # Développement (ts-node direct)
```
### | ✅ **À jour**Scripts de Build et Démarrage
| | ✅ **À jour**Script | Commande | Description |
|--------|---------|-------------|
| | ✅ **À jour**`build` | `npm run build` | Compile le code TypeScript vers JavaScript |
| | ✅ **À jour**`build-db` | `npm run build-db` | Crée une migration Prisma en mode développement |
| | ✅ **À jour**`start` | `npm run start` | Démarre l'application API REST (port 3001) |
| | ✅ **À jour**`cron` | `npm run cron` | Démarre les tâches planifiées |
| | ✅ **À jour**`api:start` | `npm run api:start` | Exécute les migrations puis démarre l'API |
| | ✅ **À jour**`dev` | `npm run dev` | Lance le serveur en mode développement avec hot-reload |
### | ✅ **À jour**Scripts de Base de Données
| | ✅ **À jour**Script | Commande | Description |
|--------|---------|-------------|
| | ✅ **À jour**`migrate` | `npm run migrate` | Déploie les migrations Prisma en production |
| | ✅ **À jour**`seed` | `npm run seed` | Seed la base de données avec les données initiales |
### | ✅ **À jour**Scripts de Configuration
| | ✅ **À jour**Script | Commande | Description |
|--------|---------|-------------|
| | ✅ **À jour**`config:import-env` | `npm run config:import-env` | Importe les variables d'environnement depuis un fichier vers `system_configuration` |
### | ✅ **À jour**Scripts d'Analyse
| | ✅ **À jour**Script | Commande | Description |
|--------|---------|-------------|
| | ✅ **À jour**`analyze:user` | `npm run analyze:user` | Analyse le profil d'un utilisateur |
| | ✅ **À jour**`analyze:folder` | `npm run analyze:folder` | Analyse complète d'un dossier |
### | ✅ **À jour**Scripts de Remédiation
| | ✅ **À jour**Script | Commande | Description |
|--------|---------|-------------|
| | ✅ **À jour**`ensure:seats` | `npm run ensure:seats` | Assure que les utilisateurs avec affiliation active ont un siège (création si nécessaire pour UNLIMITED) |
### | ✅ **À jour**Scripts d'Activation
| | ✅ **À jour**Script | Commande | Description |
|--------|---------|-------------|
| | ✅ **À jour**`activate:subscriptions` | `npm run activate:subscriptions` | Active automatiquement les abonnements pour des utilisateurs spécifiques |
| | ✅ **À jour**`promote:superadmin` | `npm run promote:superadmin` | Promouvoir super-admin |
| | ✅ **À jour**`token:get` | `npm run token:get` | Génère token super-admin |
---
## | ✅ **À jour**Scripts d'Ancrage V3
### | ✅ **À jour**Contexte
Les | ✅ **À jour**scripts daudit et dancrage V3 sont disponibles en **mode host-native (scripts_v2)**.
- | ✅ **À jour****Host-native (scripts_v2)** : exécution directe sur le host (PostgreSQL local port 5432, ClamAV local port 3310) avec configuration injectée via `system_configuration`.
Important | ✅ **À jour**: les scripts V3 supposent que les migrations Prisma et les colonnes nécessaires sont présentes (sinon, lancer `--migrateResolveDatabase` puis relancer le script).
### | ✅ **À jour**Scripts Disponibles
#### | ✅ **À jour**1. Audit des Ancrages Manquants
**Script** | ✅ **À jour**: `audit-missing-anchors.js`
**Usage** | ✅ **À jour**:
```bash
# | ✅ **À jour**Version compilée (recommandée)
ENV=prod | ✅ **À jour**npm run anchorage:audit
# | ✅ **À jour**En host-native (scripts_v2) : exécuter sur la machine env avec DATABASE_URL correctement configurée
# | ✅ **À jour**(recommandé : passer par deploy/scripts_v2/ pour garantir les variables et migrations)
```
**Description** | ✅ **À jour**:
- | ✅ **À jour**Analyse tous les documents validés sans ancrage
- | ✅ **À jour**Analyse tous les dossiers archivés sans ancrage
- | ✅ **À jour**Génère un CSV avec la liste des documents/dossiers à réancrer
- | ✅ **À jour**Ne modifie aucune donnée (lecture seule)
**Résultat** | ✅ **À jour**:
- | ✅ **À jour**Affichage console avec statistiques
- | ✅ **À jour**CSV généré : `logs/audit-missing-anchors_YYYYMMDD_HHMMSS.csv`
#### | ✅ **À jour**2. Ancrage V3 de Dossiers Existants
**Script** | ✅ **À jour**: `anchor-existing-folders-v3.js`
**Usage** | ✅ **À jour**:
```bash
# | ✅ **À jour**Ancrage tous dossiers LIVE + ARCHIVED (par défaut depuis v2.0.1)
ENV=prod | ✅ **À jour**npm run anchorage
# | ✅ **À jour**Dry-run (simulation)
ENV=prod | ✅ **À jour**npm run anchorage -- --all --batch=1 --dry-run
# | ✅ **À jour**Ancrage réel avec limite batch
ENV=prod | ✅ **À jour**npm run anchorage -- --all --batch=1
# | ✅ **À jour**Ancrage de dossiers spécifiques
ENV=prod | ✅ **À jour**npm run anchorage -- --folder-uids=uid1,uid2,uid3
# | ✅ **À jour**Uniquement dossiers archivés
ENV=prod | ✅ **À jour**npm run anchorage -- --all-archived --batch=10
```
**Options** | ✅ **À jour**:
- | ✅ **À jour**`--all-archived` : Tous les dossiers ARCHIVED sans ancrage
- | ✅ **À jour**`--all-validated` : Tous les dossiers VALIDATED sans ancrage
- | ✅ **À jour**`--all` : Tous les dossiers VALIDATED + ARCHIVED
- | ✅ **À jour**`--folder-uids=uid1,uid2,...` : Liste UIDs dossiers spécifiques
- | ✅ **À jour**`--batch=N` : Nombre max de dossiers par batch (défaut: 10)
- | ✅ **À jour**`--dry-run` : Simulation sans ancrage réel
- | ✅ **À jour**`--skip-documents` : Ancrer seulement dossiers (pas documents individuels)
#### | ✅ **À jour**3. Réancrage de Documents/Dossiers
**Script** | ✅ **À jour**: `reanchor-documents.js`
**Usage** | ✅ **À jour**:
```bash
# | ✅ **À jour**Dry-run (simulation)
ENV=prod | ✅ **À jour**npm run anchorage:reanchor -- --dry-run
# | ✅ **À jour**Réancrage réel
ENV=prod | ✅ **À jour**npm run anchorage:reanchor -- --document-uids=uid1,uid2
```
**Options** | ✅ **À jour**:
- | ✅ **À jour**`--document-uids=uid1,uid2,...` : Liste UIDs documents spécifiques
- | ✅ **À jour**`--folder-uids=uid1,uid2,...` : Liste UIDs dossiers spécifiques
- | ✅ **À jour**`--all-missing` : Réancrer TOUS les documents/dossiers sans ancrage (⚠️ utiliser avec précaution)
- | ✅ **À jour**`--batch=N` : Nombre max de documents/dossiers par batch (défaut: 50)
- | ✅ **À jour**`--dry-run` : Simulation sans ancrage réel
#### | ✅ **À jour**4. Nettoyage Ancres Dossiers Incomplets
**Script** | ✅ **À jour**: `clean-incomplete-folder-anchors.ts`
**Usage** | ✅ **À jour**:
```bash
# | ✅ **À jour**Depuis le conteneur backend
cd | ✅ **À jour**lecoffre-back-main
npx | ✅ **À jour**ts-node src/scripts/clean-incomplete-folder-anchors.ts --dry-run
npx | ✅ **À jour**ts-node src/scripts/clean-incomplete-folder-anchors.ts
```
**Actions** | ✅ **À jour**:
- | ✅ **À jour**Identifie les dossiers ancrés avec complétion < 100%
- | **À jour**Supprime les ancres correspondantes dans `office_folder_anchors`
- | **À jour**Réinitialise les liens `folder_anchor_uid = NULL` dans `office_folders`
### | ✅ **À jour**Workflow Recommandé
1. | **À jour****Audit initial** :
| **À jour** ```bash
| ✅ **À jour** ENV=prod npm run anchorage:audit
| ✅ **À jour** ```
2. | ✅ **À jour****Test avec dry-run** :
| ✅ **À jour** ```bash
| ✅ **À jour** ENV=prod npm run anchorage -- --all-archived --batch=1 --dry-run
| ✅ **À jour** ```
3. | ✅ **À jour****Ancrage réel** :
| ✅ **À jour** ```bash
| ✅ **À jour** ENV=prod npm run anchorage -- --all-archived --batch=5
| ✅ **À jour** ```
---
## | ✅ **À jour**Scripts de Reprocessing
### | ✅ **À jour**Vue d'Ensemble
Les | ✅ **À jour**scripts de reprocessing garantissent la complétude des métadonnées (filigrane, ancrage, proof_data, antivirus) sur tous les documents de la plateforme.
### | ✅ **À jour**Scripts Disponibles
#### | ✅ **À jour**1. Bilan des Documents
**Script** | ✅ **À jour**: `bilan-documents-pprod.ts`
**Description** | ✅ **À jour**:
- | ✅ **À jour**Génère un bilan complet de tous les documents avec leurs métadonnées
- | ✅ **À jour**Analyse : filigrane, ancrage, IPFS, proof_data, antivirus
**Utilisation** | ✅ **À jour**:
```bash
# | ✅ **À jour**En local (développement)
cd | ✅ **À jour**lecoffre-back-main
npx | ✅ **À jour**ts-node src/scripts/bilan-documents-pprod.ts [--csv]
# | ✅ **À jour**En production (sur le serveur, dans le répertoire backend)
node | ✅ **À jour**-r module-alias/register dist/scripts/bilan-documents-pprod.js [--csv]
```
**Options** | ✅ **À jour**:
- | ✅ **À jour**`--csv` : Exporte également le bilan en CSV dans `logs/bilan-documents-pprod_YYYYMMDD_HHMMSS.csv`
#### | ✅ **À jour**2. Reprocessing Complet
**Script** | ✅ **À jour**: `reprocess-all-documents-complete.ts`
**Description** | ✅ **À jour**:
- | ✅ **À jour**Reprocessing **COMPLET** de **TOUS** les documents
- | ✅ **À jour**Garantit 100% de complétude sur tous les critères :
| ✅ **À jour** - Filigrane présent
| ✅ **À jour** - Ancrage complet avec `tx_id`
| ✅ **À jour** - Proof_data complet (structure V3.0.0)
| ✅ **À jour** - Suppression des fichiers expirés
**Utilisation** | ✅ **À jour**:
```bash
# | ✅ **À jour**En local (développement)
cd | ✅ **À jour**lecoffre-back-main
npx | ✅ **À jour**ts-node src/scripts/reprocess-all-documents-complete.ts [--dry-run] [--only-check]
# | ✅ **À jour**En production (sur le serveur, dans le répertoire backend)
node | ✅ **À jour**-r module-alias/register dist/scripts/reprocess-all-documents-complete.js [--dry-run] [--only-check]
```
**Options** | ✅ **À jour**:
- | ✅ **À jour**`--dry-run` : Mode simulation sans traitement réel
- | ✅ **À jour**`--only-check` : Mode vérification uniquement (affiche la liste des documents sans traitement)
#### | ✅ **À jour**3. Reprocessing Documents Incomplets
**Script** | ✅ **À jour**: `reprocess-incomplete-documents-from-ipfs.ts`
**Description** | ✅ **À jour**:
- | ✅ **À jour**Reprocessing **ciblé** uniquement sur les documents **incomplets**
- | ✅ **À jour**Plus rapide que le reprocessing complet
**Utilisation** | ✅ **À jour**:
```bash
# | ✅ **À jour**En local (développement)
cd | ✅ **À jour**lecoffre-back-main
npx | ✅ **À jour**ts-node src/scripts/reprocess-incomplete-documents-from-ipfs.ts [--dry-run] [--only-check]
```
### | ✅ **À jour**Workflow Recommandé
1. | ✅ **À jour****Générer un bilan initial** :
| ✅ **À jour** ```bash
| ✅ **À jour** powershell -ExecutionPolicy Bypass -File deploy/scripts/run-bilan-documents-pprod.ps1 --csv
| ✅ **À jour** ```
2. | ✅ **À jour****Analyser les résultats** :
| ✅ **À jour** - Identifier les documents incomplets
| ✅ **À jour** - Analyser les statistiques globales
3. | ✅ **À jour****Reprocesser les documents** :
| ✅ **À jour** ```bash
| ✅ **À jour** # Option A : Reprocessing ciblé (recommandé pour la maintenance)
| ✅ **À jour** npx ts-node src/scripts/reprocess-incomplete-documents-from-ipfs.ts
| ✅ **À jour** # Option B : Reprocessing complet (recommandé pour garantir 100%)
| ✅ **À jour** powershell -ExecutionPolicy Bypass -File deploy/scripts/run-reprocess-all-complete-pprod.ps1
| ✅ **À jour** ```
4. | ✅ **À jour****Vérifier les résultats** :
| ✅ **À jour** ```bash
| ✅ **À jour** powershell -ExecutionPolicy Bypass -File deploy/scripts/run-bilan-documents-pprod.ps1 --csv
| ✅ **À jour** ```
---
## | ✅ **À jour**Scripts d'Analyse
### | ✅ **À jour**Analyse Profil Utilisateur
**Script** | ✅ **À jour**: `analyze-user-profile.ts`
**Description** | ✅ **À jour**: Analyse en détail le profil d'un utilisateur, incluant :
- | ✅ **À jour**Informations personnelles
- | ✅ **À jour**Rôles globaux et par office
- | ✅ **À jour**Affiliations multi-office
- | ✅ **À jour**Statuts d'abonnement Stripe
- | ✅ **À jour**Plans et limites
**Usage** | ✅ **À jour**:
```bash
# | ✅ **À jour**Par email
npm | ✅ **À jour**run analyze:user -- marie.curie@notaires.fr
# | ✅ **À jour**Par IdNot
npm | ✅ **À jour**run analyze:user -- IDN00046117I
# | ✅ **À jour**Par UID
npm | ✅ **À jour**run analyze:user -- 0135ab77-fcef-4d54-b944-3fc6aa8a107b
# | ✅ **À jour**Depuis un environnement distant (SSH + npm sur le serveur)
ssh | ✅ **À jour**ncantu@<HOST> "cd /srv/4NK/pprod.lecoffreio.4nkweb.com/lecoffre-back-main && npm run analyze:user -- laurence@notaires.fr"
```
**Informations | ✅ **À jour**Affichées** :
1. | ✅ **À jour****Informations Utilisateur** : UID, Email, Prénom, Nom, Téléphone, Rôle global, IdNot, Office principal, Rôle principal, Dates de création et synchronisation
2. | ✅ **À jour****Affiliations aux Offices** : Pour chaque office affilié, affiche UID Office, IdNot Office, CRPCEN, Statut Office, Adresse, Rôle et permissions, Statut affiliation, Sync IdNot
3. | ✅ **À jour****Abonnement Stripe** : Si actif, affiche UID Subscription, Stripe Sub ID, Statut, Plan Stripe, Prix, Limites (sièges, dossiers, documents, stockage), Dates (début, fin période, résiliation), Sièges (alloués, utilisés), Métadonnées
**Cas | ✅ **À jour**d'Usage** :
- | ✅ **À jour****Debug Problèmes d'Authentification** : Vérifier rôle dans office primaire, statut affiliation, sync IdNot récente
- | ✅ **À jour****Vérification Multi-Office** : Vérifier office primaire, rôles dans chaque office, cohérence des permissions
- | ✅ **À jour****Audit Abonnements** : Vérifier statut abonnement, plan Stripe et limites, sièges disponibles, date expiration
**Implémentation** | ✅ **À jour**:
- | ✅ **À jour****Fichier** : `lecoffre-back-main/src/scripts/analyze-user-profile.ts`
- | ✅ **À jour****Dépendances** : `@prisma/client`, `ConfigLoader`, `BackendVariables`
- | ✅ **À jour****Sécurité** : Exécution locale ou via SSH (pas d'endpoint HTTP), lecture seule, logs non persistés
---
## | ✅ **À jour**État des Scripts
**Dernière | ✅ **À jour**mise à jour** : 2026-01-27
### | ✅ **À jour**Scripts à Jour
#### | ✅ **À jour**Scripts de Migration V1 (Utilisation légitime de `infos.json`)
Ces | ✅ **À jour**scripts utilisent `infos.json` pour la migration V1 → V2, ce qui est **correct** :
| | ✅ **À jour**Script | Usage | Fichier source | Statut |
|--------|-------|----------------|--------|
| | ✅ **À jour**`inject-s3-vars-from-infos.ts` | Injection variables Scaleway dans `system_configuration` | `infos-migration-scaleway.json` (priorité) ou `infos.json` (fallback) | ✅ **À jour** - Lit le nouveau fichier en priorité |
| | ✅ **À jour**`migrate-files-from-s3.ts` | Migration fichiers depuis S3 Scaleway | `system_configuration` (variables `SCW_*`) | ✅ **À jour** |
| | ✅ **À jour**`migrate-ribs-from-s3.ts` | Migration RIBs depuis S3 Scaleway | `system_configuration` (variables `SCW_*`) | ✅ **À jour** |
| | ✅ **À jour**`import-v1-data-direct-into-v2.sh` | Import données V1 depuis base Scaleway | `.env.<env>.connectDB` (DATABASE_V1_* et DATABASE_*) | ✅ **À jour** - Usage légitime pour credentials V1 |
| | ✅ **À jour**`import-v1.sh` | Script principal d'import V1 | connectDB (V1) + infos.json (S3/métadonnées) | ✅ **À jour** - Usage légitime |
| | ✅ **À jour**`recover-files-from-v1.ts` | Récupération fichiers V1 | `system_configuration` (variables `SCW_*`) | ✅ **À jour** |
#### | ✅ **À jour**Scripts de Déploiement
| | ✅ **À jour**Script | Usage | Fichier source | Statut |
|--------|-------|----------------|--------|
| | ✅ **À jour**`set-settings.sh` | Injection variables dans `system_configuration` | `env-full-<env>-for-bdd-injection.txt` + `inject-s3-vars-from-infos.ts` | ✅ **À jour** - Le script TypeScript gère la priorité |
| | ✅ **À jour**`generate-env-full-from-infos-v2.sh` | Génération `env-full-*.txt` depuis `infos_v2.json` | `infos_v2.json` | ✅ **À jour** |
| | ✅ **À jour**`deploy.sh` | Déploiement principal | `env-full-<env>-for-bdd-injection.txt` | ✅ **À jour** |
| | ✅ **À jour**`build-and-deploy.sh` | Build et déploiement | `env-full-<env>-for-bdd-injection.txt` | ✅ **À jour** |
#### | ✅ **À jour**Scripts de Configuration SSH/Infrastructure
Ces | ✅ **À jour**scripts utilisent `infos.json` pour charger des variables de configuration SSH et infrastructure, ce qui est **correct** car `infos.json` contient toujours ces variables pour compatibilité :
| | ✅ **À jour**Script | Usage | Fichier source | Statut |
|--------|-------|----------------|--------|
| | ✅ **À jour**`run-cleanup-disk-space.sh` | Nettoyage espace disque | `infos.json` (variables SSH `DEPLOY_SSH_*`) | ✅ **À jour** - Usage légitime pour config SSH |
| | ✅ **À jour**`run-emergency-cleanup.sh` | Nettoyage d'urgence | `infos.json` (variables SSH `DEPLOY_SSH_*`) | ✅ **À jour** - Usage légitime pour config SSH |
| | ✅ **À jour**`run-check-postgresql.sh` | Vérification PostgreSQL | `infos.json` (variables SSH `DEPLOY_SSH_*`) | ✅ **À jour** - Usage légitime pour config SSH |
#### | ✅ **À jour**Scripts de Backup/Extraction
Ces | ✅ **À jour**scripts utilisent `infos.json` pour accéder à Scaleway (extraction code), ce qui est **correct** pour les opérations de backup :
| | ✅ **À jour**Script | Usage | Fichier source | Statut |
|--------|-------|----------------|--------|
| | ✅ **À jour**`backup-prod-to-git.sh` | Backup production vers Git | `infos.json` (credentials base de données) | ✅ **À jour** - Usage légitime pour backup |
| | ✅ **À jour**`sync-infos-json-in-project.sh` | Synchronisation `infos.json` entre serveurs | `infos.json` (synchronisation) | ✅ **À jour** - Usage légitime pour synchronisation |
### | ✅ **À jour**Scripts TypeScript (Backend)
#### | ✅ **À jour**Scripts de Migration
| | ✅ **À jour**Script | Usage | Statut |
|--------|-------|--------|
| | ✅ **À jour**`inject-s3-vars-from-infos.ts` | Injection variables Scaleway | ✅ **À jour** - Lit `infos-migration-scaleway.json` en priorité |
| | ✅ **À jour**`migrate-files-from-s3.ts` | Migration fichiers depuis S3 | ✅ **À jour** - Utilise `system_configuration` |
| | ✅ **À jour**`migrate-ribs-from-s3.ts` | Migration RIBs depuis S3 | ✅ **À jour** - Utilise `system_configuration` |
| | ✅ **À jour**`recover-files-from-v1.ts` | Récupération fichiers V1 | ✅ **À jour** - Utilise `system_configuration` |
| | ✅ **À jour**`import-env-to-db.ts` | Import variables dans `system_configuration` | ✅ **À jour** - Lit `env-full-*.txt` |
### | ✅ **À jour**Vérifications Effectuées
- | ✅ **À jour**✅ Aucun script ne lit directement `SCW_*` depuis `env-full-*.txt` (retirées)
- | ✅ **À jour**✅ Tous les scripts de migration utilisent `system_configuration` (variables `SCW_*` injectées)
- | ✅ **À jour**✅ Le script `inject-s3-vars-from-infos.ts` lit `infos-migration-scaleway.json` en priorité
- | ✅ **À jour**✅ Aucune référence à `SECURE_API_KEY` ou `SECURE_API_BASE_URL` dans les scripts
- | ✅ **À jour**✅ Aucune référence à `NEXT_PUBLIC_FC_*` ou `FRANCE_CONNECT_*` dans les scripts
- | ✅ **À jour**✅ Aucune référence à `DOCAPOST_*` dans les scripts (déjà retiré)
- | ✅ **À jour**✅ Aucune référence à `SENTRY_*` dans les scripts
- | ✅ **À jour**✅ `env-full-<env>-for-bdd-injection.txt` ne contient plus de variables Scaleway
- | ✅ **À jour**✅ `infos-migration-scaleway.json` créé et utilisé en priorité
- | ✅ **À jour**✅ `infos.json` reste disponible comme fallback pour compatibilité
### | ✅ **À jour**Conclusion
**Tous | ✅ **À jour**les scripts sont à jour et fonctionnels.**
- | ✅ **À jour**Les scripts de migration utilisent correctement `infos-migration-scaleway.json` (priorité) ou `infos.json` (fallback)
- | ✅ **À jour**Les scripts de déploiement utilisent correctement `env-full-<env>-for-bdd-injection.txt` (sans variables Scaleway)
- | ✅ **À jour**Les scripts de configuration SSH utilisent légitimement `infos.json` pour les variables `DEPLOY_SSH_*`
- | ✅ **À jour**Les scripts de backup utilisent légitimement `infos.json` pour accéder à Scaleway
**Aucun | ✅ **À jour**script obsolète identifié.**
---
## | ✅ **À jour**Performances
### | ✅ **À jour**Temps de Traitement des Fichiers
Les | ✅ **À jour**temps de traitement typiques pour un fichier PDF sont :
| | ✅ **À jour**Étape | Temps moyen | Description |
|-------|-------------|-------------|
| | ✅ **À jour****Antivirus** | 2-36ms | Scan ClamAV du buffer |
| | ✅ **À jour****Normalisation** | 0ms | Normalisation du nom de fichier |
| | ✅ **À jour****Conversion** | 8-130ms | Conversion en PDF (si nécessaire) + ajout filigrane |
| | ✅ **À jour****Ancrage** | 2825-3474ms | Ancrage blockchain Bitcoin Signet (opération la plus longue) |
| | ✅ **À jour****Chiffrement** | 0-1ms | Chiffrement du fichier filigrané |
| | ✅ **À jour****IPFS** | 904-1685ms | Upload du fichier chiffré sur IPFS |
| | ✅ **À jour****Proof** | 0ms | Génération data proof final |
| | ✅ **À jour****Watermark IPFS** | 1023-1073ms | Upload du filigrane séparé sur IPFS |
| | ✅ **À jour****Total** | 5147-5590ms | Temps total de traitement (~5-6 secondes) |
### | ✅ **À jour**Observations
- | ✅ **À jour****Ancrage blockchain** : Représente ~50-60% du temps total (2.8-3.5 secondes)
- | ✅ **À jour****Upload IPFS** : Représente ~20-30% du temps total (fichier + filigrane)
- | ✅ **À jour****Autres opérations** : Très rapides (< 200ms au total)
### | ✅ **À jour**Optimisations Possibles
- | ✅ **À jour**L'ancrage blockchain est l'opération la plus longue et dépend de la latence réseau avec l'API d'ancrage
- | ✅ **À jour**Les uploads IPFS peuvent être optimisés avec des connexions parallèles si plusieurs fichiers
- | ✅ **À jour**Le scan antivirus est très rapide (< 40ms) et ne nécessite pas d'optimisation
---
## | ✅ **À jour**Utilisation
### | ✅ **À jour**En Production
Tous | ✅ **À jour**les scripts peuvent être exécutés sur le serveur cible (dans le répertoire backend) :
```bash
# | ✅ **À jour**Sur le serveur, dans lecoffre-back-main/
npm | ✅ **À jour**run <script>
# | ✅ **À jour**Avec arguments
npm | ✅ **À jour**run <script> -- --arg=value
# | ✅ **À jour**Exemples
npm | ✅ **À jour**run activate:subscriptions -- --email=user@example.com
```
### | ✅ **À jour**En Développement Local
Les | ✅ **À jour**scripts `:local` utilisent `ts-node` pour exécuter directement le TypeScript sans compilation :
```bash
# | ✅ **À jour**Depuis lecoffre-back-main/
npm | ✅ **À jour**run <script>:local
# | ✅ **À jour**Exemples
npm | ✅ **À jour**run anchorage:audit:local
npm | ✅ **À jour**run analyze:user:local -- --email=user@example.com
```
### | ✅ **À jour**Points d'Attention
#### | ✅ **À jour**Scripts en Production
- | ✅ **À jour**✅ Toujours exécuter sur le serveur cible : `npm run <script>` (dans le répertoire backend)
- | ✅ **À jour**⚠️ Ne jamais lancer directement avec `node` sur l'hôte (problèmes de chemins et variables)
- | ✅ **À jour**⚠️ Les scripts modifient la base de données : toujours faire une sauvegarde avant
#### | ✅ **À jour**Scripts Longs
Ces | ✅ **À jour**scripts peuvent prendre du temps :
- | ✅ **À jour**`anchorage:complete` : Plusieurs heures
- | ✅ **À jour**`import:stripe` : 5-15 minutes
#### | ✅ **À jour**Scripts Dangereux
Ces | ✅ **À jour**scripts modifient des données critiques :
- | ✅ **À jour**`config:import-env` : Remplace les configurations
- | ✅ **À jour**`anchorage:fix` : Modifie les relations
- | ✅ **À jour**`activate:subscriptions` : Crée des abonnements
---
## | ✅ **À jour**8. Scripts backend vs deploy
Les | ✅ **À jour**détails des checks de déploiement sont centralisés dans la section source unique :
[`docs/DEPLOYMENT.md` | ✅ **À jour**- cartographie des checks de déploiement](./DEPLOYMENT.md#cartographie-des-checks-de-déploiement-source-unique)
---
## | ✅ **À jour**Références
- | ✅ **À jour****Architecture Ancrage V3** : [ANCRAGE_V3_ARCHITECTURE.md](./ANCRAGE_V3_ARCHITECTURE.md)
- | ✅ **À jour****Ancrage Complet** : [ANCRAGE_COMPLETE.md](./ANCRAGE_COMPLETE.md)
- | ✅ **À jour****Séquence de Traitement V2** : [DOCUMENT_PROCESSING_SEQUENCES_V2.md](./DOCUMENT_PROCESSING_SEQUENCES_V2.md)
- | ✅ **À jour****Configuration Système** : [DATABASE_COMPLETE.md](./DATABASE_COMPLETE.md#configuration-systeme-dynamique)
---
**Dernière | ✅ **À jour**mise à jour** : 2026-01-28 (consolidation SCRIPTS.md, SCRIPTS_STATUS.md, USER_PROFILE_ANALYSIS.md, import_time.md)