Alejandro Celaya
|
3c89d252d2
|
Simplify logic to match order by for short URL lists
|
2024-03-27 19:08:25 +01:00 |
|
Alejandro Celaya
|
f678873e9f
|
Use pre-calculated visits counts when listing short URLs
|
2024-03-27 19:08:25 +01:00 |
|
Alejandro Celaya
|
17d37a062a
|
Add new table to track short URL visits counts
|
2024-03-27 19:08:25 +01:00 |
|
Alejandro Celaya
|
c599d8a0ed
|
Make sure tags fallback to empty array when null
|
2024-03-27 13:04:42 +01:00 |
|
Alejandro Celaya
|
6fe269193a
|
Expose visitedUrl when serializing any kind of visit, not only orphan visits
|
2024-03-24 17:20:41 +01:00 |
|
Alejandro Celaya
|
d948543d5c
|
Wrap JSON serialization for any kind of visit in Visit entity itself
|
2024-03-24 17:06:11 +01:00 |
|
Alejandro Celaya
|
a327e6c0a7
|
Make Visit::jsonSerialize() return different props for orphan visits
|
2024-03-24 16:54:49 +01:00 |
|
Alejandro Celaya
|
fbd35b7974
|
Add more named constructors to Ordering class
|
2024-03-20 09:15:45 +01:00 |
|
Alejandro Celaya
|
b94a22e6a7
|
Rename Ordering::emptyInstance to Ordering::none to make it more clear
|
2024-03-20 09:06:35 +01:00 |
|
Alejandro Celaya
|
e028d8ea31
|
Move logic to serialize ShortUrls to entity itself
|
2024-03-18 22:09:15 +01:00 |
|
Alejandro Celaya
|
5524476787
|
Modernize ShortUrl entity
|
2024-03-18 20:21:26 +01:00 |
|
Alejandro Celaya
|
78526fb405
|
Modernize Visit entity
|
2024-03-18 19:57:30 +01:00 |
|
Alejandro Celaya
|
b2dee43bb0
|
Modernize VisitLocation entity
|
2024-03-18 19:11:42 +01:00 |
|
Alejandro Celaya
|
60e9443b12
|
Modernize ApiKey entity
|
2024-03-18 18:33:56 +01:00 |
|
Alejandro Celaya
|
ab8fa52ca4
|
Modernize Domain entity
|
2024-03-18 18:15:05 +01:00 |
|
Alejandro Celaya
|
053e026982
|
Fix error when redirecting to a non-http URL
|
2024-03-15 23:00:40 +01:00 |
|
Alejandro Celaya
|
0f2cd3cb7f
|
Remove useless return annotation
|
2024-03-12 09:09:59 +01:00 |
|
Alejandro Celaya
|
5427152f15
|
Make sure GeoLite2 db file is always read from the filesystem befor etrying to operate on it
|
2024-03-09 09:30:05 +01:00 |
|
Alejandro Celaya
|
be8cf56240
|
Ensure language redirect conditions do not match for too low quality accepted languages
|
2024-03-07 23:21:31 +01:00 |
|
Alejandro Celaya
|
97cb30565c
|
Add v4.0.0
|
2024-03-03 18:50:23 +01:00 |
|
Alejandro Celaya
|
4aa65f750e
|
Add CLI test for manage redirects command, to cover validation errors
|
2024-03-03 13:16:37 +01:00 |
|
Alejandro Celaya
|
63c533fa62
|
Fix incorrect rule selection when deleting rules with same long URL
|
2024-03-03 12:59:58 +01:00 |
|
Alejandro Celaya
|
8751d6c315
|
Add unit test for RedirectRuleHandler
|
2024-03-03 12:51:17 +01:00 |
|
Alejandro Celaya
|
eb40dc2d5d
|
Add unit test for ShortUrlRedirectRuleService::saveRulesForShortUrl
|
2024-03-03 10:36:17 +01:00 |
|
Alejandro Celaya
|
c9d1a955b9
|
Add ManageRedirectRulesCommand unit test
|
2024-03-03 10:27:21 +01:00 |
|
Alejandro Celaya
|
c346fd0602
|
Reduce duplicated code when parsing short codes and domains from CLI
|
2024-03-03 10:11:12 +01:00 |
|
Alejandro Celaya
|
a45550b0c6
|
Extract logic to determine list of rules from ManageRedirectRulesCommand to a helper service
|
2024-03-03 09:51:56 +01:00 |
|
Alejandro Celaya
|
a843c59d77
|
Fix inconsistencies when editing rules and saving a mix of new and old ones
|
2024-03-03 09:09:43 +01:00 |
|
Alejandro Celaya
|
3bfb29a51c
|
Test new methods for RedirectCondition and ShortUrlRedirectRule
|
2024-03-03 08:47:31 +01:00 |
|
Alejandro Celaya
|
d8ede3263f
|
Implement command to manage redirect rules for a short URL
|
2024-03-02 23:01:49 +01:00 |
|
Alejandro Celaya
|
7f560e6a65
|
Add SetRedirectRulesAction API test
|
2024-02-29 20:20:04 +01:00 |
|
Alejandro Celaya
|
8f233221e5
|
Add SetRedirectRulesAction unit test
|
2024-02-29 20:14:15 +01:00 |
|
Alejandro Celaya
|
f700abd65d
|
Add tests for ShortUrlRedirectionRuleService::setRulesForShortUrl
|
2024-02-29 19:55:34 +01:00 |
|
Alejandro Celaya
|
f9e4d6d617
|
Create RedirectRulesDataTest
|
2024-02-29 19:17:10 +01:00 |
|
Alejandro Celaya
|
d9286765e1
|
Create endpoint to set redirect rules for a short URL
|
2024-02-29 10:16:41 +01:00 |
|
Alejandro Celaya
|
070d74830b
|
Remove name and uniqueness in redirect condition table
|
2024-02-29 09:05:30 +01:00 |
|
Alejandro Celaya
|
ab7824aa85
|
Add unit test for ListRedirectRulesAction
|
2024-02-28 09:14:27 +01:00 |
|
Alejandro Celaya
|
67bafbe44e
|
Add API test for redirect rules list
|
2024-02-28 08:55:44 +01:00 |
|
Alejandro Celaya
|
c4805b8152
|
Remove old error models and examples from swagger spec
|
2024-02-28 08:39:26 +01:00 |
|
Alejandro Celaya
|
33729289c7
|
Create endpoint to list redirect rules for a specific short URL
|
2024-02-27 21:00:53 +01:00 |
|
Alejandro Celaya
|
a72e22e046
|
Unit-test RedirectCondition for devices
|
2024-02-27 19:24:26 +01:00 |
|
Alejandro Celaya
|
36749658da
|
Remove device long URLs support
|
2024-02-27 18:46:49 +01:00 |
|
Alejandro Celaya
|
4ad3dc0bc7
|
Create new migration to drop old device_long_urls table
|
2024-02-27 09:09:03 +01:00 |
|
Alejandro Celaya
|
73864b923d
|
Add migration to migrate device_long_urls to redirect_rules
|
2024-02-26 23:42:37 +01:00 |
|
Alejandro Celaya
|
60fef3de74
|
Merge lines
|
2024-02-26 20:06:15 +01:00 |
|
Alejandro Celaya
|
db02d9f1ba
|
Finalize logic to dynamically match accept language rules
|
2024-02-26 19:58:46 +01:00 |
|
Alejandro Celaya
|
df5ad554c1
|
Add E2E tests for dynamic rule-based redirects
|
2024-02-26 19:05:39 +01:00 |
|
Alejandro Celaya
|
07ae92943d
|
Add test for ShortUrlRedirectResolver rule matching
|
2024-02-25 23:09:16 +01:00 |
|
Alejandro Celaya
|
175712d4a9
|
Add test for ShortUrlRedirectRule request matching
|
2024-02-25 19:38:54 +01:00 |
|
Alejandro Celaya
|
3f1b253c31
|
Add test for RedirectCondition request matching
|
2024-02-25 19:21:39 +01:00 |
|
Alejandro Celaya
|
202d0b86b3
|
Extract logic to match every type of redirect condition to its own private method
|
2024-02-25 17:13:54 +01:00 |
|
Alejandro Celaya
|
4e87affb0b
|
Take redirect rules into consideration when resolving the long URL for a short URL
|
2024-02-25 12:34:27 +01:00 |
|
Alejandro Celaya
|
7f83d37b3c
|
Add logic to match redirect conditions based on query params or language
|
2024-02-25 12:34:27 +01:00 |
|
Alejandro Celaya
|
09e81b00c5
|
Create component to resolve the long URL to redirect to for a short URL
|
2024-02-25 12:34:27 +01:00 |
|
Alejandro Celaya
|
c5ddd8302a
|
Delete old migrations
|
2024-02-25 12:28:20 +01:00 |
|
Alejandro Celaya
|
6646232311
|
Set eager loading for redirect rule conditions
|
2024-02-24 20:24:41 +01:00 |
|
Alejandro Celaya
|
c1e88c3e83
|
Use named args to avoid passing default values for args
|
2024-02-24 18:21:53 +01:00 |
|
Alejandro Celaya
|
c91a534d1a
|
Create new entities for redirect rules
|
2024-02-24 18:17:09 +01:00 |
|
Alejandro Celaya
|
752100f1ce
|
Create migration for new rules and conditions tables
|
2024-02-24 17:30:46 +01:00 |
|
Alejandro Celaya
|
857c3a4f8d
|
Remove unused entries from EnvVars enum
|
2024-02-24 17:26:12 +01:00 |
|
Alejandro Celaya
|
d1a6e60b01
|
Add migration to update long URLs columns to text type
|
2024-02-22 09:35:14 +01:00 |
|
Alejandro Celaya
|
8f954151ca
|
Change long URL columns to TEXT type
|
2024-02-21 19:43:02 +01:00 |
|
Alejandro Celaya
|
7673232793
|
Add --path-prefix to short URL creation
|
2024-02-21 19:38:11 +01:00 |
|
Alejandro Celaya
|
f08951a9b9
|
Add unit test for short URL path prefix
|
2024-02-21 19:24:30 +01:00 |
|
Alejandro Celaya
|
ff963a9df4
|
Add API test for short URL path prefix
|
2024-02-21 19:14:30 +01:00 |
|
Alejandro Celaya
|
f30c74b987
|
Prepend path prefix to generated short code or custom slug
|
2024-02-21 18:06:06 +01:00 |
|
Alejandro Celaya
|
467dbdd183
|
Update to latest shlink-common
|
2024-02-21 17:57:45 +01:00 |
|
Alejandro Celaya
|
0e78deb8f2
|
Refactor ShortUrlInputFilter for creation and edition
|
2024-02-21 10:12:40 +01:00 |
|
Alejandro Celaya
|
23e9ed93bb
|
Add test for QrCodeAction with logo URL
|
2024-02-19 23:10:51 +01:00 |
|
Alejandro Celaya
|
689343d1c9
|
Test QR codes logic when providing a color
|
2024-02-18 21:02:35 +01:00 |
|
Alejandro Celaya
|
d01dc334d7
|
Update to endroid/qr-code 5
|
2024-02-18 19:58:19 +01:00 |
|
Alejandro Celaya
|
58a3791a5c
|
Allow customizing color, background color and logo in QR codes
|
2024-02-18 14:22:25 +01:00 |
|
Alejandro Celaya
|
938fb6509e
|
Add API test to verify titles for timing-out long URLs
|
2024-02-18 12:45:59 +01:00 |
|
Alejandro Celaya
|
d3bfd99210
|
Add a 3-second timeout to title resolution
|
2024-02-18 11:32:31 +01:00 |
|
Alejandro Celaya
|
e3de403c6c
|
Remove support to validate long URLs during short URL creation/edition
|
2024-02-17 12:02:57 +01:00 |
|
Alejandro Celaya
|
95ea64980b
|
Update to Symfony 7
|
2024-02-17 10:46:29 +01:00 |
|
Alejandro Celaya
|
e073b4331a
|
Update to doctrine ORM 3.0
|
2024-02-17 10:23:37 +01:00 |
|
Alejandro Celaya
|
96ed7cae0d
|
Drop support for openswoole
|
2024-02-16 23:02:46 +01:00 |
|
Alejandro Celaya
|
cf355b0b69
|
Update shlink-common and shlink-installer
|
2024-02-13 22:46:25 +01:00 |
|
Alejandro Celaya
|
ad3805a560
|
Removed deprecated features
|
2024-02-12 23:18:30 +01:00 |
|
Alejandro Celaya
|
430883987a
|
Add API test for type-filtering in orphan visits list
|
2024-02-10 18:26:19 +01:00 |
|
Alejandro Celaya
|
f17b641d46
|
Allow filtering orphan visits by type from the CLI
|
2024-02-10 18:19:28 +01:00 |
|
Alejandro Celaya
|
48a8290e92
|
Allow type filter property for orphan visits list
|
2024-02-10 17:51:42 +01:00 |
|
Alejandro Celaya
|
46acf4de1c
|
Support filtering orphan visits by type in VisitRepository
|
2024-02-10 13:58:03 +01:00 |
|
Alejandro Celaya
|
a8611f5d80
|
Support loading env vars from secret files
|
2024-02-10 09:54:59 +01:00 |
|
Alejandro Celaya
|
e014cfa72a
|
Remove dependency on league/uri
|
2024-02-05 23:05:31 +01:00 |
|
Alejandro Celaya
|
aa242eba25
|
Remove League\Uri from ShortUrlRedirectionBuilder
|
2024-02-05 22:13:59 +01:00 |
|
Alejandro Celaya
|
0f894dcdfe
|
Replace request-id middleware dependency with userland code
|
2024-02-04 14:16:42 +01:00 |
|
Alejandro Celaya
|
377861c5f1
|
Move migrations to module/Core
|
2024-01-02 17:55:23 +01:00 |
|
Alejandro Celaya
|
e12bda3f42
|
Add API test to verify QR codes return a 404 for disabled short URLs
|
2023-12-24 10:37:09 +01:00 |
|
Alejandro Celaya
|
8d1776af98
|
Test error when short URLs cannot be resolved
|
2023-12-24 10:25:58 +01:00 |
|
Alejandro Celaya
|
c597738915
|
Test how URLs are resolved in QrCodeAction
|
2023-12-24 10:13:19 +01:00 |
|
Alejandro Celaya
|
06306aabd5
|
Allow QR codes to be generated for disabled short URLs
|
2023-12-22 13:29:22 +01:00 |
|
Alejandro Celaya
|
1b14bb07b1
|
Fix error when importing short URLs while using Postgres
|
2023-12-16 20:22:39 +01:00 |
|
Alejandro Celaya
|
1854cc2f19
|
Remove last references to functional-php
|
2023-11-30 18:39:27 +01:00 |
|
Alejandro Celaya
|
bff4bd12ae
|
Removed more functional-php usages
|
2023-11-30 14:34:44 +01:00 |
|
Alejandro Celaya
|
549c6605f0
|
Replaced usage of Functional\contians
|
2023-11-30 09:13:29 +01:00 |
|
Alejandro Celaya
|
f50263d2d9
|
Remove usage of Functional\map function
|
2023-11-29 12:34:13 +01:00 |
|
Alejandro Celaya
|
17e0c9176e
|
Add support for SSL on Redis and RabbitMQ connections
|
2023-11-25 13:04:30 +01:00 |
|
Alejandro Celaya
|
df57ca5edb
|
Allow redis credentials be URL-decoded before passing them to connection
|
2023-11-23 11:22:23 +01:00 |
|
Alejandro Celaya
|
a3554eaf74
|
Print a warning when manually running visit:download-db with no license
|
2023-11-23 09:31:02 +01:00 |
|
Alejandro Celaya
|
e783bdc456
|
Set referrer when sending visits to Matomo
|
2023-11-21 10:01:27 +01:00 |
|
Alejandro Celaya
|
316b88cea6
|
Add 10 second timeout to matomo requests
|
2023-11-21 08:34:37 +01:00 |
|
Alejandro Celaya
|
c03eea789c
|
Fix LocateVisitTest
|
2023-11-21 08:25:58 +01:00 |
|
Alejandro Celaya
|
bd5d3cb6fa
|
Create SendVisitToMatomoTest
|
2023-11-20 10:11:15 +01:00 |
|
Alejandro Celaya
|
e1f2dcc136
|
Create MatomoTrackerBuilderTest
|
2023-11-17 23:31:23 +01:00 |
|
Alejandro Celaya
|
a7ed14a1c9
|
Enhance EnableListenerCheckerTest with support for matomo listener
|
2023-11-16 09:24:52 +01:00 |
|
Alejandro Celaya
|
f88d57b2b6
|
Do not dispatch async job for matomo if disabled
|
2023-11-15 20:02:35 +01:00 |
|
Alejandro Celaya
|
9dbd15bc0c
|
Add logic to send visits to a matomo instance
|
2023-11-15 19:57:58 +01:00 |
|
Alejandro Celaya
|
0edb3e5c2c
|
Update to installer with support for matomo
|
2023-11-11 20:12:39 +01:00 |
|
Alejandro Celaya
|
b145d106b0
|
Add matomo env vars and config
|
2023-11-09 08:59:34 +01:00 |
|
Alejandro Celaya
|
cfc3d54122
|
Do not allow URL reserved characters in custom slugs
|
2023-11-05 10:30:40 +01:00 |
|
Alejandro Celaya
|
5bde273d59
|
Fix Rest's ConfigProvider test
|
2023-10-20 09:42:48 +02:00 |
|
Alejandro Celaya
|
55885b0f25
|
Do not log requests to the health endpoint
|
2023-10-20 09:33:29 +02:00 |
|
Alejandro Celaya
|
3bdc05fbc4
|
Fix CliTestUtils for PHPUnit 10.4
|
2023-10-07 10:56:04 +02:00 |
|
Alejandro Celaya
|
9d8ea0a4f6
|
Allow cache namespace to be customizable via env var
|
2023-10-06 09:19:55 +02:00 |
|
Alejandro Celaya
|
25b1138000
|
Fix merge conflicts
|
2023-09-23 09:06:38 +02:00 |
|
Alejandro Celaya
|
3d9b48c5fd
|
Create InitialApiKeyCommand cli test
|
2023-09-23 08:28:57 +02:00 |
|
Alejandro Celaya
|
ba4a66f772
|
Add InitialApiKeyCommand unit test
|
2023-09-23 08:16:22 +02:00 |
|
Alejandro Celaya
|
ec839183e8
|
Add unit test for ApiKeyService::createInitial
|
2023-09-23 08:01:10 +02:00 |
|
Alejandro Celaya
|
637d8334f4
|
New CLI command to create the initial API key idempotently
|
2023-09-21 09:47:21 +02:00 |
|
Alejandro Celaya
|
6db46b50e9
|
Roll back change to allow creating API keys with custom value
|
2023-09-21 08:58:05 +02:00 |
|
Alejandro Celaya
|
f6b1cc7556
|
Test API key creation with custom key
|
2023-09-19 10:14:04 +02:00 |
|
Alejandro Celaya
|
65a0a90a51
|
Allow custom API keys to be created
|
2023-09-19 09:10:17 +02:00 |
|
Alejandro Celaya
|
b17c576a30
|
Fix incorrect timeout in init commands
|
2023-09-11 09:07:18 +02:00 |
|
Alejandro Celaya
|
b747b8448e
|
Update dependencies
|
2023-08-19 12:03:29 +02:00 |
|
Alejandro Celaya
|
965325aa7c
|
Replace traits with static classes in CLI unit tests
|
2023-06-18 10:51:59 +02:00 |
|
Alejandro Celaya
|
bdf2bbd0f1
|
Replace traits with external data providers in Core unit tests
|
2023-06-18 10:41:24 +02:00 |
|
Alejandro Celaya
|
dc4aab2cab
|
Replace traits with external data providers in API tests
|
2023-06-18 10:36:45 +02:00 |
|
Alejandro Celaya
|
cdf5082cff
|
Fix incorrect timeout in init commands
|
2023-06-15 18:53:42 +02:00 |
|
Alejandro Celaya
|
f63b96fd05
|
Fix merge conflicts
|
2023-06-14 18:25:09 +02:00 |
|
Alejandro Celaya
|
a21dcb852a
|
Fix Shlink trying to create SQLite database tables even if they already exist
|
2023-06-14 18:08:39 +02:00 |
|
Alejandro Celaya
|
8e3508f28d
|
Use MercureOptions instead of raw config, where possible
|
2023-06-06 20:25:14 +02:00 |
|
Alejandro Celaya
|
72381f9844
|
Change order to create initial database to avoid permission errors
|
2023-06-04 08:54:08 +02:00 |
|
Alejandro Celaya
|
bd3745118e
|
Add logic to prevent roadrunner/openswoole jobs for tasks that will do nothing
|
2023-06-03 17:56:52 +02:00 |
|
Alejandro Celaya
|
4013ae87dd
|
Change order to create initial database to avoid permission errors
|
2023-06-01 19:27:04 +02:00 |
|
Alejandro Celaya
|
8c94452348
|
Fix CLI tests
|
2023-05-31 09:33:05 +02:00 |
|
Alejandro Celaya
|
be26dd58c3
|
Add API tests to cover usage of orphan visits restricted keys
|
2023-05-31 09:22:40 +02:00 |
|
Alejandro Celaya
|
eaba5edf7f
|
Restrict interaction with orphan visits when API key has that role
|
2023-05-31 09:11:20 +02:00 |
|
Alejandro Celaya
|
12da04ef37
|
Add ApiKey check to tell if it has any role that is short-url restrictive
|
2023-05-30 09:32:44 +02:00 |
|
Alejandro Celaya
|
8b03532ddb
|
Add ORPHAN_VISITS_EXCLUDED API key role
|
2023-05-30 09:15:35 +02:00 |
|
Alejandro Celaya
|
ee6a8ede0a
|
Drop support for PHP 8.1
|
2023-05-29 09:43:12 +02:00 |
|
Alejandro Celaya
|
e85d59c5a4
|
Add locks when creating short URL dependencies, to avoid race condition
|
2023-05-21 18:08:17 +02:00 |
|
Alejandro Celaya
|
618784dc3b
|
Create command to delete all orphan visits
|
2023-05-18 09:35:42 +02:00 |
|
Alejandro Celaya
|
9d64d4ed1d
|
Create abstract base class for commands deleting visits
|
2023-05-18 09:33:15 +02:00 |
|
Alejandro Celaya
|
7f02243c6c
|
Rename short-url:delete-visits to short-url:visits-delete for consistency with other commands
|
2023-05-18 09:19:01 +02:00 |
|
Alejandro Celaya
|
3916c68126
|
Add DeleteOrphanVisitsTest API test
|
2023-05-18 09:09:44 +02:00 |
|
Alejandro Celaya
|
bdfb220126
|
Create REST action to delete orphan visits
|
2023-05-18 09:04:28 +02:00 |
|
Alejandro Celaya
|
abcf2f86be
|
Create service to delete orphan visits
|
2023-05-18 09:01:57 +02:00 |
|
Alejandro Celaya
|
a4d8ebdfc9
|
Create DB logic to delete orphan visits
|
2023-05-18 08:58:07 +02:00 |
|