Releases: ForgeTech-Solutions/NPP-API
Releases · ForgeTech-Solutions/NPP-API
v1.0.0-beta.2 — Packs, Admin, Signup & Self-Service
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,/redocet/openapi.jsonproté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
🧪 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.