2.0 KiB
MetaBloom API
Backend FastAPI isolé pour synchroniser les profils et journaux MetaBloom. Il fournit JWT, Argon2, séparation stricte des données par utilisateur, consentement explicite, CRUD, export JSON et suppression de compte.
MetaBloom est un outil de bien-être, pas un dispositif médical. L’API ne diagnostique pas, n’interprète pas les mesures et ne recommande aucun traitement. En cas de valeur inquiétante ou de symptômes, contacter un professionnel ou les urgences.
Démarrage local
cd server
python -m venv .venv && . .venv/bin/activate
pip install -r requirements-dev.txt
uvicorn app.main:app --reload
Documentation : http://localhost:8000/docs. SQLite est utilisé en développement. Pour PostgreSQL, renseigner DATABASE_URL d’après .env.example.
Docker
Copier .env.example vers .env, remplacer tous les exemples de secrets, puis :
docker compose -f docker-compose.example.yml --env-file .env up --build
Le port n’écoute que sur localhost ; placer un reverse proxy TLS devant en production.
API
POST /auth/register,POST /auth/tokenGET/PUT /profileGET/POST /entries,PUT/DELETE /entries/{id}GET /account/export,DELETE /accountGET /health
Envoyer Authorization: Bearer <token>. La création d’entrées exige consent_health_data=true. Les limites de saisie préviennent les erreurs grossières mais ne constituent pas une validation médicale.
Tests
pytest -q
Avant production
- gérer les schémas avec Alembic plutôt que
create_all; - utiliser un gestionnaire de secrets, TLS, sauvegardes chiffrées, rotation et révocation des jetons ;
- ajouter rate limiting, journal d’audit sans donnée médicale, MFA et tests de sécurité ;
- effectuer AIPD/RGPD, définir conservation/export, contrats de sous-traitance et hébergement HDS si applicable ;
- faire qualifier juridiquement la finalité et le statut MDR avant toute fonction clinique.