Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Nova Secret Field Laravel Package

norman-huth/nova-secret-field

A Laravel Nova field for securely storing and managing secrets like API keys and passwords. It masks sensitive values in the UI, encrypts data at rest, and lets you update credentials without exposing them. Ideal for admin panels that need safe secret handling without revealing values to users.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Admin-panel UX for credential entry. This field addresses a narrow but real workflow: letting an operator type or inspect a secret (API key, webhook signing secret, SMTP password, OAuth client secret, integration token) in a Laravel Nova resource form, with a masked display and a click-to-reveal control.
  • Build vs. buy for a single UI affordance. The entire capability is a small Nova field class plus a Vue component wrapping a show/hide toggle. The decision this package actually informs is "do we take a dependency for ~50 lines of code?" — and the answer is almost always no.
  • Roadmap signal: secrets lifecycle, not secrets display. If storing and revealing credentials in an admin UI is on the roadmap, the higher-value work is rotation, scoping, access control, and audit logging of reveals. A toggle-only field satisfies the demo, not the requirement.
  • Feature scoping question worth answering explicitly: should the admin UI ever render plaintext secrets to the browser? A reveal toggle implies the value is already in the page/JSON payload before anyone clicks — masking is cosmetic, not a control. That is a product/security decision, not a component choice.
  • Spike and evaluation use. Reasonable as a throwaway reference implementation during a prototype or internal tool where blast radius is zero and the code will not survive the sprint.

When to Consider This Package

Adopt only under a narrow, stacked set of conditions:

  • You are on a Nova 3.x-era install and have no near-term upgrade path.
  • The consumer is an internal, low-privilege admin surface with a small, known set of users.
  • You are willing to vendor or fork the code into your own repository rather than depend on it, since the package is archived and will receive no security patches.
  • The field is a prototype or a temporary convenience, not a load-bearing part of a credential workflow.

Look elsewhere — or build in-house — when any of the following is true:

  • You are on Nova 4/5 or Laravel 10+. Last release was 2022-07-12 and the repo is archived; compatibility with current Nova majors is unverified and will not be fixed upstream.
  • Supply-chain hygiene matters. Archived, 3 stars, 0 dependents means no ecosystem validation, no downstream users finding bugs, and no maintainer response to a disclosed issue. Reviewers will and should flag this.
  • Compliance is in scope (SOC 2, ISO 27001, HIPAA, PCI). No audit trail, no reveal logging, no field-level access control, no rotation primitives.
  • Multi-tenant or customer-facing. Plaintext secrets in a browser payload need explicit threat modeling that this component does not attempt.
  • You need encryption-at-rest guarantees. Nova's built-in Password field is write-only and hashed for a reason; a reveal-capable field requires a decryptable column, which changes your data model and key-management obligations — decide that deliberately, don't inherit it from a widget.

How to Pitch It (Stakeholders)

For executives: We evaluated a small open-source add-on for our Laravel admin panel that would let staff view masked credentials with a click-to-reveal toggle. It is not a fit for production. The project is archived, has no adoption, and has not been updated since mid-2022, so it carries unmanaged security and upgrade risk for a capability worth roughly a day of engineering. More importantly, "reveal on click" is cosmetic — the secret is already delivered to the browser. If displaying stored credentials is genuinely required, the real investment is access control, reveal auditing, and rotation, which is a scoped piece of work rather than a package install. Recommendation: do not adopt; treat the requirement as a small in-house build gated behind an explicit security sign-off, or defer it until the underlying secrets-management need is prioritized on the roadmap.

For engineering: Trivial custom Nova field — one PHP field class, one Vue component with a boolean toggle. Recommend implementing in-house so we own compatibility with our Nova version, avoid an archived dependency in the lockfile, and can add the things the package lacks: a permission check on reveal, an audit log entry per reveal, and no plaintext in the serialized payload unless the user explicitly requests it via a separate endpoint. If we build it, keep the reveal server-side and on-demand.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource