**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
555 lines
26 KiB
Markdown
555 lines
26 KiB
Markdown
# | ✅ **À 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 d’audit et d’ancrage 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)
|