SecureDoc AI est une plateforme cloud-native basée sur une architecture microservices, conçue pour détecter et anonymiser automatiquement les informations sensibles (PII) dans les documents PDF. Elle adopte une approche "Privacy by Design" en combinant le Deep Learning et une infrastructure distribuée.
Le système repose sur une architecture distribuée orchestrée par Kubernetes, découplant la gestion des fichiers, l'IA et l'audit.
- 📤 Upload : L'utilisateur s'authentifie via Keycloak et envoie un PDF via le Frontend React.
- 💾 Stockage : Le service Doc-Manager sécurise les métadonnées dans PostgreSQL et le fichier dans MinIO (S3).
- ⚡ Événement : Un message est publié instantanément dans RabbitMQ (Fanout).
- 🧠 Traitement Intelligent :
- AI-Redactor analyse le document avec un modèle BERT, détecte les entités (Noms, Emails) et redessine le PDF pour les masquer.
- Audit-Service intercepte le même message pour garantir la traçabilité dans MongoDB.
- 🔔 Notification : Le frontend notifie l'utilisateur que le document sécurisé est prêt.
- Java 17 & Spring Boot 3 : Cœur des microservices.
- Deep Java Library (DJL) : Moteur d'IA pour Java.
- HuggingFace BERT : Modèle NER (
dslim/bert-base-NER) pour la détection précise. - Apache PDFBox : Moteur de manipulation et de rédaction des PDF.
- PostgreSQL : Données relationnelles (Métadonnées).
- MongoDB : Logs d'audit flexibles (NoSQL).
- MinIO : Stockage objet S3 auto-hébergé.
- RabbitMQ : Orchestration asynchrone des services.
- Docker : Images légères (Multi-stage builds).
- Kubernetes (K8s) : Orchestration (Pods, Services, PVC).
- AWS (EC2 & Route53) : Infrastructure de production.
- GitLab CI/CD : Pipeline automatisé (Build -> Deploy).
- Nginx : Reverse Proxy & SSL (Let's Encrypt).
- Keycloak : Gestion des identités (OIDC/OAuth2).
- Spring Security : Validation "Zero Trust" des tokens JWT.
- Prometheus & Grafana : Monitoring temps réel (CPU, JVM, Requêtes).
| Service | Port | Rôle Principal |
|---|---|---|
| Doc-Manager | 8081 |
👮 Chef d'orchestre : Uploads & Dispatching. |
| AI-Redactor | 8082 |
🧠 Cerveau : Inférence BERT & Rédaction PDF. |
| Audit-Service | 8083 |
📝 Mémoire : Archivage des logs de conformité. |
| Frontend | 3000 |
💻 Interface : UX React.js sécurisée. |
Le projet est en production sur AWS EC2 :
- 🌐 DNS : Gestion via Route 53 (
api.mahfoud.click,front...). - 🤖 CI/CD : Runner GitLab mutualisé sur l'instance pour le déploiement continu.
- 🔒 HTTPS : Certificats SSL automatiques via Certbot & Nginx.
Une stack complète pour ne jamais piloter à l'aveugle :
- 🌡️ Sondes : Actuator & Micrometer.
- 🔍 Scraping : Prometheus découvre les pods dynamiquement.
- 📊 Dashboards : Grafana visualise la santé (UP/DOWN) et la charge.
- Docker Desktop (Kubernetes activé)
- Java 17 & Maven
git clone [https://github.com/votre-repo/securedoc-ai.git](https://github.com/votre-repo/securedoc-ai.git)
cd securedoc-ai
mvn clean package -DskipTests