Skip to content

Releases: shlinkio/shlink

v4.4.6

20 Mar 08:25
c264939
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2391 When sending visits to Matomo, send the country code, not the country name.
  • Fix error with new option introduced by endroid/qr-code 6.0.4.

Deprecated

  • Nothing

v4.4.5

01 Mar 08:43
6991138
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2373 Ensure deprecation warnings do not end up escalated to ErrorExceptions by ProblemDetailsMiddleware.

    In order to do this, Shlink will entirely ignore deprecation warnings when running in production, as those do not mean something is not working, but only that something will break in future versions.

Deprecated

  • Nothing

v4.4.4

19 Feb 18:41
104b1e7
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2366 Fix error "Cannot use 'SCRIPT' with redis-cluster" thrown when creating a lock while using a redis cluster.
  • #2368 Fix error when listing non-orphan visits using API key with AUTHORED_SHORT_URLS role.

Deprecated

  • Nothing

v4.4.3

15 Feb 10:29
bee9f2a
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2351 Fix visitor IP address resolution when Shlink is served behind more than one reverse proxy.

    This regression was introduced due to a change in behavior in akrabat/rka-ip-address-middleware, that now picks the first address from the right after excluding all trusted proxies.

    Since Shlink does not set trusted proxies, this means the first IP from the right is now picked instead of the first from the left, so we now reverse the list before trying to resolve the IP.

    In the future, Shlink will allow you to define trusted proxies, to avoid other potential side effects because of this reversing of the list.

  • #2354 Fix error "NOSCRIPT No matching script. Please use EVAL" thrown when creating a lock in redis.

  • #2319 Fix unique index for short_code and domain_id in short_urls table not being used in Microsoft SQL engines for rows where domain_id is null.

Deprecated

  • Nothing

v4.4.2

29 Jan 11:10
888dc84
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2346 Get back docker images for ARM architectures.

Deprecated

  • Nothing

v4.4.1

28 Jan 14:55
3ba7ad3
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • #2331 Add ADDRESS env var which allows to customize the IP address to which RoadRunner binds, when using the official docker image.

Removed

  • Nothing

Fixed

  • #2341 Ensure all asynchronous jobs that interact with the database do not leave idle connections open.
  • #2334 Improve how page titles are encoded to UTF-8, falling back from mbstring to iconv if available, and ultimately using the original title in case of error, but never causing the short URL creation to fail.

Deprecated

  • Nothing

v4.4.0

27 Dec 15:33
0a67f71
Compare
Choose a tag to compare

Added

  • #2265 Add a new REDIRECT_EXTRA_PATH_MODE option that accepts three values:

    • default: Short URLs only match if the path matches their short code or custom slug.
    • append: Short URLs are matched as soon as the path starts with the short code or custom slug, and the extra path is appended to the long URL before redirecting.
    • ignore: Short URLs are matched as soon as the path starts with the short code or custom slug, and the extra path is ignored.

    This option effectively replaces the old REDIRECT_APPEND_EXTRA_PATH option, which is now deprecated and will be removed in Shlink 5.0.0

  • #2156 Be less restrictive on what characters are disallowed in custom slugs.

    All URI-reserved characters were disallowed up until now, but from now on, only the gen-delimiters are.

  • #2229 Add logo=disabled query param to dynamically disable the default logo on QR codes.

  • #2206 Add new DB_USE_ENCRYPTION config option to enable SSL database connections trusting any server certificate.

  • #2209 Redirect rules are now imported when importing short URLs from a Shlink >=4.0 instance.

Changed

  • #2281 Update docker image to PHP 8.4

  • #2124 Improve how Shlink decides if a GeoLite db file needs to be downloaded, and reduces the chances for API limits to be reached.

    Now Shlink tracks all download attempts, and knows which of them failed and succeeded. This lets it know when was the last error or success, how many consecutive errors have happened, etc.

    It also tracks now the reason for a download to be attempted, and the error that happened when one fails.

Deprecated

  • Nothing

Removed

  • #2247 Drop support for PHP 8.2

Fixed

  • Nothing

v4.3.1

25 Nov 22:51
8d4f2bb
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #2285 Fix performance degradation when using Microsoft SQL due to incorrect order of columns in unique_short_code_plus_domain index.

v4.3.0

24 Nov 13:35
6428903
Compare
Choose a tag to compare

Changed

  • #2193 API keys are now hashed using SHA256, instead of being saved in plain text.

    As a side effect, API key names have now become more important, and are considered unique.

    When people update to this Shlink version, existing API keys will be hashed for everything to continue working.

    In order to avoid data to be lost, plain-text keys will be written in the name field, either together with any existing name, or as the name itself. Then users are responsible for renaming them using the new api-key:rename command.

    For newly created API keys, it is recommended to provide a name, but if not provided, a name will be generated from a redacted version of the new API key.

  • Update to Shlink PHP coding standard 2.4

  • Update to hidehalo/nanoid-php 2.0

  • Update to PHPStan 2.0

Added

  • #2159 Add support for PHP 8.4.

  • #2207 Add hasRedirectRules flag to short URL API model. This flag tells if a specific short URL has any redirect rules attached to it.

  • #1520 Allow short URLs list to be filtered by domain.

    This change applies both to the GET /short-urls endpoint, via the domain query parameter, and the short-url:list console command, via the --domain|-d flag.

  • #1774 Add new geolocation redirect rules for the dynamic redirects system.

    • geolocation-country-code: Allows to perform redirections based on the ISO 3166-1 alpha-2 two-letter country code resolved while geolocating the visitor.
    • geolocation-city-name: Allows to perform redirections based on the city name resolved while geolocating the visitor.
  • #2032 Save the URL to which a visitor is redirected when a visit is tracked.

    The value is exposed in the API as a new redirectUrl field for visit objects.

    This is useful to know where a visitor was redirected for a short URL with dynamic redirect rules, for special redirects, or simply in case the long URL was changed over time, and you still want to know where visitors were redirected originally.

    Some visits may not have a redirect URL if a redirect didn't happen, like for orphan visits when no special redirects are configured, or when a visit is tracked as part of the pixel action.

Removed

  • Nothing

Fixed

  • #2264 Fix visits counts not being deleted when deleting short URL or orphan visits.

Deprecated

  • Nothing

v4.2.5

03 Nov 10:37
228bf09
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2244 Fix integration with Redis 7.4 and Valkey.

Deprecated

  • Nothing