All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.12.2 - 2023-03-06
- Show comment based help correctly for
Invoke-ShlinkRestMethod
, mostly for PlatyPS and in-repository help markdown files
0.12.0 - 2023-03-05
- New function Invoke-ShlinkRestMethod. This function will provide people with flexibility to use Shlink's REST API more directly if necessary; without the need to use this module's functions. Useful in scenarios where Shlink is updated with a breaking change or new endpoint not yet supported in PSShlink
- Changed the way the internal function
InvokeShlinkRestMethod
discovered the pagination property; this enabled a more user friendly implementation of the new public functionInvoke-ShlinkRestMethod
- Deprecation warning added to
Set-ShlinkUrl
for-ValidateUrl
, which is true since Shlink 3.5.0
0.11.0 - 2023-03-03
- Added
-AndroidLongUrl
and-IOSLongUrl
and-DesktopLongUrl
toSet-Shlinkurl
- Added
-AndroidLongUrl
and-IOSLongUrl
and-DesktopLongUrl
toNew-Shlinkurl
- Added
-ExcludeMaxVisitsReached
and-ExcludePastValidUntil
toGet-ShlinkUrl
- Added
-OrderBy
permitted valuesnonBotVisits-ASC
andnonBotVisits-DESC
toGet-ShlinkUrl
- Minimum Shlink version updated to 3.5.0
- Deprecation warning added to
New-ShlinkUrl
for-ValidateUrl
, which is true since Shlink 3.5.0 - Changed API permission to 3, from 2
0.10.2 - 2022-04-23
- Updated comment based help for
Get-ShlinkVisits
for new domain parameter set
0.10.0 - 2022-04-23
Get-ShlinkVisits
has a new parameter set to enable you to retrieve all visits for just domains. This supports the newGET /domains/{domain}/visits
endpoint in 3.1.0.
- Minimum Shlink version updated 3.1.0
0.9.4 - 2022-02-26
- New parameter
-PassThru
added to functionSave-ShlinkUrlQrCode
which will return aSystem.IO.FileSystemInfo
object for each QR code image file it creates when used. Default behaviour has not changed (return no object if successful).
- Renamed parameter
-Tags
to be-Tag
for functionRemove-ShlinkTag
0.9.1 - 2022-02-14
- Updated minimum version check of Shlink instance to 3.0.0
- Updated comment based help for
Get-ShlinkVisistNonOrphan
as it was copied fromGet-ShlinkVisitsOprhan
0.9.0 - 2022-02-13
- Function
Get-ShlinkUrl
has new parameter-TagsMode
, new in Shlink 3.0.0 - Function
Get-ShlinkTags
has new parameter-SearchTerm
, new in Shlink 3.0.0 - New function
Get-ShlinkVisitsNonOrphan
, new endpoint in Shlink 3.0.0 - New parameter
-RoundBlockSize
forSave-ShlinkUrlQrCode
Get-ShlinkTags
uses the new/tags/stats
endpoint to include stats in the data returned. This change is purely internal of the function, does not impact how the function is used or how the data is returned.Get-ShlinkDomains
now includes two parent properties when data is returned:data
anddefaultRedirects
. In Shlink 2.10.0, this endpoint was updated to include thedefaultRedirects
property. Previously, all that was returned was everything within thedata
property.- New parameter set of possible values for
-OrderBy
parameter ofGet-ShlinkUrl
function:longUrl-ASC
,longUrl-DESC
,shortCode-ASC
,shortCode-DESC
,dateCreated-ASC
,dateCreated-DESC
,visits-ASC
,visits-DESC
,title-ASC
, andtitle-DESC
- Function
New-ShlinKTag
as the endpoint was removed from Shlink REST API in 3.0.0
Remove-ShlinkTag
ShouldProcess prompts listed the entire array of tags passed to it, rather than the current iterable it was working on
0.8.2 - 2021-11-21
- Renamed parameter
DoNotValidateUrl
toValidateUrl
in comment based help forSet-ShlinkUrl
0.8.1 - 2021-11-21
- Updated warnings about minimum Shlink version to suggest 2.9.0
0.8.0 - 2021-11-20
- Improved build pipeline to use codaamok.build
- New
-ForwardQuery
boolean parameter inNew-ShlinkUrl
andSet-ShlinkUrl
(new in Shlink 2.9.0).
- Minimum Shlink version updated to 2.9.0
- Renamed parameter
-DoNotValidateUrl
of switch type to-ValidateUrl
of boolean type for bothNew-ShlinkUrl
andSet-ShlinkUrl
. - Parameter
-FindIfExists
is now of type boolean instead of switch inNew-ShlinkUrl
. is now a switch and not a boolean`. - Removed use of methods
SecureStringToBSTR
andPtrToStringAuto
from Marshal .NET class for secure string handling inInvokeShlinkRestMethod
, in favour of usingGetNetworkCredential
method from a PSCredential object. Save-ShlinkUrlQrCode
no longer has hardcoded default parameter values (much like the API did) for size, margin, format, and error correction level.. Shlink 2.9.0 now lets you configure these defaults for QR codes, so by omitting values for these params, your server default values are used.
- Corrected object reference to API URL attempted in ErrorRecord
0.7.0 - 2021-08-09
- New function
Set-ShlinkDomainRedirects
, new in Shlink 2.8.0 - New
-ErrorCorrection
parameter forSave-ShlinkUrlQrCode
, new in Shlink 2.8.0
- Minimum Shlink version updated to 2.8.0
- Return exception
UnauthorizedAccessException
when Shlink returns 401. PreviouslyInvalidOperationException
was returned
- Default to https:// as -ShlinkServer if schema is not provided. Largely for security but also because of PowerShell/PowerShell#14531
0.6.0 - 2021-05-23
- New
-ExcludeBots
parameter toGet-ShlinkVisits
andGet-ShlinkVisitsOrphan
, new in Shlink 2.7.0 - New
-Crawlable
parameter toNew-ShlinkUrl
andSet-ShlinkUrl
, new in Shlink 2.7.0
Set-ShlinkUrl
acceptsdomain
as ValueFromPipelineByPropertyName- Minimum Shlink version updated to 2.7.0
- Fixed an issue where
Set-ShlinkUrl
would not reinitialise its query string when used within a pipeline - Added missing comment based help to
Get-ShlinkVisitsOrphan
- Fixed typos in comment based help for some functions
0.5.0 - 2021-02-14
- New function
Get-ShlinkVisitsOrphan
, new in Shlink 2.6.0 - New
-Margin
parameter toSave-ShlinkUrlQrCode
, new in Shlink 2.6.0 - Added missing comment based help to
Save-ShlinkUrlQrCode
for its parameters - New
-Title
parameter toNew-ShlinkUrl
andSet-ShlinkUrl
, new in Shlink 2.6.0
- Improvements to the Shlink API in 2.6.0 enables me to restore the previous (intended) functionality of
Set-ShlinkUrl
is restored. Specifically, the ability to modify multiple properties of a short code within a single call. No longer need to call the function for each change you want to make to a short code. Save-ShlinkUrlQrCode
now creates the directory-Path
if it does not exist- Minimum Shlink version updated to 2.6.0
0.4.0 - 2021-02-04
-ValidUntil
would be set the same as-ValidSince
withNew-ShlinkUrl
, fixes #3
- In order to fix #4, I had to change the way
Set-ShlinkUrl
works. You can now only update one property of a short code per call ofSet-ShlinkUrl
.
0.3.0 - 2021-01-23
- Minimum Shlink version updated to 2.5.0
Save-ShlinkUrlQrCode
now uses newer API format for the 'size' query parameter- Check and produce a terminating error if
-ShlinkServer
is not really a Shlink server in all functions
-ShlinkServer
and-ShlinkApiKey
only remembered the first values you use in any of the module's functions. Explicitly passing those parameters to any function again did not use the new server address or API key
0.2.0 - 2021-01-02
- Add the
System.Web
.NET class if not loaded, thanks @ChrisKibble in #1 - Parameter
-DoNotValidateUrl
now behaves correctly inNew-ShlinkUrl
andSet-ShlinkUrl
, thanks again @ChrisKibble in #2
0.1.0 - 2020-10-27
- Initial release