Skip to content

Releases: shlinkio/shlink

v4.0.1

08 Mar 07:59
a4e9c2f
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2041 Document missing color and bgColor params for the QR code route in the OAS docs.
  • #2043 Fix language redirect conditions matching too low quality accepted languages.

Deprecated

  • Nothing

v4.0.0

03 Mar 18:25
92b5a52
Compare
Choose a tag to compare

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 via type=... query param, and by the visit: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

04 Jan 13:11
361d987
Compare
Choose a tag to compare

Changed

  • #1968 Move migrations from data to module/Core.

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1967 Allow an empty dir to be mounted in data when using the docker image.

Deprecated

  • Nothing

v3.7.3-beta.1

04 Jan 07:47
f9c9b3d
Compare
Choose a tag to compare
v3.7.3-beta.1 Pre-release
Pre-release
v3.7.3-beta.1

v3.7.2

26 Dec 15:27
26c2aaf
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1960 Allow QR codes to be optionally resolved even when corresponding short URL is not enabled.

Deprecated

  • Nothing

v3.7.1

17 Dec 19:10
a63075e
Compare
Choose a tag to compare

Changed

  • Remove dependency on functional-php library
  • #1939 Fine-tune RoadRunner logs to avoid too many useless info.

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1947 Fix error when importing short URLs while using Postgres.

Deprecated

  • Nothing

v3.7.0-beta.1

25 Nov 17:15
479a331
Compare
Choose a tag to compare
v3.7.0-beta.1

v3.7.0

25 Nov 19:27
c80ec54
Compare
Choose a tag to compare

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 or rediss, 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

23 Sep 07:03
4cf3bc0
Compare
Choose a tag to compare

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 using INITIAL_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

v3.6.3

14 Jun 16:31
228bd83
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #1817 Fix Shlink trying to create SQLite database tables even if they already exist.

Deprecated

  • Nothing