Skip to main content

Configuration

The plugin reads config/chronicle-filament.php; every value can be overridden per panel with a fluent method on ChronicleFilamentPlugin.

Config reference

KeyDefaultPurpose
entry_model\Chronicle\Entry\EntryThe Eloquent model the resource reads. Point at a subclass to add accessors/relations; honored end-to-end when chronicle.models.entry matches (core 1.13+).
navigation.group'Chronicle'Navigation group label
navigation.sortnullNavigation sort order
slug'chronicle-entries'Resource route slug
verification.enabledtrueMaster toggle for badges, verify actions, and the health widget
verification.queue_threshold1000Chain/segment verifies covering more than this many entries are queued instead of run synchronously
verification.store.connectionnullDatabase connection for the verification result store (null = the app default)
anchoring.enablednullMaster toggle for the anchor surfaces. null follows core's chronicle.anchoring.enabled; set true/false to force. Hidden everywhere when core anchoring is off.
anchoring.verify_all_queue_threshold1000"Verify all anchors" runs synchronously at or below this many in-scope checkpoints, and is queued above it.
signing_keys.enabledtrueMaster toggle for the signing-key column, filter, detail badge, and key-ring widget.
crypto_shredding.enablednullToggle for the read-only erasure surfaces (column, filter, detail, proof preset, widget). null follows core's chronicle.encryption.enabled.
erasure.enabledfalseMaster toggle for the irreversible Erase-subject action. Off by default.
erasure.allow_hold_overridefalseWhether a legal hold may be overridden during erasure (still gated per action).

Fluent plugin methods

Each overrides the matching config value for that panel:

ChronicleFilamentPlugin::make()
->navigationGroup('Audit')
->navigationSort(99)
->slug('chronicle')
->cluster(AuditCluster::class)
->verification(true)
->anchoring(true)
->signingKeys(true)
->cryptoShredding(true)
->erasure(false) // the erase action is off by default
->eraseAuthorize(fn ($record): bool => auth()->user()?->can('erase-subject') ?? false)
->authorize(fn (): bool => auth()->user()?->can('verify-chronicle') ?? false)
->labelResolver(fn (string $type, string $id): ?string => null);
MethodEffect
navigationGroup(), navigationSort(), slug(), cluster()Resource placement in the panel
verification(bool)Enable/disable verification UI
anchoring(bool)Show/hide the anchor surfaces (defaults to following core)
signingKeys(bool)Show/hide the signing-key surfaces (column, filter, detail badge, widget)
cryptoShredding(bool)Show/hide the read-only erasure surfaces (defaults to following core)
erasure(bool)Enable the Erase-subject action (default off)
eraseAuthorize(Closure)Authorize the erase action; defaults to deny, separate from the verify gate
eraseAllowHoldOverride(bool)Permit overriding a legal hold during erasure (default off)
authorize(Closure)Gate the verify actions independently of read access
labelResolver(Closure)Override actor/subject display labels; return null to fall back to core's resolveReference

Custom entry model

Set entry_model to a subclass of Chronicle\Entry\Entry. With core 1.13+ and a matching chronicle.models.entry, the override is honored by core's reader and verifiers too, so the panel and verification operate on your model end-to-end. See Custom Entry Model.

See also