bm-cleaner
v0.1.0
Published
CLI pour identifier et corriger les dysfonctionnements et irrégularités dans les données BlueMind accessibles via l'API
Maintainers
Readme
bm-cleaner
CLI pour identifier et corriger les dysfonctionnements et irrégularités dans les données BlueMind accessibles via l'API.
Description
bm-cleaner est un outil en ligne de commande pour diagnostiquer et résoudre divers problèmes dans les données BlueMind.
Il permet de :
- Rechercher des événements de calendrier spécifiques via l'API BlueMind
- Détecter les notifications fantômes (alarmes orphelines sur événements terminés)
- Identifier d'autres irrégularités structurelles dans les événements
- Inspecter en détail les événements et leur structure (complete, changelog)
- Supprimer ou annuler les événements problématiques de manière sécurisée (backup)
- Auditer et analyser les données de calendrier via différents endpoints API
Prérequis
- Node.js >= 20
- Accès à une instance BlueMind avec clé API
Installation
npm install -g bm-cleanerOu en utilisant npx sans installation :
npx bm-cleaner [options]Configuration
Variables d'environnement
Créer un fichier .env à la racine du projet :
BM_API_KEY=votre_cle_api
BM_INSTANCE_URL=https://bm.example.com
BM_DOMAIN=votre-domaine.comOptions CLI
Les options CLI ont la priorité sur les variables d'environnement :
--api-key <key>: Clé API BlueMind--instance-url <url>: URL de base de l'instance BlueMind--domain <domain>: Domaine pour la résolution utilisateur--login <login>: Login de l'utilisateur--email <email>: Email de l'utilisateur
Utilisation
Mode interactif
Lance l'interface interactive avec prompts :
bm-cleanerMode batch
Recherche par titre
bm-cleaner \
--api-key YOUR_KEY \
--instance-url https://bm.example.com \
--domain example.com \
--login john.doe \
--titre "Réunion hebdomadaire"Ciblage direct par UID
bm-cleaner \
--api-key YOUR_KEY \
--instance-url https://bm.example.com \
--target-uid 3e2786fc-37ed-4bb6-91db-83dd1be0a2fa \
--container user.john.doeScan complet
Analyse tous les événements d'un calendrier pour détecter des irrégularités sans filtre par titre :
bm-cleaner \
--api-key YOUR_KEY \
--instance-url https://bm.example.com \
--login john.doe \
--scan-allOptions avancées
--json: Sortie JSON pure (utile pour scripting)--md: Sortie Markdown (experimental)--cache: Active le cache des requêtes API (⚠️ données en clair)--clear-cache: Purge le cache avant exécution--request-delay-ms <ms>: Délai entre requêtes API (rate limiting)
Exemples
Inspection en JSON pour traitement automatisé
bm-cleaner --json --login john.doe --titre "Meeting" > results.jsonUtilisation avec cache pour tests répétés
# Premier run - peuple le cache
bm-cleaner --cache --login john.doe --titre "Test"
# Runs suivants - utilise le cache (plus rapide)
bm-cleaner --cache --login john.doe --titre "Test"
# Purge du cache
bm-cleaner --clear-cacheFonctionnalités de diagnostic
Détection de notifications fantômes
L'outil identifie automatiquement les événements répondant aux critères :
- Status
CONFIRMED+ récurrence terminée (UNTIL dépassé) + VALARM actif - Flip de status vers/depuis
CANCELLEDdans l'historique
Inspection détaillée
Pour chaque événement, l'outil récupère :
- Données complètes via
/complete(structure, récurrence, alarmes, attendees) - Historique des modifications via
/_itemchangelog - Export ICS pour traçabilité
Actions disponibles
Après l'inspection, l'outil propose les actions suivantes :
- Backup ICS : Sauvegarde l'événement au format .ics
- Delete : Suppression définitive de l'événement
- Cancel : Annulation de l'événement (status CANCELLED)
- Skip : Passer à l'événement suivant
⚠️ Un backup automatique est créé avant toute modification destructive.
Sécurité
- Les clés API ne doivent jamais être commitées
- Le cache stocke les données en clair - utiliser uniquement en environnement sécurisé
- Les backups sont horodatés et stockés dans
./backups/
Développement
Installation locale
git clone <repository>
cd bm-notif-cleaner
npm installExécution en développement
npm start -- [options]Tests
npm testLicence
ISC
