Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@aws-amplify/graphql-api-construct
Advanced tools
AppSync GraphQL Api Construct using Amplify GraphQL Transformer.
This package vends an L3 CDK Construct wrapping the behavior of the Amplify GraphQL Transformer. This enables quick development and interation of AppSync APIs which support the Amplify GraphQL Directives. For more information on schema modeling in GraphQL, please refer to the amplify developer docs.
The primary way to use this construct is to invoke it with a provided schema (either as an inline graphql string, or as one or more appsync.SchemaFile
) objects, and with authorization config provided. There are 5 supported methods for authorization of an AppSync API, all of which are supported by this construct. For more information on authorization rule definitions in Amplify, refer to the authorization docs. Note: currently at least one authorization rule is required, and if multiple are specified, a defaultAuthorizationMode
must be specified on the api as well. Specified authorization modes must be a superset of those configured in the graphql schema.
Note: only a single instance of the AmplifyGraphqlApi
construct can be invoked within a CDK synthesis at this point in time.
In this example, we create a single model, which will use user pool
auth in order to allow logged in users to create and manage their own todos
privately.
We create a cdk App and Stack, though you may be deploying this to a custom stack, this is purely illustrative for a concise demo.
We then wire this through to import a user pool which was already deployed (creating and deploying is out of scope for this example).
import { App, Stack } from 'aws-cdk-lib';
import { UserPool } from 'aws-cdk-lib/aws-cognito';
import { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';
const app = new App();
const stack = new Stack(app, 'TodoStack');
new AmplifyGraphqlApi(stack, 'TodoApp', {
definition: AmplifyGraphqlDefinition.fromString(/* GraphQL */ `
type Todo @model @auth(rules: [{ allow: owner }]) {
description: String!
completed: Boolean
}
`),
authorizationModes: {
userPoolConfig: {
userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),
},
},
});
In this example, we create a two related models, which will use which logged in users in the 'Author' and 'Admin' user groups will have full access to, and customers requesting with api key will only have read permissions on.
import { App, Stack } from 'aws-cdk-lib';
import { UserPool } from 'aws-cdk-lib/aws-cognito';
import { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';
const app = new App();
const stack = new Stack(app, 'BlogStack');
new AmplifyGraphqlApi(stack, 'BlogApp', {
definition: AmplifyGraphqlDefinition.fromString(/* GraphQL */ `
type Blog @model @auth(rules: [{ allow: public, operations: [read] }, { allow: groups, groups: ["Author", "Admin"] }]) {
title: String!
description: String
posts: [Post] @hasMany
}
type Post @model @auth(rules: [{ allow: public, operations: [read] }, { allow: groups, groups: ["Author", "Admin"] }]) {
title: String!
content: [String]
blog: Blog @belongsTo
}
`),
authorizationModes: {
defaultAuthorizationMode: 'API_KEY',
apiKeyConfig: {
description: 'Api Key for public access',
expires: cdk.Duration.days(7),
},
userPoolConfig: {
userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),
},
},
});
In this example, we import the schema definition itself from one or more local file, rather than an inline graphql string.
# todo.graphql
type Todo @model @auth(rules: [{ allow: owner }]) {
content: String!
done: Boolean
}
# blog.graphql
type Blog @model @auth(rules: [{ allow: owner }, { allow: public, operations: [read] }]) {
title: String!
description: String
posts: [Post] @hasMany
}
type Post @model @auth(rules: [{ allow: owner }, { allow: public, operations: [read] }]) {
title: String!
content: [String]
blog: Blog @belongsTo
}
// app.ts
import { App, Stack } from 'aws-cdk-lib';
import { UserPool } from 'aws-cdk-lib/aws-cognito';
import { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';
const app = new App();
const stack = new Stack(app, 'MultiFileStack');
new AmplifyGraphqlApi(stack, 'MultiFileDefinition', {
definition: AmplifyGraphqlDefinition.fromFiles(path.join(__dirname, 'todo.graphql'), path.join(__dirname, 'blog.graphql')),
authorizationModes: {
defaultAuthorizationMode: 'API_KEY',
apiKeyConfig: {
description: 'Api Key for public access',
expires: cdk.Duration.days(7),
},
userPoolConfig: {
userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),
},
},
});
L3 Construct which invokes the Amplify Transformer Pattern over an input Graphql Schema.
This can be used to quickly define appsync apis which support full CRUD+List and Subscriptions, relationships, auth, search over data, the ability to inject custom business logic and query/mutation operations, and connect to ML services.
For more information, refer to the docs links below: Data Modeling - https://docs.amplify.aws/cli/graphql/data-modeling/ Authorization - https://docs.amplify.aws/cli/graphql/authorization-rules/ Custom Business Logic - https://docs.amplify.aws/cli/graphql/custom-business-logic/ Search - https://docs.amplify.aws/cli/graphql/search-and-result-aggregations/ ML Services - https://docs.amplify.aws/cli/graphql/connect-to-machine-learning-services/
For a full reference of the supported custom graphql directives - https://docs.amplify.aws/cli/graphql/directives-reference/
The output of this construct is a mapping of L2 or L1 resources generated by the transformer, which generally follow the access pattern
const api = new AmplifyGraphQlApi(this, 'api', { <params> });
// Access L2 resources under `.resources`
api.resources.tables["Todo"].tableArn;
// Access L1 resources under `.resources.cfnResources`
api.resources.cfnResources.cfnGraphqlApi.xrayEnabled = true;
Object.values(api.resources.cfnResources.cfnTables).forEach(table => {
table.pointInTimeRecoverySpecification = { pointInTimeRecoveryEnabled: false };
});
resources.<ResourceType>.<ResourceName>
- you can then perform any CDK action on these resulting resoureces.
import { AmplifyGraphqlApi } from '@aws-amplify/graphql-api-construct'
new AmplifyGraphqlApi(scope: Construct, id: string, props: AmplifyGraphqlApiProps)
Name | Type | Description |
---|---|---|
scope | constructs.Construct | the scope to create this construct within. |
id | string | the id to use for this api. |
props | AmplifyGraphqlApiProps | the properties used to configure the generated api. |
scope
Required the scope to create this construct within.
id
Required the id to use for this api.
props
Required the properties used to configure the generated api.
Name | Description |
---|---|
toString | Returns a string representation of this construct. |
addDynamoDbDataSource | Add a new DynamoDB data source to this API. |
addElasticsearchDataSource | Add a new elasticsearch data source to this API. |
addEventBridgeDataSource | Add an EventBridge data source to this api. |
addFunction | Add an appsync function to the api. |
addHttpDataSource | Add a new http data source to this API. |
addLambdaDataSource | Add a new Lambda data source to this API. |
addNoneDataSource | Add a new dummy data source to this API. |
addOpenSearchDataSource | dd a new OpenSearch data source to this API. |
addRdsDataSource | Add a new Rds data source to this API. |
addResolver | Add a resolver to the api. |
toString
public toString(): string
Returns a string representation of this construct.
addDynamoDbDataSource
public addDynamoDbDataSource(id: string, table: ITable, options?: DataSourceOptions): DynamoDbDataSource
Add a new DynamoDB data source to this API.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
table
Required The DynamoDB table backing this data source.
options
Optional The optional configuration for this data source.
addElasticsearchDataSource
public addElasticsearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): ElasticsearchDataSource
Add a new elasticsearch data source to this API.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
domain
Required The elasticsearch domain for this data source.
options
Optional The optional configuration for this data source.
addEventBridgeDataSource
public addEventBridgeDataSource(id: string, eventBus: IEventBus, options?: DataSourceOptions): EventBridgeDataSource
Add an EventBridge data source to this api.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
eventBus
Required The EventBridge EventBus on which to put events.
options
Optional The optional configuration for this data source.
addFunction
public addFunction(id: string, props: AddFunctionProps): AppsyncFunction
Add an appsync function to the api.
id
Required the function's id.
props
Required addHttpDataSource
public addHttpDataSource(id: string, endpoint: string, options?: HttpDataSourceOptions): HttpDataSource
Add a new http data source to this API.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
endpoint
Required The http endpoint.
options
Optional The optional configuration for this data source.
addLambdaDataSource
public addLambdaDataSource(id: string, lambdaFunction: IFunction, options?: DataSourceOptions): LambdaDataSource
Add a new Lambda data source to this API.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
lambdaFunction
Required The Lambda function to call to interact with this data source.
options
Optional The optional configuration for this data source.
addNoneDataSource
public addNoneDataSource(id: string, options?: DataSourceOptions): NoneDataSource
Add a new dummy data source to this API.
This is a proxy method to the L2 GraphqlApi Construct. Useful for pipeline resolvers and for backend changes that don't require a data source.
id
Required The data source's id.
options
Optional The optional configuration for this data source.
addOpenSearchDataSource
public addOpenSearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): OpenSearchDataSource
dd a new OpenSearch data source to this API.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
domain
Required The OpenSearch domain for this data source.
options
Optional The optional configuration for this data source.
addRdsDataSource
public addRdsDataSource(id: string, serverlessCluster: IServerlessCluster, secretStore: ISecret, databaseName?: string, options?: DataSourceOptions): RdsDataSource
Add a new Rds data source to this API.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The data source's id.
serverlessCluster
Required The serverless cluster to interact with this data source.
secretStore
Required The secret store that contains the username and password for the serverless cluster.
databaseName
Optional The optional name of the database to use within the cluster.
options
Optional The optional configuration for this data source.
addResolver
public addResolver(id: string, props: ExtendedResolverProps): Resolver
Add a resolver to the api.
This is a proxy method to the L2 GraphqlApi Construct.
id
Required The resolver's id.
props
Required the resolver properties.
Name | Description |
---|---|
isConstruct | Checks if x is a construct. |
isConstruct
import { AmplifyGraphqlApi } from '@aws-amplify/graphql-api-construct'
AmplifyGraphqlApi.isConstruct(x: any)
Checks if x
is a construct.
x
Required Any object.
Name | Type | Description |
---|---|---|
node | constructs.Node | The tree node. |
apiId | string | Generated Api Id. |
generatedFunctionSlots | MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[] | Resolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides. |
graphqlUrl | string | Graphql URL For the generated API. |
realtimeUrl | string | Realtime URL For the generated API. |
resources | AmplifyGraphqlApiResources | Generated L1 and L2 CDK resources. |
apiKey | string | Generated Api Key if generated. |
node
Required public readonly node: Node;
The tree node.
apiId
Required public readonly apiId: string;
Generated Api Id.
May be a CDK Token.
generatedFunctionSlots
Required public readonly generatedFunctionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];
Resolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides.
graphqlUrl
Required public readonly graphqlUrl: string;
Graphql URL For the generated API.
May be a CDK Token.
realtimeUrl
Required public readonly realtimeUrl: string;
Realtime URL For the generated API.
May be a CDK Token.
resources
Required public readonly resources: AmplifyGraphqlApiResources;
Generated L1 and L2 CDK resources.
apiKey
Optional public readonly apiKey: string;
Generated Api Key if generated.
May be a CDK Token.
Input type properties when adding a new appsync.AppsyncFunction to the generated API. This is equivalent to the Omit<appsync.AppsyncFunctionProps, 'api'>.
import { AddFunctionProps } from '@aws-amplify/graphql-api-construct'
const addFunctionProps: AddFunctionProps = { ... }
Name | Type | Description |
---|---|---|
dataSource | aws-cdk-lib.aws_appsync.BaseDataSource | the data source linked to this AppSync Function. |
name | string | the name of the AppSync Function. |
code | aws-cdk-lib.aws_appsync.Code | The function code. |
description | string | the description for this AppSync Function. |
requestMappingTemplate | aws-cdk-lib.aws_appsync.MappingTemplate | the request mapping template for the AppSync Function. |
responseMappingTemplate | aws-cdk-lib.aws_appsync.MappingTemplate | the response mapping template for the AppSync Function. |
runtime | aws-cdk-lib.aws_appsync.FunctionRuntime | The functions runtime. |
dataSource
Required public readonly dataSource: BaseDataSource;
the data source linked to this AppSync Function.
name
Required public readonly name: string;
the name of the AppSync Function.
code
Optional public readonly code: Code;
The function code.
description
Optional public readonly description: string;
the description for this AppSync Function.
requestMappingTemplate
Optional public readonly requestMappingTemplate: MappingTemplate;
the request mapping template for the AppSync Function.
responseMappingTemplate
Optional public readonly responseMappingTemplate: MappingTemplate;
the response mapping template for the AppSync Function.
runtime
Optional public readonly runtime: FunctionRuntime;
The functions runtime.
L1 CDK resources from the Api which were generated as part of the transform.
These are potentially stored under nested stacks, but presented organized by type instead.
import { AmplifyGraphqlApiCfnResources } from '@aws-amplify/graphql-api-construct'
const amplifyGraphqlApiCfnResources: AmplifyGraphqlApiCfnResources = { ... }
Name | Type | Description |
---|---|---|
additionalCfnResources | {[ key: string ]: aws-cdk-lib.CfnResource} | Remaining L1 resources generated, keyed by logicalId. |
cfnDataSources | {[ key: string ]: aws-cdk-lib.aws_appsync.CfnDataSource} | The Generated AppSync DataSource L1 Resources, keyed by logicalId. |
cfnFunctionConfigurations | {[ key: string ]: aws-cdk-lib.aws_appsync.CfnFunctionConfiguration} | The Generated AppSync Function L1 Resources, keyed by logicalId. |
cfnFunctions | {[ key: string ]: aws-cdk-lib.aws_lambda.CfnFunction} | The Generated Lambda Function L1 Resources, keyed by function name. |
cfnGraphqlApi | aws-cdk-lib.aws_appsync.CfnGraphQLApi | The Generated AppSync Api L1 Resource. |
cfnGraphqlSchema | aws-cdk-lib.aws_appsync.CfnGraphQLSchema | The Generated AppSync Schema L1 Resource. |
cfnResolvers | {[ key: string ]: aws-cdk-lib.aws_appsync.CfnResolver} | The Generated AppSync Resolver L1 Resources, keyed by logicalId. |
cfnRoles | {[ key: string ]: aws-cdk-lib.aws_iam.CfnRole} | The Generated IAM Role L1 Resources, keyed by logicalId. |
cfnTables | {[ key: string ]: aws-cdk-lib.aws_dynamodb.CfnTable} | The Generated DynamoDB Table L1 Resources, keyed by logicalId. |
cfnApiKey | aws-cdk-lib.aws_appsync.CfnApiKey | The Generated AppSync Api Key L1 Resource. |
additionalCfnResources
Required public readonly additionalCfnResources: {[ key: string ]: CfnResource};
Remaining L1 resources generated, keyed by logicalId.
cfnDataSources
Required public readonly cfnDataSources: {[ key: string ]: CfnDataSource};
The Generated AppSync DataSource L1 Resources, keyed by logicalId.
cfnFunctionConfigurations
Required public readonly cfnFunctionConfigurations: {[ key: string ]: CfnFunctionConfiguration};
The Generated AppSync Function L1 Resources, keyed by logicalId.
cfnFunctions
Required public readonly cfnFunctions: {[ key: string ]: CfnFunction};
The Generated Lambda Function L1 Resources, keyed by function name.
cfnGraphqlApi
Required public readonly cfnGraphqlApi: CfnGraphQLApi;
The Generated AppSync Api L1 Resource.
cfnGraphqlSchema
Required public readonly cfnGraphqlSchema: CfnGraphQLSchema;
The Generated AppSync Schema L1 Resource.
cfnResolvers
Required public readonly cfnResolvers: {[ key: string ]: CfnResolver};
The Generated AppSync Resolver L1 Resources, keyed by logicalId.
cfnRoles
Required public readonly cfnRoles: {[ key: string ]: CfnRole};
The Generated IAM Role L1 Resources, keyed by logicalId.
cfnTables
Required public readonly cfnTables: {[ key: string ]: CfnTable};
The Generated DynamoDB Table L1 Resources, keyed by logicalId.
cfnApiKey
Optional public readonly cfnApiKey: CfnApiKey;
The Generated AppSync Api Key L1 Resource.
Input props for the AmplifyGraphqlApi construct.
Specifies what the input to transform into an Api, and configurations for the transformation process.
import { AmplifyGraphqlApiProps } from '@aws-amplify/graphql-api-construct'
const amplifyGraphqlApiProps: AmplifyGraphqlApiProps = { ... }
Name | Type | Description |
---|---|---|
authorizationModes | AuthorizationModes | Required auth modes for the Api. |
definition | IAmplifyGraphqlDefinition | The definition to transform in a full Api. |
apiName | string | Name to be used for the AppSync Api. |
conflictResolution | ConflictResolution | Configure conflict resolution on the Api, which is required to enable DataStore Api functionality. |
functionNameMap | {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction} | Lambda functions referenced in the definitions's. |
functionSlots | MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[] | Overrides for a given slot in the generated resolver pipelines. |
outputStorageStrategy | IBackendOutputStorageStrategy | Strategy to store construct outputs. |
predictionsBucket | aws-cdk-lib.aws_s3.IBucket | If using predictions, a bucket must be provided which will be used to search for assets. |
stackMappings | {[ key: string ]: string} | StackMappings override the assigned nested stack on a per-resource basis. |
transformerPlugins | any[] | Provide a list of additional custom transformers which are injected into the transform process. |
translationBehavior | PartialTranslationBehavior | This replaces feature flags from the Api construct, for general information on what these parameters do, refer to https://docs.amplify.aws/cli/reference/feature-flags/#graphQLTransformer. |
authorizationModes
Required public readonly authorizationModes: AuthorizationModes;
Required auth modes for the Api.
This object must be a superset of the configured auth providers in the Api definition. For more information, refer to https://docs.amplify.aws/cli/graphql/authorization-rules/
definition
Required public readonly definition: IAmplifyGraphqlDefinition;
The definition to transform in a full Api.
Can be constructed via the AmplifyGraphqlDefinition class.
apiName
Optional public readonly apiName: string;
Name to be used for the AppSync Api.
Default: construct id.
conflictResolution
Optional public readonly conflictResolution: ConflictResolution;
Configure conflict resolution on the Api, which is required to enable DataStore Api functionality.
For more information, refer to https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js/
functionNameMap
Optional public readonly functionNameMap: {[ key: string ]: IFunction};
Lambda functions referenced in the definitions's.
functionSlots
Optional public readonly functionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];
Overrides for a given slot in the generated resolver pipelines.
For more information about what slots are available, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#override-amplify-generated-resolvers.
outputStorageStrategy
Optional public readonly outputStorageStrategy: IBackendOutputStorageStrategy;
Strategy to store construct outputs.
If no outputStorageStrategey is provided a default strategy will be used.
predictionsBucket
Optional public readonly predictionsBucket: IBucket;
If using predictions, a bucket must be provided which will be used to search for assets.
stackMappings
Optional public readonly stackMappings: {[ key: string ]: string};
StackMappings override the assigned nested stack on a per-resource basis.
Only applies to resolvers, and takes the form { : } It is not recommended to use this parameter unless you are encountering stack resource count limits, and worth noting that after initial deployment AppSync resolvers cannot be moved between nested stacks, they will need to be removed from the app, then re-added from a new stack.
transformerPlugins
Optional public readonly transformerPlugins: any[];
Provide a list of additional custom transformers which are injected into the transform process.
These custom transformers must be implemented with aws-cdk-lib >=2.80.0, and
translationBehavior
Optional public readonly translationBehavior: PartialTranslationBehavior;
This replaces feature flags from the Api construct, for general information on what these parameters do, refer to https://docs.amplify.aws/cli/reference/feature-flags/#graphQLTransformer.
Accessible resources from the Api which were generated as part of the transform.
These are potentially stored under nested stacks, but presented organized by type instead.
import { AmplifyGraphqlApiResources } from '@aws-amplify/graphql-api-construct'
const amplifyGraphqlApiResources: AmplifyGraphqlApiResources = { ... }
Name | Type | Description |
---|---|---|
cfnResources | AmplifyGraphqlApiCfnResources | L1 Cfn Resources, for when dipping down a level of abstraction is desirable. |
functions | {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction} | The Generated Lambda Function L1 Resources, keyed by function name. |
graphqlApi | aws-cdk-lib.aws_appsync.IGraphqlApi | The Generated AppSync Api L2 Resource, includes the Schema. |
nestedStacks | {[ key: string ]: aws-cdk-lib.NestedStack} | Nested Stacks generated by the Api Construct. |
roles | {[ key: string ]: aws-cdk-lib.aws_iam.IRole} | The Generated IAM Role L2 Resources, keyed by logicalId. |
tables | {[ key: string ]: aws-cdk-lib.aws_dynamodb.ITable} | The Generated DynamoDB Table L2 Resources, keyed by logicalId. |
cfnResources
Required public readonly cfnResources: AmplifyGraphqlApiCfnResources;
L1 Cfn Resources, for when dipping down a level of abstraction is desirable.
functions
Required public readonly functions: {[ key: string ]: IFunction};
The Generated Lambda Function L1 Resources, keyed by function name.
graphqlApi
Required public readonly graphqlApi: IGraphqlApi;
The Generated AppSync Api L2 Resource, includes the Schema.
nestedStacks
Required public readonly nestedStacks: {[ key: string ]: NestedStack};
Nested Stacks generated by the Api Construct.
roles
Required public readonly roles: {[ key: string ]: IRole};
The Generated IAM Role L2 Resources, keyed by logicalId.
tables
Required public readonly tables: {[ key: string ]: ITable};
The Generated DynamoDB Table L2 Resources, keyed by logicalId.
Configuration for Api Keys on the Graphql Api.
import { ApiKeyAuthorizationConfig } from '@aws-amplify/graphql-api-construct'
const apiKeyAuthorizationConfig: ApiKeyAuthorizationConfig = { ... }
Name | Type | Description |
---|---|---|
expires | aws-cdk-lib.Duration | A duration representing the time from Cloudformation deploy until expiry. |
description | string | Optional description for the Api Key to attach to the Api. |
expires
Required public readonly expires: Duration;
A duration representing the time from Cloudformation deploy until expiry.
description
Optional public readonly description: string;
Optional description for the Api Key to attach to the Api.
Authorization Modes to apply to the Api.
At least one modes must be provided, and if more than one are provided a defaultAuthorizationMode must be specified. For more information on Amplify Api auth, refer to https://docs.amplify.aws/cli/graphql/authorization-rules/#authorization-strategies
import { AuthorizationModes } from '@aws-amplify/graphql-api-construct'
const authorizationModes: AuthorizationModes = { ... }
Name | Type | Description |
---|---|---|
adminRoles | aws-cdk-lib.aws_iam.IRole[] | A list of roles granted full R/W access to the Api. |
apiKeyConfig | ApiKeyAuthorizationConfig | AppSync Api Key config, required if a 'apiKey' auth provider is specified in the Api. |
defaultAuthorizationMode | string | Default auth mode to provide to the Api, required if more than one config type is specified. |
iamConfig | IAMAuthorizationConfig | IAM Auth config, required if an 'iam' auth provider is specified in the Api. |
lambdaConfig | LambdaAuthorizationConfig | Lambda config, required if a 'function' auth provider is specified in the Api. |
oidcConfig | OIDCAuthorizationConfig | Cognito OIDC config, required if a 'oidc' auth provider is specified in the Api. |
userPoolConfig | UserPoolAuthorizationConfig | Cognito UserPool config, required if a 'userPools' auth provider is specified in the Api. |
adminRoles
Optional public readonly adminRoles: IRole[];
A list of roles granted full R/W access to the Api.
apiKeyConfig
Optional public readonly apiKeyConfig: ApiKeyAuthorizationConfig;
AppSync Api Key config, required if a 'apiKey' auth provider is specified in the Api.
Applies to 'public' auth strategy.
defaultAuthorizationMode
Optional public readonly defaultAuthorizationMode: string;
Default auth mode to provide to the Api, required if more than one config type is specified.
iamConfig
Optional public readonly iamConfig: IAMAuthorizationConfig;
IAM Auth config, required if an 'iam' auth provider is specified in the Api.
Applies to 'public' and 'private' auth strategies.
lambdaConfig
Optional public readonly lambdaConfig: LambdaAuthorizationConfig;
Lambda config, required if a 'function' auth provider is specified in the Api.
Applies to 'custom' auth strategy.
oidcConfig
Optional public readonly oidcConfig: OIDCAuthorizationConfig;
Cognito OIDC config, required if a 'oidc' auth provider is specified in the Api.
Applies to 'owner', 'private', and 'group' auth strategies.
userPoolConfig
Optional public readonly userPoolConfig: UserPoolAuthorizationConfig;
Cognito UserPool config, required if a 'userPools' auth provider is specified in the Api.
Applies to 'owner', 'private', and 'group' auth strategies.
Enable optimistic concurrency on the project.
import { AutomergeConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'
const automergeConflictResolutionStrategy: AutomergeConflictResolutionStrategy = { ... }
Name | Type | Description |
---|---|---|
detectionType | string | The conflict detection type used for resolution. |
handlerType | string | This conflict resolution strategy executes an auto-merge. |
detectionType
Required public readonly detectionType: string;
The conflict detection type used for resolution.
handlerType
Required public readonly handlerType: string;
This conflict resolution strategy executes an auto-merge.
For more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution
Project level configuration for conflict resolution.
import { ConflictResolution } from '@aws-amplify/graphql-api-construct'
const conflictResolution: ConflictResolution = { ... }
Name | Type | Description |
---|---|---|
models | {[ key: string ]: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy} | Model-specific conflict resolution overrides. |
project | AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy | Project-wide config for conflict resolution. |
models
Optional public readonly models: {[ key: string ]: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy};
Model-specific conflict resolution overrides.
project
Optional public readonly project: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy;
Project-wide config for conflict resolution.
Applies to all non-overridden models.
Common parameters for conflict resolution.
import { ConflictResolutionStrategyBase } from '@aws-amplify/graphql-api-construct'
const conflictResolutionStrategyBase: ConflictResolutionStrategyBase = { ... }
Name | Type | Description |
---|---|---|
detectionType | string | The conflict detection type used for resolution. |
detectionType
Required public readonly detectionType: string;
The conflict detection type used for resolution.
Enable custom sync on the project, powered by a lambda.
import { CustomConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'
const customConflictResolutionStrategy: CustomConflictResolutionStrategy = { ... }
Name | Type | Description |
---|---|---|
detectionType | string | The conflict detection type used for resolution. |
conflictHandler | aws-cdk-lib.aws_lambda.IFunction | The function which will be invoked for conflict resolution. |
handlerType | string | This conflict resolution strategy uses a lambda handler type. |
detectionType
Required public readonly detectionType: string;
The conflict detection type used for resolution.
conflictHandler
Required public readonly conflictHandler: IFunction;
The function which will be invoked for conflict resolution.
handlerType
Required public readonly handlerType: string;
This conflict resolution strategy uses a lambda handler type.
For more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution
Common slot parameters.
import { FunctionSlotBase } from '@aws-amplify/graphql-api-construct'
const functionSlotBase: FunctionSlotBase = { ... }
Name | Type | Description |
---|---|---|
fieldName | string | The field to attach this function to on the Api definition. |
function | FunctionSlotOverride | The overridden behavior for this slot. |
slotIndex | number | The slot index to use to inject this into the execution pipeline. |
fieldName
Required public readonly fieldName: string;
The field to attach this function to on the Api definition.
function
Required public readonly function: FunctionSlotOverride;
The overridden behavior for this slot.
slotIndex
Required public readonly slotIndex: number;
The slot index to use to inject this into the execution pipeline.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
Params exposed to support configuring and overriding pipelined slots.
This allows configuration of the underlying function, including the request and response mapping templates.
import { FunctionSlotOverride } from '@aws-amplify/graphql-api-construct'
const functionSlotOverride: FunctionSlotOverride = { ... }
Name | Type | Description |
---|---|---|
requestMappingTemplate | aws-cdk-lib.aws_appsync.MappingTemplate | Override request mapping template for the function slot. |
responseMappingTemplate | aws-cdk-lib.aws_appsync.MappingTemplate | Override response mapping template for the function slot. |
requestMappingTemplate
Optional public readonly requestMappingTemplate: MappingTemplate;
Override request mapping template for the function slot.
Executed before the datasource is invoked.
responseMappingTemplate
Optional public readonly responseMappingTemplate: MappingTemplate;
Override response mapping template for the function slot.
Executed after the datasource is invoked.
Configuration for IAM Authorization on the Graphql Api.
import { IAMAuthorizationConfig } from '@aws-amplify/graphql-api-construct'
const iAMAuthorizationConfig: IAMAuthorizationConfig = { ... }
Name | Type | Description |
---|---|---|
authenticatedUserRole | aws-cdk-lib.aws_iam.IRole | Authenticated user role, applies to { provider: iam, allow: private } access. |
identityPoolId | string | ID for the Cognito Identity Pool vending auth and unauth roles. |
unauthenticatedUserRole | aws-cdk-lib.aws_iam.IRole | Unauthenticated user role, applies to { provider: iam, allow: public } access. |
authenticatedUserRole
Required public readonly authenticatedUserRole: IRole;
Authenticated user role, applies to { provider: iam, allow: private } access.
identityPoolId
Required public readonly identityPoolId: string;
ID for the Cognito Identity Pool vending auth and unauth roles.
Format: <region>:<id string>
unauthenticatedUserRole
Required public readonly unauthenticatedUserRole: IRole;
Unauthenticated user role, applies to { provider: iam, allow: public } access.
Configuration for Custom Lambda authorization on the Graphql Api.
import { LambdaAuthorizationConfig } from '@aws-amplify/graphql-api-construct'
const lambdaAuthorizationConfig: LambdaAuthorizationConfig = { ... }
Name | Type | Description |
---|---|---|
function | aws-cdk-lib.aws_lambda.IFunction | The authorizer lambda function. |
ttl | aws-cdk-lib.Duration | How long the results are cached. |
function
Required public readonly function: IFunction;
The authorizer lambda function.
ttl
Required public readonly ttl: Duration;
How long the results are cached.
Slot types for Mutation Resolvers.
import { MutationFunctionSlot } from '@aws-amplify/graphql-api-construct'
const mutationFunctionSlot: MutationFunctionSlot = { ... }
Name | Type | Description |
---|---|---|
fieldName | string | The field to attach this function to on the Api definition. |
function | FunctionSlotOverride | The overridden behavior for this slot. |
slotIndex | number | The slot index to use to inject this into the execution pipeline. |
slotName | string | The slot name to inject this behavior into. |
typeName | string | This slot type applies to the Mutation type on the Api definition. |
fieldName
Required public readonly fieldName: string;
The field to attach this function to on the Api definition.
function
Required public readonly function: FunctionSlotOverride;
The overridden behavior for this slot.
slotIndex
Required public readonly slotIndex: number;
The slot index to use to inject this into the execution pipeline.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
slotName
Required public readonly slotName: string;
The slot name to inject this behavior into.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
typeName
Required public readonly typeName: string;
This slot type applies to the Mutation type on the Api definition.
Configuration for OpenId Connect Authorization on the Graphql Api.
import { OIDCAuthorizationConfig } from '@aws-amplify/graphql-api-construct'
const oIDCAuthorizationConfig: OIDCAuthorizationConfig = { ... }
Name | Type | Description |
---|---|---|
oidcIssuerUrl | string | Url for the OIDC token issuer. |
oidcProviderName | string | The issuer for the OIDC configuration. |
tokenExpiryFromAuth | aws-cdk-lib.Duration | The duration an OIDC token is valid after being authenticated by OIDC provider. |
tokenExpiryFromIssue | aws-cdk-lib.Duration | The duration an OIDC token is valid after being issued to a user. |
clientId | string | The client identifier of the Relying party at the OpenID identity provider. |
oidcIssuerUrl
Required public readonly oidcIssuerUrl: string;
Url for the OIDC token issuer.
oidcProviderName
Required public readonly oidcProviderName: string;
The issuer for the OIDC configuration.
tokenExpiryFromAuth
Required public readonly tokenExpiryFromAuth: Duration;
The duration an OIDC token is valid after being authenticated by OIDC provider.
auth_time claim in OIDC token is required for this validation to work.
tokenExpiryFromIssue
Required public readonly tokenExpiryFromIssue: Duration;
The duration an OIDC token is valid after being issued to a user.
This validation uses iat claim of OIDC token.
clientId
Optional public readonly clientId: string;
The client identifier of the Relying party at the OpenID identity provider.
A regular expression can be specified so AppSync can validate against multiple client identifiers at a time. Example
Enable automerge on the project.
import { OptimisticConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'
const optimisticConflictResolutionStrategy: OptimisticConflictResolutionStrategy = { ... }
Name | Type | Description |
---|---|---|
detectionType | string | The conflict detection type used for resolution. |
handlerType | string | This conflict resolution strategy the _version to perform optimistic concurrency. |
detectionType
Required public readonly detectionType: string;
The conflict detection type used for resolution.
handlerType
Required public readonly handlerType: string;
This conflict resolution strategy the _version to perform optimistic concurrency.
For more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution
A utility interface equivalent to Partial.
import { PartialTranslationBehavior } from '@aws-amplify/graphql-api-construct'
const partialTranslationBehavior: PartialTranslationBehavior = { ... }
Name | Type | Description |
---|---|---|
disableResolverDeduping | boolean | Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered. |
enableAutoIndexQueryNames | boolean | Automate generation of query names, and as a result attaching all indexes as queries to the generated Api. |
enableSearchNodeToNodeEncryption | boolean | If enabled, set nodeToNodeEncryption on the searchable domain (if one exists). |
enableTransformerCfnOutputs | boolean | When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted. |
populateOwnerFieldForStaticGroupAuth | boolean | Ensure that the owner field is still populated even if a static iam or group authorization applies. |
respectPrimaryKeyAttributesOnConnectionField | boolean | Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app. |
sandboxModeEnabled | boolean | Enabling sandbox mode will enable api key auth on all models in the transformed schema. |
secondaryKeyAsGSI | boolean | If disabled, generated. |
shouldDeepMergeDirectiveConfigDefaults | boolean | Restore parity w/ GQLv1. |
suppressApiKeyGeneration | boolean | If enabled, disable api key resource generation even if specified as an auth rule on the construct. |
useSubUsernameForDefaultIdentityClaim | boolean | Ensure that oidc and userPool auth use the sub field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool. |
disableResolverDeduping
Optional public readonly disableResolverDeduping: boolean;
Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered.
enableAutoIndexQueryNames
Optional public readonly enableAutoIndexQueryNames: boolean;
Automate generation of query names, and as a result attaching all indexes as queries to the generated Api.
If enabled,
enableSearchNodeToNodeEncryption
Optional public readonly enableSearchNodeToNodeEncryption: boolean;
If enabled, set nodeToNodeEncryption on the searchable domain (if one exists).
Not recommended for use, prefer to use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => { domain.NodeToNodeEncryptionOptions = { Enabled: True }; });
enableTransformerCfnOutputs
Optional public readonly enableTransformerCfnOutputs: boolean;
When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted.
populateOwnerFieldForStaticGroupAuth
Optional public readonly populateOwnerFieldForStaticGroupAuth: boolean;
Ensure that the owner field is still populated even if a static iam or group authorization applies.
respectPrimaryKeyAttributesOnConnectionField
Optional public readonly respectPrimaryKeyAttributesOnConnectionField: boolean;
Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app.
sandboxModeEnabled
Optional public readonly sandboxModeEnabled: boolean;
Enabling sandbox mode will enable api key auth on all models in the transformed schema.
secondaryKeyAsGSI
Optional public readonly secondaryKeyAsGSI: boolean;
If disabled, generated.
shouldDeepMergeDirectiveConfigDefaults
Optional public readonly shouldDeepMergeDirectiveConfigDefaults: boolean;
Restore parity w/ GQLv1.
suppressApiKeyGeneration
Optional public readonly suppressApiKeyGeneration: boolean;
If enabled, disable api key resource generation even if specified as an auth rule on the construct.
This is a legacy parameter from the Graphql Transformer existing in Amplify CLI, not recommended to change.
useSubUsernameForDefaultIdentityClaim
Optional public readonly useSubUsernameForDefaultIdentityClaim: boolean;
Ensure that oidc and userPool auth use the sub
field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool.
Slot types for Query Resolvers.
import { QueryFunctionSlot } from '@aws-amplify/graphql-api-construct'
const queryFunctionSlot: QueryFunctionSlot = { ... }
Name | Type | Description |
---|---|---|
fieldName | string | The field to attach this function to on the Api definition. |
function | FunctionSlotOverride | The overridden behavior for this slot. |
slotIndex | number | The slot index to use to inject this into the execution pipeline. |
slotName | string | The slot name to inject this behavior into. |
typeName | string | This slot type applies to the Query type on the Api definition. |
fieldName
Required public readonly fieldName: string;
The field to attach this function to on the Api definition.
function
Required public readonly function: FunctionSlotOverride;
The overridden behavior for this slot.
slotIndex
Required public readonly slotIndex: number;
The slot index to use to inject this into the execution pipeline.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
slotName
Required public readonly slotName: string;
The slot name to inject this behavior into.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
typeName
Required public readonly typeName: string;
This slot type applies to the Query type on the Api definition.
Slot types for Subscription Resolvers.
import { SubscriptionFunctionSlot } from '@aws-amplify/graphql-api-construct'
const subscriptionFunctionSlot: SubscriptionFunctionSlot = { ... }
Name | Type | Description |
---|---|---|
fieldName | string | The field to attach this function to on the Api definition. |
function | FunctionSlotOverride | The overridden behavior for this slot. |
slotIndex | number | The slot index to use to inject this into the execution pipeline. |
slotName | string | The slot name to inject this behavior into. |
typeName | string | This slot type applies to the Subscription type on the Api definition. |
fieldName
Required public readonly fieldName: string;
The field to attach this function to on the Api definition.
function
Required public readonly function: FunctionSlotOverride;
The overridden behavior for this slot.
slotIndex
Required public readonly slotIndex: number;
The slot index to use to inject this into the execution pipeline.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
slotName
Required public readonly slotName: string;
The slot name to inject this behavior into.
For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers
typeName
Required public readonly typeName: string;
This slot type applies to the Subscription type on the Api definition.
Strongly typed set of shared parameters for all transformers, and core layer.
This is intended to replace feature flags, to ensure param coercion happens in a single location, and isn't spread around the transformers, where they can have different default behaviors.
import { TranslationBehavior } from '@aws-amplify/graphql-api-construct'
const translationBehavior: TranslationBehavior = { ... }
Name | Type | Description |
---|---|---|
disableResolverDeduping | boolean | Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered. |
enableAutoIndexQueryNames | boolean | Automate generation of query names, and as a result attaching all indexes as queries to the generated Api. |
enableSearchNodeToNodeEncryption | boolean | If enabled, set nodeToNodeEncryption on the searchable domain (if one exists). |
enableTransformerCfnOutputs | boolean | When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted. |
populateOwnerFieldForStaticGroupAuth | boolean | Ensure that the owner field is still populated even if a static iam or group authorization applies. |
respectPrimaryKeyAttributesOnConnectionField | boolean | Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app. |
sandboxModeEnabled | boolean | Enabling sandbox mode will enable api key auth on all models in the transformed schema. |
secondaryKeyAsGSI | boolean | If disabled, generated. |
shouldDeepMergeDirectiveConfigDefaults | boolean | Restore parity w/ GQLv1. |
suppressApiKeyGeneration | boolean | If enabled, disable api key resource generation even if specified as an auth rule on the construct. |
useSubUsernameForDefaultIdentityClaim | boolean | Ensure that oidc and userPool auth use the sub field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool. |
disableResolverDeduping
Required public readonly disableResolverDeduping: boolean;
Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered.
enableAutoIndexQueryNames
Required public readonly enableAutoIndexQueryNames: boolean;
Automate generation of query names, and as a result attaching all indexes as queries to the generated Api.
If enabled,
enableSearchNodeToNodeEncryption
Required public readonly enableSearchNodeToNodeEncryption: boolean;
If enabled, set nodeToNodeEncryption on the searchable domain (if one exists).
Not recommended for use, prefer to use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => { domain.NodeToNodeEncryptionOptions = { Enabled: True }; });
enableTransformerCfnOutputs
Required public readonly enableTransformerCfnOutputs: boolean;
When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted.
populateOwnerFieldForStaticGroupAuth
Required public readonly populateOwnerFieldForStaticGroupAuth: boolean;
Ensure that the owner field is still populated even if a static iam or group authorization applies.
respectPrimaryKeyAttributesOnConnectionField
Required public readonly respectPrimaryKeyAttributesOnConnectionField: boolean;
Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app.
sandboxModeEnabled
Required public readonly sandboxModeEnabled: boolean;
Enabling sandbox mode will enable api key auth on all models in the transformed schema.
secondaryKeyAsGSI
Required public readonly secondaryKeyAsGSI: boolean;
If disabled, generated.
shouldDeepMergeDirectiveConfigDefaults
Required public readonly shouldDeepMergeDirectiveConfigDefaults: boolean;
Restore parity w/ GQLv1.
suppressApiKeyGeneration
Required public readonly suppressApiKeyGeneration: boolean;
If enabled, disable api key resource generation even if specified as an auth rule on the construct.
This is a legacy parameter from the Graphql Transformer existing in Amplify CLI, not recommended to change.
useSubUsernameForDefaultIdentityClaim
Required public readonly useSubUsernameForDefaultIdentityClaim: boolean;
Ensure that oidc and userPool auth use the sub
field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool.
Configuration for Cognito UserPool Authorization on the Graphql Api.
import { UserPoolAuthorizationConfig } from '@aws-amplify/graphql-api-construct'
const userPoolAuthorizationConfig: UserPoolAuthorizationConfig = { ... }
Name | Type | Description |
---|---|---|
userPool | aws-cdk-lib.aws_cognito.IUserPool | The Cognito User Pool which is used to authenticated JWT tokens, and vends group and user information. |
userPool
Required public readonly userPool: IUserPool;
The Cognito User Pool which is used to authenticated JWT tokens, and vends group and user information.
Class exposing utilities to produce IAmplifyGraphqlDefinition objects given various inputs.
import { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'
new AmplifyGraphqlDefinition()
Name | Type | Description |
---|
Name | Description |
---|---|
fromFiles | Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema. |
fromString | Produce a schema definition from a string input. |
fromFiles
import { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'
AmplifyGraphqlDefinition.fromFiles(filePaths: string)
Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema.
filePaths
Required one or more paths to the graphql files to process.
fromString
import { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'
AmplifyGraphqlDefinition.fromString(schema: string)
Produce a schema definition from a string input.
schema
Required the graphql input as a string.
Graphql Api definition, which can be implemented in multiple ways.
Name | Type | Description |
---|---|---|
functionSlots | MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[] | Retrieve any function slots defined explicitly in the Api definition. |
schema | string | Return the schema definition as a graphql string, with amplify directives allowed. |
functionSlots
Required public readonly functionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];
Retrieve any function slots defined explicitly in the Api definition.
schema
Required public readonly schema: string;
Return the schema definition as a graphql string, with amplify directives allowed.
Entry representing the required output from the backend for codegen generate commands to work.
Name | Type | Description |
---|---|---|
payload | {[ key: string ]: string} | The string-map payload of generated config values. |
version | string | The protocol version for this backend output. |
payload
Required public readonly payload: {[ key: string ]: string};
The string-map payload of generated config values.
version
Required public readonly version: string;
The protocol version for this backend output.
Backend output strategy used to write config required for codegen tasks.
Name | Description |
---|---|
addBackendOutputEntry | Add an entry to backend output. |
addBackendOutputEntry
public addBackendOutputEntry(keyName: string, backendOutputEntry: IBackendOutputEntry): void
Add an entry to backend output.
keyName
Required the key.
backendOutputEntry
Required the record to store in the backend output.
FAQs
AppSync GraphQL Api Construct using Amplify GraphQL Transformer.
The npm package @aws-amplify/graphql-api-construct receives a total of 38,840 weekly downloads. As such, @aws-amplify/graphql-api-construct popularity was classified as popular.
We found that @aws-amplify/graphql-api-construct demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.