85 Commits

Author SHA1 Message Date
Bartłomiej Janczak
ce8062036a Configure global webhook toggle, emerald prefix padlock, and key length range 3-20 2026-06-02 18:52:46 +02:00
Bartłomiej Janczak
e8e9f26c9b Add queue worker placeholder info callout 2026-06-02 18:39:39 +02:00
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
a5421a2d30 Add missing security v2 and world map translation keys (EN and PL) 2026-06-02 18:25:41 +02:00
Bartłomiej Janczak
d1eb322cb6 Add visit logs screenshot (5.png) to README 2026-06-02 18:21:56 +02:00
Bartłomiej Janczak
3d62dbcbb7 Improve tooltip hover triggers using event delegation 2026-06-02 18:17:27 +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 v1.6.0 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 v1.5.1 2026-06-02 11:10:10 +02:00
Bartłomiej Janczak
e0b7e3f28c feat: add social retargeting pixels, developer REST API, and webhooks system v1.5.0 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 v1.4.0 2026-06-02 09:27:06 +02:00
Bartłomiej Janczak
b1416fbe86 chore: exclude art and tests folders from composer distribution using .gitattributes 2026-06-02 09:18:03 +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 v1.3.2 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 v1.3.1 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
v1.3.0
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 v1.2.0 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
f518d4dae9 chore: Update license badge URL in README 2026-06-01 13:07:55 +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
c842096a22 style: fix qr-designer spacing when Tailwind helper classes are unbuilt v1.1.2 2026-06-01 12:35:49 +02:00
Bartłomiej Janczak
7035e5b84b Update README.md 2026-06-01 12:35:17 +02:00
Bartłomiej Janczak
3b97ad3d00 add LICENSE file 2026-06-01 12:17:49 +02:00
Bartłomiej Janczak
a5f5afa198 docs: improve README layout with centered 3D logo and Shields.io status badges v1.1.1 2026-06-01 12:08:14 +02:00
Bartłomiej Janczak
429896d8e3 docs: complete README documentation for all settings, builders, env parameters, and bot filtering v1.1.0 2026-06-01 12:06:04 +02:00
Bartłomiej Janczak
985aa43155 docs: update README with navigationLabel and navigationIcon, fix composer require username 2026-06-01 10:28:39 +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
9d23236755 fix: correct GitHub username to janczakb v1.0.0 2026-06-01 10:20:51 +02:00
Bartłomiej Janczak
2f5c9701d4 fix: remove accidental nested submodule reference 2026-06-01 10:10:38 +02:00
Bartłomiej Janczak
20a75bc72a feat: initial release v1.0.0 2026-06-01 10:10:26 +02:00