athwari/filament-zkteco-adms

Filament v5 plugin implementing the ZKTeco ADMS protocol for biometric attendance devices.

Maintainers

Package info

github.com/athwari/filament-zkteco-adms

Type:filament-plugin

pkg:composer/athwari/filament-zkteco-adms

Fund package maintenance!

athwari

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 2

v1.0.0 2026-06-27 03:12 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This Filament v5 plugin provides the admin UI for ZKTeco ADMS and owns tenancy behavior for the ZKTeco domain.

It is built on top of athwari/laravel-zkteco-adms (core backend logic) and adds:

  • Filament resources, pages, and widgets
  • Tenant-aware model behavior for devices and users
  • Tenant column migration ownership for zkteco devices and users tables
  • Tenant-scoped resource queries for attendance logs and device commands

Features

  • Device, user, attendance log, and device command resources
  • Dashboard and stats widgets
  • Plugin-owned multi-tenancy settings via filament-zkteco-adms.multi_tenancy
  • Plugin model overrides for zkteco-adms.models.device and zkteco-adms.models.user
  • Automatic migration loading for tenant columns on zkteco devices and users tables

Installation

Install the core package and this plugin:

composer require athwari/laravel-zkteco-adms athwari/filament-zkteco-adms

Register the plugin in your Filament panel provider:

use Athwari\FilamentZktecoAdms\FilamentZktecoAdmsPlugin;
use Filament\Panel;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FilamentZktecoAdmsPlugin::make());
}

Configuration

Publish the plugin configuration file:

php artisan vendor:publish --tag="filament-zkteco-adms-config"

Main config keys in config/filament-zkteco-adms.php:

  • multi_tenancy.enabled
  • multi_tenancy.tenant_model
  • multi_tenancy.tenant_column
  • multi_tenancy.tenant_relationship
  • filament.navigation_group
  • filament.navigation_sort

Migrations are loaded automatically by the plugin service provider.

Usage

After registration, resources and pages are discovered automatically. By default, resource slugs are:

  • zkteco/devices
  • zkteco/users
  • zkteco/attendance-logs
  • zkteco/device-commands

The final URL depends on your panel path prefix.

Tenancy Ownership

Tenancy for the ZKTeco domain is owned by this plugin.

When multi_tenancy.enabled is true:

  • ZktecoDevice and ZktecoUser models are auto-assigned to the active Filament tenant on create
  • Attendance log and device command resources are scoped through each record's related device tenant
  • Core config keys zkteco-adms.models.device and zkteco-adms.models.user are overridden to plugin models

Testing

Run the test suite with:

composer test

Additional useful scripts:

composer test-coverage
composer analyse
composer format

Architecture Boundary

  • athwari/laravel-zkteco-adms: protocol, parsing, command and persistence core
  • athwari/filament-zkteco-adms: Filament UI and tenancy ownership

Contributing

Please see CONTRIBUTING for details.

Security

Please review SECURITY if you discover a vulnerability in this package.

Credits

License

The MIT License (MIT). Please see LICENSE.md for more information.