Releases: shlinkio/shlink
v3.1.0
Changed
- #1359 Hidden database commands.
- #1385 Prevented a big error message from being logged when using Shlink without mercure.
- #1398 Increased required mutation score for unit tests to 85%.
- #1419 Input dates are now parsed to Shlink's configured timezone or default timezone before using them for database queries.
- #1428 Updated native dependencies in docker image and base image to PHP v8.1.5.
Added
-
#1294 Allowed to provide a specific domain when importing URLs from YOURLS.
-
#1416 Added support to import URLs from Kutt.it.
-
#1418 Added support to customize the timezone used by Shlink, falling back to the default one set in PHP config.
The timezone can be set via the
TIMEZONE
env var, or using the installer tool. -
#1309 Improved URL importing, ensuring individual errors do not make the whole process fail, and instead, failing URLs are skipped.
-
#1162 Added new endpoint to get visits by domain.
The endpoint is
GET /domains/{domain}/visits
, and it has the same capabilities as any other visits endpoint, allowing pagination and filtering.
Removed
- Nothing
Fixed
- #1397 Fixed
db:create
command always reporting the schema exists if thedb:migrate
command has been run before by mistake. - #1402 Fixed the base path getting appended with the default domain by mistake, causing multiple side effects in several places.
Deprecated
- #1340 Deprecated webhooks. New events will only be added to other real-time updates approaches, and webhooks will be completely removed in Shlink 4.0.0.
v3.0.3
v3.0.2
v3.0.1
v3.0.0
Added
-
#767 Added full support to use emojis everywhere, whether it is custom slugs, titles, referrers, etc.
-
#1274 Added support to filter short URLs lists by all provided tags.
The
GET /short-urls
endpoint now accepts atagsMode=all
param which will make only short URLs matching all the tags in thetags[]
query param, to be returned.The
short-urls:list
command now accepts a-i
/--including-all-tags
flag which behaves the same. -
#1273 Added support for pagination in tags lists, allowing to improve performance by loading subsets of tags.
For backwards compatibility, lists continue returning all items by default, but the
GET /tags
endpoint now supportspage
anditemsPerPage
query params, to make sure only a subset of the tags is returned.This is supported both when invoking the endpoint with and without
withStats=true
query param.Additionally, the endpoint also supports filtering by
searchTerm
query param. When provided, only tags matching it will be returned. -
#1063 Added new endpoint that allows fetching all existing non-orphan visits, in case you need a global view of all visits received by your Shlink instance.
This can be achieved using the
GET /visits/non-orphan
endpoint.
Changed
- #1277 Reduced docker image size to 45% of the original size.
- #1268 Updated dependencies, including symfony/console 6 and mezzio/mezzio-swoole 4.
- #1283 Changed behavior of
DELETE_SHORT_URL_THRESHOLD
env var, disabling the feature if a value was not provided. - #1300 Changed default ordering for short URLs list, returning always from newest to oldest.
- #1299 Updated to the latest base docker images, based in PHP 8.1.1, and bumped openswoole to v4.9.1.
- #1282 Env vars now have precedence over installer options.
- #1328 Refactored ShortUrlsRepository to use DTOs in methods with too many arguments.
Deprecated
- #1315 Deprecated
GET /tags?withStats=true
endpoint. UseGET /tags/stats
instead.
Removed
-
#1275 Removed everything that was deprecated in Shlink 2.x.
See UPGRADE doc in order to get details on how to migrate to this version.
-
#1347 Dropped support for regular swoole in favor of openswoole.
Since openswoole support was introduced in the previous release version, Shlink will still consider the swoole extension as openswoole, as at the moment, functionality hasn't deviated too much, and will simplify migrating to Shlink 3.0.0
However, there's no longer active testing with regular swoole, and it is considered no longer supported. If some incompatibility arises, the only supported solution will be to migrate to openswoole.
Fixed
- Nothing
v2.10.3
v2.10.2
Changed
- Nothing
Added
- Nothing
Removed
- Nothing
Fixed
- #1293 Fixed error when trying to create/import short URLs with a too long title.
- #1306 Ensured remote IP address is not logged when using swoole/openswoole.
- #1308 Fixed memory leak when using redis due to the amount of non-expiring keys created by doctrine. Now they have a 24h expiration by default.
Deprecated
- Nothing
v2.10.1
v2.10.0
Changed
- #844 Added mutation checks to API tests.
- #1218 Updated to symfony/mercure 0.6.
- #1223 Updated to phpstan 1.0.
- #1258 Updated to Symfony 6 components, except symfony/console.
- Added
domain
field toDeleteShortUrlException
exception.
Added
-
#1163 Allowed setting not-found redirects for default domain in the same way it's done for any other domain.
This implies a few non-breaking changes:
- The domains list no longer has the values of
INVALID_SHORT_URL_REDIRECT_TO
,REGULAR_404_REDIRECT_TO
andBASE_URL_REDIRECT_TO
on the default domain redirects. - The
GET /domains
endpoint includes a newdefaultRedirects
property in the response, with the default redirects set via config or env vars. - The
INVALID_SHORT_URL_REDIRECT_TO
,REGULAR_404_REDIRECT_TO
andBASE_URL_REDIRECT_TO
env vars are now deprecated, and should be replaced byDEFAULT_INVALID_SHORT_URL_REDIRECT
,DEFAULT_REGULAR_404_REDIRECT
andDEFAULT_BASE_URL_REDIRECT
respectively. Deprecated ones will continue to work until v3.0.0, where they will be removed.
- The domains list no longer has the values of
-
#868 Added support to publish real-time updates in a RabbitMQ server.
Shlink will create new exchanges and queues for every topic documented in the Async API spec, meaning, you will have one queue for orphan visits, one for regular visits, and one queue for every short URL with its visits.
The RabbitMQ server config can be provided via installer config options, or via environment variables.
-
#1204 Added support for
openswoole
and migrated official docker image toopenswoole
. -
#1242 Added support to import urls and visits from YOURLS.
In order to do it, you need to first install this dedicated plugin in YOURLS, and then run the
short-url:import yourls
command, as with any other source. -
#1235 Added support to disable rounding QR codes block sizing via config option, env var or query param.
-
#1188 Added support for PHP 8.1.
The official docker image has also been updated to use PHP 8.1 by default.
Removed
- Nothing
Fixed
- #1206 Fixed debugging of the docker image, so that it does not run the commands with
-q
when theSHELL_VERBOSITY
env var has been provided. - #1254 Fixed examples in swagger docs.
Deprecated
-
#1260 Deprecated
USE_HTTPS
env var that was added in previous release, in favor of the newIS_HTTPS_ENABLED
.The old one proved to be confusing and misleading, making people think it was used to actually enable HTTPS transparently, instead of its actual purpose, which is just telling Shlink it is being served with HTTPS.