Skip to content

Releases: shlinkio/shlink

v2.0.1

10 Jan 19:02
7fcc4eb
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #607 Added missing info on UPGRADE.md doc.
  • #610 Fixed use of hardcoded quotes on a database migration which makes it fail on postgres.
  • #605 Fixed crashes occurring when migrating from old Shlink versions with nullable DB columns that are assigned to non-nullable entity typed props.

v2.0.0

08 Jan 18:52
3d29327
Compare
Choose a tag to compare

Added

  • #429 Added support for PHP 7.4
  • #529 Created an UPGRADING.md file explaining how to upgrade from v1.x to v2.x
  • #594 Updated external shlink packages, including installer v4.0, which adds the option to ask for the redis cluster config.

Changed

Deprecated

  • Nothing

Removed

  • #429 Dropped support for PHP 7.2 and 7.3

  • #229 Remove everything which was deprecated, including:

    • Preview generation feature completely removed.
    • Authentication against REST API using JWT is no longer supported.

    See UPGRADE doc in order to get details on how to migrate to this version.

Fixed

  • #600 Fixed health action so that it works with and without version in the path.

v1.21.1

02 Jan 22:02
70f1db4
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #596 Fixed error when trying to download GeoLite2 database due to changes on how to get the database files.

v1.21.0

29 Dec 15:01
e92d437
Compare
Choose a tag to compare

Added

  • #118 API errors now implement the problem details standard.

    In order to make it backwards compatible, two things have been done:

    • Both the old error and message properties have been kept on error response, containing the same values as the type and detail properties respectively.
    • The API v2 has been enabled. If an error occurs when calling the API with this version, the error and message properties will not be returned.

    After Shlink v2 is released, both API versions will behave like API v2.

  • #575 Added support to filter short URL lists by date ranges.

    • The GET /short-urls endpoint now accepts the startDate and endDate query params.
    • The short-urls:list command now allows --startDate and --endDate flags to be optionally provided.
  • #338 Added support to asynchronously notify external services via webhook, only when shlink is served with swoole.

    Configured webhooks will receive a POST request every time a URL receives a visit, including information about the short URL and the visit.

    The payload will look like this:

    {
      "shortUrl": {},
      "visit": {}
    }

    The shortUrl and visit props have the same shape as it is defined in the API spec.

Changed

  • #492 Updated to monolog 2, together with other dependencies, like Symfony 5 and infection-php.
  • #527 Increased minimum required mutation score for unit tests to 80%.
  • #557 Added a few php.ini configs for development and production docker images.

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #570 Fixed shlink version generated for docker images when building from develop branch.

v1.20.3

23 Dec 10:13
c560e1f
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #585 Fixed PHP Fatal error: Uncaught Error: Class 'Shlinkio\Shlink\LocalLockFactory' not found happening when running some CLI commands.

v1.20.2

06 Dec 22:16
3479bbb
Compare
Choose a tag to compare

Added

  • Nothing

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #561 Fixed db:migrate command failing because yaml extension is not installed, which makes config file not to be readable.
  • #562 Fixed internal server error being returned when renaming a tag to another tag's name. Now a meaningful API error with status 409 is returned.
  • #555 Fixed internal server error being returned when invalid dates are provided for new short URLs. Now a 400 is returned, as intended.

v1.20.1

17 Nov 10:37
Compare
Choose a tag to compare

Added

  • #519 Documented how to customize web workers and task workers for the docker image.

Changed

  • Nothing

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • #512 Fixed query params not being properly forwarded from short URL to long one.
  • #540 Fixed errors thrown when creating short URLs if the original URL has an internationalized domain name and URL validation is enabled.
  • #528 Ensured db:create and db:migrate commands do not silently fail when run as part of install or update.
  • #518 Fixed service which updates Geolite db file to use a local lock instead of a shared one, since every shlink instance holds its own db instance.

v1.20.0

02 Nov 20:33
bf24660
Compare
Choose a tag to compare

Added

  • #491 Added improved short code generation logic.

    Now, short codes are truly random, which removes the guessability factor existing in previous versions.

    Generated short codes have 5 characters, and shlink makes sure they keep unique, while making it backwards-compatible.

  • #418 and #419 Added support to redirect any 404 error to a custom URL.

    It was already possible to configure this but only for invalid short URLs. Shlink now also support configuring redirects for the base URL and any other kind of "not found" error.

    The three URLs can be different, and it is already possible to pass them to the docker image via configuration or env vars.

    The installer also asks for these two new configuration options.

  • #497 Officially added support for MariaDB.

Changed

Deprecated

  • Nothing

Removed

    • Nothing

Fixed

  • #507 Fixed error with too long original URLs by increasing size to the maximum value (2048) based on the standard.
  • #502 Fixed error when providing the port as part of the domain on short URLs.
  • #509 Fixed error when trying to generate a QR code for a short URL which uses a custom domain.
  • #522 Highly mitigated errors thrown when lots of short URLs are created concurrently including new and existing tags.

v1.19.0

05 Oct 09:19
09a5284
Compare
Choose a tag to compare

Added

  • #482 Added support to serve shlink under a sub path.

    The router.base_path config option can be defined now to set the base path from which shlink is served.

    return [
        'router' => [
            'base_path' => '/foo/bar',
        ],
    ];

    This option will also be available on shlink-installer 1.3.0, so the installer will ask for it. It can also be provided for the docker image as the BASE_PATH env var.

  • #479 Added preliminary support for multiple domains.

    Endpoints and commands which create short URLs support providing the domain now (via query param or CLI flag). If not provided, the short URLs will still be "attached" to the default domain.

    Custom slugs can be created on multiple domains, allowing to share links like https://doma.in/my-compaign and https://example.com/my-campaign, under the same shlink instance.

    When resolving a short URL to redirect end users, the following rules are applied:

    • If the domain used for the request plus the short code/slug are found, the user is redirected to that long URL and the visit is tracked.
    • If the domain is not known but the short code/slug is defined for default domain, the user is redirected there and the visit is tracked.
    • In any other case, no redirection happens and no visit is tracked (if a fall back redirection is configured for not-found URLs, it will still happen).

Changed

  • #486 Updated to shlink-installer v2, which supports asking for base path in which shlink is served.

Deprecated

  • Nothing

Removed

  • #435 Removed translations for error pages. All error pages are in english now.

Fixed

  • Nothing

v1.19.0-beta.1

05 Oct 06:21
05e3071
Compare
Choose a tag to compare
v1.19.0-beta.1 Pre-release
Pre-release
Beta release with multidomain support