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
Querytype:- Added the
extensionsfield to theQuerytype. - Added the
extensionfield to theQuerytype.
- Added the
- [GraphQL API] Changed the
Mutationtype:- Added the
deleteExtensionfield to theMutationtype. - Added the
updateExtensionfield to theMutationtype. - Added the
createExtensionfield to theMutationtype.
- 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!]}