SofiruxGED est une solution de gestion électronique de documents (GED) conçue, architecturée et développée par SOFIRUX. Cette page explique pourquoi nous l'avons construite, ce que nous avons construit et comment elle fonctionne.
Les organisations qui gèrent de gros volumes de documents se heurtent toujours aux mêmes problèmes :
Les fichiers circulent par email, sont écrasés, et personne ne sait quelle version est la bonne.
Impossible de savoir qui a ouvert, modifié ou supprimé un document, ni quand.
Quand un auditeur demande « ce fichier a-t-il été modifié depuis son archivage ? », il n'y a pas de réponse fondée sur des preuves.
Les documents à valider traînent sur un bureau ou se perdent dans les échanges d'emails.
Chaque document entrant doit être lu et rangé à la main.
Des fichiers stockés en clair sont lisibles par quiconque accède au serveur.
SofiruxGED est conçu et détenu par SOFIRUX. Notre équipe a pris en charge l'ensemble du cycle de vie du produit :
Chaque fonctionnalité ci-dessous est implémentée et opérationnelle dans le produit.
Upload multi-format (PDF, DOCX, XLSX, PPT, JPG, PNG, TXT), conversion PDF automatique en conservant l'original, versionnage numéroté (les anciennes versions ne sont jamais supprimées), favoris et corbeille restaurable.
Chaque version de fichier est chiffrée avec libsodium secretbox (XSalsa20-Poly1305) et sa propre clé aléatoire. Les fichiers sont déchiffrés à la volée pour les utilisateurs autorisés et ne sont jamais écrits en clair sur le disque.
Une empreinte SHA-256 est enregistrée pour chaque version à l'upload. L'administrateur vérifie un document ou un dossier entier (commande app:verify-integrity) et obtient l'un des quatre statuts : intact, altéré, fichier manquant ou sans empreinte.
Historique des documents (création / modification / suppression / restauration, avec utilisateur et horodatage), audit des workflows et historique document-workflow. L'historique n'est pas modifiable depuis l'application.
Workflows multi-étapes avec un approbateur nommé ou un groupe par transition. L'autorisation est vérifiée dans le code : un utilisateur non désigné ne peut pas valider. Rapport quotidien par email de l'activité des workflows.
Images de tampon, signature ou cachet configurables, appliquées aux transitions choisies du workflow, avec position X/Y et échelle.
Chaque règle combine un mot-clé ou une regex, un opérateur (contient, commence par, finit par, regex), un dossier cible et une priorité. Les documents correspondants sont proposés au classement en un clic.
Types de documents personnalisés (facture, contrat, rapport…) avec champs de métadonnées typés et listes de choix contrôlées.
Droits lecture/écriture par dossier pour des utilisateurs ou des groupes, propagation récursive aux sous-dossiers. Un utilisateur ne voit jamais les dossiers auxquels il n'a pas accès.
Notifications dans l'application pour les modifications, commentaires et demandes d'approbation. Rappels par document avec alertes 3 jours avant, 1 jour avant et à l'heure prévue.
Le texte est extrait à l'upload : on peut chercher par nom, contenu ou métadonnées.
Les documents numérisés suivent le même circuit que les uploads : conversion PDF, chiffrement, empreinte et journalisation.
| Composant | Technologie |
|---|---|
| Backend | PHP 8, Symfony 6 |
| Base de données | MySQL / MariaDB avec Doctrine ORM |
| Cryptographie | libsodium (PHP ext-sodium), SHA-256, bcrypt |
| Traitement asynchrone | Symfony Messenger |
| Symfony Mailer avec templates HTML Twig | |
| Frontend | Twig, Bootstrap, JavaScript |
| Chaîne documentaire | Conversion PDF côté serveur, extraction de texte |
| Analyse | Microservice Python (Flask) pour les rapports Excel |
| Couche | Mécanisme |
|---|---|
| Authentification | Email + mot de passe bcrypt, jeton CSRF à la connexion |
| Autorisation | Rôles (admin / utilisateur) + ACL lecture/écriture par dossier pour utilisateurs et groupes |
| Chiffrement stockage | libsodium secretbox (XSalsa20-Poly1305), une clé par version de fichier |
| Intégrité | Empreinte SHA-256 enregistrée à l'upload, commande CLI de détection d'altération |
| Audit | Historique documents, audit workflows, historique des transitions |
| Suppression | Suppression logique vers la corbeille avec restauration complète |
Résultats vérifiables de la réalisation. Ils décrivent ce que fait le produit, pas des performances chiffrées chez un client.
L'alignement sur les domaines de contrôle ISO 27001 signifie que le produit fournit les contrôles techniques attendus par ces domaines. Il ne s'agit pas d'une certification ISO 27001.