All Versions
95
Latest Version
Avg Release Cycle
21 days
Latest Release
23 days ago

Changelog History
Page 7

  • v1.16.2 Changes

    March 05, 2019

    โž• Added

    • Nothing

    ๐Ÿ”„ Changed

    • Nothing

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • ๐Ÿ›  #368 Fixed error produced when running a SELECT COUNT(...) with ORDER BY in PostgreSQL databases.
  • v1.16.1 Changes

    February 26, 2019

    โž• Added

    • Nothing

    ๐Ÿ”„ Changed

    • โšก๏ธ #363 Updated to shlinkio/php-coding-standard version 1.1.0

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • ๐Ÿ›  #362 Fixed all visits without an IP address being processed every time the visit:process command is executed.
  • v1.16.0 Changes

    February 23, 2019

    โž• Added

    • #304 Added health endpoint to check healthiness of the service. Useful in container-based infrastructures.

      Call [GET /rest/health] in order to get a response like this:

      HTTP/1.1 200 OK
      Content-Type: application/health+json
      Content-Length: 681
      
      {
        "status": "pass",
        "version": "1.16.0",
        "links": {
          "about": "https://shlink.io",
          "project": "https://github.com/shlinkio/shlink"
        }
      }
      

      The status code can be 200 OK in case of success or 503 Service Unavailable in case of error, while the status property will be one of pass or fail, as defined in the Health check RFC.

    • #279 Added new findIfExists flag to the [POST /short-url] REST endpoint and the short-urls:generate CLI command. It can be used to return existing short URLs when found, instead of creating new ones.

      Thanks to this flag you won't need to remember if you created a short URL for a long one. It will just create it if needed or return the existing one if possible.

      The behavior might be a little bit counterintuitive when combined with other params. This is how the endpoint behaves when providing this new flag:

      • Only the long URL is provided: It will return the newest match or create a new short URL if none is found.
      • Long url and custom slug are provided: It will return the short URL when both params match, return an error when the slug is in use for another long URL, or create a new short URL otherwise.
      • Any of the above but including other params (tags, validSince, validUntil, maxVisits): It will behave the same as the previous two cases, but it will try to exactly match existing results using all the params. If any of them does not match, it will try to create a new short URL.
    • โœ… #336 Added an API test suite which performs API calls to an actual instance of the web service.

    ๐Ÿ”„ Changed

    • #342 The installer no longer asks for a charset to be provided, and instead, it shuffles the base62 charset.
    • ๐Ÿ— #320 Replaced query builder by plain DQL for all queries which do not need to be dynamically generated.
    • ๐Ÿ— #330 No longer allow failures on PHP 7.3 envs during project CI build.
    • โœ… #335 Renamed functional test suite to database test suite, since that better describes what it actually does.
    • #346 Extracted installer as an independent tool.
    • #261 Increased mutation score to 70%.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ #351 Deprecated config:generate-charset and config:generate-secret CLI commands.

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • ๐Ÿ— #317 Fixed error while trying to generate previews because of global config file being deleted by mistake by build script.
    • ๐Ÿ›  #307 Fixed memory leak while trying to process huge amounts of visits due to the query not being properly paginated.
  • v1.15.1 Changes

    December 16, 2018

    โž• Added

    • #162 Added non-rest endpoints to swagger definition.

    ๐Ÿ”„ Changed

    • ๐Ÿณ #312 Now all config files both in php and json format are loaded from config/params folder, easing users to provided customizations to docker image.
    • โšก๏ธ #226 Updated how table are rendered in CLI commands, making use of new features in Symfony 4.2.
    • #321 Extracted entities mappings from entities to external config files.
    • ๐Ÿ— #308 Automated docker image building.

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    ๐Ÿ›  Fixed

    • ๐Ÿ’ป #309 Added missing favicon to prevent 404 errors logged when an error page is loaded in a browser.
    • ๐Ÿ›  #310 Fixed execution context not being properly detected, making CloseDbConnectionMiddlware to be always piped. Now the check is not even made, which simplifies everything.
  • v1.15.0 Changes

    December 02, 2018

    โž• Added

    • ๐ŸŽ #208 Added initial support to run shlink using swoole, a non-blocking IO server which improves the performance of shlink from 4 to 10 times.

      Run shlink with ./vendor/bin/zend-expressive-swoole start to start-up the service, which will be exposed in port 8080.

      Adding the -d flag, it will be started as a background service. Then you can use the ./vendor/bin/zend-expressive-swoole stop command in order to stop it.

    • #266 Added pagination to GET /short-urls/{shortCode}/visits endpoint.

      In order to make it backwards compatible, it keeps returning all visits by default, but it now allows to provide the page and itemsPerPage query parameters in order to configure the number of items to get.

    ๐Ÿ”„ Changed

    • #267 API responses and the CLI interface is no longer translated and uses english always. Only not found error templates are still translated.
    • ๐Ÿ“ฆ #289 Extracted coding standard rules to a separated package.
    • #273 Improved code coverage in repository classes.

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • #278 Added missing X-Api-Key header to the list of valid cross domain headers.
    • ๐Ÿ›  #295 Fixed custom slugs so that they are case sensitive and do not try to lowercase provided values.
  • v1.14.1 Changes

    November 17, 2018

    โž• Added

    • Nothing

    ๐Ÿ”„ Changed

    • #260 Increased mutation score to 65%.

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • ๐Ÿ›  #271 Fixed memory leak produced when processing high amounts of visits at the same time.
    • ๐Ÿ”’ #272 Fixed errors produced when trying to process visits multiple times in parallel, by using a lock which ensures only one instance is run at a time.
  • v1.14.0 Changes

    November 16, 2018

    โž• Added

    • #236 Added option to define a redirection to a custom URL when a user hits an invalid short URL.

      It only affects URLs matched as "short URL" where the short code is invalid, not any 404 that happens in the app. For example, a request to the path /foo/bar will keep returning a 404.

      This new option will be asked by the installer both for new shlink installations and for any previous shlink version which is updated.

    • #189 and #240 Added new GeoLite2-based geolocation service which is faster and more reliable than previous one.

      It does not have API limit problems, since it uses a local database file.

      Previous service is still used as a fallback in case GeoLite DB does not contain any IP address.

    ๐Ÿ”„ Changed

    • #241 Fixed columns in visit_locations table, to be snake_case instead of camelCase.
    • โšก๏ธ #228 Updated how exceptions are serialized into logs, by using monlog's PsrLogMessageProcessor.
    • ๐ŸŽ #225 Performance and maintainability slightly improved by enforcing via code sniffer that all global namespace classes, functions and constants are explicitly imported.
    • #196 Reduced anemic model in entities, defining more expressive public APIs instead.
    • #249 Added functional-php to ease collections handling.
    • #253 Increased user_agent column length in visits table to 512.
    • โšก๏ธ #256 Updated to Infection v0.11.
    • ๐Ÿ“„ #202 Added missing response examples to OpenAPI docs.

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • ๐Ÿ›  #223 Fixed PHPStan errors produced with symfony/console 4.1.5
  • v1.13.2 Changes

    October 18, 2018

    โž• Added

    • ๐Ÿ— #233 Added PHP 7.3 to build matrix allowing its failure.

    ๐Ÿ”„ Changed

    • โšก๏ธ #235 Improved update instructions (thanks to tivyhosting).

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • #237 Solved errors when trying to geo-locate null IP addresses.

      Also improved how visitor IP addresses are discovered, thanks to akrabat/ip-address-middleware package.

  • v1.13.1 Changes

    October 16, 2018

    โž• Added

    • Nothing

    ๐Ÿ”„ Changed

    • Nothing

    ๐Ÿ—„ Deprecated

    • Nothing

    โœ‚ Removed

    • Nothing

    ๐Ÿ›  Fixed

    • ๐Ÿ›  #231 Fixed error when processing visits.
  • v1.13.0 Changes

    October 06, 2018

    โž• 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 of ShortCode when referring to the entity, and left the short code concept to the identifier which is used as a unique code for a specific Short 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 the X-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 from short-code:... to short-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

    • โš  #203 Fixed some warnings thrown while unzipping distributable files.
    • #206 An error is now thrown during installation if any required param is left empty, making the installer display a message and ask again until a value is set.