- Add ia_dev submodule (projects/smart_ide on forge 4nk) - Document APIs, orchestrator, gateway, local-office, rollout - Add systemd/scripts layout; relocate setup scripts - Remove obsolete nginx/enso-only docs from this repo scope
30 lines
1.6 KiB
Markdown
30 lines
1.6 KiB
Markdown
# Local Office API — Feature
|
||
|
||
## Objectif
|
||
|
||
Exposer sur cette machine une API REST permettant à des applications tierces d’uploader, lister, télécharger, modifier (commandes) et supprimer des fichiers Office (docx, xlsx, pptx).
|
||
|
||
## Impacts
|
||
|
||
- **Applications tierces** : consomment l’API avec une clé (header `X-API-Key`).
|
||
- **Stockage** : répertoire local (`STORAGE_PATH`) et métadonnées en SQLite (`DATABASE_PATH`).
|
||
- **Sécurité** : pas de secret dans le dépôt ; `API_KEYS` en env ou `.env`. Isolation par clé API (chaque document est lié à la clé qui l’a créé).
|
||
|
||
## Modifications
|
||
|
||
- **Backend** : FastAPI, auth par clé API, rate limiting (slowapi), CORS.
|
||
- **Routes** : `POST/GET/DELETE /documents`, `GET /documents/:id`, `GET /documents/:id/file`, `POST /documents/:id/commands`.
|
||
- **Moteur d’édition** : python-docx pour les commandes `replaceText` et `insertParagraph` sur les docx. xlsx/pptx non implémentés (réponse 400).
|
||
- **Config** : `.env.example` ; variables `API_KEYS`, `STORAGE_PATH`, `DATABASE_PATH`, `MAX_UPLOAD_BYTES`, `RATE_LIMIT_PER_MINUTE`.
|
||
|
||
## Modalités de déploiement
|
||
|
||
- Sur cette machine : `./run.sh` ou `API_KEYS=... uvicorn app.main:app --host 0.0.0.0 --port 8000`.
|
||
- En production (ex. infra 4NK) : mettre un reverse proxy (Nginx) devant l’API, TLS, et définir les variables depuis `.secrets/<env>/` ou la config d’hébergement.
|
||
|
||
## Modalités d’analyse
|
||
|
||
- Logs : sortie standard (niveau INFO).
|
||
- Vérifier que les documents sont bien isolés par clé (tester avec deux clés différentes).
|
||
- Tester rate limit : dépasser `RATE_LIMIT_PER_MINUTE` requêtes/minute par clé et vérifier 429.
|