Releases: shlinkio/shlink
v1.13.1
v1.13.0
Added
-
#197 Added cakephp/chronos library for date manipulations.
-
#214 Improved build script, which allows builds to be done without "jumping" outside the project directory, and generates smaller dist files.
It also allows automating the dist file generation in travis-ci builds.
-
#207 Added two new config options which are asked during installation process. The config options already existed in previous shlink version, but you had to manually set their values.
These are the new options:
- Visits threshold to allow short URLs to be deleted.
- Check the visits threshold when trying to delete a short URL via REST API.
Changed
-
#211 Extracted installer to its own module, which will simplify moving it to a separated package in the future.
-
#200 and #201 Renamed REST Action classes and CLI Command classes to use the concept of
ShortUrl
instead of the concept ofShortCode
when referring to the entity, and left theshort code
concept to the identifier which is used as a unique code for a specificShort URL
. -
#181 When importing the configuration from a previous shlink installation, it no longer asks to import every block. Instead, it is capable of detecting only new config options introduced in the new version, and ask only for those.
If no new options are found and you have selected to import config, no further questions will be asked and shlink will just import the old config.
Deprecated
-
#205 Deprecated
[POST /authenticate]
endpoint, and allowed any API request to be automatically authenticated using theX-Api-Key
header with a valid API key.This effectively deprecates the
Authorization: Bearer <JWT>
authentication form, but it will keep working. -
As of #200 and #201 REST urls have changed from
/short-codes/...
to/short-urls/...
, and the command namespaces have changed fromshort-code:...
toshort-url:...
.In both cases, backwards compatibility has been retained and the old ones are aliases for the new ones, but the old ones are considered deprecated.
Removed
- Nothing
Fixed
v1.12.0
Added
-
#187 Included an API endpoint and a CLI command to delete short URLs.
Due to the implicit danger of this operation, the deletion includes a safety check. URLs cannot be deleted if they have more than a specific amount of visits.
The visits threshold is set to 15 by default and currently it has to be manually changed. In future versions the installation/update process will ask you about the value of the visits threshold.
In order to change it, open the
config/autoload/delete_short_urls.global.php
file, which has this structure:return [ 'delete_short_urls' => [ 'visits_threshold' => 15, 'check_visits_threshold' => true, ], ];
Properties are self explanatory. Change
check_visits_threshold
tofalse
to completely disable this safety check, and change the value ofvisits_threshold
to allow short URLs with a different number of visits to be deleted.Once changed, delete the
data/cache/app_config.php
file (if any) to let shlink know about the new values.This check is implicit for the API endpoint, but can be "disabled" for the CLI command, which will ask you when trying to delete a URL which has reached to threshold in order to force the deletion.
-
#183 and #190 Included important documentation improvements in the repository itself. You no longer need to go to the website in order to see how to install or use shlink.
-
#186 Added a small robots.txt file that prevents 404 errors to be logged due to search engines trying to index the domain where shlink is located. Thanks to @robwent for the contribution.
Changed
-
#145 Shlink now obfuscates IP addresses from visitors by replacing the latest octet by
0
, which does not affect geolocation and allows it to fulfil the GDPR.Other known services follow this same approach, like Google Analytics or Matomo
-
#182 The short URL creation API endpoints now return the same model used for lists and details endpoints.
Deprecated
- Nothing
Removed
- Nothing
Fixed
- #188 Shlink now allows multiple short URLs to be created that resolve to the same long URL.
v1.11.0
Added
-
#170 and #171 Updated
[GET /short-codes]
and[GET /short-codes/{shortCode}]
endpoints to return more meaningful information and make their response consistent.The short URLs are now represented by this object in both cases:
{ "shortCode": "12Kb3", "shortUrl": "https://doma.in/12Kb3", "longUrl": "https://shlink.io", "dateCreated": "2016-05-01T20:34:16+02:00", "visitsCount": 1029, "tags": [ "shlink" ], "originalUrl": "https://shlink.io" }
The
originalUrl
property is considered deprecated and has been kept for backward compatibility purposes. It holds the same value as thelongUrl
property.
Changed
- Nothing
Deprecated
- The
originalUrl
property in[GET /short-codes]
and[GET /short-codes/{shortCode}]
endpoints is now deprecated and replaced by thelongUrl
property.
Removed
- Nothing
Fixed
- Nothing
v1.10.2
Added
- Nothing
Changed
- Nothing
Deprecated
- Nothing
Removed
- Nothing
Fixed
-
#177 Fixed
[GET] /short-codes
endpoint returning a 500 status code when trying to filter bytags
andsearchTerm
at the same time. -
#175 Fixed error introduced in previous version, where you could end up banned from the service used to resolve IP address locations.
In order to fix that, just fill this form including your server's IP address and your server should be unbanned.
In order to prevent this, after resolving 150 IP addresses, shlink now waits 1 minute before trying to resolve any more addresses.
v1.10.1
Added
- Nothing
Changed
- #167 Shlink version is now set at build time to avoid older version numbers to be kept in newer builds.
Deprecated
- Nothing
Removed
- Nothing
Fixed
-
#165 Fixed custom slugs failing when they are longer than 10 characters.
-
#166 Fixed unusual edge case in which visits were not properly counted when ordering by visit and filtering by search term in
[GET] /short-codes
API endpoint. -
#174 Fixed geolocation not working due to a deprecation on used service.
-
#172 Documented missing filtering params for
[GET] /short-codes/{shortCode}/visits
API endpoint, which allow the list to be filtered by date range.For example:
https://doma.in/rest/v1/short-urls/abc123/visits?startDate=2017-05-23&endDate=2017-10-05
-
#169 Fixed unhandled error when parsing
ShortUrlMeta
and date fields are alreadyDateTime
instances.
v1.10.0
Added
- #161 AddED support for shlink to be run with swoole via zend-expressive-swoole package
Changed
- #159 Updated CHANGELOG to follow the keep-a-changelog format
- #160 Update infection to v0.9 and phpstan to v 0.10
Deprecated
- Nothing
Removed
- Nothing
Fixed
- Nothing
v1.9.1
Added
-
#155 Improved the pagination object returned in lists, including more meaningful properties.
- Old structure:
{ "pagination": { "currentPage": 1, "pagesCount": 2 } }
- New structure:
{ "pagination": { "currentPage": 2, "pagesCount": 13, "itemsPerPage": 10, "itemsInCurrentPage": 10, "totalItems": 126 } }
Changed
- Nothing
Deprecated
- Nothing
Removed
- Nothing
Fixed
v1.9.0
Added
-
#147 Allowed short URLs to be created on the fly using a single API request, including the API key in a query param.
This eases integration with third party services.
With this feature, a simple request to a URL like
https://doma.in/rest/v1/short-codes/shorten?apiKey=[YOUR_API_KEY]&longUrl=[URL_TO_BE_SHORTENED]
would return the shortened one in JSON or plain text format.
Changed
- Nothing
Deprecated
- Nothing
Removed
- Nothing
Fixed
- #139 Ensured all core actions log exceptions