Skip to content

Releases: shlinkio/shlink

v2.6.1

22 Feb 21:23
51e1c7c
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • #1026 Removed non-inclusive terms from source code.

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #1024 Fixed migration that is incorrectly skipped due to the wrong condition being used to check it.
  • #1031 Fixed shortening of twitter URLs with URL validation enabled.
  • #1034 Fixed warning displayed when shlink is stopped while running it with swoole.

v2.6.0

13 Feb 17:08
3d99fc1
Compare
Choose a tag to compare

Added

  • #856 Added PHP 8.0 support.

  • #941 Added support to provide a title for every short URL.

    The title can also be automatically resolved from the long URL, when no title was explicitly provided, but this option needs to be opted in.

  • #913 Added support to import short URLs from a standard CSV file.

    The file requires the Long URL and Short code columns, and it also accepts the optional title, domain and tags columns.

  • #1000 Added support to provide a margin query param when generating some URL's QR code.

  • #675 Added ability to track visits to the base URL, invalid short URLs or any other "not found" URL, as known as orphan visits.

    This behavior is enabled by default, but you can opt out via env vars or config options.

    This new orphan visits can be consumed in these ways:

    • The https://shlink.io/new-orphan-visit mercure topic, which gets notified when an orphan visit occurs.
    • The GET /visits/orphan REST endpoint, which behaves like the short URL visits and tags visits endpoints, but returns only orphan visits.

Changed

  • #977 Migrated from laminas/laminas-paginator to pagerfanta/core to handle pagination.

  • #986 Updated official docker image to use PHP 8.

  • #1010 Increased timeout for database commands to 10 minutes.

  • #874 Changed how dist files are generated. Now there will be two for every supported PHP version, with and without support for swoole.

    The dist files will have been built under the same PHP version they are meant to be run under, ensuring resolved dependencies are the proper ones.

Deprecated

  • #959 Deprecated all command flags using camelCase format (like --expirationDate), adding kebab-case replacements for all of them (like --expiration-date).

    All the existing camelCase flags will continue working for now, but will be removed in Shlink 3.0.0

  • #862 Deprecated the endpoint to edit tags for a short URL (PUT /short-urls/{shortCode}/tags).

    The short URL edition endpoint (PATCH /short-urls/{shortCode}) now supports setting the tags too. Use it instead.

Removed

  • Nothing

Fixed

  • #988 Fixed serving zero-byte static files in apache and apache-compatible web servers.
  • #990 Fixed short URLs not properly composed in REST API endpoints when both custom domain and custom base path are used.
  • #1002 Fixed weird behavior in which GeoLite2 metadata's buildEpoch is parsed as string instead of int.
  • #851 Fixed error when trying to schedule swoole tasks in ARM architectures (like raspberry).

v2.5.2

24 Jan 13:22
f3c3979
Compare
Choose a tag to compare

Added

  • #965 Added docs section for Architectural Decision Records, including the one for API key roles.

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #979 Added missing itemsPerPage query param to swagger docs for short RULs list.
  • #980 Fixed value used for Access-Control-Allow-Origin, that could not work as expected when including an IP address.
  • #947 Fixed incorrect value returned in Access-Control-Allow-Methods header, which always contained all methods.

v2.5.1

21 Jan 19:15
f57303f
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #968 Fixed index error in MariaDB while updating to v2.5.0.
  • #972 Fixed 500 error when calling single-step short URL creation endpoint.

v2.5.0

17 Jan 19:19
60cdd8b
Compare
Choose a tag to compare

Added

  • #795 and #882 Added new roles system to API keys.

    API keys can have any combinations of these two roles now, allowing to limit their interactions:

    • Can interact only with short URLs created with that API key.
    • Can interact only with short URLs for a specific domain.
  • #833 Added support to connect through unix socket when using an external MySQL, MariaDB or Postgres database.

    It can be provided during the installation, or as the DB_UNIX_SOCKET env var for the docker image.

  • #869 Added support for Mercure Hub 0.10.

  • #896 Added support for unicode characters in custom slugs.

  • #930 Added new bin/set-option script that allows changing individual configuration options on existing shlink instances.

  • #877 Improved API tests on CORS, and "refined" middleware handling it.

