All Release Notes
Added Extension GraphQL query and mutation schema
21 April 2020
Composable Commerce
HTTP API
Enhancement
ExtensibilityGraphQL
Extensions can now be queried, created, updated, and deleted using the GraphQL API.
- [GraphQL API] Added the following types to the GraphQL schema:
AWSLambdaDestination
,AWSLambdaDestinationInput
,ActionType
,AuthorizationHeader
,AuthorizationHeaderInput
,AzureFunctionsAuthentication
,AzureFunctionsAuthenticationInput
,ChangeExtensionDestination
,ChangeExtensionTriggers
,Extension
,ExtensionDestination
,ExtensionDestinationInput
,ExtensionDraft
,ExtensionQueryResult
,ExtensionUpdateAction
,HttpDestination
,HttpDestinationAuthentication
,HttpDestinationAuthenticationInput
,HttpDestinationInput
,SetExtensionKey
,SetExtensionTimeoutInMs
,Trigger
,TriggerInput
. - [GraphQL API] Changed the
Query
type:- Added the
extensions
field to theQuery
type. - Added the
extension
field to theQuery
type.
- Added the
- [GraphQL API] Changed the
Mutation
type:- Added the
deleteExtension
field to theMutation
type. - Added the
updateExtension
field to theMutation
type. - Added the
createExtension
field to theMutation
type.
- Added the
Introduced the following changes to the GraphQL schema (in SDL format):
extend type Query {extension("Queries with specified ID"id: String,"Queries with specified key"key: String): Extensionextensions(where: String, sort: [String!], limit: Int, offset: Int): ExtensionQueryResult!}extend type Mutation {createExtension(draft: ExtensionDraft!): ExtensiondeleteExtension(version: Long!,"Queries with specified ID"id: String,"Queries with specified key"key: String): ExtensionupdateExtension(version: Long!, actions: [ExtensionUpdateAction!]!,"Queries with specified ID"id: String,"Queries with specified key"key: String): Extension}type AWSLambdaDestination implements ExtensionDestination {arn: String!accessKey: String!accessSecret: String!type: String!}input AWSLambdaDestinationInput {arn: String!accessKey: String!accessSecret: String!}enum ActionType {UpdateCreate}type AuthorizationHeader implements HttpDestinationAuthentication {headerValue: String!type: String!}input AuthorizationHeaderInput {headerValue: String!}type AzureFunctionsAuthentication implements HttpDestinationAuthentication {key: String!type: String!}input AzureFunctionsAuthenticationInput {key: String!}input ChangeExtensionDestination {destination: ExtensionDestinationInput!}input ChangeExtensionTriggers {triggers: [TriggerInput!]!}type Extension implements Versioned {key: Stringdestination: ExtensionDestination!triggers: [Trigger!]!timeoutInMs: Intid: String!version: Long!createdAt: DateTime!lastModifiedAt: DateTime!createdBy: InitiatorlastModifiedBy: Initiator}interface ExtensionDestination {type: String!}input ExtensionDestinationInput {HTTP: HttpDestinationInputAWSLambda: AWSLambdaDestinationInput}input ExtensionDraft {key: Stringdestination: ExtensionDestinationInput!triggers: [TriggerInput!]!timeoutInMs: Int}type ExtensionQueryResult {offset: Int!count: Int!total: Long!results: [Extension!]!}input ExtensionUpdateAction {changeDestination: ChangeExtensionDestinationchangeTriggers: ChangeExtensionTriggerssetKey: SetExtensionKeysetTimeoutInMs: SetExtensionTimeoutInMs}type HttpDestination implements ExtensionDestination {type: String!url: String!authentication: HttpDestinationAuthentication}interface HttpDestinationAuthentication {type: String!}input HttpDestinationAuthenticationInput {AuthorizationHeader: AuthorizationHeaderInputAzureFunctions: AzureFunctionsAuthenticationInput}input HttpDestinationInput {url: String!authentication: HttpDestinationAuthenticationInput}input SetExtensionKey {key: String}input SetExtensionTimeoutInMs {timeoutInMs: Int}input SetStoreDistributionChannels {channels: [ResourceIdentifierInput!]}type Trigger {resourceTypeId: String!actions: [ActionType!]!}input TriggerInput {resourceTypeId: String!actions: [ActionType!]}