Releases: shlinkio/shlink
v4.4.0
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
v4.3.0
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 newapi-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 thedomain
query parameter, and theshort-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
v4.2.4
v4.2.3
v4.2.2
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
v4.2.0
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 toshort-url:create
andshort-url:edit
commands.
Removed
- Nothing
Fixed
- Nothing
Deprecated
- Nothing
v4.1.1
Changed
- Use new reusable workflow to publish docker image
- #2015 Update to PHPUnit 11.
- #2130 Replace deprecated
pugx/shortid-php
package withhidehalo/nanoid-php
.
Added
- Nothing
Removed
- Nothing
Fixed
- #2111 Fix typo in OAS docs examples where redirect rules with
query-param
condition type were defined asquery
. - #2129 Fix error when resolving title for sites not using UTF-8 charset (detected with Japanese charsets).
Deprecated
- Nothing