Skip to content

Releases: shlinkio/shlink

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

v4.2.4

27 Oct 07:49
02e48ae
Compare
Choose a tag to compare

Changed

  • #2231 Update to endroid/qr-code 6.0.
  • #2221 Switch to env vars to handle dev/local options.

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2232 Run RoadRunner in docker with exec to ensure signals are properly handled.

Deprecated

  • Nothing

v4.2.3

17 Oct 07:42
51de4b1
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2225 Fix regression introduced in v4.2.2, making config options with null value to be promoted as env vars with value '', instead of being skipped.

Deprecated

  • Nothing

v4.2.2

14 Oct 07:51
fa7969c
Compare
Choose a tag to compare

Changed

  • #2208 Explicitly promote installer config options as env vars, instead of as a side effect of loading the app config.

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2213 Fix spaces being replaced with underscores in query parameter names, when forwarded from short URL to long URL.
  • #2217 Fix docker image tag suffix being leaked to the version set inside Shlink, producing invalid SemVer version patterns.
  • #2212 Fix env vars read in docker entry point not properly falling back to their _FILE suffixed counterpart.

Deprecated

  • Nothing

v4.2.1

04 Oct 10:54
6b15cd6
Compare
Choose a tag to compare

Changed

  • Nothing

Added

  • #2183 Redis database index to be used can now be specified in the connection URI path, and Shlink will honor it.

Removed

  • Nothing

Fixed

  • #2201 Fix MEMORY_LIMIT option being ignored when provided via installer options.

Deprecated

  • Nothing

v4.2.0

11 Aug 16:34
620cd92
Compare
Choose a tag to compare

Changed

  • #2096 Update to RoadRunner 2024.

Added

  • #2120 Add new IP address condition for the dynamic rules redirections system.

    The conditions allow you to define IP addresses to match as static IP (1.2.3.4), CIDR block (192.168.1.0/24) or wildcard pattern (1.2.*.*).

  • #2018 Add option to allow all short URLs to be unconditionally crawlable in robots.txt, via ROBOTS_ALLOW_ALL_SHORT_URLS=true env var, or config option.

  • #2109 Add option to customize user agents robots.txt, via ROBOTS_USER_AGENTS=foo,bar,baz env var, or config option.

  • #2163 Add short-urls:edit command to edit existing short URLs.

    This brings CLI and API interfaces capabilities closer, and solves an overlook since the feature was implemented years ago.

  • #2164 Add missing --title option to short-url:create and short-url:edit commands.

Removed

  • Nothing

Fixed

  • Nothing

Deprecated

  • Nothing

v4.1.1

23 May 07:23
b2dabf0
Compare
Choose a tag to compare

Changed

  • Use new reusable workflow to publish docker image
  • #2015 Update to PHPUnit 11.
  • #2130 Replace deprecated pugx/shortid-php package with hidehalo/nanoid-php.

Added

  • Nothing

Removed

  • Nothing

Fixed

  • #2111 Fix typo in OAS docs examples where redirect rules with query-param condition type were defined as query.
  • #2129 Fix error when resolving title for sites not using UTF-8 charset (detected with Japanese charsets).

Deprecated

  • Nothing

v4.1.0

14 Apr 07:14
35508e2
Compare
Choose a tag to compare

Changed

  • #2034 Modernize entities, using constructor property promotion and readonly wherever possible.

  • #2036 Deep performance improvement in some endpoints which involve counting visits:

    • listing short URLs ordered by visits counts.
    • loading tags with stats.
    • visits overview.

    This has been achieved by introducing a new table which tracks slotted visits counts. We can then SUM all counts for certain short URL, avoiding COUNT(visits) aggregates which are much less performant when there are a lot of visits.

  • #2049 Request ID is now propagated to the background tasks/jobs scheduled during a request.

    This allows for a better traceability, as the logs generated during those jobs will have a matching UUID as the logs generated during the request the triggered the job.

Added

  • #1330 All visit-related endpoints now expose the visitedUrl prop for any visit.

    Previously, this was exposed only for orphan visits, since this can be an arbitrary value for those.

  • #2077 When sending visits to Matomo, the short URL title is now used as document title in matomo.

  • #2059 Add new short-url:delete-expired command that can be used to programmatically delete expired short URLs.

    Expired short URLs are those that have a validUntil date in the past, or optionally, that have reached the max amount of visits.

    This command can be run periodically by those who create many disposable URLs which are valid only for a period of time, and then can be deleted to save space.

  • #1925 Add new integration:matomo:send-visits console command that can be used to send existing visits to integrated Matomo instance.

  • #2087 Allow memory_limit to be configured via the new MEMORY_LIMIT env var or configuration option.

Removed

  • Nothing

Fixed

  • #2095 Fix custom slugs not being properly imported from bitly
  • Fix error when importing short URLs and visits from a Shlink 4.x instance

Deprecated

  • Nothing