- feat(auth): add support for cognito oidc parameters in managed login (#6442)
- feat(auth): Added support for Android private browsing (#6336)
- feat(auth): Refresh token rotation (#6293)
- chore(all): Bumped Dart SDK to ^3.9.0 (#6306)
- fix(auth): handle fallthrough exceptions in sign out state (#6226)
- Minor bug fixes and improvements
- chore(all): Bump Dart SDK to 3.7.0 (#6026)
- Minor bug fixes and improvements
- feat(storage): add multi-bucket feature support (#5681)
- fix(aws_common): removed JS streamed requests (#5797)
- feat(auth, authenticator): Add support for Email OTP MFA (#5449) (#5472)
- feat(api): move App Sync subscription headers to protocol (#5301)
- fix(api): Reconnect WebSocket when resuming app from a paused state (#5567)
- fix(api): web socket error handling (#5359)
- feat(Auth): Add fetchCurrentDevice API (#5251)
- fix(datastore): Restart Sync Engine when network on/off (#5218)
- chore: bump json_annotation dependency to v4.9
- Minor bug fixes and improvements
- fix(api): GraphQLResponse.toString() include data & errors (#5079)
- fix(core): improve amplify configure api error message (#5021)
- fix(notifications): allow offline configuration
- fix: wait for in progress multi part uploads to cancel for
pauseandcancel
- feat: Support Amplify Gen 2 outputs (#5073)
- feat(datastore): Migrate to Amplify Swift V2 (#4962)
We are thrilled to release version 2.0 of the Amplify Flutter libraries to add support for Amplify Gen 2. Learn more about Amplify Gen 2 at https://docs.amplify.aws.
This release enables flexible storage paths when using Amplify Gen 2 Storage. This release also addresses several bugs that required breaking changes to resolve. See the change log below for the full list of updates.
If you are upgrading an existing project using Amplify Flutter v1 (created with Amplify Gen 1 CLI or a custom pipeline) please see the upgrade guide.
As always, you can find us on GitHub and Discord to answer any questions.
- chore(auth)!: remove deprecated auth types (#4764)
- fix(auth)!: regenerate cognito sdks to update signup operation for adding limit exceeded exception (#4781)
- chore(analytics)!: remove deprecated apis
- chore(api)!: Model .fromJson() Refactor (#4665)
- chore(api)!: Removed deprecated members … (#4772)
- chore(api)!: remove Model.getId() usages (#4774)
- chore(core)!: make asyncConfig internal
- chore(core)!: removed toJson fallback (#4793)
- feat(core)!: use plugin options for optional plugin parameters (#4762)
- feat(smithy)!: remove error match on http status code (#4750)
- feat(storage)!: Update storage APIs to accept
StoragePath(#4713) - feat(storage)!: move
delimitertoS3ListPluginOptions(#4773) - chore(storage)!: rename StorageNotFoundException (#4770)
- feat(api): Add attributeExists query predicate (#4134)
- fix(auth): Android Intent URI Query Parameter Parsing (#4546)
- fix(auth): map Lambda exceptions correctly (#4804)
- feat: deprecate
Storage.move()API (#4638) - feat: update
built_valueversion constraint (#4634) - feat: update plus plugins version (#4619)
- fix(api): Paginated GraphQL preserve request params (#4605)
- fix(api): Web socket decode connection errors (#4606)
- feat(api): add copyWith to GraphQLRequest (#4365)
- fix:
google.crypto.tinkversion constraint (#4434)
- chore(datastore): Amplify Swift version bump to 1.30.7 (#4454)
- fix(auth): forget local device only if matches (#4060)
- fix: Bumped built_value to ">=8.6.0 <8.9.0" and built_value_generator to 8.8.1
- fix: Bumped drift to ">=2.14.0 <2.15.0" and drift_dev to ">=2.14.0 <2.15.0".
- fix: Bumped path to ">=1.8.0 <2.0.0"
- fix(api): GraphQL Model Helpers support lowercase model names #4143 (#4144)
- fix(core): pub docs (#4049)
- fix(datastore): emit observeQuery snapshot when model create mutation results in an updated model (#4084)
- fix(core): pub docs (#4049)
- feat: rename sendUserAttributeVerificationCode (#3759)
- fix(analytics): allow nullable userProfile
- fix(auth): use loadCredentials to check login state
- fix(pub): ignore templates folder during analysis (#4009)
- fix(analytics): event client flush events to do not discard events from cache on auth exception (#3999)
- fix: catch and log updateEndpoint error during configure (#3985)
- fix(auth): Crash with EXC_BAD_ACCESS (#3657)
- fix(auth): Custom auth with device tracking, no SRP (#3652)
- fix(auth): Uncaught Hosted UI cancellation (#3686)
- fix: removed trailing slash at the end of uri (#3626)
- feat(auth): TOTP MFA
- fix(analytics): AWSPinpointUserProfile Added null check for user attributes (#3598)
- fix(auth): SDK exception mapping
- fix(auth): Pass
deviceKeyin custom auth challenge - fix(push): Deserialization from platform maps (#3557)
- fix(core): Cross-zone completion
- fix(auth): Remove
nonceusage (#3321) - fix(push): Incorrect handling of simple alert (#3502)
- perf(auth): Fetch auth session (#3510)
- feat(auth): Enable ASF
- feat(datastore): Adds DataStoreHubEventType to DataStoreHubEvents (#3454)
- fix(analytics): Disallowed unauth access
- fix(storage): list options pageSize and nextToken params got lost (#3291)
- fix(api): GraphQL subscription with custom domain formats URI correctly (#3148)
- fix(auth): Attribute key equality (#3136)
- fix(auth):
signOutafter user deletion (#3162) - fix(storage): API doc errors
- feat(storage): using path style URLs when bucket name contains dots
- fix(auth): User attribute serialization
- fix(datastore): support nested predicates for observe and observeQuery (#3029)
- Dart 3 support (must update Dart SDK constraint to
^3.0.0) - feat(core): add granular model read operations (#2611)
- fix(auth): Fetch AWS credentials after Hosted UI login (#2956)
- fix(auth): Transform network exceptions (#2967)
- fix: wait for addPlugin prior to configuration (#3018)
- fix(repo): Flutter 3.3 support
- fix(storage): API doc errors
- fix: convert AuthUserAttributeKey in updateUserAttributes
We are thrilled to release version 1.0 of the Amplify Flutter libraries!
This release introduces a full rewrite of the Amplify libraries in Dart, allowing you to build AWS cloud-connected applications on every platform Flutter supports (iOS, Android, Web, macOS, Windows, and Linux).
If you've been using v0 in production, you can now safely migrate to v1. Check out our migration guide for more information.
As always, you can find us on GitHub and Discord to answer any questions.
- feat(notifications): implement push notification Flutter iOS module (#2707)
- feat(notifications): killed state notification handling and Analytics integration (#2747)
- feat(push): interfaces, category function and types added for push
- fix(auth): Cancel sign in (#2840)
- fix(core): formatting issues in notifications data types
- fix(notifications): Analytics naming updates, Android test fixes and token received bug fix (#2824)
- chore(analytics)!: Remove Analytics Prefix (#2753)
- chore(analytics)!: export endpointManager, redo exports
- chore(auth)!: send Pinpoint Endpoint id to Cognito
- feat(storage)!: update upload APIs options to add metadata field (#2815)
- fix(storage)!: make S3Exception internal
- refactor(auth)!: Remove generic types (#2804)
- refactor(core)!: Dependency management
- refactor(storage)!: rename checkObjectExistence to validateObjectExistence
- refactor(storage)!: simplify storage s3 exceptions throwing
- refactor(storage)!: storage category APIs to use category level plugin options (#2754)
- fix(api): Auth provider registration
- fix(api): Include owner field in selection set (#2795)
- fix(api): Support model definition target name (#2814)
- fix(api): Supported protocols should be set on base client only
- fix(auth): Always allow repeated
confirmSignInattempts - fix(auth): Client secret support
- fix(auth): Process sign-in events once
- fix(auth): User pool-only support
- fix(smithy): Add missing
@optionalAuthtraits - fix(storage): Use
reifyPluginOptionsas instance method - fix(storage): add handling of AWSHttpException
- fix(storage): remove unnecessary exception for resuming a canceled task
- feat(storage): add generic StorageOperationCanceledException in core
- feat(storage): add handling of non-ascii object metadata values
- feat(storage): make access level optional for storage APIs (#2793)
- feat(storage): promote StorageTransferState to amplify_core
- refactor(auth)!: Plugin options (#2691)
- fix(analytics): event retry logic & max fail tries (#2713)
- fix(auth): Always pass client metadata
- fix(core): Refine
toJsonoutputs whencreateFactory = false
- chore(auth)!: Chain stack traces in state machine
- chore(core)!: Chain stack traces for state machines
- feat(api)!: custom primary key support for GraphQL model helpers (#2606)
- fix(api): early call of Amplify creates wrong instance of AmplifyClass
- fix(api): write null values in ModelMutations.create() unless owner field (#2679)
- fix(auth): Transform session expired exceptions (#2688)
- fix(storage): GetUrl signing
- feat(api): GraphQL Subscription Where Filter (#2650)
- feat(storage): optimize part size for multipart upload
- feat(storage): web implementation of transfer database using local storage (#2631)
- fix(api): include parent IDs in selection set for model helpers (#2655)
- chore(auth)!: Change
AuthCodeDeliveryDetails.attributeKeyto be of typeAuthUserAttributeKey - refactor(auth)!: Make attribute update step an enum
- refactor(auth)!: Make reset password step an enum
- refactor(auth)!: Make sign-in step an enum
- refactor(auth)!: Make sign-up step an enum
- refactor(auth)!: Remove category->plugin indirection for
getPlugin - refactor(auth)!: State machine facade (#2482)
- feat(analytics): Use indexedDB on Web (#2600)
- feat(storage): enable pause and cancel APIs for download operations
- fix(api): Web Socket Multiple Requests Synchronously (#2567)
- fix(auth): Device tracking with alias
- fix(auth): Retry sign-in on
ResourceNotFoundExceptionfor device tracking - fix(auth):
federateToIdentityPooldiscrepancies
- fix(auth)!: Fetch Auth Session offline behavior (#2585)
- feat(analytics): Legacy data migration of Pinpoint Endpoint ID (#2489)
- feat(storage): allow configuring transfer acceleration
- fix(api): model helpers use targetNames in schemas with CPK enabled (#2559)
- fix(auth): Clear credentials before redirect on Web (#2603)
- fix(auth): Refresh token in non-state machine calls (#2572)
- fix(auth): SessionExpired Auth Hub event (#2609)
- fix(storage): incorrect transferred bytes emitted from upload task
- chore(auth)!: Remove
isPreferPrivateSessionfromCognitoSignOutWithWebUIOptions(#2538) - refactor(auth)!: Align exception types
- refactor(auth)!: Make SRP failures errors
- refactor(auth)!: Remove intermediate request types (#2475)
- refactor(core)!: Migrate exception types
- fix(api): Race condition at bloc close
- fix(auth): Add
no-storecache control header
- chore(auth)!: Make sign in result's
nextStepnon-null (#2462) - feat(api)!: Web Socket State Machine (#2458)
- feat(auth)!: Support partial sign out cases (#2436)
- feat(auth): Add user ID to
CognitoSignUpResult(#2437)
- fix(api): Missing query parameters in REST operations (#2413)
- fix(api): allow setting extra GQL request params from model helpers (#2423)
Three new categories have added support for Web + Desktop: API, Storage, and Analytics!
See our docs for guides on how to migrate to these new versions.
- chore(api,core): change API types (#2148)
- chore(storage): migrate interface and setup basic packages
- feat(api): GraphQL Custom Request Headers (#1938)
- feat(api): Subscription Reconnection (#2074)
- feat(api): authorizationMode property for GraphQLRequest (#2143)
- feat(core): add AWSFile cross platform file abstraction
- feat(storage): add custom prefix resolver support
- feat(storage): cancel SmithyOperation on upload file pause and cancel
- feat(storage): expose operation control APIs for upload data operation
- feat(storage): revise list API interface and add excludeSubPaths parameter
- fix(api): correct subscription error handling (#2179)
- fix(api): fix model helper util on web (#2270)
- feat(core): AWS config file
- feat(auth): Federated sign-in
- feat(core): custom primary key supporting interface changes (#2141)
- feat(core): Multiple plugin registration
- fix(datastore): correct plugin configuration (#2122)
Initial developer preview release for all platforms.
The Amplify Flutter libraries are being rewritten in Dart. This version is part of our developer preview for all platforms and is not intended for production usage. Please follow our Web and Desktop support tickets to monitor the status of supported categories. We will be releasing Web and Desktop support for all Amplify categories incrementally.
For production use cases please use the latest, non-tagged versions of amplify-flutter packages from pub.dev. They offer a stable, production-ready experience for Android and iOS.
- fix(core): Update QueryPagination page field to default to 0 (#1533)
- chore: make example Android Apps runnable with API 32+ (#1474)
- chore: update android compileSdkVersion to 31
- chore: upgrade gradle plugin to 7.1.2
- chore: enable android codebase linter checks
- chore: replace 0.4.2-1 with 0.4.3 due to melos limitation (#1496)
- chore: Lint fixes (#1471)
- chore: enable dependabot (#1568)
- chore: Flutter 3 fixes (#1580)
- chore: bump amplify-android version to 1.35.3 (#1586)
- chore: downgrade amplify-android to 1.33.0 (#1591)
-fix: bumps ios version and bumps api AuthProvider timeout (#1526)
- chore: bump amplify-ios to 1.22.3
- fix: Implement Result in AtomicResult (#1393)
- fix: android atomic result (#1376)
- chore: Many model-related type definitions moved from amplify_datastore_plugin_interface to amplify_core.
- chore: bump Kotlin version to 1.6.10 (#1346)
- If your app has a dependency on Kotlin, the value of
ext.kotlin_versionset inandroid/build.gradlemust be 1.5.31 or greater (1.6.10 recommended)
- chore: bump amplify-android to 1.31.2
- chore: bump amplify-ios to 1.18.3
- Amplify Authenticator preview release!
- New
AmplifyConfigtype for fully-typed configurations
- fix(amplify_auth_cognito): remove int.parse from AuthUserAttribute (#1169)
- fix(amplify_datastore): fix error map from ios (#1126)
- fix(api): OIDC Fixes for REST/GraphQL
- fix(auth): Fix coroutines crash (#1132)
- fix(auth): Remove duplicate AtomicResult (#1133)
- chore: upgrade amplify-android to 1.28.3-rc
- fix(api): "Reply already submitted" crashes (#1058)
- fix(auth): (Android) Dropped exceptions in hosted UI cause
signInWithWebUIto not return (#1015) - fix(datastore): (Android) Fix DataStore release mode crash (#1064)
- fix(storage): DateTime formatting and parsing (#1044, #1062)
- fix(storage): Storage.list crash on null "options" (#1061)
- chore: Bump Amplify iOS to 1.15.5
- fix(api): Fix OIDC/Lambda in REST/GraphQL on Android
- fix(datastore): Temporal date/time query predicates
- fix(datastore): Android TemporalTime Save Issue
- fix(datastore): Re-emit events on hot restart
- feat(datastore): Add observeQuery API
- feat(storage): Upload/download progress listener
- fix(datastore): Sync issues with owner-based auth
- fix(datastore): Ensure attaching nested model schema
- fix(datastore): Timeout period not increasing
- fix(datastore): Remove default pagination behavior on iOS
- fix(api): OIDC/Lambda changes for DataStore
- fix(auth): Add global sign out
- fix(auth): Support
preferPrivateSessionflag
- fix: CocoaPods relative import
- feat(auth): add options to resendSignUpCode (#738)
- chore: upgrade amplify-android 1.24.1 (#829)
- chore(analytics): Apply lints (#810)
- chore(api): Apply lints (#812)
- feat(auth): enables clientMetadata for signUp (#713)
- feat(auth): Auth Devices API (#735)
- feat(datastore): Populate belongs-to nested models (#658)
- fix(analytics): Session start not triggered on Android devices (#764)
- fix(api): prevent some fatal REST errors in Android (#661)
- fix(datastore): Query nested model causes column not found sql error (#761)
- chore(api): add support for apiName to GraphQL requests (#553)
- chore: upgrade amplify-android to 1.20.1 (#710)
- chore: enable formatting in CI w/ code changes (#570)
- feat: Null Safety Auth (#536)
- feat: Null safety core (#492)
- chore: Null safety master rebase (#676)
- feat: Add support of DataStore custom configuration (#610)
- chore: add httpStatusCode property to ApiException when available from REST response (#590)
- fix: handle hot restart (#491)
- chore: remove upper constraints for flutter 2.0 (#479)
- fix: Move AddPlugin from Register to MethodChannel (#411)
- fix: upgrade plugin_platform_interface (#447)
- feat(amplify_core): add ktlint to amplify_core android (#403)
- chore: Bump android version to 1.16.13 (#391)
- chore: Introduce new AmplifyException type and Error utilities (#314)
- fix: MissingPluginException when android app restarts (#345)
- chore: Refactor Hub streams (#262)
- chore: Refactor amplify_core into amplify_flutter (#273)
- chore: Add a new amplify_core package for base types and utilities (#275)
- fix: fix relative path for coverage.gradle to be local to the package (#293)
- chore: Updated amplify-android version 1.6.8. (#261)
- chore: add some missing headers on kotlin files (#269)
- Updated amplify-android library version to v1.6.6
- Updated amplify-ios library version to v1.4.4
- fix(amplify_core): tracks configuration for hot restart
- Update example podspecs
- chore: unify gradle versions across repo
- Bump Android
coredependency version to 1.1.3.
- Initial preview release.