- auth: fix credential decoding
- Fixing the WebAuthn integration tests (#3933)
- auth: add localized description to AWSCognitoAuthError (#3929)
- auth: use auth flow type correctly from amplifyconfiguraiton.json (#3928)
- amplify-xode: updated to support Xcode 16 (#3925)
- Adding visionOS support to the WebAuthn APIs (#171)
- auth: adding an initial passwordless integration test with resources defined (#163)
- auth: adding passwordless sign in preferred flows (#162)
- auth: add support for passwordless sign up and auto sign in (#160)
- WebAuthn: Adding support for retrying a confirmSignIn with WebAuthn request, if the first one fails (#158)
- Auth: Adding WebAuthn support to signIn and confirmSignIn APIs (#155)
- auth: add passwordless sign with otp (#151)
- Auth: Adding WebAuthn APIs (#153)
- auth: adding support for email mfa (#3892)
- auth: fix resolvers and tasks for auto sign in when state machine is in signing in state (#172)
- Fixing service errors being reported as .unknown when sign in fails (#170)
- Fixing build errors in watchOS/tvOS due to missing prechecks.
- Fixing build issue when iOS 18/macOS 15 are not installed
- auth: adding support for email mfa (#3862)
- adding vision os preview (#3898)
- Logging: adding internal configure auth hub event listener to fix logging race condition (#3899)
- auth: return configuration error upon invalid redirect URI in hosted ui (#3889)
- predictions: region handling for creating correct streaming endpoint from region (#3880)
- api: add support for GraphQL filter attributeExists (#3838)
- api: append auth info as head fields for appSync realtime handshake request
- Storage: Removing testable import on UploadPartInput extension (#3878)
- Core: Updating to AWS SDK for Swift 1.0.0 (#3858)
- Storage: Implementing support for multiple buckets (#3839)
- analytics: iterate sqlite rows with failableNext (#3857)
- Add AppSync components (#3825)
- auth: clear credentials values only if namespacing has changed (#3827)
- api: storing cancelablles with actor methods in AppSyncRTC (#3824)
- predictions: add web socket retry for clock skew (#3816)
- api: propagate connectionLost error from websocket client to sync engine (#3800)
- Storage: Adding subpath strategy to the List operation (#3775)
- core: update privacy info (#3777)
- data: Gen2 hasOne associatedFields compile issue (#3700)
- Auth: Throw error if hosted UI is not presented during sign out (#3769)
- Auth: Resolve AuthZ state correctly when in error state (#3762)
- core: remove InternalAmplifyCredentials from products (#3750)
- Auth: Adding credentialsProvider to Cognito clients (#3745)
- resolve strict concurrency errors (#3731)
- datastore: reconnect the AppSyncRealTimeClient once connection is stale (#3734)
- datastore: refactor datastore category to use APICategoryGraphQLBehavior (#3666)
- ci: update unstable release file path in CI scripts (#3737)
- logging: logLevel
.none
should not produce logs (#3728)
- datastore: change OutgoingMutationQueue use TaskQueue for state transitions (#3720)
- Auth: Fix Hosted UI continuation error (#3715)
- Updating SQLite.swift to 0.15.3 (#3655)
- API: pass authMode used for lazy loading functionality (#3690)
- predictions: update liveness websocket send event to be synchronous (#3693)
- auth: configure with standardAttributes snake case values (#3686)
- datastore: memory leak in ModelSyncedEventEmitter (#3675)
- auth: Using a custom Foundation-based HTTPClient for HTTP Requests (#3582)
- Auth: Add keychain logging for better debugging (#3669)
- core: potential memory leak in WebSocketClient (#3624)
- auth: gen2 config oauth domain (#3663)
- Updating to SQLite.swift 0.15.0 (#3659)
- Auth: Refactoring state machine logic to fix memory leak (#3613)
- storage: update Storage APIs with StoragePath parameter
- Storage: Adding integration tests for getURL, remove and list (#3584)
- Storage: Refactor list objects API to include
path
(#3580) - storage: update storage upload APIs to use storage path (#3574)
- Storage: Refactor GetURL API to include
path
(#3573) - storage: update storage download api (#3561)
- storage: refactor storage remove api by including path (#3571)
- storage: add new storage gen2 APIs (#3559)
- Auth: Fixing the Gen2 json configuration used by the Authenticator (#3647)
- storage: retrieve accesslevel before storage service (#3641)
- api: add authorizationMode to GraphQLRequest (#3630)
- all: Configure plugins with AmplifyOutputs (#3567)
- API: make sure unsubscribe is invoked when subscription cancelled (#3619)
- api: AWSGraphQLSubscriptionTaskRunner failing to cancel AppSyncRealTimeSubscription (#3615)
- Core: TaskQueue async execution (#3611)
- api: add collection type casting in swift 5.7 (#3602)
- Auth: throw correct error for an unknown session error (#3591)
- DataStore: Fixing a crash when attempting to create a model with a predicate. (#3600)
- API: implement AppSyncRealTimeClient and WebSocketClient with URLSession (#3575)
- api: add user-agent header to appsync websocket handshake request (#3586)
- Auth: Adding forceAliasCreation option during confirmSignUp (#3382)
- Logging: Updating the required reason API usage (#3570)
- DataStore: created and deleted model on one device appears as created on the other (#3554)
- predictions: Serialize the dispatch of web socket events (#3558)
- add collected data types to privacy manifests (#3531)
- DataStore: endless retry of mutation request when server responds with 401 error code (#3511) (#3512)
- amplify-xcode: Fixing errors during amplify pull (#3536)
- Update aws-swift-sdk dependency to 0.36.1 (#3519)
- DataStore: improve MutationEvent resiliency to interruptions (#3492)
- DataStore: pass DataStore source for API decoding (#3515)
- DataStore: serialize IncomingAsyncSubscriptionEventPublisher events (#3489)
- build: update code to build for xcode 15.3 beta 2 (#3506)
- Auth: Device name missing in FetchDevice API (#3508)
- auth: Removed dependency on oauth2 token for refreshToken and move to initiateAuth for hostedUI (#3497)
- build: update code to fix build in xcode 15.3 beta 2 (#3500)
- DataStore: auth plugin requirement for single auth rule (#3453)
- DataStore: retry MutationEvents on signed-out and token expired errors (#3487)
- ci: disable minimum build workflow on main branch (#3481)
- datastore: fix syncQuery for partial success-error responses and update retry mechanism for error codes (#3479)
- Auth: properly redacting session information (#3472)
- Auth: Fix multiple continuation resumes in hostedUI (#3466)
- Analytics: Updating session stop time for cached events. (#3405)
- Analytics: Making PinpointEndpointProfile a struct. (#3457)
- datastore: update pending mutation events version from mutation response (#3452)
- datastore: sync pending mutation events with latest synced metadata (#3377)
- DataStore: watchOS subscription disabled configuration value (#3432)
- use non-failable UTF8View Data init when converting from String (#3430)
- DataStore: Add 'weak self' to prevent retain cycles in OutgoingMutationQueue (#3429)
- datastore: store time zone info in Temporal.DateTime (#3393)
- Auth: add DefaultLogger conformance to remaining auth task (#3413)
- datastore: observequery local only collect (#3214)
- Auth: Add logging to Amplify Auth tasks (#3365)
- datastore: full sync when sync predicate changes (#2757)
- Auth: Rename resendConfirmationCode API for User Attributes to sendVerificationCode (#3384)
- Auth: Adding network preferences (#3379)
- Analytics: Fixing session duration being reported for non-stopped sessions. (#3403)
- DataStore: DisableSubscriptions flag for watchOS (#3368)
- appsync-realtime-client 3.1.2 watchOS support (#3395)
- storage: Fixing watchOS crash when dealing with big files (#3389)
- DataStore: Store larger than 32-bit values in Int64 over Int (#3367)
- Auth: Moving HostedUI continuations to one place (#3363)
- DataStore: Reconcile mutation responses from conflict handler path (#3370)
- Auth: Add underlying error details to session error (#3364)
- refactor keychain errors (#3354)
- update swift sdk dependency to 0.31.0 (#3351)
- datastore: multi auth rule for read subscription (#3316)
- Analytics: Fixing crash when attempting to submit events while a previous submission is in progress (#3331)
- bump swift sdk to 0.26.1 (#3333)
- Analytics: Handling certain auth errors as retryable errors (#3322)
- storage: include user-controlled metadata in upload requests (#3315)
- PushNotifications: Fixing .network error not being correctly reported (#3314)
- datastore: Add
isLoaded
public property in List+Model (#3296)
- storage: add metadata support to uploads (#3295)
- core: update swift sdk dependency version to 0.26.0 (#3248)
- datastore: filter authrules with invalid ownerfield (#3223)
- datastore: Continue initial sync if atleast one model syncs successfully and other models fail due to Unauthorized API error (#3224)
- datastore: call errorHandler in Sync operation when failure
- core: add Foundation HTTP client for watchOS / tvOS (#3230)
- Setting mininum watchOS version to 9 (#3229)
- change swift-tools-version to 5.7 (#3193)
- datastore: use unwrapped storageEngine to perform datastore operations (#3204)
- datastore: using URLProtocol monitor auth request headers (#3221)
- api: change request interceptors applying logic (#3190)
- logging: fix issue with logger namespace not being set (#3213)
- datastore: wrap failures to result when applying remote update events (#3187)
- logging: create log file if it doesn't exist (#3202)
- PushNotifications: Adding missing escape hatch to the plugin (#3201)
- auth: add userID property to AuthSignUpResult (#3192)
- auth: hostedui extract error_description query pararm (#3183)
- Auth: Adding the ability to keep old preferred methods (#3189)
- Auth: Added TOTP support in Auth plugin (#3072)
- update user agent values to be consistent across plugins (#3178)
- core: update keychain setter for macOS (#3174)
- Auth: Refactor the expires in logic of the authentication result (#3114)
- logging: update flushlog to be blocking end to end (#3113)
- logging: delete logs when user identifier changes (#3110)
- logging: add CloudWatch Logging plugin (#3095)
- predictions: add method to send socket close frame (#3081)
- auth: Add OIDC support types & docs (#3064) (#3082)
- Add default reset implementation for Plugins (#3080)
- encoded key ordering (#3057)
- Adding support for tvOS and watchOS (#3051)
- datastore: support CPK sort key with AWS date types (#3020)
- datastore: support CPK with sortKey for GraphQL scalar types (#3012)
- predictions plugin public init (#3011)
- Auth: Pass client metadata to password verifier during SRP sign in (#2986)
- datastore: fix failed test cases for PR#2979 (#2988)
- datastore: wrap URLSession with validation state for test cases (#2979)
- datastore: fix sync with lazy references (#2907)
- Auth: Fixing keychain migration issue (#2978)
- datastore: extract mutation events handling out of periodic snapshot generate logic (#2971)
- Auth: Revert - fix(Auth): Use correct queries when getting and setting keychain items (#2975)
- Auth: Use correct queries when getting and setting keychain items (#2965)
- auth: deprecate AWSAuthSignInOptions.validationData (#2955)
- storage: Added support for AWSStorageGetURLOptions.validateObjectExistence
- datastore: stop datastore plugin only stops syncEngine (#2942)
- liveness service error reporting (#2937)
- upgrade to aws-sdk-swift version 0.13.0 (#2783)
- Auth: Fixing throwing of AuthError when Authorization fails during signIn (#2905)
- storage: foreground upload speed (#2925)
- predictions: add predictions v2 (#2902)
- Auth: Fixing handling of service SdkError in Auth tasks (#2859)
- predictions: make predictions plugin init internal (#2855)
- liveness: add session + websocket client (#134)
- liveness: add spi models (#132)
- predictions: add support for sigv4 signing (#130)
- predictions: EventStream Encoding and Decoding Support (#129)
- liveness: misc minor changes (#135)
- storage: Ensure progress from Amplify.Storage.uploadFile completes
- storage: Add pagination support.
- datastore: detect duplicate mutation event by both modelName and modelId (#2834)
- Auth: Adding ASF DeviceId as an input for Cognito APIs (#2833)
- PushNotifications: Checking if there is a Provisioning Profile with the APS Entitlement in order to determine the ChannelType (#2824)
- datastore: swap
like
forinstr
in sql queries (#2818) - storage: update storage to support downloading if a file already exist locally (#2825)
- Auth: Sign out when user does not exist during delete user task (#2812)
- datastore: add notContains query operator (#2789)
- Auth: Adding missing Authorization header when a Client Secret is defined. (#2807)
PushNotifications: Add Amplify Push Notifications category and AWSPinpoint Push Notifications plugin. (#2794)
The Push Notifications category allows you to integrate push notifications in your app with Amazon Pinpoint targeting, campaign, and journey management support. You can segment your users, trigger push notifications to your app, and record metrics in Pinpoint when users receive or open notifications. We use Amazon Pinpoint since it helps you to create messaging campaigns and journeys targeted to specific user segments or demographics and collect interaction metrics with push notifications.
- api: Remove optional cleanUp() method from AWSAPIPlugin.reset() (#2585)
- datastore: mutation event got ignored while executing parallel saving (#2781)
- upgrade to aws-sdk-swift v0.6.1 (#2774)
- auth: Build failure due to typo in device binding (#2719)
- auth: Device binding add retry incase of device not found (#2699)
- auth: Pass deviceMetadata in RespondToAuthChallenge for signIn challenges
- auth: Remove static deviceMetaData in auth flow (#2694)
- api: build selection set bottom up (#2763)
- DataStore and API Lazy Loading with Custom Selection Set (#2583)
- test: DS transformer V2 tests should be update mutation on existing model (#2753)
- test: compare model identifier for deletion events (#2752)
- datastore: load hasOne and belongsTo lazy reference with composite key (#2737)
- DefaultModelProvider return nil from not loaded state (#2746)
- CPK uni-directional has-many lazy list load (#2730)
- do not set nil values for create mutation graphQL input translation (#2701)
- Add missing PropertyPath types double and int (#2689)
- datastore: observe API mutation event decode to model successfully (#2684)
- api: add default user-agent header to API subscription requests (#2709)
- auth: Delete user api get stuck on no network (#2656)
- auth: Unblock fetchAuthSession call during a signIn flow (#2687)
- API: remove encoding step before feeding request to signer (#2666)
- api: Update url cache for storage and api to nil (#2647)
- datastore: skip has-many model to graphQL translation (#2661)
- auth: Return session expired on revoke token (#2652)
- core: Add proper handling of expired credentials (#2637)
- Add missing integration test scheme for Storage and Analytics (#2646)
- Change Integration Test Github action to run only integration test scheme (#2645)
- upgrade to aws-sdk-swift v0.6.0 (#2620)
- auth: Enable retrying when confirm signIn fails (#2617)
- auth: Remove parallel event that move auth plugin to an error state and other cleanups (#2612)
- auth: Enable signIn restart while another signIn is in progress (#2609)
- Auth: Adding Auth test cases for test harness (#2579)
- auth: Make the presentation anchor optional (#2545)
- Auth: Add correct validation for initial state when executing confirm sign in (#2587)
- Auth: Fixing deviceSRP auth flow during MigrateAuth (#2584)
- datastore: retry on subscription connection error (#2571)
- storage: Remove the async throws from the apis that return task (#2543)
- datastore: improve sync event error handling - cannotParseResponse (#2536)
- datastore: fix stop then start API call pattern (#2529)
- storage: Remove
async throws
from public apis that returns a task (#2543). The change avoids checking for error at two places and the api will become sync. Note: This change would break customer who use storage api and have Xcode setting to treat warnings as error.
- auth: Add secrethash to the resetPassword/resendSignUpCode (#2528)
- Analytics: Making connectivity errors to be retried indefinitely (#2497)
- Build failure in xcode 13.4 (#2498)
- Auth: Making improvements to federation flow (#2488)
- analytics: revert previous analytics limit commit (#2484)
- analytics: update pinpoint event attribute limits to match docum (#2474)
- Make AWSPluginsCore public (#2472)
-
Core:
- Updated all public apis to use the latest Swift concurrency features (Async/Await)
- Removed dependency from aws-sdk-ios from all plugins
- Cocoapods support is removed from v2.0.0
-
Analytics:
identifyUser(:withProfile:)
has been renamed toidentifyUser(userId:userProfile:)
- Removed support for different Analytics and Targeting regions
-
Predictions:
- Predictions plugin is currently unavailable for this version
-
Auth:
- Escape hatch apis for federation to Cognito Identity Pool
- Custom auth flow now support without SRP flow
- Supports user migration flow
-
Analytics:
- Pinpoint APIs available through the escape hatch
-
Storage:
- Migrated storage plugin from TransferUtility
- Auth: Mapping correct error when Device Operations fail due to user not signed in (#2023).
- api: AppSyncRTC 2.0.0 upgrade - Handle unauthorized connection (#1994)
- Auth: Handling proper error when attempting to change password fails due to an expired session. (#1995)
- datastore: stop sync engine on non-retryable errors to allow restart (#1901)
- datastore: query for missing optional associations (#1849)
- datastore: Test schema drift does not restart sync engine (#1868)
- datastore: create pointer to temporal lock (#1883)
- datastore: ModelSyncedEvent dispatch consistency (#1823)
- DataStore: Temporal performance enhancements (#1760)
- DataStore: include table name inside quotes in SQL Update statement (#1824)
- auth: Add support for authType as runtime parameter (#1774)
- Auth: Fixing a typo in the Auth error message (#1782) (#1798)
- DataStore: retry on URLError.dataNotAllowed (#1791)
- DataStore: retry initial sync network failures from RemoteSyncEngine (#1773)
- auth: Add support of custom endpoint for CognitoUserPool (#1715)
- DataStore: Nesting DataStore integration tests (#1757)
- DataStore: Cascade delete sync from children to parent models (#1731)
- DataStore: DataStore.delete(modelType:where:) API (#1723)
- build: remove ungated >= Swift 5.4 features to allow building on Xcode 12 (#1737)
- analytics: Set pinpointConfiguration.debug on debug mode (#1689)
- DataStore: Reconcile locally sourced mutations while subscriptions are disabled (#1712)
- The escape hatch of Auth and Storage plugins now returns the underlying Swift SDK instead of AWSMobileClient and AWSTransferUtility.
- Logging category loglevel enum were moved to Amplify class extension to namespace them.
- Core: Amplify now directly depends on AWS SDK for Swift.
- Auth: Redesigned AWSCognitoAuthPlugin implementation using a state machine architecture. Internal dependency on AWSMobileClient is removed and the plugin directly depends on AWS SDK for Swift. The escape hatch now returns the underlying Swift SDK for Cognito UserPool and Cognito Identity Pool.
- Storage: Removed the dependency on AWSTransferUtility and improved the internal logic of AWSS3StoragePlugin implementation.
- update SQLite dependency to 0.13.2 (#1696)
- DataStore: Create SQLite indexes when setting up datastore (#1634)
- DataStore: Clear API should delete local store (#1685)
- API: DataRace - subscription cancel and OperationTaskMapper on reset (#1684)
- DataStore: Debugging - Access DB File path (#1678)
- DataStore: ObserveQuery InitialQuery empty modelIds set (#1663)
- DataStore: FatalError accessing SQLite connection (#1671)
- DataStore: add logging with model name for failed subscription request (#1665)
- DataStore: enable thread sanitzer, fix data races (#1656)
- auth: fix deleteUser Combine support (#1652)
- auth: handle errors returned from Social SignIn sessions (#1642)
- API: Set AppSyncRTClient log level from Amplify log level (#1637)
- Handle .all predicate for create/update (#1640)
- datastore: Add DateTime, Date, Time, Int, Float, Enum field in indexes to GraphQL input correctly for mutations (#1612)
- auth: handle deleted account when fetching signed in session (#1604)
- auth: add deleteUser API (#1598) [skip-ci]
- auth: add deleteUser API (#1582)
- Update AWS SDKs to 2.27.0 (#1596)
- datastore: quote table name in create table-references SQL statement (#1485)
- AWSPluginsCore: Add non-blocking methods to AWSAuthServiceBehavior / deprecate existing blocking methods (#1502)
- API: Memory leak in GraphQLOperation (#1562)
- Storage: Use async getidentityid (#1544)
- Storage: Add async resolvePrefix (#1539)
- datastore: fix owner based subscriptions queries w/ multiauth (#1553)
- auth: Update the Auth plugin to enforce ordering of api calls (#1549)
- DataStore: Remove from snapshot when item no longer matches predicate (#1522)
- Core: Supports SwiftUI by not running
Amplify.configure
while running for Previews #1509
- Geo: Add Amplify Geo Category. Amplify Geo provides APIs for mobile app development such that you can add maps and search to your app with just a few lines of code.
- DataStore: support predicate evaluation on model with Enum (#1516)
- DataStore: clear ModelSyncMetadata on duplicate ids found (#1515)
- DataStore: Allow different model types with the same ID (#1490)
- DataStore: ModelSyncedEventEmitter event order (#1494)
- Support new list name pluralization (#1451)
- DataStore: Optimize mutation event propagation after model synced in ModelSyncEventEmitter (#1479)
- datastore: Fixes SPM build error due to missing import Foundation in SyncEventEmitter.swift (#1481)
- auth: Replace force unwrap to throw an error in AWS credentials (#1476)
- DataStore: ModelSyncedEvent before last MutationEvent (#1472)
- DataStore: Reconciliation path avoid model.modelName (#1475)
- DataStore: Improve ObserveQuery for multiple sort input (#1464)
- DataStore: Fallback when missing auth rule providers to API requirements (#1465)
- DataStore: ObserveQueryOperation missing import for SPM (#1470)
- DataStore: ObserveQuery API (#1422)
- datastore: require auth plugin if provider is nil in sync-requirements (#1461)
- datastore: Sync engine fallback to API plugin config (#1460)
- DataStore: Avoid model name from mutation sync in ModelSyncedEventEmitter (#1454)
- Storage: AWSS3PluginPrefixResolver (#1277)
- Logging: fix concurrency issues with logLevel (#1431)
- Datastore: Consecutive Updates (Save, Sync, Update and Immediately Delete Scenario) (#1407)
- DataStore: ReconcileAndLocalSave schedule on internal queue (#1415)
- Update AWS SDKs to 2.25.0 (#1395)
- DataStore: add missing SQLite3 import (#1368)
- DataStore: storage engine doesn't need auth plugin for api key (#1366)
- Datastore: consecutive updates nil version scenario (#1333)
- DataStore: Various mutation sync fixes (#1355)
- DataStore: do not send completion event to publisher on DataStore.clear() and DataStore.stop() (#1273)
- Fix data store mutation when restoring network (#1345)
- DataStore: drop failed constraint violation reconciliations (#1321)
- support for lambda authorizer (#1334)
- amplify-xcode: add files to primary target (#1313)
- DataStore: dynamic model support for cascade delete (#1296)
- datastore: multi-auth support (#1260)
- datastore: initalSync should be successful in case of unauthorized errors (#1299)
- api: fix querystring encoding according to AWS SigV4 (#1068)
- GraphQLBuilder use model name from schema instead of model (#1292)
- api: interceptors refactoring (#1247)
- Model: Apply codegen changes test models (#1145)
- DataStore: Multiple models ReconcileAndLocalSave transaction (#1237)
- datastore: support for @auth provider attribute (#1258)
- datastore: support mutation (deletion) with custom primary keys (#1228)
- increase sync concurrency count based on associations (#1267)
- Quote table names in CreateTableStatement (#1233)
- DataStore: redundant local metadata query in ReconcileAndLocalSaveOperation (#1217)
- DataStore: log metrics for ReconcileAndLocalSaveOperation (#1215)
- Pass additional info in signIn next step (#1201)
- API: Reachability resolve to GraphQL API (#1167)
- auth: pass public challenge parameters in nextstep when authenticating with custom challenge
- SQLLite dependency exact 0.12.2 version (#1199)
- AppSyncRealTimeClient dependency up to next major (#1198)
- Update SDK to 2.24.0 and add override in AmplifyAWSServiceConfiguration (#1184)
- datastore: support for readonly fields (#1133)
- Throw error when plugin added post-configure (#1150)
- API: Subscriptions with IAM match signed headers (#1139)
- Amplify iOS can now be installed via Swift Package Manager. See the README for full details. (#1146)
- DataStore: remove reconcile operations serially (#1137)
- datastore: fix selective sync expressions to run DDB query when possible (#1100)
- DataStore: Reconcile and save serially (#1128)
- auth: handle tooManyRequests and limitExceeded separately in AuthErrorHelper (#1122)
- datastore: process OperationDisabled error (#1104)
- amplify-xcode: generate JSON schema (#1080)
- API: Return response body for non-2xx failure cases (#1076)
- auth: update warn to log for identity pool config (#1081)
- Amplify/Tools pod is currently deprecated and it will be completely removed in a future release. For now, Xcode will emit a deprecation warning if your project invokes AmplifyTools in a custom build phase.
- Support lazy load and pagination for API (#1009)
- Separate DataStore List logic out to list provider (#1000)
-
Auth: Fix cancelling hostedUI returning a generic error (#982).
When a user cancels the sign in flow from
Amplify.Auth.signInWithWebUI
, the callback will now deliver an error of typeAuthError.service
, with an underlying error ofAWSCognitoAuthError.userCancelled
. Previously, the error was aSFAuthenticationError.canceledLogin
. TheAuthError.service
error type will be returned regardless of whether the underlying HostedUI operation was performed via an SFAuthenticationSession or an ASWebAuthenticationSession.You can detect the user cancellation case by
switch
ing on the error, as in:switch result { case .success: print("SignOut") case .failure(let error): if case AuthError.service(_, _, let underlyingError) = error, case .userCancelled = (underlyingError as? AWSCognitoAuthError) { print("User cancelled") } }
-
Auth:
Amplify.Auth.signInWithWebUI
now automatically usesASWebAuthenticationSession
internally for iOS 13.0+. For older iOS versions, it will fall back toSFAuthenticationSession
. This release also introduces a newpreferPrivateSession
flag toAWSAuthWebUISignInOptions
during the sign in flow. IfpreferPrivateSession
is set totrue
during sign in, and the user's preferred browser supportsASWebAuthenticationSession.prefersEphemeralWebBrowserSession
, the user will not see a web view displayed when they sign out.Amplify.Auth.signInWithWebUI(presentationAnchor: self.view.window!, options: .preferPrivateSession()) { ... }
- AWSAPIPlugin: Update dependencies to consume AppSyncRealTimeClient race condition fix (#1038)
- datastore: delete model with predicate (#1030)
- DataStore: Generate mutation events for associatedModels (#987)
- DataStore: support for QueryPredicateConstant.all for graphql queries (#1013)
- Model: retrieve correct associated target name (#965)
- DataStore: QueryPredicate translation (#961)
- refactor GraphQL response decoder (#971)
- add blog post comment schema and tests (#970)
- Auth: Dismiss empty UIViewController (#947)
- Add plugin conformances to AmplifyVersionable (#941)
- predictions: use string's unicode scalars view to compute indexes for Comprehend results (#904)
- Predictions: Callback is not triggered with URLError (#896)
- amplify: DataStore query fix column missing issue for @connection hasMany schema (#885)
- add targetName to hasOne relationships (#926)
- API: Fix unstable AWSAPICategoryPluginResetTests.testReset() (#937)
- datastore: selective sync on initial sync & incoming subscription models (#884)
- DataStore: Start/Stop implementation (#919)
- Note: In previous releases, the DataStore sync engine was started automatically on
Amplify.configure()
. With this release, the DataStore sync engine does not start onAmplify.configure()
. More information can be found in the documentation here.
- Note: In previous releases, the DataStore sync engine was started automatically on
- API: subscription cancel unit test failing intermittently (#927)
- auth: Fix an issue where the fetchAuthSession callback is called twice (#922)
- DataStore: SyncMutationToCloudOperationTests thread sanitizer bug (#915)
- Predictions: Avoid Multiple Rekognition Error Return (#910)
- Predictions: Fix of PredicationPlugin unit tests (#903)
- Use correct category plugins to populate dev menu (#897)
- DataStore: Nested query predicates are not stored properly (#905)
- Designate SwiftUI a weak_framework in podspec (#892)
- DataStore: failed subscriptions lead to instability in sync engine (#889)
- amplify: change reset method (#866)
- datastore: Fix regression caused by changing the public enum value (#883)
This version has been deprecated. Please use the latest release.
- dev-menu: add the Developer Menu to Amplify (#844)
- datastore: DataStore Hub events (#766) (#795)
- Core: use groupClaim in @auth rule for oidc (#847)
- API: Support for auth api oidc provider (#842)
- api: make sure collections are not in the gql input - fixes #828 (#837)
- replace fastlane warn method (#835)
- move AWSServiceConfiguration Platform extension (#832)
- auth category should throw AuthError instead of PredictionsError (#830)
- DataStore: Owner and Group Combined @auth (#817)
- auth: rename conflicting name AWSAuthService to AWSCognitoAuthService (#824)
- datastore: Keep DataStore sync engine running even if models subscriptions fail (#815)
- auth: Dismiss UI first before sending callback for HostedUI (#820)
- Core: support for custom identity claim (#813)
- Parse and surface returned subscription @auth errors (#810)
- Core: support identityClaim "sub" (#794)
- DataStore: owner based auth, read operations (#788)
- Data race in AWSModelReconciliationQueue (#790)
- Remove unused RepeatingTimer (#786)
- Support Xcode 12 (#779)
- datastore: Dispatch outboxMutationEnqueued, outboxMutationProcessed events (#759)
- Remove enableThreadSanitizer flag from test invocation (#783)
- Add #if swift check for Combine publishers (#775)
- DataStore: Dispatch outboxStatus, subscriptionsEstablished, syncQueriesStarted events (#721)
- DataStore: Fix publishing events from model reconciliation queue (#756)
- Core: Fix default operator outside of guard statement (#752)
- Auth: Updated AWS SDK dependencies to fix crash during
federatedSignIn
(#640) - API: Add custom 'items' deserialization for List (#711)
- Fix typo in iOS Combine docs (#747)
- Propagate @discardableResult to implementations (#719)
- auth: Add metadata options for passing clientMetadata to APIs (#700)
- Add Combine support (#667)
- Mark APIs that return operations with @discardableResult (#633)
- Add AmplifyConfiguration file-based initializer (#707)
- Predictions: rowIndex and columnIndex for cell (#704)
- predictions: TABLE, CELL & KEY_VALUE_SET blocks are not properly processed (#660)
- api: cognito user pool intercept with accessToken (#690)
- Update AppSyncRealTimeClient dependency (#683)
- auth: missing initializers for AWSAuth*Options (#658)
- storage: delete file if key not found on download (#652)
- Fix cancellation logic for AWSGraphQLSubscriptionOperation (#650)
- Plugins that are not configured correctly will be error at initial step (#642)
- Datastore: paginationInput not passed down in query (#647)
- auth: Fix an issue that prevents signInWithWebUI to present over a presenting vc (#635)
- auth: User pool token, user sub should be returned for signedIn user with no identityPool config (#632)
- DataStore E2E Integration Tests (#596)
- Auth updated the AWSMobileClient version to 2.14.0 to fix a crash related to nil user pool client (#592)
- Auth Fix issue in auth configure where it fails if one of the Cognito services is not present. (#586)
- Auth Signout will completely delete the session in webui (#542)
- Core Fix plugin configuration validation (#543)
- DataStore Fixed a DataStore issue where lazy
List<M>
initialization would fail for relationships 3+ levels deep (#534) - DataStore Model schema updates clears local database on configure (#551)
- DataStore/API Add Emeddable type to
Model
internals, to store schema info for custom types (#539 and #562). This bug impacts developers with schemas containing embedded types when using DataStore with sync to cloud enabled or using API with Model classes. To fix this bug, upgrade both Amplify CLI to 4.22.0, and Amplify Libraries to 1.0.2. There is a known incompatibility if only upgrading CLI but not the Library. Then runamplify codegen models
to regenerate the Model classes. The internal ModelFieldType.customType
has been replaced with.embedded(type:)
andembeddedCollection(of:)
. - Tools Update Amplify tools script to resolve node correctly when NVM is installed (#535)
- Tools Update Amplify tools script to resolve min CLI version for codegen changes (#583)
- Build Add common dependency configuration, standardize environment across all modules, podspec source version tag and url (#538)
- Build Update CoreML podspec with amplify version (#555)
- Build Fix
pod lib lint
error using local variable definitions in Podspec files (#557) - Build Changed the repo's default branch to 'main' (#579)
- Core Move DataStore Model Schema related classes to Internal directory (#563)
- DataStore: Fixed a DataStore issue where nested associations that were 3 levels or more deep would fail to decode into the Swift models (#520)
- DataStore: Support all Temporal types in predicates (#513)
- API: Fixed a problem with the selection set that is generated for a Model containing a connection to another Model (#509)
- API: Fixed a bug with nil value not updated in GraphQL model value to nil (#519)
- API: Fixed QueryPredicate to GraphQLValue logic, missing Temporal.DateTime conversion (#508)
- Tools: Allow Amplify tools to run if the project folder has a space char (#506)
- Tools: Update Amplify tools script to check for minimum version of amplify-app and amplify cli (#511)
- Fixed build errors for fresh installation of Amplify pods (#517)
- Updated Datastore models for testing. (#526)
- Integration test for Auth (#497)
Misc cleanup, improved test coverage from RC1:
- API: Added SocialNote from codegen (#469) (79c6482)
- Auth: Hub events for signedIn signedOut and sessionExpire (#457) (38e0513)
- Auth: Implementation of getCurrentUser api (#455) (59f6b18)
- Core: bootstrap Auth configuration before other categories, and fixed analytics integration tests (#475) (c33bf1b)
- DataStore: StartSync with Auth (#471) (7cab76f)
- The
AsyncEvent
type has been removed. Listeners to most Amplify APIs will now be invoked with standard SwiftResult
s. APIs that deliver multiple values over time also include an "in process" listener. - Auth category error type is changed to
AuthError
. Current implementations that make use ofAmplifyAuthError
will break with build time error.- As part of this work, we deleted
AuthError
in the Storage category.
- As part of this work, we deleted
-
Added Auth category
-
Added AuthRule decorator to allow for granular ownership control of GraphQL models
-
Miscellaneous improvements to API semantics and ergonomics throughout
-
Increased test coverage throughout
-
Datastore now exposes configurable syncMaxRecords and syncPageSize (#388) (ca15e88)
-
[API] Merge non-GraphQL spec error fields into GraphQLError.extensions (#401) (b87811c)
-
Using config to decide base query or delta query (#386) (b02c3b7)
- amplify-tools:
- DataStore:
- Only start the remote sync engine if we have awsapiplugin (#442) (532058a)
- Bug where subscription connections happen at the same time (#389) (81e6111)
- Clear inProcess state on startup of outgoing mutation queue (#391) (352680b)
- Mark outgoing mutation as inProcess if nextEventPromise exists (#392) (3986cf5)
- Predictions
- Added the ability to transcribe text for both online and offline use cases. PR #290
- API
- DataStore
- DataStore.save() now supports passing in condition. PR #355
- Added reachability and retryability to remote sync engine. PRs #321 #322 #323 #324
- Datastore.delete(modelType) with predicate. PR #346
- Datastore.clear() async to remove local datastore. PR #353
- Add pagination support to DataStore. PR #365
- Add support for Enum and non-model types. PR 334 Issues #111 #240 #246 #318 #314
- DataStore
- Fix out of bounds case when retry handler >= 57. PR #338
-
General
- AWS iOS SDK Dependency upgrade to 2.13.x. PR #360
-
API
- Adding amplify specific user agent, revival of PR#166 (#271)
- API
- DataStore
- Storage
- Reprovision Storage Integration test backend (#256)
Initial release! Includes Core features, plus support for these categories:
- Analytics
- API
- DataStore
- Predictions
- Storage