Consistent Nova resources—fields, actions, metrics, lenses, filters, authorization—and how to evolve resources alongside schema changes
Scanned 6/6/2026
Install via CLI
openskills install jpcaparas/superpowers-laravel---
name: laravel:nova:resource-patterns
description: Consistent Nova resources—fields, actions, metrics, lenses, filters, authorization—and how to evolve resources alongside schema changes
---
# Nova Resource Patterns
Build consistent Nova resources that mirror domain models and evolve safely.
## Fields
- Keep fields ordered: identifiers → primary attributes → relations → meta
- Use `->sortable()`/`->filterable()` where it delivers value
- Hide sensitive fields (e.g., tokens) from index/detail unless necessary
- Prefer `BelongsTo`/`HasMany`/`Morph*` relations with searchable constraints
## Authorization
- Use Nova policies mirroring model policies for `viewAny`, `view`, `create`, `update`, `delete`
- Avoid leaking existence via unauthorized search; scope queries
## Actions
- Keep actions idempotent or provide safeguards
- Provide confirmation messages and clear result feedback
## Filters & Lenses
- Filters: simple, commonly used constraints (status, owner, date range)
- Lenses: opinionated, task‑centric views (e.g., stale items)
## Metrics
- Value/Trend/Partition metrics for essentials; cache appropriately
- Use explicit time ranges; label units clearly
## Resource Organization
- Group resources by domain (navigation grouping)
- Keep display titles meaningful; use `title()` consistently
## Testing
- Prefer feature tests that exercise policy + query scope + resource logic
- For actions, test success and failure states with realistic seed data
No comments yet. Be the first to comment!