Skip to content

Releases: soto-project/soto-core

v5.0.0 Beta 2.0

06 Oct 15:53
1287ab0
Compare
Choose a tag to compare
v5.0.0 Beta 2.0 Pre-release
Pre-release

Major version changes

  • AWSService.signURL no longer has a default for the expiration time expires. It has also been changed to a NIO.TimeAmount from a integer. PR #373
  • Removed Date wrapping struct Timestamp. Dates are now decoded based on service protocol. This can be overidden with a DateFormatCoder property wrapper. PR #383
  • Renamed Coding to CustomCoding, OptionalCoding to OptionalCustomCoding. PR #376
  • Renamed DefaultArrayCoder to StandardArrayCoder, DefaultDictionaryCoder to StandardDictionaryCoder. PR #376

Minor version changes

  • Add ability to include headers when generating a signed URL. When you use the URL you will need to supply the exact same headers. PR #367
  • Added AWSService.with which creates a new copy of a service with edited values. Values you can edit include middlewares, timeout, byteBufferAllocator and options. PR #377
  • Region now conforms to Codable. PR #375

Patch version changes

  • Allow for JSON error messages with message key capitalized. This fixes issue with Lambda service errors being unhandled. PR #370
  • Improve performance of QueryEncoder. PR #380
  • Run benchmarks on all PRs. PR #381

v4.7.1

21 Sep 07:57
45d9208
Compare
Choose a tag to compare

Patch version changes

  • Removes duplicate "/" in InstanceMetaDataServiceProvider request to avoid redirect. PR #371 from @t089

v5.0.0 Beta 1.0

18 Sep 07:42
c1e7f18
Compare
Choose a tag to compare
v5.0.0 Beta 1.0 Pre-release
Pre-release

AWS SDK Swift has been renamed to Soto

Major version changes

  • AWS SDK Swift Core has changed name and is now called SotoCore. The package name is "soto-core".
  • Body.json now holds a ByteBuffer instead of Data. PR #350
  • Add offset function parameter to AWSPayload.fileHandle. PR #352
  • Add 'context' parameter to AWSServiceMiddleware.chain() functions
  • AWSClient.signURL use HTTPMethod instead of a String for the http method.
  • Renamed TimeStampFormatterCoder to TimeStampFormatCoder and made it internal. PR #364

Minor version changes

  • AWSClient.HTTPResponseError is now public. This eases the writing of custom RetryPolicy objects.
  • Added AWSService a protocol for AWS services which provides helper vars to access the service region, endpoint and eventLoopGroup and a function for signing a URL for use by the service. PR #347
  • Added ByteBufferAllocator to AWSServiceConfig to be used throughout AWSClient. PR #351
  • Add pagination functions that include a test for a moreResults flag.
  • Add support to TimeStampFormatCoder for multiple time formats and add both with millisecond and without millisecond formats to the ISO8601TimeStampCoder. PR #364
  • Make AWSPayload.size public

Patch version changes

  • Provide common internal execute function used by all the public execute functions. PR #349
  • Fix bug in DeferredCredentialProvider where credential can be accessed and written at same time. PR #357
  • Add Glibc import at top of Expat.swift to aid cross compiler compilation
  • Tilda expansion for config file loading on macOS sandboxed apps expands to the home folder, instead of folder inside container. PR #361 from @sebsto
  • Fix v4 signer issue when the URL ends in a slash. This fixes signing issue for Lambda.ListFunctions. PR #363

v5.0.0 Alpha 6.0

20 Aug 17:18
Compare
Choose a tag to compare
v5.0.0 Alpha 6.0 Pre-release
Pre-release

Major version changes

  • Use AsyncHTTPClient for macOS and iOS builds. This requires v1.2.0 of AsyncHTTPClient. NIOTSHTTPClient has been removed from the project. PR #339
  • Use Expat for XML parsing. This allows us to remove our dependency on FoundationXML. PR #342
  • Add RetryPolicyFactory setup in similar manner to the CredentialProviderFactory. Allows you to choose RetryPolicy using dot notation eg AWSClient(retryPolicy: .jitter(), ...). Also allows us to remove a number of public symbols. PR #323
  • AWSClient.ClientError is now a struct. PR #338
  • Add progress callback to AWSPayload.fileHandle. PR #334
  • Replace HTTP method string with enum NIOHTTP1.HTTPMethod. PR #329
  • Add logging to AWSClient. Pass in a swift-log Logger to output log information. PR #330, #331, #332
  • Partition renamed to AWSPartition
  • PayloadOptions renamed to AWSShapePayloadOptions. PR #322

Minor version changes

  • Add AWSClient.credentialProvider.shutdown() to shutdown AWSClient asynchronously. PR #327, #333
  • Add HTTP client timeout value to AWSServiceConfig. PR #328
  • Added ap-northeast-3 (Osaka Local) region.
  • AWSClient.credentialProvider is now public.

Internal changes

  • Use SwiftFormat for code formatting.

v4.7.0

13 Aug 07:56
Compare
Choose a tag to compare

