Skip to content

Installation

Install the package with Composer, let Laravel discover its service provider, and choose between Panel Builder and standalone integration.

Before installing the Filament integration, the application should have:

  • PHP 8.3 or newer;
  • Laravel 12 or 13;
  • Filament 5; and
  • the Data Health core package with its migrations published and run.

Follow Data Health Installation first when the core package is not yet configured.

Install Data Health Filament with Composer:

Terminal window
composer require data-health/data-health-filament

The package may be used with Panel Builder, standalone components, or both in the same application.

Laravel package discovery registers DataHealthFilamentServiceProvider. The provider:

  • merges the default data-health-filament configuration;
  • loads the package’s Blade views;
  • registers the namespaced Livewire components; and
  • exposes the optional configuration publish tag.

You do not need to add the service provider manually in a conventional Laravel installation.

Package discovery does not register the plugin with a panel. Panel registration remains explicit so each application controls where Data Health appears.

Add DataHealthPlugin to the desired panel provider:

<?php
namespace App\Providers\Filament;
use DataHealth\Filament\DataHealthPlugin;
use Filament\Panel;
use Filament\PanelProvider;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->plugin(DataHealthPlugin::make()->brandLogo());
}
}

Calling brandLogo() uses the Data Health wordmark for this panel, including a dark-mode variant. Omit the call when the panel should keep the application’s own branding. The plugin identifier is data-health and the plugin has no required constructor options.

Plugin registration is per panel. Add it to every panel that should expose Data Health:

public function panel(Panel $panel): Panel
{
return $panel
->id('operations')
->path('operations')
->plugin(DataHealthPlugin::make()->brandLogo());
}

All registered panels use the same underlying finding records and package configuration. Registration does not automatically scope records by panel or tenant.

Do not register the plugin with a panel whose users should not see and operate on every exposed finding record.

The plugin adds:

  • a Finding records resource with list and view pages;
  • a Finding types page with manual detection actions; and
  • a Finding statistics overview widget.

By default, both navigation entries appear in the Data Health group. The resource uses sort position 100, and the finding-types page follows it at 101.

The defaults work without publishing. Publish the configuration when you need to change navigation, polling, assignments, or model links:

Terminal window
php artisan vendor:publish --tag=data-health-filament-config

This creates config/data-health-filament.php. See Configuration and Model Links for every option.

After registration:

  1. open the configured Filament panel;
  2. confirm the Data Health navigation group contains Finding records and Finding types;
  3. open Finding types and confirm your discovered finding classes appear; and
  4. create or detect a test finding and confirm it appears in Finding records.

An empty records table is valid when detection has not created any findings. A missing finding type usually indicates a core discovery path or namespace problem rather than a Filament installation problem.

The package does not perform authorization checks. The built-in resource explicitly skips Filament resource authorization, so registering the plugin makes its records and actions available to users who can enter that panel.

Configure panel authentication and access rules before deployment. For standalone components, protect the application routes that render them.

Read Authorization for the complete boundary and fine-grained-access options.