Skip to content

Releases: soto-project/soto-core

v4.2.0

26 Jan 17:10
c88d1cc
Compare
Choose a tag to compare
  • Deprecated the typealias Future. From this point on you will need to use EventLoopFuture
  • Added support for EC2 Instance Metadata Service V2.
  • Refactored Hypertext Application Language Support. Removed unused link loading code that was broken.
  • Response middleware is now run after the HAL code has run.
  • Added support for processing paginated results from AWS services.

v4.1.0

15 Jan 07:04
fc7f9ee
Compare
Choose a tag to compare
  • If GET request has a header, then sign request using "authorization" header instead of in the URL.
  • Allow xml decoder to decode attributes as members. This fixes #149
  • Added performance tests to profile various elements of aws-sdk-swift-core.
  • Remove the addition of `` around swift keywords when working out a swift variable name.
  • Optimization: Don't create default DateFormatter everytime we need it.
  • The dictionary encoder/decoder defaults to using base64 when encoding/decoding Foundation class Data.
  • Use NIOAtomic instead of Atomic in HTTPClient.
  • Use github action to rebuild documentation on publishing of a new release.

v3.5.0

27 Nov 23:36
31aa9a8
Compare
Choose a tag to compare

Adam Fowler:

  • Use AWSClient.eventLoopGroup in HTTPClient
  • Added swift build github action

v4.0.0

22 Nov 07:44
29d059a
Compare
Choose a tag to compare

Major version changes

  • aws-sdk-swift-core now requires Swift 5.0 or later.
  • We are now using Swift NIO 2.x. If you are dependent on a package using Swift NIO 1.14 or earlier eg Vapor 3, do not update to this version of aws-sdk-swift-core.
  • Re-worked HTTPClient so can work with NIO transport services. This means aws-sdk-swift-core works on iOS.
  • AWSClient.init() requires a EventLoopGroupProvider parameter, an enum with which you can provide your own eventLoopGroup for aws-sdk-swift-core to use, or use the one internal to AWSClient.

Other changes

  • If processing an XML response, ensure the header values in the response are also processed.
  • Tests now compile in release.
  • If AWSClient is initialised with accessKeyId and secretAccessKey set to "" then requests are sent to AWS unsigned. This gives access to AWS services such as CognitoIdentityProvider without credentials.
  • Refactored MetaDataService.

v3.4.0

14 Oct 11:47
14dc7e9
Compare
Choose a tag to compare
  • Fixed issue with compiling for Swift 5.1 on Linux.
  • Rename XMLContainerCodingMap to XMLCodable.
  • Move ShapeEncoding and Location enums inside AWSShapeMember.
  • Move Request, Response and HTTPClientError inside HTTPClient.
  • Remove middlewares and amzTarget parameters from AWSRequest.init(). These are applied elsewhere.

v3.3.0

17 Sep 06:33
d0289a5
Compare
Choose a tag to compare
  • Added AWSLoggingMiddleware which logs raw requests sent to AWS and raw responses received back.
  • Changed restjson protocol Content-Type header to be 'application/json'.
  • Created AWSResponse struct which holds a processed response.
  • Middleware now has the ability to edit the contents of a AWSResponse.
  • Separated service signing name from service endpoint name as these can sometimes be different. This affects V4.Signer.init() where the service parameter has been renamed to signingName.
  • If response has a payload path then create top level objects to contain the response json or xml.
  • Mac uses CommonCrypto for SHA256, HMAC and MD5 calculations.
  • Added AWSClient.signURL() to return a signed URL.
  • AWSErrorType now conforms to CustomStringConvertible.
  • Add additional methods for decoding timestamps (HTTP date format and seconds from UNIX epoch time).
  • AWSClient.send() functions don't throw errors so have removed throws from them.
  • Min/max collection length validation errors output the length and not the full collection.
  • String pattern validation does not expect the whole string to match the pattern.

v3.2.0

17 Aug 22:24
094c48f
Compare
Choose a tag to compare
  • If dictionary decoder expects an array but doesn't find one then stick object found inside an array. Fixes issue in API Gateway where single element arrays are just returned as the element.
  • AWSClient.init() has a new sessionToken parameter.
  • Add session tokens to headers before constructing authorization header.
  • XML Parser ignores newlines as well as whitespace in between XML nodes.
  • Don't encode single or double quotation marks in XML
  • Added general purpose validation code to be used by auto-generated validate() functions in aws-sdk-swift.
  • Added AWSShape.idempotencyToken() for auto-generating idempotency tokens.
  • Added support for OpenSSL 1.1 while still supporting earlier versions.
  • New me-south-1 region is available.
  • Added the ability to edit response bodies before they are decoded into an AWSShape.

v3.1.1

19 Jul 01:20
80cc521
Compare
Choose a tag to compare

Adam Fowler:
XML: If text is completely white space don't add a text node

v3.1.0

12 Jul 16:35
cfaa153
Compare
Choose a tag to compare

Adam Fowler:
Use Codable for serializing XML requests and parsing XML responses
Using query encoder for ec2
Added xmlNamespace to the root payload xml element when required
Only add a body to an AWSRequest if there are shape members that are included in the body
Store Timestamp internally as a Date
Add DictionaryEncoder and use this when encoding JSON payloads
Decode JSON dictionary data as base64
Add encoding hints for serializing arrays and dictionaries. Hints include naming of XML, query elements and whether container is flattened
Percent encode more characters in query body
Add code for ec2 to flatten all arrays, regardless of encoding hints
Added regions ap-east-1, eu-west-3 and eu-north-1
Updated core XML loader

giginet:
Avoid warning on Xcode

v3.0.1

19 May 22:28
Compare
Choose a tag to compare
  • return Future instead of Void so clients can chain off the response and catch errors
  • normalize status code valdiation validate status code on methods with no response