cooper/filament-dcat-filters
A Filament plugin that adds DCAT-aware filters to your admin panels, making it easy to browse and narrow down data catalogs by metadata fields such as themes, formats, publishers, and access rights.
Architecture fit. The package is a Laravel-native query/filter layer built around Eloquent, exposing a RangeFilter abstraction with dateColumn() and toTimestamp() paths plus an "indicator" concept (likely KPI/metric aggregation). v2.1.2 is a patch release that corrects a date-boundary defect, so it does not change the package's architectural contract — it makes the existing one correct. For a TPM, this signals a package whose core value is declarative range filtering over datetime columns, which fits reporting, dashboards, and admin list views cleanly.
Integration feasibility. Standard Composer dependency for Laravel; no migration, config, or infrastructure change is implied by the notes. The fix is internal to query generation. Teams already using dateColumn()/toTimestamp() get corrected behavior by bumping the version.
Technical risk. Low-to-moderate, and asymmetric:
<= '2024-01-15' to <= '2024-01-15 23:59:59' and normalizes from to 00:00:00. Any downstream tests, snapshots, or cached query assumptions pinned to the old bindings will need updating (the release notes themselves flag a QueryBehaviorTest binding expectation change). This is a correctness fix, but it is a silent output change for existing consumers.from > to (low): new defensive behavior; validate it matches product expectations rather than masking user input errors.to day — a data-correctness issue in any date-ranged report. Fixing it is a net risk reduction.Key questions.
23:59:59 normalized to app timezone, UTC, or DB timezone? The fix widens the window; confirm it does not double-count across timezone boundaries.23:59:59 sufficient precision, or does the DB store sub-second timestamps (a 23:59:59.999 edge)?dateColumn() and toTimestamp(), and will their snapshots/tests break?Stack fit. Drop-in Laravel Composer package; no framework-version constraints are stated in the notes, so verify the supported Laravel/PHP matrix against our baseline before pinning. The 1,119-test / 1,692-assertion suite indicates a mature, actively-tested codebase — a positive signal for a dependency we intend to lean on.
Migration path. This is a patch bump (2.1.x → 2.1.2), the lowest-friction upgrade class. Recommended path:
^2.1.2 (or pin exactly) in composer.json.<= date bindings (expected and flagged by the release).Compatibility. SemVer-compliant patch; no deprecations or breaking API changes announced. The only "compatibility" concern is behavioral, not API — consumers relying on the old (buggy) boundary must re-baseline expectations.
Sequencing. Prioritize adoption on any reporting/metrics surfaces where the undercount bug is material (finance, SLA, audit counts) — fix those first. Schedule the general bump with the next routine dependency cycle. Do not block on the auto-swap feature; treat it as a bonus.
Maintenance. Active maintenance is evidenced by a prompt bug fix, new regression tests, and a maintained suite. The fix is narrow and well-scoped — low ongoing maintenance burden. Track the project's release cadence and supported-version policy as part of dependency governance.
Support. Upstream issue/PR activity should be monitored; the release notes suggest responsive maintainers. Internally, document the dateColumn()/toTimestamp() semantics (inclusive day boundaries, auto-swap) in our integration notes so support engineers can answer "why did this report's count change?" without escalation.
Scaling. Query-level change only — no new runtime, memory, or infrastructure footprint. Index usage should be unaffected; the widened to bound remains sargable. No scaling concerns.
Failure modes.
from > to may hide upstream validation gaps; decide whether to log/alert on swaps.Ramp-up. Low for developers already using the package — behavior is now more intuitive (whole-day coverage). New adopters need a short briefing on the two entry points (dateColumn(), toTimestamp()), the inclusive-boundary convention, and the auto-swap rule. Estimate well under a day of enablement for a Laravel-fluent team.
How can I help you explore Laravel packages today?