diff --git a/specification/src/specification/capabilities.md b/specification/src/specification/capabilities.md index 7d4f4b41..87c71529 100644 --- a/specification/src/specification/capabilities.md +++ b/specification/src/specification/capabilities.md @@ -22,10 +22,9 @@ See [`CapabilitiesResponse`](../reference/types.md#capabilitiesresponse) | Name | Description | |------|-------------| -| `versions` | A [semantic versioning](https://semver.org) range of API versions which the data connector -| `capabilities.explain` | Whether the data connector is capable of describing query plans |claims to implement | -| `capabilities.mutation` | Whether the data connector is capable of executing mutations |claims to implement | -| `capabilities.mutation.transactional` | Whether the data connector is capable of executing multiple mutations in a transaction |claims to implement | +| `versions` | A [semantic versioning](https://semver.org) range of API versions which the data connector | +| `capabilities.explain` | Whether the data connector is capable of describing query plans | +| `capabilities.mutation.transactional` | Whether the data connector is capable of executing multiple mutations in a transaction | | `capabilities.query.aggregates` | Whether the data connector supports [aggregate queries](queries/aggregates.md) | | `capabilities.query.variables` | Whether the data connector supports [queries with variables](queries/variables.md) | | `capabilities.relationships` | Whether the data connector supports [relationships](queries/relationships.md) | diff --git a/specification/src/specification/mutations/README.md b/specification/src/specification/mutations/README.md index e184a912..8b6a16e0 100644 --- a/specification/src/specification/mutations/README.md +++ b/specification/src/specification/mutations/README.md @@ -25,6 +25,15 @@ See [`MutationRequest`](../../reference/types.md#mutationrequest) Each operation is described by a [`MutationOperation`](../../reference/types.md#mutationoperation) structure, which can be one of several types. However, currently [procedures](./procedures.md) are the only supported operation type. +### Multiple Operations + +If the `mutation.transactional` capability is enabled, then the caller may provide multiple operations in a single request. +Otherwise, the caller must provide exactly one operation. + +The intent is that multiple operations ought to be performed together in a single transaction. +That is, they should all succeed, or all fail together. If any operation fails, then a single `ErrorResponse` should capture +the failure, and none of the operations should effect any changes to the data source. + ## Response See [`MutationResponse`](../../reference/types.md#mutationresponse)