Skip to content

Releases: aws-amplify/amplify-flutter

1.1.0

11 May 17:07
Compare
Choose a tag to compare

Features

  • Dart 3 support (must update Dart SDK constraint to ^3.0.0)
  • feat(core): add granular model read operations (#2611)

Fixes

  • fix(notifications): configure call hangs on Flutter app hot restart (#3013)
  • fix(repo): AGP 8.0 compatibility (#2942)

v1.0.0

17 Apr 17:40
6a11fb4
Compare
Choose a tag to compare

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.

New Features

Analytics Category

  • You can now save to the UserAttributes field of a Pinpoint Endpoint by passing an AWSPinpointUserProfile to Amplify.Analytics.identifyUser.
  • The autoFlushEventsInterval in Analytics config can now be set in seconds to control how often cached events are auto-flushed. Beforehand, this value was inconsistently read as seconds on iOS and milliseconds on Android.

API Category

  • GraphQLRequest now has an authorizationMode property so callers can specify the authorization mode directly.
  • GraphQLRequest now has a headers property to specify HTTP headers.
  • GraphQL subscriptions will automatically reconnect when losing internet, or when changing from Wi-fi to cellular data or vice versa.
  • GraphQL model helpers now support custom primary keys.
  • GraphQL subscription model helpers (ModelSubscriptions) now support a where clause to use server-side subscription filters via model helpers.

Auth Category

  • fetchAuthSession now supports a forceRefresh parameter which, when passed, will refresh User Pool tokens and AWS credentials regardless if they’ve expired.
  • The result of Amplify.Auth.signUp now provides the user ID of the created user. Previously this was only available after signing in.
  • Custom OAuth providers are now configurable when signing in via Hosted UI.
  • A new federateToIdentityPool API has been added to the Cognito plugin which allows federating directly into an Identity Pool to receive AWS credentials using a third-party identity provider (IdP) token.
    • Note: Since this method is only available on the Cognito plugin, it must be called directly on the plugin. The Cognito plugin can be retrieved by calling Amplify.Auth.getPlugin(AmplifyAuthCognito.pluginKey) anytime after configuration.
    • This method prevents usage of any User Pool-related methods. It should only be used in scenarios where you need AWS credentials and already have a mechanism for retrieving OIDC tokens from a third-party IdP.

Storage Category

  • In-flight download and upload operations are now fully controllable.
    • NOTE: Downloading and uploading in the background is not yet supported.
  • The list API now supports pagination.
  • The new APIs uploadData and downloadData provide flexibility when dealing with data stored in memory.
    • uploadData supports uploading from various data formats such as raw bytes, JSON, strings, Data URLs, and more.
  • The new API getProperties allows retrieving S3 object metadata without downloading the object.
  • New copy, move, and removeMany APIs now support better control of your files.
  • Prefix customization is now supported.

Bug Fixes

API Category

The following issues have been fixed in this release:

  • Custom primary key support (#1426)
  • api Model helpers should not pass null fields (#2492)
  • Authentication Type For Api (#1557)
  • Adding Headers to Outgoing Requests (#1217)
  • Custom HTTP Interceptors (#798)
  • Cannot perform DELETE action with body from android device (#1569)

Auth Category

The following issues have been fixed in this release:

  • Users getting session expired right after sign in (#1271)
  • Inconsistent/Incorrect behavior when fetching auth session without internet access (#760)
  • Amplify.Auth.updateUserAttribute crashes app (#2361)
  • Support user migration lambda function trigger & USER_PASSWORD authentication type (#442)
  • Custom Auth Flow with passwordless login (#2393)
  • Error while getting the getCurrentUser if mobile is connected to network without internet (#2292)
  • NotAuthorizedException exception message are different on android and iOS (#2231)
  • AuthException/CustomTabsNotSupportedException when default browser does not support custom tabs (#1830)
  • Auth Fetch Auth Session fail after relogin (#1438)
  • Not getting lamda exceptions for social login (#1279)
  • Username from Auth.getCurrentUser has inconsistent casing on iOS and Android (#723)
  • UpdateUserAttributeResult.isUpdated is true on Android but false on iOS if the attribute requires confirmation (#609)
  • Generic AuthException is thrown when the device does not have chrome installed (#587)
  • isSignUpComplete returns True in android even if the user has not been confirmed. In iOS it doesn't. (#581)
  • Username is cached for use in confirmPassword on Android (#464)
  • Remove browser redirection after signOut() in app using social sign in (#401)
  • Force token refresh (#299)
  • Amplify.Auth.getCurrentUser() return different platform results when using email based auth (#201)

Storage Category

The following issues have been fixed in this release:

  • When amplify storage upload start, we see an allow push notifications dialog on Android (#2643)
  • Inconsistent Network Timeout between iOS and Android (#774)
  • S3 bucket only returning 1000 files (#991)
  • Returned value from Storage.downloadFile function do not resolve when is called with a expired session (#926)

DataStore Notes

When interacting with GraphQL APIs, use the API category for all platforms or DataStore for iOS and Android. This is because we retained DataStore on the original Android & iOS implementation. We’re looking to bring data synchronization and offline data experiences to the web and desktop in the future and would love to get your feedback on this GitHub issue.

v0.6.13

23 Mar 23:46
Compare
Choose a tag to compare

Feature

  • feat(authenticator): Add AutoFill Capabilities (#2306)

Fixes

  • chore: Bump Amplify Android to 1.38.2
  • chore: Bump Amplify iOS to 1.29.1

v0.6.12

24 Jan 23:31
Compare
Choose a tag to compare

Fixes

  • chore: Bump Android SDK to 1.37.12 (#2596)

v0.6.11

12 Jan 19:49
Compare
Choose a tag to compare

Fixes

  • fix(datastore): prevent unhandled exception crashing App rebuilding sync expression (#2549)
  • fix(datastore): Upgrading from Datastore 0.6.1 to 0.6.8 causes Android app to crash (#2556)
  • fix(api): model helpers use targetNames in schemas with CPK enabled (#2559)

v1.0.0-next.1 (2022-11-15)

16 Nov 01:29
49081dc
Compare
Choose a tag to compare
Pre-release

This release includes preview versions of the API, Analytics, and Storage categories written in Dart with support for Web, Desktop, and Mobile platforms!

See our docs for guides on how to migrate to these new versions.

Breaking Changes

  • chore(api,core): change API types (#2148)
  • chore(storage): migrate interface and setup basic packages

Features

  • 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

Fixes

  • fix(api): correct subscription error handling (#2179)
  • fix(api): fix model helper util on web (#2270)

v0.6.10 (2022-11-10)

10 Nov 18:52
9e61fc3
Compare
Choose a tag to compare
  • chore: Bump iOS dependency (#2334)
  • fix(authenticator): remove unnecessary assertion in PendingVerificationCheckState constructor (#2324)
  • fix(authenticator): Username form validation Cognito requirements (#2296)

0.6.9 (2022-10-12)

12 Oct 21:26
Compare
Choose a tag to compare
  • feat(storage): Support custom prefix (#2071)

  • fix(api): support multiple belongsTo (#2087)

  • fix(datastore): support nested predicates for observe and observeQuery (#2043)

  • fix(datastore): enable java8 desugaring for amplify-android datastore (#2232)

  • fix(storage): Custom Prefix Android (#2142)

  • chore: add cloudwatch monitoring for getting started smoke test (#2157)

  • chore: update category support tables (#2138)

  • chore(analytics): Integration test stack improvements

  • chore(api): add targetName to generated models used in tests (#2234)

  • chore(datastore): run integ tests in CI (#2182)

  • test(analytics): Add integration test backend

  • test(analytics): Add events integration tests

v0.6.8 (2022-09-19)

19 Sep 21:16
52a105f
Compare
Choose a tag to compare
  • feat(authenticator): listen to all auth hub events (#2053)
  • fix(core): Podspec deployment target (#2099)
  • fix(storage): Download to existing file (#2116)
  • fix(datastore): cpk errors on a custom type (#2134)
  • chore(core): Export safePrint from amplify_core (#2114)
  • chore(auth): enable integration tests in CI (#1886)
  • chore(repo): Update bug report to include deployment option (#1928)
  • chore(api): add field to schema in provision script (#1909)
  • chore(storage): Update dependencies (#2116)
  • chore(storage): Download to temp file (#2116)
  • chore: adds platform/category table (#2115)

v0.6.7 (09-07-2022)

08 Sep 00:36
Compare
Choose a tag to compare

Fixes

  • fix(core): Podspec deployment target (#2099)