-
v3.5.1 Stable
released this
2023-02-04 10:58:48 -06:00 | 1012 commits to develop since this releaseChanged
- #1685 Changed
looselymode toloose, as it was a typo. The old one keeps working and maps to the new one, but it's considered deprecated.
Added
- Nothing
Removed
- Nothing
Fixed
- #1682 Fixed incorrect case-insensitive checks in short URLs when using Microsoft SQL server.
- #1684 Fixed entities metadata cache not being cleared at docker container start-up when using redis with replication.
Deprecated
- Nothing
Downloads
- #1685 Changed
-
v3.5.0 Stable
released this
2023-01-28 04:11:19 -06:00 | 1024 commits to develop since this releaseChanged
- Nothing
Added
-
#1557 Added support to dynamically redirect to different long URLs based on the visitor's device type.
For the moment, only
android,iosanddesktopcan have their own specific long URL, and when the visitor cannot be matched against any of them, the regular long URL will be used.In the future, more granular device types could be added if appropriate (iOS tablet, android table, tablet, mobile phone, Linux, Mac, Windows, etc).
In order to match the visitor's device, the
User-Agentheader is used. -
#1632 Added amount of bots, non-bots and total visits to the visits summary endpoint.
-
#1633 Added amount of bots, non-bots and total visits to the tag stats endpoint.
-
#1653 Added support for all HTTP methods in short URLs, together with two new redirect status codes, 307 and 308.
Existing Shlink instances will continue to work the same. However, if you decide to set the redirect status codes as 307 or 308, Shlink will also return a redirect for short URLs even when the request method is different from
GET.The status 308 is equivalent to 301, and 307 is equivalent to 302. The difference is that the spec requires the client to respect the original HTTP method when performing the redirect. With 301 and 302, some old clients might perform a
GETrequest during the redirect, regardless the original request method. -
#1662 Added support to provide openswoole-specific config options via env vars prefixed with
OPENSWOOLE_. -
#1389 and #706 Added support for case-insensitive short URLs.
In order to achieve this, a new env var/config option has been implemented (
SHORT_URL_MODE), which allows eitherstrictorloosely.Default value is
strict, but iflooselyis provided, then short URLs will be matched in a case-insensitive way, and new short URLs will be generated with short-codes in lowercase only.
Removed
- Nothing
Fixed
- #1639 Fixed 500 error returned when request body is not valid JSON, instead of a proper descriptive error.
Deprecated
Downloads
-
v3.4.0 Stable
released this
2022-12-16 15:55:40 -06:00 | 1095 commits to develop since this releaseChanged
- #1563 Moved logic to reuse command options to option classes instead of base abstract command classes.
- #1569 Migrated test doubles from phpspec/prophecy to PHPUnit mocks.
- #1329 Split some logic from
VisitRepositoryandShortUrlRepositoryinto separated repository classes.
Added
-
#1612 Allowed to filter short URLs out of lists, when
validUntildate is in the past or have reached their maximum amount of visits.This can be done by:
- Providing
excludeMaxVisitsReached=trueand/orexcludePastValidUntil=trueto theGET /short-urlsendpoint. - Providing
--exclude-max-visits-reachedand/or--exclude-past-valid-untilto theshort-urls:listcommand.
- Providing
-
#1613 Added amount of visits coming from bots, non-bots and total to every short URL in the short URLs list.
Additionally, added option to order by non-bot visits, by passing
nonBotVisits-DESCornonBotVisits-ASC. -
#1599 Added support for credentials on redis DSNs, either only password, or both username and password.
-
#1616 Added support to import orphan visits when importing short URLs from another Shlink instance.
-
#1519 Allowing to search short URLs by default domain.
-
#1555 and #1625 Added full support for PHP 8.2, updating the docker image to this version.
Removed
- Nothing
Fixed
- #1618 Fixed imported short URLs and visits dates not being set to the target server timezone.
- #1578 Fixed short URL allowing an empty string as the domain during creation.
- #1580 Fixed
FLUSHDBbeing run on Shlink docker start-up when using redis, causing full cache to be flushed.
Deprecated
- Nothing
Downloads
-
v3.3.2 Stable
released this
2022-10-18 12:05:43 -05:00 | 1302 commits to develop since this releaseChanged
- Nothing
Added
- Nothing
Removed
- Nothing
Fixed
- #1576 Fixed error when trying to retry visits location from CLI.
Deprecated
- Nothing
Downloads
-
v3.3.1 Stable
released this
2022-09-30 10:37:55 -05:00 | 1305 commits to develop since this releaseChanged
- #1474 Added preliminary support for PHP 8.2 during CI workflow.
- #1551 Moved services related to geolocating visits to the
Visit\Geolocationnamespace. - #1550 Reorganized main namespaces from Core module.
Added
- Nothing
Removed
- Nothing
Fixed
- #1556 Fixed trailing slash not working when enabling multi-segment slugs.
Deprecated
- Nothing
Downloads
-
v3.3.0 Stable
released this
2022-09-18 12:37:16 -05:00 | 1327 commits to develop since this releaseChanged
- #1339 Added new test suite for CLI E2E tests.
- #1503 Drastically improved build time in GitHub Actions, by optimizing parallelization and adding php extensions cache.
- #1525 Migrated to custom doctrine CLI entry point.
- #1492 Migrated to immutable options objects, mapped with cuyz/valinor.
Added
-
#1221 Added experimental support to run Shlink with RoadRunner instead of openswoole.
-
#1531 and #1090 Added support for trailing slashes in short URLs.
-
#1406 Added new REST API version 3.
When making requests to the REST API with
/rest/v3/...and an error occurs, all error types will be different, with the next correlation:INVALID_ARGUMENT->https://shlink.io/api/error/invalid-dataINVALID_SHORT_URL_DELETION->https://shlink.io/api/error/invalid-short-url-deletionDOMAIN_NOT_FOUND->https://shlink.io/api/error/domain-not-foundFORBIDDEN_OPERATION->https://shlink.io/api/error/forbidden-tag-operationINVALID_URL->https://shlink.io/api/error/invalid-urlINVALID_SLUG->https://shlink.io/api/error/non-unique-slugINVALID_SHORTCODE->https://shlink.io/api/error/short-url-not-foundTAG_CONFLICT->https://shlink.io/api/error/tag-conflictTAG_NOT_FOUND->https://shlink.io/api/error/tag-not-foundMERCURE_NOT_CONFIGURED->https://shlink.io/api/error/mercure-not-configuredINVALID_AUTHORIZATION->https://shlink.io/api/error/missing-authenticationINVALID_API_KEY->https://shlink.io/api/error/invalid-api-key
If you make a request to the API with v2 or v1, the old error types will be returned, until Shlink 4 is released, when only the new ones will be used.
Non-error responses are not affected.
-
#1513 Added publishing of the docker image in GHCR.
-
#1114 Added support to provide an initial API key via
INITIAL_API_KEYenv var, when running Shlink with openswoole or RoadRunner.Also, the installer tool now allows to generate an initial API key that can be copy-pasted (this tool is run interactively), in case you use php-fpm or you don't want to use env vars.
-
#1528 Added support to delay when the GeoLite2 DB file is downloaded in docker images, speeding up its startup time.
In order to do it, pass
SKIP_INITIAL_GEOLITE_DOWNLOAD=truewhen creating the container.
Removed
- Nothing
Fixed
- Nothing
Deprecated
- Nothing
Downloads
-
v3.2.1 Stable
released this
2022-08-08 12:51:24 -05:00 | 1455 commits to develop since this releaseChanged
- #1495 Centralized how routes are configured to support multi-segment slugs.
- #1497 Updated to latest shlink dependencies with support for PHP 8.1 only.
Added
- Nothing
Removed
- Nothing
Fixed
- #1499 Fixed loading of config options as env vars, which was making all default configurations to be loaded unless env vars were explicitly provided.
Deprecated
- Nothing
Downloads
-
v3.2.0 Stable
released this
2022-08-05 12:07:25 -05:00 | 1466 commits to develop since this releaseChanged
-
#1452 Updated to monolog 3
-
#1485 Changed payload published in RabbitMQ for all visits events, in order to conform with the Async API spec.
Since this is a breaking change, also provided a new
RABBITMQ_LEGACY_VISITS_PUBLISHING=trueenv var that can be provided in order to keep the old payload.This env var is considered deprecated and will be removed in Shlink 4, when the legacy format will no longer be supported.
Added
-
#854 Added support for multi-segment custom slugs.
The feature is disabled by default, but you can optionally opt in. If you do, you will be able to create short URLs with multiple segments in the custom slug, like
https://example.com/foo/bar/baz. -
#1280 Added missing visit-related commands.
Now you can run
tag:visits,domain:visits,visit:orphanorvisit:non-orphanto get the corresponding list of visits from the command line. -
#962 Added new real-time update for new short URLs.
You can now subscribe to the
https://shlink.io/new-short-urltopic on any of the supported async updates technologies in order to get notified when a short URL is created. -
#1367 Added support to publish real-time updates in redis pub/sub.
The publishing will happen in the same redis instance/cluster configured for caching.
Removed
- #1280 Dropped support for PHP 8.0
Fixed
- #1471 Fixed error when running
visit:locatecommand with any extra parameter (like--retry).
Deprecated
- Nothing
Downloads
-
-
v3.1.2 Stable
released this
2022-06-04 04:37:44 -05:00 | 1572 commits to develop since this releaseChanged
- Nothing
Added
- Nothing
Removed
- Nothing
Fixed
- #1448 Fixed HTML entities not being properly parsed when auto-resolving page titles.
- #1458 Fixed 500 error when filtering short URLs by ALL tags and search term.
Deprecated
- Nothing
Downloads
-
v3.1.1 Stable
released this
2022-05-09 01:17:41 -05:00 | 1578 commits to develop since this releaseChanged
- #1444 Updated docker image to openswoole 4.11.1, in an attempt to fix error.
Added
- Nothing
Removed
- Nothing
Fixed
- #1439 Fixed crash when trying to auto-resolve titles for URLs which serve large binary files.
Deprecated
- Nothing
Downloads
mirror of
https://github.com/shlinkio/shlink.git
synced 2025-12-10 00:10:57 -06:00