Skip to content

Releases: shlinkio/shlink

v3.0.1

04 Feb 16:58
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1363 Fixed titles being resolved no matter what when validateUrl is not set or is explicitly set to true.
  • #1352 Updated to stable pdo_sqlsrv in docker image.

Deprecated

  • Nothing

v3.0.0

28 Jan 15:40
a9d0472
Compare
Choose a tag to compare

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 a tagsMode=all param which will make only short URLs matching all the tags in the tags[] 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 supports page and itemsPerPage 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. Use GET /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

23 Jan 17:38
356b33c
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1349 Fixed memory leak in cache implementation.

Deprecated

  • Nothing

v2.10.2

07 Jan 20:57
470c62d
Compare
Choose a tag to compare

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

21 Dec 13:50
30207ce
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1285 Fixed error caused by database connections expiring after some hours of inactivity.
  • #1286 Fixed x-request-id header not being generated during non-rest requests.

Deprecated

  • Nothing

v2.10.0

12 Dec 16:43
Compare
Choose a tag to compare

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 to DeleteShortUrlException 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 and BASE_URL_REDIRECT_TO on the default domain redirects.
    • The GET /domains endpoint includes a new defaultRedirects property in the response, with the default redirects set via config or env vars.
    • The INVALID_SHORT_URL_REDIRECT_TO, REGULAR_404_REDIRECT_TO and BASE_URL_REDIRECT_TO env vars are now deprecated, and should be replaced by DEFAULT_INVALID_SHORT_URL_REDIRECT, DEFAULT_REGULAR_404_REDIRECT and DEFAULT_BASE_URL_REDIRECT respectively. Deprecated ones will continue to work until v3.0.0, where they will be removed.
  • #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 to openswoole.

  • #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 the SHELL_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 new IS_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.

v2.9.3

15 Nov 18:58
4a3fa85
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1232 Solved potential SQL injection by enforcing doctrine/dbal 3.1.4.

Deprecated

  • Nothing

v2.9.2

23 Oct 15:00
dc8f5d0
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1210 Fixed real time updates not being notified due to an incorrect handling of db transactions on multi-process tasks.
  • #1211 Fixed There is no active transaction error when running migrations in MySQL/Mariadb after updating to doctrine-migrations 3.3.
  • #1197 Fixed amount of task workers provided via config option or env var not being validated to ensure enough workers to process all parallel tasks.

Deprecated

  • Nothing

v2.9.1

11 Oct 07:13
6f62d62
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #1201 Fixed crash when using the new USE_HTTPS, as it's boolean raw value was being used instead of resolving "https" or "http".

v2.9.0

10 Oct 20:53
750e6cf
Compare
Choose a tag to compare

Added

  • #1015 Shlink now accepts configuration via env vars even when not using docker.

    The config generated with the installing tool still has precedence over the env vars, so it cannot be combined. Either you use the tool, or use env vars.

  • #1149 Allowed to set custom defaults for the QR codes.

  • #1112 Added new option to define if the query string should be forwarded on a per-short URL basis.

    The new forwardQuery=true|false param can be provided during short URL creation or edition, via REST API or CLI command, allowing to override the default behavior which makes the query string to always be forwarded.

  • #1105 Added support to define placeholders on not-found redirects, so that the redirected URL receives the originally visited path and/or domain.

    Currently, {DOMAIN} and {ORIGINAL_PATH} placeholders are supported, and they can be used both in the redirected URL's path or query.

    When they are used in the query, the values are URL encoded.

  • #1119 Added support to provide redis sentinel when using redis cache.

  • #1016 Added new option to send orphan visits to webhooks, via NOTIFY_ORPHAN_VISITS_TO_WEBHOOKS env var or installer tool.

    The option is disabled by default, as the payload is backwards incompatible. You will need to adapt your webhooks to treat the shortUrl property as optional before enabling this option.

  • #1104 Added ability to disable tracking based on IP addresses.

    IP addresses can be provided in the form of fixed addresses, CIDR blocks, or wildcard patterns (192.168..).

Changed

  • #1142 Replaced doctrine/cache package with symfony/cache.
  • #1157 All routes now support CORS, not only rest ones.
  • #1144 Added experimental builds under PHP 8.1.

Deprecated

  • #1164 Deprecated SHORT_DOMAIN_HOST and SHORT_DOMAIN_SCHEMA env vars. Use DEFAULT_DOMAIN and USE_HTTPS=true|false instead.

Removed

  • Nothing

Fixed

  • #1165 Fixed warning displayed when trying to locate visits and there are none pending.
  • #1172 Removed unneeded explicitly defined volumes in docker image.