Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated May 16, 2024

Gen 2 for Gen 1 customers

Migrating from Gen 1 to Gen 2

We are actively developing migration tooling to aid in transitioning your project from Gen 1 to Gen 2. Until then, we recommend you continue working with your Gen 1 Amplify project. We remain committed to supporting both Gen 1 and Gen 2 for the foreseeable future. For new projects, we recommend adopting Gen 2 to take advantage of its enhanced capabilities. Meanwhile, customers on Gen 1 will continue to receive support for high-priority bugs and essential security updates.

Gen 1 vs. Gen 2 feature matrix

The tables below present a feature matrix for Gen 1 customers who are considering Gen 2 for their apps. This will help determine the support availability for various features.

Auth

FeatureGen 1Gen 2
Configure usernameYesYes with CDK
Configure emailYesYes
Configure phone numberYesYes
FacebookYesYes
GoogleYesYes
AmazonYesYes
Sign-in with AppleYesYes
Add user pool groupsYesYes
User pool group preferenceYesYes
Email verification link redirectYesYes
Sign-up attributesYesYes
Auth trigger supportYesYes
Auth trigger templates: Add Google reCaptcha ChallengeYesYes
Auth trigger templates: Add user to GroupYesYes
Auth trigger templates: Email Domain Filtering (denylist)YesYes
Auth trigger templates: Email Domain Filtering (allowlist)YesYes
Auth trigger templates: Override ID Token ClaimsYesYes
Auth trigger templates: Custom Auth Challenge FlowYesNo
Configure default password policyYesYes with CDK
Configure read/write capabilities for attributesYesYes with CDK
Oauth flow: Configure authorization v implicit grantYesYes with CDK
Admin queriesYesYes with CDK
MFA login (on/off/optional)YesYes
MFA: SMSYesYes
MFA: TOTPYesYes
Zero-config Authenticator supportYesYes
User management in consoleYesYes
Configure Oauth scopesYesYes
Email verification - codeYesYes
Email Verification - LinkYesYes
Oauth flow: Configure redirect URIsYesYes
Ability to set a friendly name for User PoolYesYes
Unauthenticated loginsYesYes
Custom attributesYesYes with CDK
Oauth flow: Configure domain name prefixYesYes with CDK
Auth configuration in consoleYesNo
First class OIDC supportNoYes
First class SAML supportNoYes
Import authYesNo

Data

FeatureGen 1Gen2
modelYesYes
primaryKeyYesYes
secondaryKey (name, sortKeyFields, query)YesYes
hasOneYesYes
hasManyYesYes
belongsToYesYes
manyToManyYesYes
defaultYesYes
auth - model level
auth - public - apiKeyYesYes
auth - public - iamYesYes
auth - owner - userPoolsYesYes
auth - owner - ownerField - userPoolsYesYes
auth - owner - ownerField as array - userPoolsYesYes
auth - owner - oidcYesYes
auth - owner - ownerField - oidcYesYes
auth - owner - ownerField as array - oidcYesYes
auth - private - userPoolsYesYes
auth - private - oidcYesYes
auth - private - iamYesYes
auth - group - userPoolsYesYes
auth - group - dynamic - userPoolsYesYes
auth - group - oidcYesYes
auth - group - dynamic - oidcYesYes
auth - custom - functionYesYes
auth - field level
auth - public - apiKeyYesYes
auth - public - iamYesYes
auth - owner - userPoolsYesYes
auth - owner - ownerField - userPoolsYesYes
auth - owner - ownerField as array - userPoolsYesYes
auth - owner - oidcYesYes
auth - owner - ownerField - oidcYesYes
auth - owner - ownerField as array - oidcYesYes
auth - private - userPoolsYesYes
auth - private - oidcYesYes
auth - private - iamYesYes
auth - group - userPoolsYesYes
auth - group - dynamic - userPoolsYesYes
auth - group - oidcYesYes
auth - group - dynamic - oidcYesYes
auth - custom - functionYesYes
other directives
searchableYesNo but we offer a guide using Zero-ETL DynamoDB-to-OpenSearch
predictionsYesNo but we offer a guide with AI service integrations
Custom Mutations, Queries, SubscriptionsYesYes
VTL handlerYesYes with CDK
JavaScript resolver handlerNoYes
function handlerYesYes
http handlerYesYes - we support custom data sources including http
Other configurations
DataStore supportYesNo but we'll offer a migration guide soon
Visual configurationYesNo - Gen 2 is code-first by design
@model queries, mutations, subscriptions, and timestamps modifiersYesNo
Custom GraphQL Transformer pluginsYesNo
MySQL and PostgreSQL supportNoYes
In-IDE end-to-end type safetyNoYes

Storage

FeatureGen 1Gen 2
Ability to provision S3 bucketYesYes
Auth and Guest accessYesYes
Auth - Configure CRUD accessYesYes
Configure Cognito Group CRUD accessYesYes
Guest - Configure CRUD accessYesYes
Lambda trigger for S3 bucketYesYes
Import an S3 bucketYesYes
File browser in consoleYesYes
Ability to override/customYesYes
S3 Lambda triggersYesYes
Locally testYesYes - with sandbox environments
Visual configurationYesNo - Gen 2 is code-first by design
File Browser in consoleYesYes
Import S3 bucketsYesNo

Functions

FeatureGen 1Gen 2
Function runtime: TypeScriptNoYes
Function resource access permissions: authYesYes
Function resource access permissions: functionYesYes
Function resource access permissions: APIYesYes
Function resource access permissions CRUD operationsYesYes
Function resource access permissions: customNoYes
Environment variablesYesYes
SecretsYesYes
Cron jobsYesYes
Configure memory sizeYesYes
Function build options for Node.jsYesYes
Function templates: AWS AppSync - GraphQL API request (with IAM)YesYes
Function templates: CRUD function for DynamoDB (Integration with API Gateway)YesYes
Function templates: GraphQL Lambda AuthorizerYesYes
Function templates: Hello WorldYesYes
Function templates: Lambda triggerYesYes
Function logs in consoleYesYes
Function resource access permissions: ◯ geoYesYes with CDK
Function resource access permissions: ◯ analyticsYesYes with CDK
Function runtime: .NET 6YesYes with CDK
Function runtime: GoYesYes with CDK
Function runtime: JavaYesYes with CDK
Function runtime: JavaScriptYesYes with CDK
Function runtime: PythonYesYes with CDK
Lambda layersYesNo

Other categories

FeatureGen 1Gen 2
REST APIYesYes with custom CDK
AnalyticsYesYes with custom CDK
GeoNoNo
PredictionsNoNo
InteractionsNoNo