darken10 / auditra
Auditra - A comprehensive Laravel audit logging package with automatic model auditing, manual audit recording, and a professional graphical interface
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:Blade
pkg:composer/darken10/auditra
Requires
- php: ^8.1
- laravel/framework: ^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
Auditra is a comprehensive Laravel package for audit logging with automatic model auditing, manual audit recording, and a professional graphical interface.
Author: darken10
Installation
composer require darken10/auditra
Configuration
Publiez la configuration et les migrations :
php artisan vendor:publish --provider="Darken10\Auditra\AuditraServiceProvider"
Exécutez les migrations :
php artisan migrate
Utilisation
1. Ajouter le trait Auditable à vos modèles
<?php namespace App\Models; use Darken10\Auditra\Traits\Auditable; use Illuminate\Database\Eloquent\Model; class User extends Model { use Auditable; // Optionnel : spécifier les attributs à auditer protected $auditableAttributes = ['name', 'email', 'status']; // Optionnel : exclure certains attributs protected $auditExclude = ['password', 'remember_token']; // Optionnel : désactiver l'audit pour ce modèle protected $auditEnabled = true; }
2. Audit automatique
Une fois le trait ajouté, toutes les opérations created, updated, deleted et restored seront automatiquement auditées.
3. Audit manuel
use Darken10\Auditra\Facades\Auditra; // Audit d'une action personnalisée Auditra::manual('login_attempt', $user, [ 'metadata' => ['ip' => request()->ip()] ]); // Audit sans modèle associé Auditra::manual('system_maintenance', null, [ 'metadata' => ['action' => 'cache_cleared'] ]);
4. Interface graphique
Accédez au tableau de bord d'audit via l'URL :
/admin/audit
Fonctionnalités de l'interface :
- 📊 Dashboard avec statistiques - Vue d'ensemble de l'activité
- 🔍 Filtres avancés - Par utilisateur, événement, modèle, date
- 📈 Graphiques interactifs - Répartition des événements et activité
- 🔎 Recherche globale - Dans les URLs, IPs, utilisateurs
- 📄 Vue détaillée - Analyse complète de chaque audit
- 📤 Export CSV - Exportation des données filtrées
- 📱 Design responsive - Interface moderne et professionnelle
5. Consulter les logs d'audit (API)
// Récupérer tous les audits d'un modèle $user = User::find(1); $audits = $user->auditLogs; // Filtrer par événement $audits = \Darken10\Auditra\Models\AuditLog::byEvent('updated')->get(); // Filtrer par utilisateur $audits = \Darken10\Auditra\Models\AuditLog::byUser(auth()->id())->get(); // Filtrer par modèle $audits = \Darken10\Auditra\Models\AuditLog::byModel(User::class)->get(); // Filtrer par période $audits = \Darken10\Auditra\Models\AuditLog::whereBetween('created_at', [ now()->subDays(7), now() ])->get();
Configuration
Le fichier config/audit.php permet de personnaliser :
- enabled : Activer/désactiver l'audit globalement
- model : Modèle utilisé pour stocker les audits
- user_model : Modèle utilisateur
- table : Nom de la table des audits
- sensitive_fields : Champs sensibles à masquer
- events : Événements à auditer
- retention_days : Durée de conservation des logs
Fonctionnalités
✅ Trait Auditable - Facile à ajouter à n'importe quel modèle
✅ Observer automatique - Écoute les événements Eloquent
✅ Modèle AuditLog - Stockage structuré des audits
✅ Migration incluse - Table optimisée avec index
✅ Audit manuel - Via la facade Audit::record()
✅ Protection des données sensibles - Masquage automatique
✅ Métadonnées complètes - User, IP, User-Agent, Route, etc.
✅ Configuration flexible - Personnalisable via config
✅ Compatible Laravel 10+ - Utilise les dernières fonctionnalités
Prochaines étapes
- Commandes Artisan pour la maintenance
- Interface d'administration
- Exportation des audits
- Notifications d'audit
- Tests unitaires
Licence
MIT