14 Commits

Author SHA1 Message Date
Bartłomiej Janczak
9c4d693b25 release: v5.2.3 - Redis optimizations, stats scaling, DNS and CSP fixes 2026-06-08 16:11:47 +02:00
Bartłomiej Janczak
06e3934438 Add OG meta scraping, temp image storage, and bot-aware redirects.
Introduce UrlMetaScraper with SSRF-safe fetching, OgImageImporter/Processor for WebP uploads via hourly tmp buckets promoted on save, and redirect-html serving for bots and cloaked links.
2026-06-08 01:58:48 +02:00
Bartłomiej Janczak
2107a3e6c8 feat: v5.0.0 — Live Feed page, Folders & Tags, Link Archiving, API scopes
## Analytics — Live Activity Feed
- Dedicated /stats/live standalone page (mirrors /stats/logs pattern)
- Consistent 3-tab navigation across Statistics / Live Feed / Visit Logs
- checkForUpdates() with skipRender(): O(1) MAX(id) poll — ~100-byte response on no-change
- latestVisitId sentinel (-1) prevents unnecessary first-poll re-render
- Cache key versioned by latestVisitId — fixes bug where concurrent users
  could permanently miss a visit due to stale thundering-herd cache
- 3-second thundering-herd cache (key: url_id + date + filters + latestVisitId)
- Country flags via flagcdn.com (precomputed in PHP, Alpine.js CSP-safe onerror)
- time_ago precomputed in PHP — no Carbon::parse() double-instantiation in Blade
- SELECT only 12 needed columns instead of SELECT *; limit 25 rows
- wire:poll.5s.visible — polling stops when widget is off-screen

## Link Organization
- Folders: one folder per link, clickable → filtered link list, link count badge
- Tags: up to 5 tags per link, clickable → filtered link list, link count badge
- Archiving: soft-archive links instead of permanent deletion; restorable

## REST API
- Per-key API scopes: links:read-only (GET) / links:read-write (full CRUD)
- Per-key rate limiting: individual requests/minute per API key

## Translations
- Added stats_live_feed_poll_interval (EN: 'Updates every 5s', PL: 'Aktualizacja co 5s')

## Docs
- README.md: corrected API scopes/rate-limiting docs (features were already implemented)
- README.md: added Folders, Tags, Archiving to features list
- README.md: added v5.0.0 changelog entry
2026-06-06 02:16:07 +02:00
Bartłomiej Janczak
aa05f026b5 feat: speed optimization, portability fixes, and documentation update for DNS resolution 2026-06-05 09:15:04 +02:00
Bartłomiej Janczak
15d992c5ad v3.3.0: Advanced Multi-Filter Targeting, Strict API Validation, Clean Configs, UX Improvements 2026-06-04 15:45:14 +02:00
Bartłomiej Janczak
3b9411808e feat: Release v3.1.0 - Performance, Security, and Scalability updates 2026-06-04 12:53:54 +02:00
Bartłomiej Janczak
137a81dcab feat: Release v3.0.0 — Native App Linking, Deep Linking, Pixels Registry, and Custom Expiry Pages 2026-06-03 17:21:03 +02:00
Bartłomiej Janczak
26247fd94a Release v2.0.0: SVG QR Code Designer, visit counter buffering, Geo-IP and browser language tracking, dashboard redesign 2026-06-03 13:52:31 +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
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
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
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
20a75bc72a feat: initial release v1.0.0 2026-06-01 10:10:26 +02:00