ObsiGate/HIDDEN_FILES_GUIDE.md

155 lines
4.6 KiB
Markdown

# Guide de configuration des fichiers et dossiers cachés
## Vue d'ensemble
ObsiGate prend désormais en charge les fichiers et dossiers cachés (ceux qui commencent par un point, comme `.obsidian`, `.git`, etc.) avec une configuration flexible par vault.
## Fonctionnalités
### 1. **Activation globale par vault**
Vous pouvez activer l'indexation de TOUS les fichiers cachés pour un vault spécifique.
### 2. **Liste blanche flexible**
Ajoutez des dossiers cachés individuels à une liste blanche, même si l'activation globale est désactivée.
### 3. **Configuration persistante**
Les paramètres sont sauvegardés et persistent entre les redémarrages.
## Configuration
### Via variables d'environnement
Ajoutez ces variables à votre configuration Docker ou `.env` :
```bash
# Pour activer tous les fichiers cachés dans un vault
VAULT_1_INCLUDE_HIDDEN=true
# Pour ajouter des dossiers spécifiques à la liste blanche
VAULT_1_HIDDEN_WHITELIST=.obsidian,.github,.vscode
# Exemple pour un deuxième vault
VAULT_2_INCLUDE_HIDDEN=false
VAULT_2_HIDDEN_WHITELIST=.obsidian
```
### Via l'interface web
1. Ouvrez le menu **Options** (icône d'engrenage)
2. Cliquez sur **Configurations**
3. Faites défiler jusqu'à la section **📁 Fichiers et dossiers cachés**
4. Pour chaque vault, vous pouvez :
- **Activer/désactiver** l'inclusion de tous les fichiers cachés
- **Ajouter des dossiers** à la liste blanche individuellement
- **Supprimer des dossiers** de la liste blanche
5. Cliquez sur **Sauvegarder les paramètres**
6. Cliquez sur **Réindexer avec nouveaux paramètres** pour appliquer les changements
## Exemples d'utilisation
### Cas 1 : Indexer uniquement le dossier .obsidian
```bash
VAULT_1_INCLUDE_HIDDEN=false
VAULT_1_HIDDEN_WHITELIST=.obsidian
```
Ou via l'interface :
- Désactiver "Inclure tous les fichiers cachés"
- Ajouter `.obsidian` à la liste blanche
### Cas 2 : Indexer tous les fichiers cachés
```bash
VAULT_1_INCLUDE_HIDDEN=true
```
Ou via l'interface :
- Activer "Inclure tous les fichiers cachés"
### Cas 3 : Indexer plusieurs dossiers cachés spécifiques
```bash
VAULT_1_INCLUDE_HIDDEN=false
VAULT_1_HIDDEN_WHITELIST=.obsidian,.github,.vscode
```
Ou via l'interface :
- Désactiver "Inclure tous les fichiers cachés"
- Ajouter `.obsidian`, `.github`, `.vscode` à la liste blanche
## API Endpoints
### Obtenir les paramètres d'un vault
```http
GET /api/vaults/{vault_name}/settings
```
Réponse :
```json
{
"includeHidden": false,
"hiddenWhitelist": [".obsidian", ".github"]
}
```
### Mettre à jour les paramètres d'un vault
```http
POST /api/vaults/{vault_name}/settings
Content-Type: application/json
{
"includeHidden": true,
"hiddenWhitelist": [".obsidian"]
}
```
### Obtenir les paramètres de tous les vaults
```http
GET /api/vaults/settings/all
```
## Architecture technique
### Backend
- **`backend/indexer.py`** : Fonction `_should_include_path()` qui vérifie si un chemin doit être inclus
- **`backend/vault_settings.py`** : Gestion de la persistance des paramètres
- **`backend/main.py`** : Endpoints API pour gérer les paramètres
- **`backend/attachment_indexer.py`** : Respect des paramètres pour les pièces jointes
### Frontend
- **`frontend/index.html`** : Section de configuration dans le modal
- **`frontend/app.js`** : Fonctions `loadHiddenFilesSettings()`, `saveHiddenFilesSettings()`, etc.
- **`frontend/style.css`** : Styles pour l'interface de configuration
## Notes importantes
1. **Réindexation requise** : Après modification des paramètres, une réindexation est nécessaire pour appliquer les changements
2. **Persistance** : Les paramètres sont sauvegardés dans `/app/data/vault_settings.json`
3. **Priorité** : Les variables d'environnement sont chargées au démarrage, mais peuvent être écrasées via l'interface web
4. **Performance** : L'activation de tous les fichiers cachés peut augmenter le temps d'indexation selon le nombre de fichiers
## Dépannage
### Les fichiers cachés n'apparaissent pas après activation
1. Vérifiez que les paramètres sont bien sauvegardés
2. Déclenchez une réindexation manuelle
3. Vérifiez les logs du serveur pour d'éventuelles erreurs
### Les paramètres ne persistent pas
1. Vérifiez que le dossier `/app/data/` est accessible en écriture
2. Vérifiez les permissions du fichier `vault_settings.json`
3. Consultez les logs pour les erreurs de sauvegarde
### Conflit entre variables d'environnement et interface web
Les paramètres de l'interface web écrasent les variables d'environnement. Pour revenir aux variables d'environnement, supprimez le fichier `vault_settings.json` et redémarrez.