manggala/laravel-manifest

Production-ready, schema-driven, UI-agnostic configuration platform for Laravel applications.

Maintainers

Package info

github.com/IlhamHattaManggala/laravel-settings

pkg:composer/manggala/laravel-manifest

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-08-03 12:16 UTC

This package is auto-updated.

Last update: 2026-08-03 13:00:51 UTC


README

Latest Stable Version License PHP Version Laravel Version

Laravel Manifest (manggala/laravel-manifest) is a production-ready, schema-driven, UI-agnostic configuration platform and manifest manager for Laravel applications.

Unlike simple key-value packages, Laravel Manifest provides an extensible schema engine that automatically manages database persistence, validation, dynamic UI rendering, REST APIs, caching, native encryption, RBAC authorization, and ecosystem package discovery.

๐ŸŒŸ Key Features

  • Multi-Version Compatibility: Compatible with PHP 8.2, 8.3, 8.4 and Laravel 10.x, 11.x, 12.x, 13.x.
  • Schema First Architecture: Define configuration schemas once in PHP, and let the engine generate UI, validation, REST APIs, and database migrations.
  • UI Agnostic Adapter System: Core engine is frontend-decoupled and provides built-in adapters for Blade, Livewire, Inertia React, and API Only.
  • Pluggable Storage Drivers: Switch seamlessly between Database, JSON, and Redis storage drivers.
  • Automatic Caching & Invalidation: High-performance caching with instant automatic cache purging upon setting updates.
  • Native Encryption Subsystem: Automatic encryption for sensitive values (passwords, API keys, OAuth secrets) using Laravel Crypt.
  • RBAC & Authorization Drivers: Native support for Spatie Permission, Laravel Gates, Policies, and Middleware.
  • Audit Trail & Rollback History: Track full setting change history (old_value, new_value, user_id, ip_address) with rollback capabilities.
  • Artisan Wizard & Diagnostic Doctor: Interactive php artisan settings:install setup wizard and php artisan settings:doctor health check diagnostics.
  • Manggala Ecosystem Discovery: Package discovery engine (Settings::discover()) for auto-registering settings from packages like laravel-dashboard-builder.

๐Ÿ“ฆ Installation

Install the package via Composer:

composer require manggala/laravel-manifest

Run the interactive installation wizard:

php artisan settings:install

Optionally publish resources manually:

php artisan settings:publish --tag=config
php artisan settings:publish --tag=migrations

๐Ÿš€ Quick Start (Fluent Schema API)

Define your application settings fluently in a Service Provider or package bootstrap:

use Manggala\Settings\Facades\Settings;
use Manggala\Settings\Schema\SettingsGroup;

Settings::group('General', function (SettingsGroup $group) {
    $group->text('site_name')
        ->label('Site Name')
        ->default('My Laravel Application')
        ->required();

    $group->password('smtp_password')
        ->label('SMTP Password')
        ->encrypted();

    $group->toggle('maintenance_mode')
        ->label('Maintenance Mode')
        ->default(false);
});

Accessing & Updating Settings

// Retrieve a setting value via helper or Facade
$siteName = setting('general.site_name', 'Default Site');

// Store a setting value
setting(['general.site_name' => 'Acme Corp']);

// Check existence
if (Settings::has('general.site_name')) {
    // ...
}

// Delete setting
Settings::forget('general.site_name');

๐Ÿ”’ Authorization (RBAC)

Protect setting groups using Spatie roles/permissions or Laravel Gates:

Settings::group('Mail')
    ->roles(['super-admin', 'admin'])
    ->permissions(['manage-mail-settings']);

๐Ÿฅ Health Diagnostic Doctor Command

Run the doctor diagnostic command to inspect storage, cache, encryption, and permission status:

php artisan settings:doctor

๐Ÿงช Testing & Quality Assurance

Run the Pest PHP test suite:

vendor/bin/pest

Format code styling with Laravel Pint:

vendor/bin/pint

Run static analysis:

vendor/bin/phpstan analyse

๐Ÿ“œ License

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