Bartłomiej Janczak
da810db511
Make queue_name dynamically required based on queue connection
2026-06-02 18:35:43 +02:00
Bartłomiej Janczak
8de83e3973
Hide Queue Name field when sync connection is selected
2026-06-02 18:27:59 +02:00
Bartłomiej Janczak
c650c1f205
Fix world map visual display, dark mode support and tooltips
2026-06-02 18:13:38 +02:00
Bartłomiej Janczak
34e4339c7c
Release v1.6.0: Google Safe Browsing integration, VPN/Proxy/Bot filtering, and Visitor World Map widget
2026-06-02 17:56:16 +02:00
Bartłomiej Janczak
e847328b9b
UX: Dynamically show/hide Developer API Keys section based on REST API enable state
2026-06-02 13:22:35 +02:00
Bartłomiej Janczak
911e98a2e3
Release v1.5.1: Rest API toggle, webhook fault tolerance, time-boundary aggregation fix, pixel loading UI, and resolveRedirectUrl targeting rules alignment
2026-06-02 13:17:42 +02:00
Bartłomiej Janczak
bdef0b6687
feat: add api_enabled on/off toggle in settings + update README for v1.5
2026-06-02 11:10:10 +02:00
Bartłomiej Janczak
e0b7e3f28c
feat: add social retargeting pixels, developer REST API, and webhooks system
2026-06-02 09:44:53 +02:00
Bartłomiej Janczak
e29c3ef24e
fix: resolve real-time visit limits under counter buffering and enforce rotation weight constraints
2026-06-02 09:27:06 +02:00
Bartłomiej Janczak
59e4fc0e6b
v1.4.0: Add validity ranges, visit limit counters, custom redirects, and reactive controls
2026-06-02 09:16:47 +02:00
Bartłomiej Janczak
0e371ad139
Fix database compatibility: use database-agnostic boolean check in case statement for PostgreSQL
2026-06-02 07:55:22 +02:00
Bartłomiej Janczak
e5437dd0a6
Audit fixes: device targeting, query index optimizations, translation gaps, rate-limiting, and path consistency
2026-06-02 07:51:45 +02:00
Bartłomiej Janczak
65a1b126df
feat: global overview widget, optimized cache, CSS asset docs
...
- Add ShortUrlGlobalOverview StatsOverviewWidget with split cache strategy:
link counts cached forever (invalidated on create/delete), click stats
with short TTL (geo_ip.stats_cache_ttl config)
- Fix visited_at column in ShortUrlVisit queries (was created_at)
- Disable Livewire polling (pollingInterval = null)
- Add cache invalidation for global overview in ShortUrl::booted()
- Rewrite README asset section: user-facing install instructions clarified,
post-autoload-dump tip added, developer recompile notes separated
2026-06-01 18:59:17 +02:00
Bartłomiej Janczak
f0d76ff03b
fix: memory-safe aggregation via chunking + allow 0 retention days
...
- Replace ->get() with ->chunk(1000) in AggregateAndPruneVisitsCommand
to avoid loading entire day's visits into PHP RAM (critical at scale)
- Stats are now accumulated incrementally via a hash-keyed array,
unique visits counted via ip_hash deduplication key
- Fix pruning_retention_days minValue(1) → minValue(0) in Settings form;
0 was documented to disable pruning but form validation blocked it
2026-06-01 14:20:43 +02:00
Bartłomiej Janczak
eda4794cac
feat: v1.2.0 — password protection, warning pages, smart targeting, rate limiting, daily stats aggregation
...
- Add password-protected links with session-based unlock flow
- Add redirect warning (interstitial) pages before external URLs
- Add smart targeting rules: device-based, country/geo, A/B weighted rotation
- Add configurable per-IP rate limiting with 429 + Retry-After headers
- Add daily stats aggregation & log pruning (short-url:aggregate-and-prune)
- Add IncrementVisitJob as queue-based counter buffering fallback
- Add ShortUrlDailyStats model with JSON stat columns per day
- Add two new migrations: targeting/security fields, daily_stats table
- Add password-prompt.blade.php and warning.blade.php views
- Extend Settings GUI with Performance & Security tab (aggregation + rate limiting)
- Extend ShortUrlForm with Targeting & Security section
- Add POST route for password form submission (was GET-only → 405)
- Replace enum(device_type) with string(20) for cross-DB compatibility
- Remove ->after() MySQL-only hints from ALTER TABLE migrations
- Fix aggregation test: use whereDate() instead of assertDatabaseHas for date column
- Extend en/pl translations for all new features
- Expand README.md with full v1.2.0 documentation (476 lines)
2026-06-01 13:54:13 +02:00
Bartłomiej Janczak
69f6cef31b
feat: Add UTM parameters, interactive date range filter, cleaned referrer domains, and visitor city tracking to analytics
2026-06-01 13:24:02 +02:00
Bartłomiej Janczak
2ab85dd264
fix: Import ShortUrlResource in ShortUrlsTable to resolve class not found error
2026-06-01 13:10:01 +02:00
Bartłomiej Janczak
bdbe9b2ffd
v1.2.0: Added counter buffering (write-back caching), CDN trust headers toggle, full UI localization, dynamic Filament routes, and high-concurrency fixes
2026-06-01 13:05:48 +02:00
Bartłomiej Janczak
cd9a4a1620
feat: add navigationLabel() and navigationIcon() to plugin API
2026-06-01 10:27:02 +02:00
Bartłomiej Janczak
20a75bc72a
feat: initial release v1.0.0
2026-06-01 10:10:26 +02:00