A powerful, feature-rich activity logging solution for FilamentPHP v4 & v5
Seamlessly track, view, and manage user activities with beautiful timelines and insightful dashboards.
Built on spatie/laravel-activitylog
- Features
- Requirements
- Installation
- Quick Start
- Core Features
- Configuration
- Usage Examples
- Contributing
- License
- π¦ Full Resource Integration - Dedicated resource to browse, filter, and search logs
- β±οΈ Timeline View - Stunning slide-over timeline to visualize record history
- π Insightful Widgets - Activity charts and latest activity tables
- π Relation Manager - Add activity history to any resource
- π¨ Highly Customizable - Configure labels, colors, icons, and visibility
- π Role-Based Access - Fully compatible with Filament's authorization
- π Dark Mode Support - Beautiful in both light and dark modes
| Requirement | Version | Status |
|---|---|---|
| 8.3+ | β | |
| 11+ | β | |
| v4+ / v5+ | β |
Dependencies:
- Spatie Laravel Activitylog - The robust foundation
composer require alizharb/filament-activity-logAdd to your AdminPanelProvider:
use AlizHarb\ActivityLog\ActivityLogPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugins([
ActivityLogPlugin::make()
->label('Log')
->pluralLabel('Logs')
->navigationGroup('System')
->cluster('System'), // Optional: Group inside a cluster
]);
}Run the installation command to publish the configuration, assets, and migrations:
php artisan filament-activity-log:installEnsure your models use the LogsActivity trait:
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\Activitylog\LogOptions;
class User extends Authenticatable
{
use LogsActivity;
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()
->logAll();
}
}To automatically capture IP addresses and user agent information, add the generic tap to your config/activitylog.php:
'activity_logger_taps' => [
\AlizHarb\ActivityLog\Taps\SetActivityContextTap::class,
],Navigate to the Logs resource in your admin panel to see all tracked activities.
A dedicated resource allows you to manage all activity logs.
Features:
- β Advanced Filtering - Filter by causer, subject, event type, and date
- β Global Search - Search through log descriptions and properties
- β Detailed View - Inspect every detail of an activity log
Visualize the history of any record with a beautiful timeline.
Usage: The timeline is available as a table action in the Relation Manager or can be added to any page.
Displays a line chart showing activity trends over time.
use AlizHarb\ActivityLog\Widgets\ActivityChartWidget;
public function getWidgets(): array
{
return [
ActivityChartWidget::class,
];
}Shows a list of the most recent activities.
use AlizHarb\ActivityLog\Widgets\LatestActivityWidget;
public function getWidgets(): array
{
return [
LatestActivityWidget::class,
];
}Add an activity log history table to any of your existing resources (e.g., UserResource).
use AlizHarb\ActivityLog\RelationManagers\ActivitiesRelationManager;
public static function getRelations(): array
{
return [
ActivitiesRelationManager::class,
];
}The package automatically checks for name, title, or label attributes on your models.
For more control, implement the HasActivityLogTitle interface on your model:
use AlizHarb\ActivityLog\Contracts\HasActivityLogTitle;
class User extends Model implements HasActivityLogTitle
{
public function getActivityLogTitle(): string
{
return "User: {$this->email}";
}
}Automatically group activities from a single job or request. Use the View Batch action in the Activity Log table to inspect all activities related to a specific batch UUID.
You can customize almost every aspect of the package via the filament-activity-log.php config file.
π For detailed configuration instructions, including navigation groups and custom authorization, see CONFIGURATION.md
'table' => [
'columns' => [
'log_name' => [
'visible' => true,
'searchable' => true,
'sortable' => true,
],
// ...
],
],'widgets' => [
'activity_chart' => [
'enabled' => true,
'days' => 30,
'fill_color' => 'rgba(16, 185, 129, 0.1)',
'border_color' => '#10b981',
],
'latest_activity' => [
'enabled' => true,
'limit' => 10,
],
],Restrict access to specific users without setting up a full permission system:
// In config/filament-activity-log.php
'permissions' => [
'custom_authorization' => fn($user) => $user->id === 1,
],See CONFIGURATION.md for more examples.
We welcome contributions! Please see CONTRIBUTING.md for details.
# Clone repository
git clone https://github.com/alizharb/filament-activity-log.git
# Install dependencies
composer install
# Run tests
composer test
# Format code
composer formatIf this package helps you, consider sponsoring its development:
Your support helps maintain and improve this package! π
- π Bug Reports: Create an issue
- π‘ Feature Requests: Request a feature
- π¬ Discussions: Join the discussion
This project is licensed under the MIT License - see the LICENSE file for details.