yezzmedia/laravel-ops

Operations foundation with access services and Filament administration for Laravel applications.

Maintainers

Package info

github.com/yezzmedia/laravel-ops

pkg:composer/yezzmedia/laravel-ops

Statistics

Installs: 589

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0


README

PHP Laravel Filament

Operations foundation package for Laravel applications.

yezzmedia/laravel-ops centralizes operational access control, health telemetry, and operational workspaces so domain packages can build on a shared base instead of duplicating infrastructure concerns.

Table of Contents

Highlights

  • Shared operations panel foundation with Filament v5.
  • Role and permission management backed by spatie/laravel-permission.
  • Operational activity visibility backed by spatie/laravel-activitylog.
  • Runtime and health checks backed by spatie/laravel-health.
  • Pulse-powered system telemetry and charts in a dedicated System workspace.
  • Auto-registered scheduler events for health and hardware data capture.
  • Package-level navigation registry for clean cross-package integration.

Architecture

flowchart LR
    Host[Host Laravel App] --> Ops[yezzmedia/laravel-ops]
    Ops --> Panel[Operations Filament Panel]
    Ops --> ACL[Roles and Permissions]
    Ops --> Health[Health and Data Workspace]
    Health --> SpatieHealth[Spatie Health Checks]
    Health --> Pulse[Laravel Pulse Telemetry]
    Ops --> Extensions[Navigation Registry and Extension Points]
Loading

Requirements

  • PHP ^8.3 (CI validated on 8.3, 8.4, and 8.5)
  • Laravel ^12.0|^13.0
  • Filament ^5.0

Required runtime dependencies:

  • spatie/laravel-permission ^7.0
  • spatie/laravel-activitylog ^4.10
  • spatie/laravel-health ^1.34
  • laravel/pulse ^1.7.2

Optional observability integrations:

  • laravel/horizon (queue runtime dashboard)
  • laravel/telescope (request and diagnostics dashboard)

laravel-ops automatically hides Horizon and Telescope focus pages when the related package is not installed.

Installation

composer require yezzmedia/laravel-ops

Then run your normal application setup/migrations. The package service provider is auto-discovered.

For local package development, run tests inside this package:

composer test

What You Get

Core workspaces and tooling include:

  • Operations dashboard and quick operational summaries.
  • Access Control workspace (roles, permissions, user assignment visibility).
  • Notification settings and operational notification center.
  • Audit resource and notification resource pages.
  • Health and Data workspace with mini-navigation:
    • Overview
    • Health
    • Settings
    • System
    • Horizon Focus
    • Telescope Focus
    • Pulse Analytics

Health and Data Workspace

The Health and Data workspace is designed as a layered operations flow:

  1. Overview for KPI snapshots and cross-system trend charts.
  2. Health for Spatie health status and health KPIs.
  3. Settings for runtime controls and dispatching health jobs.
  4. System for Pulse hardware and workload telemetry.
  5. Focus pages for Horizon/Telescope deep investigation.
  6. Pulse Analytics for full Pulse card-level diagnostics.

Auto Scheduler Events

By default, the package registers scheduler events automatically:

  • ops:spatie-health-check (Spatie health check flow)
  • ops:pulse-check (Pulse hardware snapshot flow)

You can verify with:

php artisan schedule:list

Commands

Common package commands:

  • php artisan ops:install
  • php artisan ops:update
  • php artisan ops:sync-permissions
  • php artisan ops:sync-roles
  • php artisan ops:sync-config
  • php artisan ops:make-super-admin
  • php artisan ops:health:work

ops:health:work runs scheduler, queue worker, and pulse check runtime in one command for development workflows.

Configuration

Primary config file: config/ops.php

Important health-related keys:

  • ops.health.spatie.*
  • ops.health.pulse.*
  • ops.filament.pages.*

Example env overrides:

OPS_HEALTH_AUTO_REGISTER_SCHEDULE=true
OPS_HEALTH_SCHEDULE_DRIVER=job
OPS_HEALTH_SCHEDULE_CRON=*/5 * * * *

OPS_HEALTH_PULSE_AUTO_REGISTER_SCHEDULE=true
OPS_HEALTH_PULSE_SCHEDULE_CRON=* * * * *
OPS_HEALTH_RUN_PULSE_CHECK_WITH_HEALTH_WORK=true

Testing

Run the complete suite:

vendor/bin/pest

Format code:

vendor/bin/pint --format=agent

Dependency Policy

  • laravel-ops is the shared foundation package.
  • It must not depend on laravel-user-center or laravel-analytics.
  • Domain packages may depend on laravel-ops.
  • Cross-domain package dependencies should be avoided unless explicitly intended.