fix(api): chemins de bibliothèques — validation dédiée, alias et unicité
Validation des chemins externalisée (library-path) avec codes d'erreur explicites, support d'alias LIBRARY_PATH_ALIASES pour traduire un chemin hôte vers le montage conteneur, rejet des doublons de chemin entre bibliothèques, documentation README/.env.example et docker-compose paramétrable via READABOOK_LIBRARY_HOST_PATH. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
14
README.md
14
README.md
@ -94,12 +94,14 @@ La PWA fournit `manifest.webmanifest`, `sw.js`, une icône maskable SVG et `disp
|
||||
Volumes :
|
||||
|
||||
- `./data:/data` : base SQLite `/data/readabook.sqlite` et cache `/data/storage`.
|
||||
- `./data/library:/library:ro` : bibliothèque locale scannée en lecture seule.
|
||||
- `${READABOOK_LIBRARY_HOST_PATH:-./data/library}:/library:ro` : bibliothèque locale scannée en lecture seule.
|
||||
|
||||
Variables principales :
|
||||
|
||||
- `JWT_SECRET` : secret JWT, à changer hors développement.
|
||||
- `OPEN_LIBRARY_ENABLED=true|false` : active/désactive l’enrichissement distant.
|
||||
- `READABOOK_LIBRARY_HOST_PATH` : dossier hôte monté en lecture seule sur `/library`.
|
||||
- `READABOOK_LIBRARY_ALIAS_FROM` : chemin alternatif accepté par l’API et traduit vers `/library`.
|
||||
- `DATABASE_PATH=/data/readabook.sqlite`
|
||||
- `STORAGE_DIR=/data/storage`
|
||||
|
||||
@ -134,6 +136,16 @@ curl -b cookies.txt \
|
||||
http://localhost:3000/admin/libraries
|
||||
```
|
||||
|
||||
Pour tester le corpus réel local `Books/` sans le versionner, crée un `.env` local :
|
||||
|
||||
```bash
|
||||
READABOOK_LIBRARY_HOST_PATH=./Books
|
||||
READABOOK_LIBRARY_ALIAS_FROM=/chemin/absolu/vers/ReadaBook/Books
|
||||
```
|
||||
|
||||
QA peut ensuite créer la bibliothèque avec le chemin absolu saisi dans `READABOOK_LIBRARY_ALIAS_FROM`;
|
||||
l’API le traduit vers `/library`, puis le scan manuel teste l’extraction ISBN/métadonnées/jaquettes sur ce corpus.
|
||||
|
||||
## Lancer un scan
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user