github shlinkio/shlink v4.1.0

15 days ago

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

Don't miss a new shlink release

NewReleases is sending notifications on new releases.