Changed

  • #912 Changed error templates to be plain html files, removing the dependency on league/plates package.
  • #875 Updated to mezzio/mezzio-swoole v3.1.
  • #952 Simplified in-project docs, by keeping only the basics and linking to the websites docs for anything else.

Deprecated

  • #917 Deprecated /{shortCode}/qr-code/{size} URL, in favor of providing the size in the query instead, /{shortCode}/qr-code?size={size}.
  • #924 Deprecated mechanism to provide config options to the docker image through volumes. Use the env vars instead as a direct replacement.

Removed

  • Nothing

Fixed

  • Nothing

v2.5.0-alpha.2

11 Jan 19:42
da9e9df
Compare
Choose a tag to compare
v2.5.0-alpha.2 Pre-release
Pre-release
API key roles

v2.5.0-alpha.1

29 Nov 19:13
179ddc5
Compare
Choose a tag to compare
v2.5.0-alpha.1 Pre-release
Pre-release
Experimental DB sockets support

v2.4.2

22 Nov 10:04
d945c28
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #904 Explicitly added missing "Domains" and "Integrations" tags to swagger docs.
  • #901 Ensured domains which are not in use on any short URL are not returned on the list of domains.
  • #899 Avoided filesystem errors produced while downloading geolite DB files on several shlink instances that share the same filesystem.
  • #827 Fixed swoole config getting loaded in config cache if a console command is run before any web execution, when swoole extension is enabled, making subsequent non-swoole web requests fail.

v2.4.1

10 Nov 19:04
7bb40c7
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #891 Fixed error when running migrations in postgres due to incorrect return type hint.
  • #846 Fixed base image used for the PHP-FPM dev container.
  • #867 Fixed not-found redirects not using proper status (301 or 302) as configured during installation.

v2.4.0

08 Nov 11:31
29bb201
Compare
Choose a tag to compare

Added

  • #829 Added support for QR codes in SVG format, by passing ?format=svg to the QR code URL.

  • #820 Added new option to force enabling or disabling URL validation on a per-URL basis.

    Currently, there's a global config that tells if long URLs should be validated (by ensuring they are publicly accessible and return a 2xx status). However, this is either always applied or never applied.

    Now, it is possible to enforce validation or enforce disabling validation when a new short URL is created or edited:

    • On the POST /short-url and PATCH /short-url/{shortCode} endpoints, you can now pass validateUrl: true/false in order to enforce enabling or disabling validation, ignoring the global config. If the value is not provided, the global config is still normally applied.
    • On the short-url:generate CLI command, you can pass --validate-url or --no-validate-url flags, in order to enforce enabling or disabling validation. If none of them is provided, the global config is still normally applied.
  • #838 Added new endpoint and CLI command to list existing domains.

    It returns both default domain and specific domains that were used for some short URLs.

    • REST endpoint: GET /rest/v2/domains
    • CLI Command: domain:list
  • #832 Added support to customize the port in which the docker image listens by using the PORT env var or the port config option.

  • #860 Added support to import links from bit.ly.

    Run the command short-urls:import bitly and introduce requested information in order to import all your links.

    Other sources will be supported in future releases.

Changed

  • #836 Added support for the <field>-<dir> notation while determining how to order the short URLs list, as in ?orderBy=shortCode-DESC. This effectively deprecates the array notation (?orderBy[shortCode]=DESC), that will be removed in Shlink 3.0.0
  • #782 Added code coverage to API tests.
  • #858 Updated to latest infection version. Updated docker images to PHP 7.4.11 and swoole 4.5.5
  • #887 Started tracking the API key used to create short URLs, in order to allow restrictions in future releases.

Deprecated

  • #883 Deprecated POST /tags endpoint and tag:create command, as tags are created automatically while creating short URLs.

Removed

  • Nothing

Fixed

  • #837 Drastically improved performance when creating a new shortUrl and providing findIfExists = true.
  • #878 Added missing gmp extension to the official docker image.