Add Region ap-northeast-3 (Asia Pacific (Osaka-Local))

v5.0.0 Alpha 5.1

18 Jul 06:53
Compare
Choose a tag to compare
v5.0.0 Alpha 5.1 Pre-release
Pre-release
  • Use full .package() enum in Package.swift for swift-crypto package. This appears to resolve issues with latest version of swift 5.3

v5.0.0 Alpha 5.0

06 Jul 07:11
42e0f0e
Compare
Choose a tag to compare
v5.0.0 Alpha 5.0 Pre-release
Pre-release

Major version changes:

  • AWS Service configuration data is now stored in a AWSServiceConfig class.
  • Renamed AWSClient.send methods to execute. PR #309 from @Ro-M
  • AWSClient no longer owns the service configuration data. This is passed to the AWSClient in the execute methods. This allows us to separate the client from the services and have one client serving multiple services. PR #309 from @Ro-M
  • AWS Credentials are supplied via a CredentialProvider. Possible credential provider parameters are static: provide credentials directly, environment: from environment variables, ec2: from EC2 metadata, ecs: from ECS metadata, configFile: from ~/.aws/credentials file, empty: no credentials or selector: choose from a list of credential providers. If you don't provide a CredentialProvider the default is .selector(.environment, .ecs, .ec2, .configFile()). PR #258, #303, #314, #318, #306
  • Added support for streaming response payloads. This is only available if you are using AsyncHTTPClient though. PR #236
  • Added AWSClient.syncShutdown() to shutdown HTTPClient and any active CredentialProviders. It is required to call this before deleting the AWSClient. PR #293
  • Move XML code to separate target AWSXML. PR #271
  • Removed AWSMemberEncoding.encoding. Raw payload flag is now OptionSet entry PayloadOptions.raw. PR #294
  • AWSRequest uses NIO HTTPHeaders instead of a dictionary for headers. PR #301
  • AWSPayload.stream returns a StreamReaderResult instead of a ByteBuffer. Instead of returning an empty ByteBuffer to indicate the stream is done you now return .end. PR #316

Minor version changes:

  • S3 streamed requests are now signed. PR #277
  • Moved AWSClient.validate and AWSClient.createError to AWSResponse. PR #295
  • Moved AWSClient.createAWSRequest into AWSRequest.init. PR #296 from @Ro-M
  • AWSTestServer and TestUtils have been moved to separate target AWSTestUtils. PR #271
  • Requests are always signed using Authorization header. PR #272 by @Ro-M
  • Retry time calculation is more in line with aws-sdk-go sdk. PR #282
  • Set User-Agent header to "AWSSDKSwift/5.0". PR #288
  • Add port to host header. PR #291
  • Run middleware on AWSResponse in AWSClient.createError

Patch version changes:

  • The list of characters allowed in queries has been edited to be inline with AWS docs. PR #281
  • Replace all usages of String.components with String.split. PR #286
  • Provide better error messaging when we get an unparseable error. PR #287
  • Fixed crash when XML parser returned no XML.
  • Fixed head uri for NIOTSHTTPClient. It is no longer the full path. PR #298

v3.5.2

03 Jul 10:20
10b174a
Compare
Choose a tag to compare

Encode Foundation Data as base64 when encoding queries. This fixes an issue with SES.SendRawEmail()

v5.0.0 Alpha 4.0

21 May 09:37
e0f7031
Compare
Choose a tag to compare
v5.0.0 Alpha 4.0 Pre-release
Pre-release

Major version changes:

  • AWSPayload is used for payloads in responses. PR #243
  • Use property wrappers to define how collections are encoded/decoded. PR #215
  • Added ability to stream request payloads. Added AWSPayload.stream which has a function that provides ByteBuffers to a request. Added AWSPayload.fileHandle which streams a file for a request.
  • Added support for all AWS partitions. This gives access to china and government regions. PR #242
  • Region is now a struct so we can add new regions without requiring a major version change. PR #246
  • Change AWSClientError and AWSServerError to structs so they can be extended without a major version change. Removed some service specific errors from them. PR #247
  • Renamed RetryController to RetryPolicy and defaulted it to JitterRetry which retries failed requests with a random wait time taken from an exponential increasing range.

Minor version changes:

  • AWSClient.httpClient is now public
  • Added TimeStampCoder property wrappers that enforces how a TimeStamp would be encoded/decoded. PR #249
  • Added RED (Request, Error, Durarion) metrics using swift-metrics. PR #245

Patch version changes:

  • Check for os Linux instead of availability of swift-crypto when chosing between which crypto to run.
  • Don't set Content-Type header if it is already set
  • Fixed issue with decoding empty XML arrays
  • Add query encoding specialisation for EC2. EC2 requires all query variables to have their first character capitalised. PR #253
  • Added iOS CI
  • Replace using ProcessInfo to get environment variables with the C function getenv. PR #257

v4.6.0

02 Jun 13:50
Compare
Choose a tag to compare
  • Upped swift-nio version package requirements to ensure we get swift 5.3 versions
  • Ensure EC2 labels all have their first letter uppercased