Nicolas Cantu 088eab84b7 Platform docs, services, ia_dev submodule, smart_ide project config
- 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
2026-04-03 16:07:58 +02:00

1.6 KiB
Raw Permalink Blame History

Local Office API — Feature

Objectif

Exposer sur cette machine une API REST permettant à des applications tierces duploader, lister, télécharger, modifier (commandes) et supprimer des fichiers Office (docx, xlsx, pptx).

Impacts

  • Applications tierces : consomment lAPI 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 la 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 lAPI, TLS, et définir les variables depuis .secrets/<env>/ ou la config dhébergement.

Modalités danalyse

  • 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.