PHPackages                             track-any-device/admin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. track-any-device/admin

ActiveLibrary[Admin Panels](/categories/admin)

track-any-device/admin
======================

Filament admin panel, resources, and pages for the Track Any Device platform.

v0.3.1(2w ago)0121↓100%[7 issues](https://github.com/track-any-device/package-admin/issues)MITPHPPHP ^8.3CI passing

Since May 23Pushed 6d agoCompare

[ Source](https://github.com/track-any-device/package-admin)[ Packagist](https://packagist.org/packages/track-any-device/admin)[ RSS](/packages/track-any-device-admin/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (3)Versions (7)Used By (0)

track-any-device/admin
======================

[](#track-any-deviceadmin)

Filament v4 admin panel for the Track Any Device platform. Provides the central admin surface — resources, pages, auth middleware, and domain gating — as a standalone Composer package consumed by the host Laravel application.

Requirements
------------

[](#requirements)

DependencyVersionPHP^8.3Laravel^13.7Filament^4.0track-any-device/core^0.0.2Installation
------------

[](#installation)

```
composer require track-any-device/admin
```

The package is auto-discovered by Laravel. No manual provider registration is needed.

Configuration
-------------

[](#configuration)

### Environment variables

[](#environment-variables)

VariableRequiredDescription`ADMIN_DOMAIN`NoFull hostname for the admin panel (e.g. `admin.yourdomain.com`). When set the panel is served at the root of that host. When unset the panel falls back to the `/admin` path on any host listed in `tenancy.central_domains`.### Routes the host app must register

[](#routes-the-host-app-must-register)

The package redirects unauthenticated requests and the SSO login page to a named route that the host application is responsible for registering:

```
// In your host app's routes/web.php or a dedicated routes file:
Route::get('/auth/sso/redirect', SsoRedirectController::class)->name('admin.sso.redirect');
```

The route must be named `admin.sso.redirect`. The package will throw a `RouteNotFoundException` at runtime if it is missing.

How it works
------------

[](#how-it-works)

### Domain gating

[](#domain-gating)

The `EnsureAdminDomain` middleware runs on every panel request.

- When `ADMIN_DOMAIN` is set: only requests whose `Host` header matches exactly are allowed through. All other hosts — including tenant subdomains — receive a 404.
- When `ADMIN_DOMAIN` is unset: any host listed in `tenancy.central_domains` is accepted. This covers local development and CI where a dedicated admin domain is not yet configured.

### Authentication

[](#authentication)

The panel uses its own session-based auth rather than the tenant OAuth pipeline, making it usable as a break-glass surface if the identity provider is misconfigured.

1. An unauthenticated request hits the panel.
2. `AdminAuthenticate` redirects to `route('admin.sso.redirect')`.
3. The host app's SSO controller exchanges the callback for a session and redirects back to the panel.
4. `AdminUser::canAccessPanel()` confirms the authenticated user holds a central-staff role. Non-staff users are rejected at this point regardless of session state.

### AdminUser

[](#adminuser)

`AdminUser` extends the core `User` model and implements Filament's `FilamentUser` contract. It reads from the same `users` table but restricts panel access to users whose role returns `true` from `role->isCentralStaff()`.

```
// Defined in src/Models/AdminUser.php
public function canAccessPanel(Panel $panel): bool
{
    return $this->role?->isCentralStaff() ?? false;
}
```

To use this model as the Filament auth guard, configure the admin panel guard in the host app's `config/auth.php` to point at `AdminUser`.

Included resources
------------------

[](#included-resources)

### Administration

[](#administration)

ResourceModelNotesOrganisations`Tenant`Slug `organisations` avoids Filament's reserved `tenants` keyword. Badge shows pending-approval count. Approve / reject actions inline.Users`User`Role filter, resend-invite action (sends password-reset link).Policy Versions`PolicyVersion`Countries`Country`### Devices

[](#devices)

ResourceModelNotesDevices`Device`Onboard action dispatches `OnboardDeviceJob`. Filters: status, type, approval, visibility, stock.Device Types`DeviceType`Device Commands`DeviceCommand`Read-only list and view.Chips`Chip`Compute Boards`ComputeBoard`Connecting Cables`ConnectingCable`Sensors`Sensor`GSM Networks`GsmNetwork`Signals`Signal`List only.Incoming Messages`IncomingMessage`List and view only.### Operations

[](#operations)

ResourceModelNotesBeats`Beat`Beat-assignment relation manager.Beat Templates`BeatTemplate`Drivers`Driver`Assignees`Assignee`Assignee Types`AssigneeType`Incidents`Incident`Device Orders`DeviceOrder`Charging Sets`ChargingSet`Domains`Domain`Subscribers`Subscriber`List only.Contact Submissions`ContactSubmission`List and edit only.### CMS

[](#cms)

ResourceModelNotesPages`Page`Sections relation manager.Blog`Blog`Sections relation manager, featured flag, scheduled publish.Solutions`Solution`Industries`Industry`Testimonials`Testimonial`List only.Nav Links`NavLink`List only.### Pages

[](#pages)

PagePathDescriptionDevice Logs`/device-logs`Real-time log viewer subscribed to the `private-admin.device-logs` broadcast channel. Ring buffer — no persistence.Release workflow
----------------

[](#release-workflow)

Releases are automated via GitHub Actions (`.github/workflows/release.yml`). On every push to `main` the workflow reads conventional commit messages since the last tag and bumps the version accordingly:

Commit prefixBumpAny type with `!` (e.g. `feat!:`, `fix!:`)Major`feat:`Minor`fix:`, `chore:`, `ci:`, `docs:`, etc.PatchNo new commitsSkippedYou can also trigger a release manually from the GitHub Actions tab and choose the bump type explicitly.

Licence
-------

[](#licence)

MIT

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance98

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

6

Last Release

15d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/83275f3144d4cc4092e54dd8d5acf6a048536f6d7e454d741ae82a61f904c737?d=identicon)[ahmadkokab](/maintainers/ahmadkokab)

---

Top Contributors

[![afaryab](https://avatars.githubusercontent.com/u/68786248?v=4)](https://github.com/afaryab "afaryab (12 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (4 commits)")

### Embed Badge

![Health badge](/badges/track-any-device-admin/health.svg)

```
[![Health](https://phpackages.com/badges/track-any-device-admin/health.svg)](https://phpackages.com/packages/track-any-device-admin)
```

###  Alternatives

[backpack/crud

Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.

3.4k3.6M217](/packages/backpack-crud)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3861.7k](/packages/codewithdennis-larament)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

591.7k1](/packages/crumbls-layup)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
