Skip to content

Releases: ForgeTech-Solutions/NPP-API

v1.0.0-beta.2 — Packs, Admin, Signup & Self-Service

05 Mar 16:31

Choose a tag to compare

Nouveautés principales

Système de Packs (abonnements)

  • 4 packs : FREE (100 req/jour, 1 000/mois), PRO (illimité), INSTITUTIONNEL (illimité), DÉVELOPPEUR (illimité)
  • Rate limiting automatique avec remise à zéro à minuit GMT+1 (quotidien) et au 1er du mois (mensuel)
  • Contrôle d'accès par pack sur chaque endpoint (FREE → liste/recherche/détail, PRO → DCI/export, INSTITUTIONNEL → stats/dashboard)
  • Catalogue des packs consultable publiquement sur GET /packs

Module Administration (11 endpoints)

  • CRUD complet des utilisateurs (GET/POST/PATCH/DELETE /admin/users)
  • Liste des inscriptions en attente (GET /admin/users/pending)
  • Approbation avec génération automatique de mot de passe (POST /admin/users/{id}/approve)
  • Changement de pack avec reset des quotas (POST /admin/users/{id}/pack)
  • Tableau de bord admin (GET /admin/stats)

Nouveau flux d'inscription

  • Inscription publique sans mot de passe : nom complet, organisation, email, téléphone (optionnel), message (optionnel)
  • Le compte reste en attente de validation admin
  • À l'approbation, un mot de passe sécurisé (16 caractères) est généré automatiquement et retourné pour envoi par email
  • L'admin peut aussi définir un mot de passe personnalisé ou créer un utilisateur directement approuvé

Endpoints self-service utilisateur

Méthode Endpoint Description
GET /auth/me Profil complet avec détail du pack et quotas restants
PATCH /auth/me Modifier son nom, téléphone, organisation
POST /auth/me/password Changer son mot de passe (vérification de l'ancien, min 8 caractères)
GET /auth/me/stats Statistiques perso : quotas, ancienneté, fonctionnalités accessibles
GET /auth/me/pack Détail de son pack + liste de tous les packs disponibles
POST /auth/me/delete Suppression de compte avec double confirmation (email + mot de passe)

Protection de la documentation Swagger

  • /docs, /redoc et /openapi.json protégés par HTTP Basic Auth
  • Identifiants configurables via DOCS_USERNAME / DOCS_PASSWORD

Changements techniques

  • Modèle User enrichi : full_name, phone, signup_message, organisation, pack, is_approved, requests_today, requests_month, last_request_date
  • 2 migrations Alembic : 003_add_packs (pack + quotas), 004_add_signup_fields (full_name + phone + signup_message)
  • Sécurité renforcée : secrets.compare_digest() pour la doc, bcrypt pour les mots de passe, rate limiter par pack, garde par rôle (ADMIN) et par pack
  • Nouveaux modules : app/admin/ (routes), app/core/packs.py (définitions, feature gates, catalogue)

Endpoints — Résumé complet

Catégorie Méthode Endpoint Accès
Public GET /health Tous
Public GET /packs Tous
Auth POST /auth/signup Tous
Auth POST /auth/login Tous
Auth GET /auth/me Connecté
Auth PATCH /auth/me Connecté
Auth POST /auth/me/password Connecté
Auth GET /auth/me/stats Connecté
Auth GET /auth/me/pack Connecté
Auth POST /auth/me/delete Connecté
Médicaments GET /medicaments/ FREE+
Médicaments GET /medicaments/search FREE+
Médicaments GET /medicaments/{id} FREE+
Médicaments GET /medicaments/dci/{dci} PRO+
Médicaments GET /medicaments/export/csv PRO+
Médicaments GET /medicaments/stats INST+
Médicaments GET /medicaments/dashboard INST+
Import POST /import/excel ADMIN
Admin GET /admin/packs ADMIN
Admin GET /admin/packs/{slug} ADMIN
Admin GET /admin/users ADMIN
Admin GET /admin/users/pending ADMIN
Admin GET /admin/users/{id} ADMIN
Admin POST /admin/users ADMIN
Admin PATCH /admin/users/{id} ADMIN
Admin POST /admin/users/{id}/approve ADMIN
Admin POST /admin/users/{id}/pack ADMIN
Admin DELETE /admin/users/{id} ADMIN
Admin GET /admin/stats ADMIN

Configuration requise

DOCS_USERNAME=admin
DOCS_PASSWORD=docs2025!
ADMIN_EMAIL=admin@nomenclature.dz
ADMIN_PASSWORD=Admin2025!

Configuration requise

Les nouvelles migrations Alembic (003, 004) ajoutent les colonnes nécessaires. Sur une base existante :

alembic upgrade head

v1.0.0-beta.1 — Première version beta

05 Mar 11:11

Choose a tag to compare

🧪 Version Beta 1 — v1.0.0-beta.1

Première version beta de l'API Nomenclature Produits Pharmaceutiques.

Fonctionnalités incluses

  • Import Excel multi-feuilles (Nomenclature, Non Renouvelés, Retraits)
  • Recherche full-text + filtres avancés
  • Pagination, tri, export CSV
  • Dashboard & statistiques
  • Cache TTL, logging structuré
  • Nettoyage et détection de doublons
  • Authentification JWT (Admin / Lecteur)
  • Déploiement Docker (Compose + PostgreSQL)
  • Suite de tests : 31 tests (pytest)

Installation rapide

```bash
docker compose up -d
```

⚠️ Version beta — ne pas utiliser en production.