Releases: shlinkio/shlink
v4.0.1
v4.0.0
Changed
- #1935 Replace dependency on abandoned
php-middleware/request-id
with userland simple middleware. - #1988 Remove dependency on
league\uri
package. - #1909 Update docker image to PHP 8.3.
- #1786 Run API tests with RoadRunner by default.
- #2008 Update to Doctrine ORM 3.0.
- #2010 Update to Symfony 7.0 components.
- #2016 Simplify and improve how code coverage is generated in API and CLI tests.
- #1674 Database columns persisting long URLs have now
TEXT
type, which allows for much longer values.
Added
-
#1914 Add new dynamic redirects engine based on rules. Rules are conditions checked against the visitor's request, and when matching, they can result in a redirect to a different long URL.
Rules can be based on things like the presence of specific params, headers, locations, etc. This version ships with three initial rule condition types: device, query param and language.
-
#1902 Add dynamic redirects based on query parameters.
This is implemented on top of the new rule-based redirects.
-
#1915 Add dynamic redirects based on accept language.
This is implemented on top of the new rule-based redirects.
-
#1868 Add support for docker compose secrets to the docker image.
-
#1979 Allow orphan visits lists to be filtered by type.
This is supported both by the
GET /visits/orphan
API endpoint viatype=...
query param, and by thevisit:orphan
CLI command, via--type
flag. -
#1904 Allow to customize QR codes foreground color, background color and logo.
-
#1884 Allow a path prefix to be provided during short URL creation.
This can be useful to let Shlink generate partially random URLs, but with a known prefix.
Path prefixes are validated and filtered taking multi-segment slugs into consideration, which means slashes are replaced with dashes as long as multi-segment slugs are disabled.
Removed
- #1908 Remove support for openswoole (and swoole).
Fixed
- #2000 Fix short URL creation/edition getting stuck when trying to resolve the title of a long URL which never returns a response.
Deprecated
- Nothing
v3.7.3
v3.7.3-beta.1
v3.7.3-beta.1
v3.7.2
v3.7.1
v3.7.0-beta.1
v3.7.0-beta.1
v3.7.0
Changed
-
#1799 RoadRunner/openswoole jobs are not run anymore for tasks that are actually disabled.
For example, if you did not enable RabbitMQ real-time updates, instead of triggering a job that ends immediately, the job will not even be enqueued.
-
#1835 Docker image is now built only when a release is tagged, and new tags are included, for minor and major versions.
-
#1055 Update OAS definition to v3.1.
-
#1885 Update to chronos 3.0.
-
#1896 Requests to health endpoint are no longer logged.
-
#1877 Print a warning when manually running
visit:download-db
command and a GeoLite2 license was not provided.
Added
-
#1798 Experimental support to send visits to an external Matomo instance.
-
#1780 Add new
NO_ORPHAN_VISITS
API key role.Keys with this role will always get
0
when fetching orphan visits.When trying to delete orphan visits the result will also be
0
and no visits will actually get deleted. -
#1879 Cache namespace can now be customized via config option or
CACHE_NAMESPACE
env var.This is important if you are running multiple Shlink instance on the same server, or they share the same Redis instance (even more so if they are on different versions).
-
#1905 Add support for PHP 8.3.
-
#1927 Allow redis credentials be URL-decoded before passing them to connection.
-
#1834 Add support for redis encrypted connections using SSL/TLS.
Encryption should work out of the box if servers schema is set tp
tls
orrediss
, including support for self-signed certificates.This has been tested with AWS ElasticCache using in-transit encryption, and with Digital Ocean Redis database.
-
#1906 Add support for RabbitMQ encrypted connections using SSL/TLS.
In order to enable SLL, you need to pass
RABBITMQ_USE_SSL=true
or the corresponding config option.Connections using self-signed certificates should work out of the box.
This has been tested with AWS RabbitMQ using in-transit encryption, and with CloudAMQP.
Removed
- #1790 Drop support for PHP 8.1.
Fixed
- #1819 Fix incorrect timeout when running DB commands during Shlink start-up.
- #1901 Do not allow short URLs with custom slugs containing URL-reserved characters, as they will not work at all afterward.
- #1900 Fix short URL visits deletion when multi-segment slugs are enabled.
Deprecated
- #1783 Deprecated support for openswoole. RoadRunner is the best replacement, with the same capabilities, but much easier and convenient to install and manage.
v3.6.4
Changed
-
#1866 The
INITIAL_API_KEY
env var is now only relevant for the official docker image.Going forward, new non-docker Shlink installations provisioned with env vars that also wish to provide an initial API key, should do it by using the
vendor/bin/shlink-installer init --initial-api-key=%SOME_KEY%
command, instead of usingINITIAL_API_KEY
.
Added
- Nothing
Removed
- Nothing
Fixed
- #1819 Fix incorrect timeout when running DB commands during Shlink start-up.
- #1870 Make sure shared locks include the cache prefix when using Redis.
- #1866 Fix error when starting docker image with
INITIAL_API_KEY
env var.
Deprecated
- Nothing