- What is bakerkretzmar/nova-settings-tool and what does it do?
- It is a Laravel Nova tool that adds a settings screen to your Nova admin panel. The tool renders editing forms from standard Nova fields and delegates all persistence to spatie/laravel-settings. Your settings classes, defaults, validation, and grouping stay in version control, so the tool is purely a presentation layer. It lets trusted internal staff tune runtime values without you writing custom Nova screens.
- How do I install nova-settings-tool in a Laravel Nova application?
- Install it with Composer using bakerkretzmar/nova-settings-tool. Register the tool in your NovaServiceProvider's tools() method, and optionally publish its configuration file if you need to customise the interface. If you are using a database-backed settings repository rather than the file-backed default, run the spatie/laravel-settings migrations as well. There is no queue, runtime service, or front-end build step involved.
- Does nova-settings-tool require spatie/laravel-settings?
- Yes. The package is a Nova UI layer and does not implement its own settings engine. You define typed settings classes with defaults and validation using spatie/laravel-settings, and the tool reads those classes to build the editing forms. This separation keeps the settings contract in your codebase and under engineering review rather than becoming a shadow source of truth.
- Which Laravel and Nova versions does nova-settings-tool support?
- Release 2.1.0 added Nova 5 support, but you should confirm whether its composer constraint widened to ^4.0|^5.0 or moved to ^5.0 only. That single detail determines whether the package is a no-op or a prerequisite in a Nova upgrade sequence. Because Nova is paid, closed-source, and dictates the Laravel and PHP floor, this package's compatibility is paced by Nova's major-version cycle. Read composer.json on the 2.1.0 tag before committing.
- Where does nova-settings-tool store settings, in a JSON file or a database table?
- The package description indicates a file-backed JSON repository is the default, though a database-backed setup via spatie/laravel-settings is also possible. These are materially different risk profiles, so verify the actual backend at the 2.1.0 source rather than inferring from marketing copy. File-backed storage raises questions about last-write-wins edits, partial writes, plaintext secrets on disk, and whether the file ships in your deploy artefact. Database-backed storage adds migrations, transactional safety, and optional encryption at rest.
- Is nova-settings-tool safe to use in production?
- It is reasonable for an internal admin convenience where trusted staff tune flags, thresholds, copy, or endpoints. It is not appropriate for anything on-call-critical, especially with file-backed persistence where concurrent admin edits risk last-write-wins behaviour or partial writes. Settings are also cached, so a write UI that invalidates badly can cause silent production behaviour drift. Treat it as a permissioned internal screen, not a configuration management system.
- How should I handle secrets or credentials stored as settings?
- If any setting holds a credential, encrypted casts, redaction in the UI, and strict file or database permission hygiene become mandatory. Audit logging of who changed what moves from nice-to-have to a security requirement with a named owner. A plaintext JSON file on disk is a poor home for secrets, so prefer a database-backed repository with encryption if you must store sensitive values. Consider keeping credentials in environment variables and exposing only non-sensitive runtime values through the tool.
- Can I use nova-settings-tool for per-tenant or per-user settings?
- This tool is a poor fit for per-tenant or per-user configuration at scale. It is designed as a single admin screen for application-wide runtime values that trusted internal staff edit occasionally. Scoped or high-cardinality configuration needs a different data model, stronger isolation guarantees, and likely its own UI. Evaluate it for global settings only, and look elsewhere if tenancy is a core requirement.
- Does nova-settings-tool cache settings, and how do I avoid stale values?
- Settings are cached through spatie/laravel-settings, so writes from the Nova screen must invalidate the relevant cache correctly. Test the full edit-and-read cycle in staging, including any custom cache configuration or multi-server setup, before relying on the screen in production. Silent drift caused by bad invalidation is the most expensive failure class for an admin tool because it erodes trust in the interface. Verify cache behaviour explicitly rather than assuming it works.
- Is nova-settings-tool actively maintained, and what are the alternatives?
- It has around 165 stars, zero recorded dependents, and effectively one maintainer, with releases gated by Nova's major-version cycle. That means you are an early adopter rather than a follower, which is acceptable for an internal admin convenience but not for critical infrastructure. If the risk is too high, the main alternative is building your own small Nova screens directly on spatie/laravel-settings, which keeps the same architecture without the third-party dependency. Either way, decide first whether Nova is your committed admin surface for the next 18 to 24 months.